sig
  type def_macro =
      Name.t list ->
      Typed_ast.env ->
      Typed_ast.def -> (Typed_ast.env * Typed_ast.def list) option
  val list_to_mac : Def_trans.def_macro list -> Def_trans.def_macro
  val process_defs :
    Name.t list ->
    Def_trans.def_macro ->
    Name.t ->
    Typed_ast.env -> Typed_ast.def list -> Typed_ast.env * Typed_ast.def list
  val class_to_record : Target.target -> Def_trans.def_macro
  val comment_out_inline_instances_and_classes :
    Target.target -> Def_trans.def_macro
  val instance_to_dict : bool -> Target.target -> Def_trans.def_macro
  val class_constraint_to_parameter : Target.target -> Def_trans.def_macro
  val remove_opens : Def_trans.def_macro
  val remove_import_include : Def_trans.def_macro
  val remove_import : Def_trans.def_macro
  val remove_module_renames : Def_trans.def_macro
  val remove_types_with_target_rep : Target.target -> Def_trans.def_macro
  val defs_with_target_rep_to_lemma :
    Typed_ast.env -> Target.target -> Def_trans.def_macro
  val remove_vals : Def_trans.def_macro
  val remove_indrelns : Def_trans.def_macro
  val remove_indrelns_true_lhs : Def_trans.def_macro
  val remove_classes : Def_trans.def_macro
  val type_annotate_definitions : Def_trans.def_macro
  val nvar_to_parameter : Def_trans.def_macro
  val prune_target_bindings :
    Target.non_ident_target -> Typed_ast.def list -> Typed_ast.def list
end