pub type GenFunc = fn(CustomType, Derivation, DerivFieldOpts, File) -> Gen
pub fn gen( type_: CustomType, deriv: Derivation, field_opts: Dict(DerivField, List(DerivFieldOpt)), file: File, module_reader: fn(String) -> Result(Module, ModuleReaderErr), ) -> Gen