import org.derive4j.processor.api.model.TypeRestriction;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Stream.concat;
import static org.derive4j.processor.Utils.fold;
import static org.derive4j.processor.api.DeriveResult.result;
<BUG>import static org.derive4j.processor.api.DerivedCodeSpec.methodSpec;
final class CataDerivator implements Derivator {</BUG>
CataDerivator(DeriveUtils utils) {
this.utils = utils;
mapperDerivator = new MapperDerivator(utils);

import org.derive4j.processor.api.model.TypeRestriction;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Stream.concat;
import static org.derive4j.processor.Utils.fold;
import static org.derive4j.processor.api.DeriveResult.result;
import static org.derive4j.processor.api.DerivedCodeSpec.methodSpec;
import static org.derive4j.processor.api.model.DataConstructions.caseOf;
final class CataDerivator implements Derivator {
CataDerivator(DeriveUtils utils) {
this.utils = utils;
mapperDerivator = new MapperDerivator(utils);
