sig
  exception Trans_error of Ast.l * string
  type 'a macro = Macro_expander.macro_context -> '-> 'a option
  type pat_macro = Macro_expander.pat_position -> Typed_ast.pat Trans.macro
  module Macros :
    functor (E : sig val env : Typed_ast.env end->
      sig
        val remove_singleton_record_updates : Typed_ast.exp Trans.macro
        val remove_multiple_record_updates : Typed_ast.exp Trans.macro
        val sort_record_fields : Typed_ast.exp Trans.macro
        val remove_list_comprehension : Typed_ast.exp Trans.macro
        val remove_set_comprehension : Typed_ast.exp Trans.macro
        val remove_set_comprehension_image_filter :
          bool -> Typed_ast.exp Trans.macro
        val remove_setcomp : Typed_ast.exp Trans.macro
        val cleanup_set_quant : Typed_ast.exp Trans.macro
        val remove_set_comp_binding : Typed_ast.exp Trans.macro
        val remove_set_restr_quant : Typed_ast.exp Trans.macro
        val list_quant_to_set_quant : Typed_ast.exp Trans.macro
        val remove_restr_quant :
          (Typed_ast.pat -> bool) -> Typed_ast.exp Trans.macro
        val remove_quant : Typed_ast.exp Trans.macro
        val remove_quant_coq : Typed_ast.exp Trans.macro
        val remove_unit_pats : Trans.pat_macro
        val coq_type_annot_pat_vars : Trans.pat_macro
        val remove_method :
          Target.target -> bool -> Typed_ast.exp Trans.macro
        val remove_method_pat : Trans.pat_macro
        val remove_num_lit : Typed_ast.exp Trans.macro
        val remove_class_const : Target.target -> Typed_ast.exp Trans.macro
        val remove_function : Typed_ast.exp Trans.macro
        val remove_sets : Typed_ast.exp Trans.macro
        val string_lits_isa : Typed_ast.exp Trans.macro
        val remove_fun_pats : bool -> Typed_ast.exp Trans.macro
        val add_nexp_param_in_const : Typed_ast.exp Trans.macro
        val remove_vector_access : Typed_ast.exp Trans.macro
        val remove_vector_sub : Typed_ast.exp Trans.macro
        val remove_do : Typed_ast.exp Trans.macro
      end
end