sig
  module type META_LOC =
    sig
      val meta_loc_patt : loc -> loc -> patt
      val meta_loc_expr : loc -> loc -> expr
    end
  module MetaLoc :
    sig
      val meta_loc_patt : loc -> loc -> patt
      val meta_loc_expr : loc -> loc -> expr
    end
  module MetaGhostLoc :
    sig
      val meta_loc_patt : loc -> '-> patt
      val meta_loc_expr : loc -> '-> expr
    end
  module MetaLocVar :
    sig
      val meta_loc_patt : loc -> '-> patt
      val meta_loc_expr : loc -> '-> expr
    end
  module Make :
    functor (MetaLoc : META_LOC->
      sig
        module Expr :
          sig
            val meta_string : loc -> string -> expr
            val meta_int : loc -> string -> expr
            val meta_float : loc -> string -> expr
            val meta_char : loc -> string -> expr
            val meta_bool : loc -> bool -> expr
            val meta_list : (loc -> '-> expr) -> loc -> 'a list -> expr
            val meta_binding : loc -> binding -> expr
            val meta_rec_binding : loc -> rec_binding -> expr
            val meta_class_expr : loc -> class_expr -> expr
            val meta_class_sig_item : loc -> class_sig_item -> expr
            val meta_class_str_item : loc -> class_str_item -> expr
            val meta_class_type : loc -> class_type -> expr
            val meta_ctyp : loc -> ctyp -> expr
            val meta_expr : loc -> expr -> expr
            val meta_ident : loc -> ident -> expr
            val meta_match_case : loc -> match_case -> expr
            val meta_module_binding : loc -> module_binding -> expr
            val meta_module_expr : loc -> module_expr -> expr
            val meta_module_type : loc -> module_type -> expr
            val meta_patt : loc -> patt -> expr
            val meta_sig_item : loc -> sig_item -> expr
            val meta_str_item : loc -> str_item -> expr
            val meta_with_constr : loc -> with_constr -> expr
            val meta_rec_flag : loc -> rec_flag -> expr
            val meta_mutable_flag : loc -> mutable_flag -> expr
            val meta_virtual_flag : loc -> virtual_flag -> expr
            val meta_private_flag : loc -> private_flag -> expr
            val meta_row_var_flag : loc -> row_var_flag -> expr
            val meta_override_flag : loc -> override_flag -> expr
            val meta_direction_flag : loc -> direction_flag -> expr
          end
        module Patt :
          sig
            val meta_string : loc -> string -> patt
            val meta_int : loc -> string -> patt
            val meta_float : loc -> string -> patt
            val meta_char : loc -> string -> patt
            val meta_bool : loc -> bool -> patt
            val meta_list : (loc -> '-> patt) -> loc -> 'a list -> patt
            val meta_binding : loc -> binding -> patt
            val meta_rec_binding : loc -> rec_binding -> patt
            val meta_class_expr : loc -> class_expr -> patt
            val meta_class_sig_item : loc -> class_sig_item -> patt
            val meta_class_str_item : loc -> class_str_item -> patt
            val meta_class_type : loc -> class_type -> patt
            val meta_ctyp : loc -> ctyp -> patt
            val meta_expr : loc -> expr -> patt
            val meta_ident : loc -> ident -> patt
            val meta_match_case : loc -> match_case -> patt
            val meta_module_binding : loc -> module_binding -> patt
            val meta_module_expr : loc -> module_expr -> patt
            val meta_module_type : loc -> module_type -> patt
            val meta_patt : loc -> patt -> patt
            val meta_sig_item : loc -> sig_item -> patt
            val meta_str_item : loc -> str_item -> patt
            val meta_with_constr : loc -> with_constr -> patt
            val meta_rec_flag : loc -> rec_flag -> patt
            val meta_mutable_flag : loc -> mutable_flag -> patt
            val meta_virtual_flag : loc -> virtual_flag -> patt
            val meta_private_flag : loc -> private_flag -> patt
            val meta_row_var_flag : loc -> row_var_flag -> patt
            val meta_override_flag : loc -> override_flag -> patt
            val meta_direction_flag : loc -> direction_flag -> patt
          end
      end
end