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