Module type Camlp4.Sig.Camlp4Ast


module type Camlp4Ast = sig .. end
Signature for OCaml syntax trees.

module Loc: Camlp4.Sig.Loc 
The inner module for locations
type loc = Camlp4.Sig.Loc.t 

type meta_bool =
| BTrue
| BFalse
| BAnt of string

type rec_flag =
| ReRecursive
| ReNil
| ReAnt of string

type direction_flag =
| DiTo
| DiDownto
| DiAnt of string

type mutable_flag =
| MuMutable
| MuNil
| MuAnt of string

type private_flag =
| PrPrivate
| PrNil
| PrAnt of string

type virtual_flag =
| ViVirtual
| ViNil
| ViAnt of string

type override_flag =
| OvOverride
| OvNil
| OvAnt of string

type row_var_flag =
| RvRowVar
| RvNil
| RvAnt of string

type 'a meta_option =
| ONone
| OSome of 'a
| OAnt of string

type 'a meta_list =
| LNil
| LCons of 'a * 'a meta_list
| LAnt of string

type ident =
| IdAcc of loc * ident
* ident
| IdApp of loc * ident
* ident
| IdLid of loc * string
| IdUid of loc * string
| IdAnt of loc * string

type ctyp =
| TyNil of loc
| TyAli of loc * ctyp
* ctyp
| TyAny of loc
| TyApp of loc * ctyp
* ctyp
| TyArr of loc * ctyp
* ctyp
| TyCls of loc * ident
| TyLab of loc * string * ctyp
| TyId of loc * ident
| TyMan of loc * ctyp
* ctyp
| TyDcl of loc * string * ctyp list
* ctyp
* (ctyp * ctyp) list
| TyObj of loc * ctyp
* row_var_flag
| TyOlb of loc * string * ctyp
| TyPol of loc * ctyp
* ctyp
| TyQuo of loc * string
| TyQuP of loc * string
| TyQuM of loc * string
| TyVrn of loc * string
| TyRec of loc * ctyp
| TyCol of loc * ctyp
* ctyp
| TySem of loc * ctyp
* ctyp
| TyCom of loc * ctyp
* ctyp
| TySum of loc * ctyp
| TyOf of loc * ctyp
* ctyp
| TyAnd of loc * ctyp
* ctyp
| TyOr of loc * ctyp
* ctyp
| TyPrv of loc * ctyp
| TyMut of loc * ctyp
| TyTup of loc * ctyp
| TySta of loc * ctyp
* ctyp
| TyVrnEq of loc * ctyp
| TyVrnSup of loc * ctyp
| TyVrnInf of loc * ctyp
| TyVrnInfSup of loc * ctyp
* ctyp
| TyAmp of loc * ctyp
* ctyp
| TyOfAmp of loc * ctyp
* ctyp
| TyPkg of loc * module_type
| TyAnt of loc * string

type patt =
| PaNil of loc
| PaId of loc * ident
| PaAli of loc * patt
* patt
| PaAnt of loc * string
| PaAny of loc
| PaApp of loc * patt
* patt
| PaArr of loc * patt
| PaCom of loc * patt
* patt
| PaSem of loc * patt
* patt
| PaChr of loc * string
| PaInt of loc * string
| PaInt32 of loc * string
| PaInt64 of loc * string
| PaNativeInt of loc * string
| PaFlo of loc * string
| PaLab of loc * string * patt
| PaOlb of loc * string * patt
| PaOlbi of loc * string * patt
* expr
| PaOrp of loc * patt
* patt
| PaRng of loc * patt
* patt
| PaRec of loc * patt
| PaEq of loc * ident
* patt
| PaStr of loc * string
| PaTup of loc * patt
| PaTyc of loc * patt
* ctyp
| PaTyp of loc * ident
| PaVrn of loc * string
| PaLaz of loc * patt

type expr =
| ExNil of loc
| ExId of loc * ident
| ExAcc of loc * expr
* expr
| ExAnt of loc * string
| ExApp of loc * expr
* expr
| ExAre of loc * expr
* expr
| ExArr of loc * expr
| ExSem of loc * expr
* expr
| ExAsf of loc
| ExAsr of loc * expr
| ExAss of loc * expr
* expr
| ExChr of loc * string
| ExCoe of loc * expr
* ctyp * ctyp
| ExFlo of loc * string
| ExFor of loc * string * expr
* expr * direction_flag
* expr
| ExFun of loc * match_case
| ExIfe of loc * expr
* expr * expr
| ExInt of loc * string
| ExInt32 of loc * string
| ExInt64 of loc * string
| ExNativeInt of loc * string
| ExLab of loc * string * expr
| ExLaz of loc * expr
| ExLet of loc * rec_flag
* binding * expr
| ExLmd of loc * string * module_expr
* expr
| ExMat of loc * expr
* match_case
| ExNew of loc * ident
| ExObj of loc * patt
* class_str_item
| ExOlb of loc * string * expr
| ExOvr of loc * rec_binding
| ExRec of loc * rec_binding
* expr
| ExSeq of loc * expr
| ExSnd of loc * expr * string
| ExSte of loc * expr
* expr
| ExStr of loc * string
| ExTry of loc * expr
* match_case
| ExTup of loc * expr
| ExCom of loc * expr
* expr
| ExTyc of loc * expr
* ctyp
| ExVrn of loc * string
| ExWhi of loc * expr
* expr
| ExOpI of loc * ident
* expr
| ExFUN of loc * string * expr
| ExPkg of loc * module_expr

type module_type =
| MtNil of loc
| MtId of loc * ident
| MtFun of loc * string * module_type
* module_type
| MtQuo of loc * string
| MtSig of loc * sig_item
| MtWit of loc * module_type
* with_constr
| MtAnt of loc * string

type sig_item =
| SgNil of loc
| SgCls of loc * class_type
| SgClt of loc * class_type
| SgSem of loc * sig_item
* sig_item
| SgDir of loc * string * expr
| SgExc of loc * ctyp
| SgExt of loc * string * ctyp
* string meta_list
| SgInc of loc * module_type
| SgMod of loc * string * module_type
| SgRecMod of loc * module_binding
| SgMty of loc * string * module_type
| SgOpn of loc * ident
| SgTyp of loc * ctyp
| SgVal of loc * string * ctyp
| SgAnt of loc * string

type with_constr =
| WcNil of loc
| WcTyp of loc * ctyp
* ctyp
| WcMod of loc * ident
* ident
| WcTyS of loc * ctyp
* ctyp
| WcMoS of loc * ident
* ident
| WcAnd of loc * with_constr
* with_constr
| WcAnt of loc * string

type binding =
| BiNil of loc
| BiAnd of loc * binding
* binding
| BiEq of loc * patt
* expr
| BiAnt of loc * string

type rec_binding =
| RbNil of loc
| RbSem of loc * rec_binding
* rec_binding
| RbEq of loc * ident
* expr
| RbAnt of loc * string

type module_binding =
| MbNil of loc
| MbAnd of loc * module_binding
* module_binding
| MbColEq of loc * string * module_type
* module_expr
| MbCol of loc * string * module_type
| MbAnt of loc * string

type match_case =
| McNil of loc
| McOr of loc * match_case
* match_case
| McArr of loc * patt
* expr * expr
| McAnt of loc * string

type module_expr =
| MeNil of loc
| MeId of loc * ident
| MeApp of loc * module_expr
* module_expr
| MeFun of loc * string * module_type
* module_expr
| MeStr of loc * str_item
| MeTyc of loc * module_expr
* module_type
| MePkg of loc * expr
| MeAnt of loc * string

type str_item =
| StNil of loc
| StCls of loc * class_expr
| StClt of loc * class_type
| StSem of loc * str_item
* str_item
| StDir of loc * string * expr
| StExc of loc * ctyp
* ident meta_option
| StExp of loc * expr
| StExt of loc * string * ctyp
* string meta_list
| StInc of loc * module_expr
| StMod of loc * string * module_expr
| StRecMod of loc * module_binding
| StMty of loc * string * module_type
| StOpn of loc * ident
| StTyp of loc * ctyp
| StVal of loc * rec_flag
* binding
| StAnt of loc * string

type class_type =
| CtNil of loc
| CtCon of loc * virtual_flag
* ident * ctyp
| CtFun of loc * ctyp
* class_type
| CtSig of loc * ctyp
* class_sig_item
| CtAnd of loc * class_type
* class_type
| CtCol of loc * class_type
* class_type
| CtEq of loc * class_type
* class_type
| CtAnt of loc * string

type class_sig_item =
| CgNil of loc
| CgCtr of loc * ctyp
* ctyp
| CgSem of loc * class_sig_item
* class_sig_item
| CgInh of loc * class_type
| CgMth of loc * string * private_flag
* ctyp
| CgVal of loc * string * mutable_flag
* virtual_flag * ctyp
| CgVir of loc * string * private_flag
* ctyp
| CgAnt of loc * string

type class_expr =
| CeNil of loc
| CeApp of loc * class_expr
* expr
| CeCon of loc * virtual_flag
* ident * ctyp
| CeFun of loc * patt
* class_expr
| CeLet of loc * rec_flag
* binding * class_expr
| CeStr of loc * patt
* class_str_item
| CeTyc of loc * class_expr
* class_type
| CeAnd of loc * class_expr
* class_expr
| CeEq of loc * class_expr
* class_expr
| CeAnt of loc * string

type class_str_item =
| CrNil of loc
| CrSem of loc * class_str_item
* class_str_item
| CrCtr of loc * ctyp
* ctyp
| CrInh of loc * override_flag
* class_expr * string
| CrIni of loc * expr
| CrMth of loc * string * override_flag
* private_flag * expr
* ctyp
| CrVal of loc * string * override_flag
* mutable_flag * expr
| CrVir of loc * string * private_flag
* ctyp
| CrVvr of loc * string * mutable_flag
* ctyp
| CrAnt of loc * string
val loc_of_ctyp : ctyp -> loc
val loc_of_patt : patt -> loc
val loc_of_expr : expr -> loc
val loc_of_module_type : module_type -> loc
val loc_of_module_expr : module_expr -> loc
val loc_of_sig_item : sig_item -> loc
val loc_of_str_item : str_item -> loc
val loc_of_class_type : class_type -> loc
val loc_of_class_sig_item : class_sig_item -> loc
val loc_of_class_expr : class_expr -> loc
val loc_of_class_str_item : class_str_item -> loc
val loc_of_with_constr : with_constr -> loc
val loc_of_binding : binding -> loc
val loc_of_rec_binding : rec_binding -> loc
val loc_of_module_binding : module_binding -> loc
val loc_of_match_case : match_case -> loc
val loc_of_ident : ident -> loc
module Meta: sig .. end
class map : object .. end
class fold : object .. end
val map_expr : (expr -> expr) ->
map
val map_patt : (patt -> patt) ->
map
val map_ctyp : (ctyp -> ctyp) ->
map
val map_str_item : (str_item -> str_item) ->
map
val map_sig_item : (sig_item -> sig_item) ->
map
val map_loc : (loc -> loc) ->
map
val ident_of_expr : expr -> ident
val ident_of_patt : patt -> ident
val ident_of_ctyp : ctyp -> ident
val biAnd_of_list : binding list -> binding
val rbSem_of_list : rec_binding list -> rec_binding
val paSem_of_list : patt list -> patt
val paCom_of_list : patt list -> patt
val tyOr_of_list : ctyp list -> ctyp
val tyAnd_of_list : ctyp list -> ctyp
val tyAmp_of_list : ctyp list -> ctyp
val tySem_of_list : ctyp list -> ctyp
val tyCom_of_list : ctyp list -> ctyp
val tySta_of_list : ctyp list -> ctyp
val stSem_of_list : str_item list -> str_item
val sgSem_of_list : sig_item list -> sig_item
val crSem_of_list : class_str_item list ->
class_str_item
val cgSem_of_list : class_sig_item list ->
class_sig_item
val ctAnd_of_list : class_type list -> class_type
val ceAnd_of_list : class_expr list -> class_expr
val wcAnd_of_list : with_constr list -> with_constr
val meApp_of_list : module_expr list -> module_expr
val mbAnd_of_list : module_binding list ->
module_binding
val mcOr_of_list : match_case list -> match_case
val idAcc_of_list : ident list -> ident
val idApp_of_list : ident list -> ident
val exSem_of_list : expr list -> expr
val exCom_of_list : expr list -> expr
val list_of_ctyp : ctyp ->
ctyp list -> ctyp list
val list_of_binding : binding ->
binding list -> binding list
val list_of_rec_binding : rec_binding ->
rec_binding list ->
rec_binding list
val list_of_with_constr : with_constr ->
with_constr list ->
with_constr list
val list_of_patt : patt ->
patt list -> patt list
val list_of_expr : expr ->
expr list -> expr list
val list_of_str_item : str_item ->
str_item list -> str_item list
val list_of_sig_item : sig_item ->
sig_item list -> sig_item list
val list_of_class_sig_item : class_sig_item ->
class_sig_item list ->
class_sig_item list
val list_of_class_str_item : class_str_item ->
class_str_item list ->
class_str_item list
val list_of_class_type : class_type ->
class_type list -> class_type list
val list_of_class_expr : class_expr ->
class_expr list -> class_expr list
val list_of_module_expr : module_expr ->
module_expr list ->
module_expr list
val list_of_module_binding : module_binding ->
module_binding list ->
module_binding list
val list_of_match_case : match_case ->
match_case list -> match_case list
val list_of_ident : ident ->
ident list -> ident list
val safe_string_escaped : string -> string
val is_irrefut_patt : patt -> bool
val is_constructor : ident -> bool
val is_patt_constructor : patt -> bool
val is_expr_constructor : expr -> bool
val ty_of_stl : Camlp4.Sig.Loc.t * string * ctyp list ->
ctyp
val ty_of_sbt : Camlp4.Sig.Loc.t * string * bool * ctyp ->
ctyp
val bi_of_pe : patt * expr ->
binding
val pel_of_binding : binding ->
(patt * expr) list
val binding_of_pel : (patt * expr) list ->
binding
val sum_type_of_list : (Camlp4.Sig.Loc.t * string * ctyp list) list ->
ctyp
val record_type_of_list : (Camlp4.Sig.Loc.t * string * bool * ctyp) list ->
ctyp