}
private final DeriveUtils deriveUtils;
private final MapperDerivator mapperDerivator;
TypeSpec stepTypeSpec(AlgebraicDataType adt) {
TypeSpec.Builder otherwiseMatchBuilder = TypeSpec.classBuilder(otherwiseBuilderClassName())
<BUG>.addTypeVariables(PatternMatchingDerivator.matcherVariables(adt).map(TypeVariableName::get).collect(Collectors.toList()))
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)</BUG>
.addFields(adt.dataConstruction()
.constructors()
.stream()

}
private final DeriveUtils deriveUtils;
private final MapperDerivator mapperDerivator;
TypeSpec stepTypeSpec(AlgebraicDataType adt) {
TypeSpec.Builder otherwiseMatchBuilder = TypeSpec.classBuilder(otherwiseBuilderClassName())
.addTypeVariables(matcherVariables(adt).map(TypeVariableName::get).collect(Collectors.toList()))
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addFields(adt.dataConstruction()
.constructors()
.stream()
