sig
  module Loc : Loc
  type loc = Camlp4.Sig.Loc.t
  and meta_bool = BTrue | BFalse | BAnt of string
  and rec_flag = ReRecursive | ReNil | ReAnt of string
  and direction_flag = DiTo | DiDownto | DiAnt of string
  and mutable_flag = MuMutable | MuNil | MuAnt of string
  and private_flag = PrPrivate | PrNil | PrAnt of string
  and virtual_flag = ViVirtual | ViNil | ViAnt of string
  and override_flag = OvOverride | OvNil | OvAnt of string
  and row_var_flag = RvRowVar | RvNil | RvAnt of string
  and 'a meta_option = ONone | OSome of '| OAnt of string
  and 'a meta_list =
      LNil
    | LCons of 'a * 'Camlp4.Sig.Camlp4Ast.meta_list
    | LAnt of string
  and ident =
      IdAcc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident *
        Camlp4.Sig.Camlp4Ast.ident
    | IdApp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident *
        Camlp4.Sig.Camlp4Ast.ident
    | IdLid of Camlp4.Sig.Camlp4Ast.loc * string
    | IdUid of Camlp4.Sig.Camlp4Ast.loc * string
    | IdAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and ctyp =
      TyNil of Camlp4.Sig.Camlp4Ast.loc
    | TyAli of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyAny of Camlp4.Sig.Camlp4Ast.loc
    | TyApp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyArr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyCls of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | TyLab of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.ctyp
    | TyId of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | TyMan of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyDcl of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.ctyp list * Camlp4.Sig.Camlp4Ast.ctyp *
        (Camlp4.Sig.Camlp4Ast.ctyp * Camlp4.Sig.Camlp4Ast.ctyp) list
    | TyObj of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.row_var_flag
    | TyOlb of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.ctyp
    | TyPol of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyQuo of Camlp4.Sig.Camlp4Ast.loc * string
    | TyQuP of Camlp4.Sig.Camlp4Ast.loc * string
    | TyQuM of Camlp4.Sig.Camlp4Ast.loc * string
    | TyVrn of Camlp4.Sig.Camlp4Ast.loc * string
    | TyRec of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | TyCol of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TySem of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyCom of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TySum of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | TyOf of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyAnd of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyOr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyPrv of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | TyMut of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | TyTup of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | TySta of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyVrnEq of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | TyVrnSup of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | TyVrnInf of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | TyVrnInfSup of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyAmp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyOfAmp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | TyPkg of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.module_type
    | TyAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and patt =
      PaNil of Camlp4.Sig.Camlp4Ast.loc
    | PaId of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | PaAli of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.patt
    | PaAnt of Camlp4.Sig.Camlp4Ast.loc * string
    | PaAny of Camlp4.Sig.Camlp4Ast.loc
    | PaApp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.patt
    | PaArr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt
    | PaCom of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.patt
    | PaSem of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.patt
    | PaChr of Camlp4.Sig.Camlp4Ast.loc * string
    | PaInt of Camlp4.Sig.Camlp4Ast.loc * string
    | PaInt32 of Camlp4.Sig.Camlp4Ast.loc * string
    | PaInt64 of Camlp4.Sig.Camlp4Ast.loc * string
    | PaNativeInt of Camlp4.Sig.Camlp4Ast.loc * string
    | PaFlo of Camlp4.Sig.Camlp4Ast.loc * string
    | PaLab of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.patt
    | PaOlb of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.patt
    | PaOlbi of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.patt * Camlp4.Sig.Camlp4Ast.expr
    | PaOrp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.patt
    | PaRng of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.patt
    | PaRec of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt
    | PaEq of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident *
        Camlp4.Sig.Camlp4Ast.patt
    | PaStr of Camlp4.Sig.Camlp4Ast.loc * string
    | PaTup of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt
    | PaTyc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.ctyp
    | PaTyp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | PaVrn of Camlp4.Sig.Camlp4Ast.loc * string
    | PaLaz of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt
  and expr =
      ExNil of Camlp4.Sig.Camlp4Ast.loc
    | ExId of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | ExAcc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.expr
    | ExAnt of Camlp4.Sig.Camlp4Ast.loc * string
    | ExApp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.expr
    | ExAre of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.expr
    | ExArr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr
    | ExSem of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.expr
    | ExAsf of Camlp4.Sig.Camlp4Ast.loc
    | ExAsr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr
    | ExAss of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.expr
    | ExChr of Camlp4.Sig.Camlp4Ast.loc * string
    | ExCoe of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.ctyp * Camlp4.Sig.Camlp4Ast.ctyp
    | ExFlo of Camlp4.Sig.Camlp4Ast.loc * string
    | ExFor of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.expr * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.direction_flag * Camlp4.Sig.Camlp4Ast.expr
    | ExFun of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.match_case
    | ExIfe of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.expr * Camlp4.Sig.Camlp4Ast.expr
    | ExInt of Camlp4.Sig.Camlp4Ast.loc * string
    | ExInt32 of Camlp4.Sig.Camlp4Ast.loc * string
    | ExInt64 of Camlp4.Sig.Camlp4Ast.loc * string
    | ExNativeInt of Camlp4.Sig.Camlp4Ast.loc * string
    | ExLab of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.expr
    | ExLaz of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr
    | ExLet of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.rec_flag *
        Camlp4.Sig.Camlp4Ast.binding * Camlp4.Sig.Camlp4Ast.expr
    | ExLmd of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.module_expr * Camlp4.Sig.Camlp4Ast.expr
    | ExMat of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.match_case
    | ExNew of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | ExObj of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.class_str_item
    | ExOlb of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.expr
    | ExOvr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.rec_binding
    | ExRec of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.rec_binding *
        Camlp4.Sig.Camlp4Ast.expr
    | ExSeq of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr
    | ExSnd of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr * string
    | ExSte of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.expr
    | ExStr of Camlp4.Sig.Camlp4Ast.loc * string
    | ExTry of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.match_case
    | ExTup of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr
    | ExCom of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.expr
    | ExTyc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.ctyp
    | ExVrn of Camlp4.Sig.Camlp4Ast.loc * string
    | ExWhi of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.expr
    | ExOpI of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident *
        Camlp4.Sig.Camlp4Ast.expr
    | ExFUN of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.expr
    | ExPkg of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.module_expr
  and module_type =
      MtNil of Camlp4.Sig.Camlp4Ast.loc
    | MtId of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | MtFun of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.module_type * Camlp4.Sig.Camlp4Ast.module_type
    | MtQuo of Camlp4.Sig.Camlp4Ast.loc * string
    | MtSig of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.sig_item
    | MtWit of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.module_type *
        Camlp4.Sig.Camlp4Ast.with_constr
    | MtAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and sig_item =
      SgNil of Camlp4.Sig.Camlp4Ast.loc
    | SgCls of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_type
    | SgClt of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_type
    | SgSem of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.sig_item *
        Camlp4.Sig.Camlp4Ast.sig_item
    | SgDir of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.expr
    | SgExc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | SgExt of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.ctyp * string Camlp4.Sig.Camlp4Ast.meta_list
    | SgInc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.module_type
    | SgMod of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.module_type
    | SgRecMod of Camlp4.Sig.Camlp4Ast.loc *
        Camlp4.Sig.Camlp4Ast.module_binding
    | SgMty of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.module_type
    | SgOpn of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | SgTyp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | SgVal of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.ctyp
    | SgAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and with_constr =
      WcNil of Camlp4.Sig.Camlp4Ast.loc
    | WcTyp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | WcMod of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident *
        Camlp4.Sig.Camlp4Ast.ident
    | WcTyS of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | WcMoS of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident *
        Camlp4.Sig.Camlp4Ast.ident
    | WcAnd of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.with_constr *
        Camlp4.Sig.Camlp4Ast.with_constr
    | WcAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and binding =
      BiNil of Camlp4.Sig.Camlp4Ast.loc
    | BiAnd of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.binding *
        Camlp4.Sig.Camlp4Ast.binding
    | BiEq of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.expr
    | BiAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and rec_binding =
      RbNil of Camlp4.Sig.Camlp4Ast.loc
    | RbSem of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.rec_binding *
        Camlp4.Sig.Camlp4Ast.rec_binding
    | RbEq of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident *
        Camlp4.Sig.Camlp4Ast.expr
    | RbAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and module_binding =
      MbNil of Camlp4.Sig.Camlp4Ast.loc
    | MbAnd of Camlp4.Sig.Camlp4Ast.loc *
        Camlp4.Sig.Camlp4Ast.module_binding *
        Camlp4.Sig.Camlp4Ast.module_binding
    | MbColEq of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.module_type * Camlp4.Sig.Camlp4Ast.module_expr
    | MbCol of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.module_type
    | MbAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and match_case =
      McNil of Camlp4.Sig.Camlp4Ast.loc
    | McOr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.match_case *
        Camlp4.Sig.Camlp4Ast.match_case
    | McArr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.expr * Camlp4.Sig.Camlp4Ast.expr
    | McAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and module_expr =
      MeNil of Camlp4.Sig.Camlp4Ast.loc
    | MeId of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | MeApp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.module_expr *
        Camlp4.Sig.Camlp4Ast.module_expr
    | MeFun of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.module_type * Camlp4.Sig.Camlp4Ast.module_expr
    | MeStr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.str_item
    | MeTyc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.module_expr *
        Camlp4.Sig.Camlp4Ast.module_type
    | MePkg of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr
    | MeAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and str_item =
      StNil of Camlp4.Sig.Camlp4Ast.loc
    | StCls of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_expr
    | StClt of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_type
    | StSem of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.str_item *
        Camlp4.Sig.Camlp4Ast.str_item
    | StDir of Camlp4.Sig.Camlp4Ast.loc * string * Camlp4.Sig.Camlp4Ast.expr
    | StExc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ident Camlp4.Sig.Camlp4Ast.meta_option
    | StExp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr
    | StExt of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.ctyp * string Camlp4.Sig.Camlp4Ast.meta_list
    | StInc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.module_expr
    | StMod of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.module_expr
    | StRecMod of Camlp4.Sig.Camlp4Ast.loc *
        Camlp4.Sig.Camlp4Ast.module_binding
    | StMty of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.module_type
    | StOpn of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ident
    | StTyp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp
    | StVal of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.rec_flag *
        Camlp4.Sig.Camlp4Ast.binding
    | StAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and class_type =
      CtNil of Camlp4.Sig.Camlp4Ast.loc
    | CtCon of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.virtual_flag *
        Camlp4.Sig.Camlp4Ast.ident * Camlp4.Sig.Camlp4Ast.ctyp
    | CtFun of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.class_type
    | CtSig of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.class_sig_item
    | CtAnd of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_type *
        Camlp4.Sig.Camlp4Ast.class_type
    | CtCol of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_type *
        Camlp4.Sig.Camlp4Ast.class_type
    | CtEq of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_type *
        Camlp4.Sig.Camlp4Ast.class_type
    | CtAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and class_sig_item =
      CgNil of Camlp4.Sig.Camlp4Ast.loc
    | CgCtr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | CgSem of Camlp4.Sig.Camlp4Ast.loc *
        Camlp4.Sig.Camlp4Ast.class_sig_item *
        Camlp4.Sig.Camlp4Ast.class_sig_item
    | CgInh of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_type
    | CgMth of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.private_flag * Camlp4.Sig.Camlp4Ast.ctyp
    | CgVal of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.mutable_flag *
        Camlp4.Sig.Camlp4Ast.virtual_flag * Camlp4.Sig.Camlp4Ast.ctyp
    | CgVir of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.private_flag * Camlp4.Sig.Camlp4Ast.ctyp
    | CgAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and class_expr =
      CeNil of Camlp4.Sig.Camlp4Ast.loc
    | CeApp of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_expr *
        Camlp4.Sig.Camlp4Ast.expr
    | CeCon of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.virtual_flag *
        Camlp4.Sig.Camlp4Ast.ident * Camlp4.Sig.Camlp4Ast.ctyp
    | CeFun of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.class_expr
    | CeLet of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.rec_flag *
        Camlp4.Sig.Camlp4Ast.binding * Camlp4.Sig.Camlp4Ast.class_expr
    | CeStr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.patt *
        Camlp4.Sig.Camlp4Ast.class_str_item
    | CeTyc of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_expr *
        Camlp4.Sig.Camlp4Ast.class_type
    | CeAnd of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_expr *
        Camlp4.Sig.Camlp4Ast.class_expr
    | CeEq of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.class_expr *
        Camlp4.Sig.Camlp4Ast.class_expr
    | CeAnt of Camlp4.Sig.Camlp4Ast.loc * string
  and class_str_item =
      CrNil of Camlp4.Sig.Camlp4Ast.loc
    | CrSem of Camlp4.Sig.Camlp4Ast.loc *
        Camlp4.Sig.Camlp4Ast.class_str_item *
        Camlp4.Sig.Camlp4Ast.class_str_item
    | CrCtr of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.ctyp *
        Camlp4.Sig.Camlp4Ast.ctyp
    | CrInh of Camlp4.Sig.Camlp4Ast.loc *
        Camlp4.Sig.Camlp4Ast.override_flag *
        Camlp4.Sig.Camlp4Ast.class_expr * string
    | CrIni of Camlp4.Sig.Camlp4Ast.loc * Camlp4.Sig.Camlp4Ast.expr
    | CrMth of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.override_flag *
        Camlp4.Sig.Camlp4Ast.private_flag * Camlp4.Sig.Camlp4Ast.expr *
        Camlp4.Sig.Camlp4Ast.ctyp
    | CrVal of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.override_flag *
        Camlp4.Sig.Camlp4Ast.mutable_flag * Camlp4.Sig.Camlp4Ast.expr
    | CrVir of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.private_flag * Camlp4.Sig.Camlp4Ast.ctyp
    | CrVvr of Camlp4.Sig.Camlp4Ast.loc * string *
        Camlp4.Sig.Camlp4Ast.mutable_flag * Camlp4.Sig.Camlp4Ast.ctyp
    | CrAnt of Camlp4.Sig.Camlp4Ast.loc * string
  val loc_of_ctyp : Camlp4.Sig.Camlp4Ast.ctyp -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_patt : Camlp4.Sig.Camlp4Ast.patt -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_expr : Camlp4.Sig.Camlp4Ast.expr -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_module_type :
    Camlp4.Sig.Camlp4Ast.module_type -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_module_expr :
    Camlp4.Sig.Camlp4Ast.module_expr -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_sig_item :
    Camlp4.Sig.Camlp4Ast.sig_item -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_str_item :
    Camlp4.Sig.Camlp4Ast.str_item -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_class_type :
    Camlp4.Sig.Camlp4Ast.class_type -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_class_sig_item :
    Camlp4.Sig.Camlp4Ast.class_sig_item -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_class_expr :
    Camlp4.Sig.Camlp4Ast.class_expr -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_class_str_item :
    Camlp4.Sig.Camlp4Ast.class_str_item -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_with_constr :
    Camlp4.Sig.Camlp4Ast.with_constr -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_binding :
    Camlp4.Sig.Camlp4Ast.binding -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_rec_binding :
    Camlp4.Sig.Camlp4Ast.rec_binding -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_module_binding :
    Camlp4.Sig.Camlp4Ast.module_binding -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_match_case :
    Camlp4.Sig.Camlp4Ast.match_case -> Camlp4.Sig.Camlp4Ast.loc
  val loc_of_ident : Camlp4.Sig.Camlp4Ast.ident -> Camlp4.Sig.Camlp4Ast.loc
  module Meta :
    sig
      module type META_LOC =
        sig
          val meta_loc_patt :
            Camlp4.Sig.Camlp4Ast.loc ->
            Camlp4.Sig.Camlp4Ast.loc -> Camlp4.Sig.Camlp4Ast.patt
          val meta_loc_expr :
            Camlp4.Sig.Camlp4Ast.loc ->
            Camlp4.Sig.Camlp4Ast.loc -> Camlp4.Sig.Camlp4Ast.expr
        end
      module MetaLoc :
        sig
          val meta_loc_patt :
            Camlp4.Sig.Camlp4Ast.loc ->
            Camlp4.Sig.Camlp4Ast.loc -> Camlp4.Sig.Camlp4Ast.patt
          val meta_loc_expr :
            Camlp4.Sig.Camlp4Ast.loc ->
            Camlp4.Sig.Camlp4Ast.loc -> Camlp4.Sig.Camlp4Ast.expr
        end
      module MetaGhostLoc :
        sig
          val meta_loc_patt :
            Camlp4.Sig.Camlp4Ast.loc -> '-> Camlp4.Sig.Camlp4Ast.patt
          val meta_loc_expr :
            Camlp4.Sig.Camlp4Ast.loc -> '-> Camlp4.Sig.Camlp4Ast.expr
        end
      module MetaLocVar :
        sig
          val meta_loc_patt :
            Camlp4.Sig.Camlp4Ast.loc -> '-> Camlp4.Sig.Camlp4Ast.patt
          val meta_loc_expr :
            Camlp4.Sig.Camlp4Ast.loc -> '-> Camlp4.Sig.Camlp4Ast.expr
        end
      module Make :
        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
    end
  class map :
    object ('a)
      method binding :
        Camlp4.Sig.Camlp4Ast.binding -> Camlp4.Sig.Camlp4Ast.binding
      method class_expr :
        Camlp4.Sig.Camlp4Ast.class_expr -> Camlp4.Sig.Camlp4Ast.class_expr
      method class_sig_item :
        Camlp4.Sig.Camlp4Ast.class_sig_item ->
        Camlp4.Sig.Camlp4Ast.class_sig_item
      method class_str_item :
        Camlp4.Sig.Camlp4Ast.class_str_item ->
        Camlp4.Sig.Camlp4Ast.class_str_item
      method class_type :
        Camlp4.Sig.Camlp4Ast.class_type -> Camlp4.Sig.Camlp4Ast.class_type
      method ctyp : Camlp4.Sig.Camlp4Ast.ctyp -> Camlp4.Sig.Camlp4Ast.ctyp
      method direction_flag :
        Camlp4.Sig.Camlp4Ast.direction_flag ->
        Camlp4.Sig.Camlp4Ast.direction_flag
      method expr : Camlp4.Sig.Camlp4Ast.expr -> Camlp4.Sig.Camlp4Ast.expr
      method ident : Camlp4.Sig.Camlp4Ast.ident -> Camlp4.Sig.Camlp4Ast.ident
      method list : ('-> '-> 'c) -> 'b list -> 'c list
      method loc : Camlp4.Sig.Camlp4Ast.loc -> Camlp4.Sig.Camlp4Ast.loc
      method match_case :
        Camlp4.Sig.Camlp4Ast.match_case -> Camlp4.Sig.Camlp4Ast.match_case
      method meta_bool :
        Camlp4.Sig.Camlp4Ast.meta_bool -> Camlp4.Sig.Camlp4Ast.meta_bool
      method meta_list :
        ('-> '-> 'e) ->
        'Camlp4.Sig.Camlp4Ast.meta_list ->
        'Camlp4.Sig.Camlp4Ast.meta_list
      method meta_option :
        ('-> '-> 'g) ->
        'Camlp4.Sig.Camlp4Ast.meta_option ->
        'Camlp4.Sig.Camlp4Ast.meta_option
      method module_binding :
        Camlp4.Sig.Camlp4Ast.module_binding ->
        Camlp4.Sig.Camlp4Ast.module_binding
      method module_expr :
        Camlp4.Sig.Camlp4Ast.module_expr -> Camlp4.Sig.Camlp4Ast.module_expr
      method module_type :
        Camlp4.Sig.Camlp4Ast.module_type -> Camlp4.Sig.Camlp4Ast.module_type
      method mutable_flag :
        Camlp4.Sig.Camlp4Ast.mutable_flag ->
        Camlp4.Sig.Camlp4Ast.mutable_flag
      method override_flag :
        Camlp4.Sig.Camlp4Ast.override_flag ->
        Camlp4.Sig.Camlp4Ast.override_flag
      method patt : Camlp4.Sig.Camlp4Ast.patt -> Camlp4.Sig.Camlp4Ast.patt
      method private_flag :
        Camlp4.Sig.Camlp4Ast.private_flag ->
        Camlp4.Sig.Camlp4Ast.private_flag
      method rec_binding :
        Camlp4.Sig.Camlp4Ast.rec_binding -> Camlp4.Sig.Camlp4Ast.rec_binding
      method rec_flag :
        Camlp4.Sig.Camlp4Ast.rec_flag -> Camlp4.Sig.Camlp4Ast.rec_flag
      method row_var_flag :
        Camlp4.Sig.Camlp4Ast.row_var_flag ->
        Camlp4.Sig.Camlp4Ast.row_var_flag
      method sig_item :
        Camlp4.Sig.Camlp4Ast.sig_item -> Camlp4.Sig.Camlp4Ast.sig_item
      method str_item :
        Camlp4.Sig.Camlp4Ast.str_item -> Camlp4.Sig.Camlp4Ast.str_item
      method string : string -> string
      method unknown : '-> 'h
      method virtual_flag :
        Camlp4.Sig.Camlp4Ast.virtual_flag ->
        Camlp4.Sig.Camlp4Ast.virtual_flag
      method with_constr :
        Camlp4.Sig.Camlp4Ast.with_constr -> Camlp4.Sig.Camlp4Ast.with_constr
    end
  class fold :
    object ('a)
      method binding : Camlp4.Sig.Camlp4Ast.binding -> 'a
      method class_expr : Camlp4.Sig.Camlp4Ast.class_expr -> 'a
      method class_sig_item : Camlp4.Sig.Camlp4Ast.class_sig_item -> 'a
      method class_str_item : Camlp4.Sig.Camlp4Ast.class_str_item -> 'a
      method class_type : Camlp4.Sig.Camlp4Ast.class_type -> 'a
      method ctyp : Camlp4.Sig.Camlp4Ast.ctyp -> 'a
      method direction_flag : Camlp4.Sig.Camlp4Ast.direction_flag -> 'a
      method expr : Camlp4.Sig.Camlp4Ast.expr -> 'a
      method ident : Camlp4.Sig.Camlp4Ast.ident -> 'a
      method list : ('-> '-> 'a) -> 'b list -> 'a
      method loc : Camlp4.Sig.Camlp4Ast.loc -> 'a
      method match_case : Camlp4.Sig.Camlp4Ast.match_case -> 'a
      method meta_bool : Camlp4.Sig.Camlp4Ast.meta_bool -> 'a
      method meta_list :
        ('-> '-> 'a) -> 'Camlp4.Sig.Camlp4Ast.meta_list -> 'a
      method meta_option :
        ('-> '-> 'a) -> 'Camlp4.Sig.Camlp4Ast.meta_option -> 'a
      method module_binding : Camlp4.Sig.Camlp4Ast.module_binding -> 'a
      method module_expr : Camlp4.Sig.Camlp4Ast.module_expr -> 'a
      method module_type : Camlp4.Sig.Camlp4Ast.module_type -> 'a
      method mutable_flag : Camlp4.Sig.Camlp4Ast.mutable_flag -> 'a
      method override_flag : Camlp4.Sig.Camlp4Ast.override_flag -> 'a
      method patt : Camlp4.Sig.Camlp4Ast.patt -> 'a
      method private_flag : Camlp4.Sig.Camlp4Ast.private_flag -> 'a
      method rec_binding : Camlp4.Sig.Camlp4Ast.rec_binding -> 'a
      method rec_flag : Camlp4.Sig.Camlp4Ast.rec_flag -> 'a
      method row_var_flag : Camlp4.Sig.Camlp4Ast.row_var_flag -> 'a
      method sig_item : Camlp4.Sig.Camlp4Ast.sig_item -> 'a
      method str_item : Camlp4.Sig.Camlp4Ast.str_item -> 'a
      method string : string -> 'a
      method unknown : '-> 'a
      method virtual_flag : Camlp4.Sig.Camlp4Ast.virtual_flag -> 'a
      method with_constr : Camlp4.Sig.Camlp4Ast.with_constr -> 'a
    end
  val map_expr :
    (Camlp4.Sig.Camlp4Ast.expr -> Camlp4.Sig.Camlp4Ast.expr) ->
    Camlp4.Sig.Camlp4Ast.map
  val map_patt :
    (Camlp4.Sig.Camlp4Ast.patt -> Camlp4.Sig.Camlp4Ast.patt) ->
    Camlp4.Sig.Camlp4Ast.map
  val map_ctyp :
    (Camlp4.Sig.Camlp4Ast.ctyp -> Camlp4.Sig.Camlp4Ast.ctyp) ->
    Camlp4.Sig.Camlp4Ast.map
  val map_str_item :
    (Camlp4.Sig.Camlp4Ast.str_item -> Camlp4.Sig.Camlp4Ast.str_item) ->
    Camlp4.Sig.Camlp4Ast.map
  val map_sig_item :
    (Camlp4.Sig.Camlp4Ast.sig_item -> Camlp4.Sig.Camlp4Ast.sig_item) ->
    Camlp4.Sig.Camlp4Ast.map
  val map_loc :
    (Camlp4.Sig.Camlp4Ast.loc -> Camlp4.Sig.Camlp4Ast.loc) ->
    Camlp4.Sig.Camlp4Ast.map
  val ident_of_expr : Camlp4.Sig.Camlp4Ast.expr -> Camlp4.Sig.Camlp4Ast.ident
  val ident_of_patt : Camlp4.Sig.Camlp4Ast.patt -> Camlp4.Sig.Camlp4Ast.ident
  val ident_of_ctyp : Camlp4.Sig.Camlp4Ast.ctyp -> Camlp4.Sig.Camlp4Ast.ident
  val biAnd_of_list :
    Camlp4.Sig.Camlp4Ast.binding list -> Camlp4.Sig.Camlp4Ast.binding
  val rbSem_of_list :
    Camlp4.Sig.Camlp4Ast.rec_binding list -> Camlp4.Sig.Camlp4Ast.rec_binding
  val paSem_of_list :
    Camlp4.Sig.Camlp4Ast.patt list -> Camlp4.Sig.Camlp4Ast.patt
  val paCom_of_list :
    Camlp4.Sig.Camlp4Ast.patt list -> Camlp4.Sig.Camlp4Ast.patt
  val tyOr_of_list :
    Camlp4.Sig.Camlp4Ast.ctyp list -> Camlp4.Sig.Camlp4Ast.ctyp
  val tyAnd_of_list :
    Camlp4.Sig.Camlp4Ast.ctyp list -> Camlp4.Sig.Camlp4Ast.ctyp
  val tyAmp_of_list :
    Camlp4.Sig.Camlp4Ast.ctyp list -> Camlp4.Sig.Camlp4Ast.ctyp
  val tySem_of_list :
    Camlp4.Sig.Camlp4Ast.ctyp list -> Camlp4.Sig.Camlp4Ast.ctyp
  val tyCom_of_list :
    Camlp4.Sig.Camlp4Ast.ctyp list -> Camlp4.Sig.Camlp4Ast.ctyp
  val tySta_of_list :
    Camlp4.Sig.Camlp4Ast.ctyp list -> Camlp4.Sig.Camlp4Ast.ctyp
  val stSem_of_list :
    Camlp4.Sig.Camlp4Ast.str_item list -> Camlp4.Sig.Camlp4Ast.str_item
  val sgSem_of_list :
    Camlp4.Sig.Camlp4Ast.sig_item list -> Camlp4.Sig.Camlp4Ast.sig_item
  val crSem_of_list :
    Camlp4.Sig.Camlp4Ast.class_str_item list ->
    Camlp4.Sig.Camlp4Ast.class_str_item
  val cgSem_of_list :
    Camlp4.Sig.Camlp4Ast.class_sig_item list ->
    Camlp4.Sig.Camlp4Ast.class_sig_item
  val ctAnd_of_list :
    Camlp4.Sig.Camlp4Ast.class_type list -> Camlp4.Sig.Camlp4Ast.class_type
  val ceAnd_of_list :
    Camlp4.Sig.Camlp4Ast.class_expr list -> Camlp4.Sig.Camlp4Ast.class_expr
  val wcAnd_of_list :
    Camlp4.Sig.Camlp4Ast.with_constr list -> Camlp4.Sig.Camlp4Ast.with_constr
  val meApp_of_list :
    Camlp4.Sig.Camlp4Ast.module_expr list -> Camlp4.Sig.Camlp4Ast.module_expr
  val mbAnd_of_list :
    Camlp4.Sig.Camlp4Ast.module_binding list ->
    Camlp4.Sig.Camlp4Ast.module_binding
  val mcOr_of_list :
    Camlp4.Sig.Camlp4Ast.match_case list -> Camlp4.Sig.Camlp4Ast.match_case
  val idAcc_of_list :
    Camlp4.Sig.Camlp4Ast.ident list -> Camlp4.Sig.Camlp4Ast.ident
  val idApp_of_list :
    Camlp4.Sig.Camlp4Ast.ident list -> Camlp4.Sig.Camlp4Ast.ident
  val exSem_of_list :
    Camlp4.Sig.Camlp4Ast.expr list -> Camlp4.Sig.Camlp4Ast.expr
  val exCom_of_list :
    Camlp4.Sig.Camlp4Ast.expr list -> Camlp4.Sig.Camlp4Ast.expr
  val list_of_ctyp :
    Camlp4.Sig.Camlp4Ast.ctyp ->
    Camlp4.Sig.Camlp4Ast.ctyp list -> Camlp4.Sig.Camlp4Ast.ctyp list
  val list_of_binding :
    Camlp4.Sig.Camlp4Ast.binding ->
    Camlp4.Sig.Camlp4Ast.binding list -> Camlp4.Sig.Camlp4Ast.binding list
  val list_of_rec_binding :
    Camlp4.Sig.Camlp4Ast.rec_binding ->
    Camlp4.Sig.Camlp4Ast.rec_binding list ->
    Camlp4.Sig.Camlp4Ast.rec_binding list
  val list_of_with_constr :
    Camlp4.Sig.Camlp4Ast.with_constr ->
    Camlp4.Sig.Camlp4Ast.with_constr list ->
    Camlp4.Sig.Camlp4Ast.with_constr list
  val list_of_patt :
    Camlp4.Sig.Camlp4Ast.patt ->
    Camlp4.Sig.Camlp4Ast.patt list -> Camlp4.Sig.Camlp4Ast.patt list
  val list_of_expr :
    Camlp4.Sig.Camlp4Ast.expr ->
    Camlp4.Sig.Camlp4Ast.expr list -> Camlp4.Sig.Camlp4Ast.expr list
  val list_of_str_item :
    Camlp4.Sig.Camlp4Ast.str_item ->
    Camlp4.Sig.Camlp4Ast.str_item list -> Camlp4.Sig.Camlp4Ast.str_item list
  val list_of_sig_item :
    Camlp4.Sig.Camlp4Ast.sig_item ->
    Camlp4.Sig.Camlp4Ast.sig_item list -> Camlp4.Sig.Camlp4Ast.sig_item list
  val list_of_class_sig_item :
    Camlp4.Sig.Camlp4Ast.class_sig_item ->
    Camlp4.Sig.Camlp4Ast.class_sig_item list ->
    Camlp4.Sig.Camlp4Ast.class_sig_item list
  val list_of_class_str_item :
    Camlp4.Sig.Camlp4Ast.class_str_item ->
    Camlp4.Sig.Camlp4Ast.class_str_item list ->
    Camlp4.Sig.Camlp4Ast.class_str_item list
  val list_of_class_type :
    Camlp4.Sig.Camlp4Ast.class_type ->
    Camlp4.Sig.Camlp4Ast.class_type list ->
    Camlp4.Sig.Camlp4Ast.class_type list
  val list_of_class_expr :
    Camlp4.Sig.Camlp4Ast.class_expr ->
    Camlp4.Sig.Camlp4Ast.class_expr list ->
    Camlp4.Sig.Camlp4Ast.class_expr list
  val list_of_module_expr :
    Camlp4.Sig.Camlp4Ast.module_expr ->
    Camlp4.Sig.Camlp4Ast.module_expr list ->
    Camlp4.Sig.Camlp4Ast.module_expr list
  val list_of_module_binding :
    Camlp4.Sig.Camlp4Ast.module_binding ->
    Camlp4.Sig.Camlp4Ast.module_binding list ->
    Camlp4.Sig.Camlp4Ast.module_binding list
  val list_of_match_case :
    Camlp4.Sig.Camlp4Ast.match_case ->
    Camlp4.Sig.Camlp4Ast.match_case list ->
    Camlp4.Sig.Camlp4Ast.match_case list
  val list_of_ident :
    Camlp4.Sig.Camlp4Ast.ident ->
    Camlp4.Sig.Camlp4Ast.ident list -> Camlp4.Sig.Camlp4Ast.ident list
  val safe_string_escaped : string -> string
  val is_irrefut_patt : Camlp4.Sig.Camlp4Ast.patt -> bool
  val is_constructor : Camlp4.Sig.Camlp4Ast.ident -> bool
  val is_patt_constructor : Camlp4.Sig.Camlp4Ast.patt -> bool
  val is_expr_constructor : Camlp4.Sig.Camlp4Ast.expr -> bool
  val ty_of_stl :
    Camlp4.Sig.Loc.t * string * Camlp4.Sig.Camlp4Ast.ctyp list ->
    Camlp4.Sig.Camlp4Ast.ctyp
  val ty_of_sbt :
    Camlp4.Sig.Loc.t * string * bool * Camlp4.Sig.Camlp4Ast.ctyp ->
    Camlp4.Sig.Camlp4Ast.ctyp
  val bi_of_pe :
    Camlp4.Sig.Camlp4Ast.patt * Camlp4.Sig.Camlp4Ast.expr ->
    Camlp4.Sig.Camlp4Ast.binding
  val pel_of_binding :
    Camlp4.Sig.Camlp4Ast.binding ->
    (Camlp4.Sig.Camlp4Ast.patt * Camlp4.Sig.Camlp4Ast.expr) list
  val binding_of_pel :
    (Camlp4.Sig.Camlp4Ast.patt * Camlp4.Sig.Camlp4Ast.expr) list ->
    Camlp4.Sig.Camlp4Ast.binding
  val sum_type_of_list :
    (Camlp4.Sig.Loc.t * string * Camlp4.Sig.Camlp4Ast.ctyp list) list ->
    Camlp4.Sig.Camlp4Ast.ctyp
  val record_type_of_list :
    (Camlp4.Sig.Loc.t * string * bool * Camlp4.Sig.Camlp4Ast.ctyp) list ->
    Camlp4.Sig.Camlp4Ast.ctyp
end