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