new TypeM(constructBuilderPackage(input), constructAbstractBuilderClassname(input))
.withTypeParameter(pojoType.getTypeParameters()
.collectDistinctTypeVariablesRecursevly(new TypeListM()).asArray()));
result.getBuilderModel().setAbstract(true);
result.setManualBuilderModel(new ManualBuilderM());
result.getManualBuilderModel().setType(
new TypeM(constructBuilderPackage(input), constructBuilderClassname(input))
.withTypeParameter(pojoType.getTypeParameters()
.collectDistinctTypeVariablesRecursevly(new TypeListM()).asArray()));
result.getManualBuilderModel().setBaseType(result.getBuilderModel().getType());