import javax.lang.model.element.Modifier;
import org.derive4j.processor.Utils;
import org.derive4j.processor.api.DeriveUtils;
import org.derive4j.processor.api.model.AlgebraicDataType;
import org.derive4j.processor.api.model.DataConstructor;
<BUG>import org.derive4j.processor.derivator.MapperDerivator;
import static org.derive4j.processor.Utils.joinStringsAsArguments;</BUG>
import static org.derive4j.processor.derivator.MapperDerivator.mapperFieldName;
<BUG>import static org.derive4j.processor.derivator.patternmatching.OtherwiseMatchingStepDerivator.otherwiseBuilderClassName;
import static org.derive4j.processor.derivator.patternmatching.PatternMatchingDerivator.constantMatchMethodBuilder;</BUG>
import static org.derive4j.processor.derivator.patternmatching.PatternMatchingDerivator.matcherVariables;

import javax.lang.model.element.Modifier;
import org.derive4j.processor.Utils;
import org.derive4j.processor.api.DeriveUtils;
import org.derive4j.processor.api.model.AlgebraicDataType;
import org.derive4j.processor.api.model.DataConstructor;
import org.derive4j.processor.derivator.MapperDerivator;
import static java.util.stream.Collectors.toList;
import static org.derive4j.processor.Utils.joinStringsAsArguments;
import static org.derive4j.processor.derivator.MapperDerivator.mapperFieldName;
import static org.derive4j.processor.derivator.patternmatching.OtherwiseMatchingStepDerivator.otherwiseBuilderClassName;
import static org.derive4j.processor.derivator.patternmatching.OtherwiseMatchingStepDerivator.otherwiseMatcherTypeName;
import static org.derive4j.processor.derivator.patternmatching.PatternMatchingDerivator.constantMatchMethodBuilder;
import static org.derive4j.processor.derivator.patternmatching.PatternMatchingDerivator.matcherVariables;
