return Arrays.asList(MethodSpec.methodBuilder(otherwiseLeftMethodName)
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.addTypeVariable(leftTypeVarName)
.addParameter(ParameterizedTypeName.get(ClassName.get(f0), leftTypeVarName), arg)
.returns(returnType)
<BUG>.addCode(DataConstructions.cases()
.multipleConstructors(MultipleConstructorsSupport.cases()</BUG>
.visitorDispatch(
(visitorParam, visitorType, constructors) -> visitorDispatchEitherImpl(f0, eitherModel, eitherTypeName, adt,
visitorType, visitorParam, arg))

return Arrays.asList(MethodSpec.methodBuilder(otherwiseLeftMethodName)
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.addTypeVariable(leftTypeVarName)
.addParameter(ParameterizedTypeName.get(ClassName.get(f0), leftTypeVarName), arg)
.returns(returnType)
.addCode(caseOf(adt.dataConstruction())
.multipleConstructors(MultipleConstructorsSupport.cases()
.visitorDispatch(
(visitorParam, visitorType, constructors) -> visitorDispatchEitherImpl(f0, eitherModel, eitherTypeName, adt,
visitorType, visitorParam, arg))
