functor (MetaLoc : META_LOC->
  sig
    module Expr :
      sig
        val meta_loc :
          Camlp4.PreCast.Loc.t ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_option :
          (Camlp4.PreCast.Ast.loc ->
           Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr) ->
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_string :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_int :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_float :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_char :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_bool :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_list :
          (Camlp4.PreCast.Ast.loc ->
           Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr) ->
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_binop :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_exp :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_stmt :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
        val meta_unop :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.expr
      end
    module Patt :
      sig
        val meta_loc :
          Camlp4.PreCast.Loc.t ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_option :
          (Camlp4.PreCast.Ast.loc ->
           Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt) ->
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_string :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_int :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_float :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_char :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_bool :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_list :
          (Camlp4.PreCast.Ast.loc ->
           Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt) ->
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_binop :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_exp :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_stmt :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
        val meta_unop :
          Camlp4.PreCast.Ast.loc ->
          Camlp4.PreCast.Ast.expr -> Camlp4.PreCast.Ast.patt
      end
  end