Ppx_core is our stdlib for the ppx code so we just include Base here
include BaseThis module is the toplevel of the Base library, it is what you get when you do open
Base.
The recommended way to use Base is to build with -open Base. Files compiled this
way will have the environment described in this file as initial environment.
module Applicative = Base.Applicativemodule Applicative_intf = Base.Applicative_intfmodule Array = Base.Arraymodule Avltree = Base.Avltreemodule Backtrace = Base.Backtracemodule Binary_search = Base.Binary_searchmodule Binary_searchable = Base.Binary_searchablemodule Binary_searchable_intf = Base.Binary_searchable_intfmodule Blit = Base.Blitmodule Blit_intf = Base.Blit_intfmodule Bool = Base.Boolmodule Buffer = Base.Buffermodule Bytes = Base.Bytesmodule Char = Base.Charmodule Commutative_group = Base.Commutative_groupmodule Comparable = Base.Comparablemodule Comparable_intf = Base.Comparable_intfmodule Comparator = Base.Comparatormodule Comparisons = Base.Comparisonsmodule Container = Base.Containermodule Container_intf = Base.Container_intfmodule Either = Base.Eithermodule Either_intf = Base.Either_intfmodule Equal = Base.Equalmodule Error = Base.Errormodule Exn = Base.Exnmodule Field = Base.Fieldmodule Float = Base.Floatmodule Floatable = Base.Floatablemodule Fn = Base.Fnmodule Hash = Base.Hashmodule Hash_intf = Base.Hash_intfmodule Hash_set = Base.Hash_setmodule Hash_set_intf = Base.Hash_set_intfmodule Hasher = Base.Hashermodule Hashtbl = Base.Hashtblmodule Hashtbl_intf = Base.Hashtbl_intfmodule Heap_block = Base.Heap_blockmodule Identifiable = Base.Identifiablemodule Indexed_container = Base.Indexed_containermodule Info = Base.Infomodule Info_intf = Base.Info_intfmodule Int = Base.Intmodule Int32 = Base.Int32module Int63 = Base.Int63module Int64 = Base.Int64module Int_intf = Base.Int_intfmodule Intable = Base.Intablemodule Invariant = Base.Invariantmodule Lazy = Base.Lazymodule List = Base.Listmodule Map = Base.Mapmodule Map_intf = Base.Map_intfmodule Maybe_bound = Base.Maybe_boundmodule Monad = Base.Monadmodule Nativeint = Base.Nativeintmodule Obj_array = Base.Obj_arraymodule Option = Base.Optionmodule Or_error = Base.Or_errormodule Ordered_collection_common = Base.Ordered_collection_commonmodule Ordering = Base.Orderingmodule Poly = Base.Polymodule Polymorphic_compare = Base.Polymorphic_comparemodule Popcount = Base.Popcountmodule Pretty_printer = Base.Pretty_printermodule Printf = Base.Printfmodule Linked_queue = Base.Linked_queuemodule Queue_intf = Base.Queue_intfmodule Random = Base.Randommodule Ref = Base.Refmodule Result = Base.Resultmodule Sequence = Base.Sequencemodule Set = Base.Setmodule Set_intf = Base.Set_intfmodule Sexpable = Base.Sexpablemodule Sign = Base.Signmodule Source_code_position = Base.Source_code_positionmodule Staged = Base.Stagedmodule String = Base.Stringmodule Stringable = Base.Stringablemodule String_dict = Base.String_dictmodule Sys = Base.Sysmodule T = Base.Tmodule Type_equal = Base.Type_equalmodule Unit = Base.Unitmodule Uchar = Base.Ucharmodule Validate = Base.Validatemodule Variant = Base.Variantmodule With_return = Base.With_returnmodule Word_size = Base.Word_sizemodule type T : sig ... endmodule type T1 : sig ... endmodule type T2 : sig ... endmodule type T3 : sig ... endmodule Sexp = Base.Sexpmodule Export = Base.Exportinclude Exportval hash_fold_bool : Hash.state ‑> bool ‑> Hash.stateval hash_bool : bool ‑> Hash.hash_valueval hash_fold_char : Hash.state ‑> char ‑> Hash.stateval hash_char : char ‑> Hash.hash_valueval hash_fold_float : Hash.state ‑> float ‑> Hash.stateval hash_float : float ‑> Hash.hash_valueval hash_fold_int : Hash.state ‑> int ‑> Hash.stateval hash_int : int ‑> Hash.hash_valueval hash_fold_int32 : Hash.state ‑> int32 ‑> Hash.stateval hash_int32 : int32 ‑> Hash.hash_valueval hash_fold_int64 : Hash.state ‑> int64 ‑> Hash.stateval hash_int64 : int64 ‑> Hash.hash_valueval hash_fold_list : a. (Hash.state ‑> 'a ‑> Hash.state) ‑> Hash.state ‑> 'a list ‑> Hash.stateval hash_fold_nativeint : Hash.state ‑> nativeint ‑> Hash.stateval hash_nativeint : nativeint ‑> Hash.hash_valueval hash_fold_option : a. (Hash.state ‑> 'a ‑> Hash.state) ‑> Hash.state ‑> 'a option ‑> Hash.stateval hash_fold_string : Hash.state ‑> string ‑> Hash.stateval hash_string : string ‑> Hash.hash_valueval hash_fold_unit : Hash.state ‑> unit ‑> Hash.stateval hash_unit : unit ‑> Hash.hash_valueExporting the ad-hoc types that are recognized by ppx_sexp_* converters.
sexp_array, sexp_list, and sexp_option allow a record field to be absent when
converting from a sexp, and if absent, the field will take a default value of the
appropriate type:
sexp_array [||]
sexp_bool false
sexp_list []
sexp_option Nonesexp_opaque causes the conversion to sexp to produce the atom <opaque>.
For more documentation, see sexplib/README.md.
List operators
include List.Infixval (@) : 'a Base__List.t ‑> 'a Base__List.t ‑> 'a Base__List.tInt operators and comparisons
include Int.OA sub-module designed to be opened to make working with ints more convenient.
Float operators
include Float.O_dotSimilar to O, except that operators are suffixed with a dot, allowing one to have
both int and float operators in scope simultaneously.
Similar to O, except that operators are suffixed with a dot, allowing one to have
both int and float operators in scope simultaneously.
val (+.) : Base.Float.t ‑> Base.Float.t ‑> Base.Float.tval (-.) : Base.Float.t ‑> Base.Float.t ‑> Base.Float.tval (*.) : Base.Float.t ‑> Base.Float.t ‑> Base.Float.tval (/.) : Base.Float.t ‑> Base.Float.t ‑> Base.Float.tval (**.) : Base.Float.t ‑> Base.Float.t ‑> Base.Float.tval (~-.) : Base.Float.t ‑> Base.Float.texternal (|>) : 'a ‑> ('a ‑> 'b) ‑> 'b = "%revapply" Reverse application operator. x |> g |> f is equivalent to f (g (x)).
external (@@) : ('a ‑> 'b) ‑> 'a ‑> 'b = "%apply" Application operator. g @@ f @@ x is equivalent to g (f (x)).
external ignore : _ ‑> unit = "%ignore" external ref : 'a ‑> 'a ref = "%makemutable" val raise_s : Sexp.t ‑> 'aexternal force : 'a Lazy.t ‑> 'a = "%lazy_force" module Continue_or_stop = Base.Container_intf.Export.Continue_or_stopContinue_or_stop.t is used by the f argument to fold_until in order to
indicate whether folding should continue, or stop early.
module Finished_or_stopped_early = Base.Container_intf.Export.Finished_or_stopped_earlyFinished_or_stopped_early.t is returned by fold_until to indicate whether
f requested the fold stop, or if the fold completed.
module Not_exposed_properly = Base.Not_exposed_properlyMake sure code using Ppx_core doesn't refer to compiler-libs without being explicit about it
include module type of sig ... end with module Ast_helper := Ocaml_shadow.Ast_helper with module Asttypes := Ocaml_shadow.Asttypes with module Docstrings := Ocaml_shadow.Docstrings with module Identifiable := Ocaml_shadow.Identifiable with module Lexer := Ocaml_shadow.Lexer with module Location := Ocaml_shadow.Location with module Longident := Ocaml_shadow.Longident with module Parse := Ocaml_shadow.Parse with module Parser := Ocaml_shadow.Parser with module Parsetree := Ocaml_shadow.Parsetree with module Pprintast := Ocaml_shadow.Pprintast with module Syntaxerr := Ocaml_shadow.Syntaxerrmodule Do_not_use_directly = Ocaml_shadow.Do_not_use_directlymodule Afl_instrument = Do_not_use_directlymodule Alias_analysis = Do_not_use_directlymodule Allocated_const = Do_not_use_directlymodule Annot = Do_not_use_directlymodule Arch = Do_not_use_directlymodule Arg_helper = Do_not_use_directlymodule Asmgen = Do_not_use_directlymodule Asmlibrarian = Do_not_use_directlymodule Asmlink = Do_not_use_directlymodule Asmpackager = Do_not_use_directlymodule Ast_helper = Do_not_use_directlymodule Ast_invariants = Do_not_use_directlymodule Ast_iterator = Do_not_use_directlymodule Ast_mapper = Do_not_use_directlymodule Asttypes = Do_not_use_directlymodule Attr_helper = Do_not_use_directlymodule Augment_specialised_args = Do_not_use_directlymodule Backend_intf = Do_not_use_directlymodule Branch_relaxation = Do_not_use_directlymodule Branch_relaxation_intf = Do_not_use_directlymodule Btype = Do_not_use_directlymodule Build_export_info = Do_not_use_directlymodule Builtin_attributes = Do_not_use_directlymodule Bytegen = Do_not_use_directlymodule Bytelibrarian = Do_not_use_directlymodule Bytelink = Do_not_use_directlymodule Bytepackager = Do_not_use_directlymodule Bytesections = Do_not_use_directlymodule CSE = Do_not_use_directlymodule CSEgen = Do_not_use_directlymodule Ccomp = Do_not_use_directlymodule Clambda = Do_not_use_directlymodule Clflags = Do_not_use_directlymodule Closure = Do_not_use_directlymodule Closure_conversion = Do_not_use_directlymodule Closure_conversion_aux = Do_not_use_directlymodule Closure_element = Do_not_use_directlymodule Closure_id = Do_not_use_directlymodule Closure_offsets = Do_not_use_directlymodule Cmi_format = Do_not_use_directlymodule Cmm = Do_not_use_directlymodule Cmmgen = Do_not_use_directlymodule Cmo_format = Do_not_use_directlymodule Cmt_format = Do_not_use_directlymodule Cmx_format = Do_not_use_directlymodule Coloring = Do_not_use_directlymodule Comballoc = Do_not_use_directlymodule Compdynlink = Do_not_use_directlymodule Compenv = Do_not_use_directlymodule Compilation_unit = Do_not_use_directlymodule Compile = Do_not_use_directlymodule Compilenv = Do_not_use_directlymodule Compmisc = Do_not_use_directlymodule Compplugin = Do_not_use_directlymodule Config = Do_not_use_directlymodule Consistbl = Do_not_use_directlymodule Ctype = Do_not_use_directlymodule Datarepr = Do_not_use_directlymodule Deadcode = Do_not_use_directlymodule Debuginfo = Do_not_use_directlymodule Depend = Do_not_use_directlymodule Dll = Do_not_use_directlymodule Docstrings = Do_not_use_directlymodule Effect_analysis = Do_not_use_directlymodule Emit = Do_not_use_directlymodule Emitaux = Do_not_use_directlymodule Emitcode = Do_not_use_directlymodule Env = Do_not_use_directlymodule Envaux = Do_not_use_directlymodule Errors = Do_not_use_directlymodule Export_id = Do_not_use_directlymodule Export_info = Do_not_use_directlymodule Export_info_for_pack = Do_not_use_directlymodule Expunge = Do_not_use_directlymodule Extract_projections = Do_not_use_directlymodule Find_recursive_functions = Do_not_use_directlymodule Flambda = Do_not_use_directlymodule Flambda_invariants = Do_not_use_directlymodule Flambda_iterators = Do_not_use_directlymodule Flambda_to_clambda = Do_not_use_directlymodule Flambda_utils = Do_not_use_directlymodule Freshening = Do_not_use_directlymodule Genprintval = Do_not_use_directlymodule Id_types = Do_not_use_directlymodule Ident = Do_not_use_directlymodule Identifiable = Do_not_use_directlymodule Import_approx = Do_not_use_directlymodule Includeclass = Do_not_use_directlymodule Includecore = Do_not_use_directlymodule Includemod = Do_not_use_directlymodule Inconstant_idents = Do_not_use_directlymodule Initialize_symbol_to_let_symbol = Do_not_use_directlymodule Inline_and_simplify = Do_not_use_directlymodule Inline_and_simplify_aux = Do_not_use_directlymodule Inlining_cost = Do_not_use_directlymodule Inlining_decision = Do_not_use_directlymodule Inlining_decision_intf = Do_not_use_directlymodule Inlining_stats = Do_not_use_directlymodule Inlining_stats_types = Do_not_use_directlymodule Inlining_transforms = Do_not_use_directlymodule Instruct = Do_not_use_directlymodule Interf = Do_not_use_directlymodule Invariant_params = Do_not_use_directlymodule Lambda = Do_not_use_directlymodule Lexer = Do_not_use_directlymodule Lift_code = Do_not_use_directlymodule Lift_constants = Do_not_use_directlymodule Lift_let_to_initialize_symbol = Do_not_use_directlymodule Linearize = Do_not_use_directlymodule Linkage_name = Do_not_use_directlymodule Liveness = Do_not_use_directlymodule Location = Do_not_use_directlymodule Longident = Do_not_use_directlymodule Mach = Do_not_use_directlymodule Main = Do_not_use_directlymodule Main_args = Do_not_use_directlymodule Matching = Do_not_use_directlymodule Meta = Do_not_use_directlymodule Middle_end = Do_not_use_directlymodule Misc = Do_not_use_directlymodule Mtype = Do_not_use_directlymodule Mutable_variable = Do_not_use_directlymodule Numbers = Do_not_use_directlymodule Opcodes = Do_not_use_directlymodule Oprint = Do_not_use_directlymodule Optcompile = Do_not_use_directlymodule Opterrors = Do_not_use_directlymodule Optmain = Do_not_use_directlymodule Outcometree = Do_not_use_directlymodule Parmatch = Do_not_use_directlymodule Parse = Do_not_use_directlymodule Parser = Do_not_use_directlymodule Parsetree = Do_not_use_directlymodule Pass_wrapper = Do_not_use_directlymodule Path = Do_not_use_directlymodule Pparse = Do_not_use_directlymodule Pprintast = Do_not_use_directlymodule Predef = Do_not_use_directlymodule Primitive = Do_not_use_directlymodule Printast = Do_not_use_directlymodule Printclambda = Do_not_use_directlymodule Printcmm = Do_not_use_directlymodule Printinstr = Do_not_use_directlymodule Printlambda = Do_not_use_directlymodule Printlinear = Do_not_use_directlymodule Printmach = Do_not_use_directlymodule Printtyp = Do_not_use_directlymodule Printtyped = Do_not_use_directlymodule Proc = Do_not_use_directlymodule Projection = Do_not_use_directlymodule Ref_to_variables = Do_not_use_directlymodule Reg = Do_not_use_directlymodule Reload = Do_not_use_directlymodule Reloadgen = Do_not_use_directlymodule Remove_free_vars_equal_to_args = Do_not_use_directlymodule Remove_unused_arguments = Do_not_use_directlymodule Remove_unused_closure_vars = Do_not_use_directlymodule Remove_unused_program_constructs = Do_not_use_directlymodule Runtimedef = Do_not_use_directlymodule Schedgen = Do_not_use_directlymodule Scheduling = Do_not_use_directlymodule Selectgen = Do_not_use_directlymodule Selection = Do_not_use_directlymodule Semantics_of_primitives = Do_not_use_directlymodule Set_of_closures_id = Do_not_use_directlymodule Set_of_closures_origin = Do_not_use_directlymodule Simple_value_approx = Do_not_use_directlymodule Simplif = Do_not_use_directlymodule Simplify_boxed_integer_ops = Do_not_use_directlymodule Simplify_boxed_integer_ops_intf = Do_not_use_directlymodule Simplify_common = Do_not_use_directlymodule Simplify_primitives = Do_not_use_directlymodule Spacetime_profiling = Do_not_use_directlymodule Spill = Do_not_use_directlymodule Split = Do_not_use_directlymodule Static_exception = Do_not_use_directlymodule Strmatch = Do_not_use_directlymodule Strongly_connected_components = Do_not_use_directlymodule Stypes = Do_not_use_directlymodule Subst = Do_not_use_directlymodule Switch = Do_not_use_directlymodule Symbol = Do_not_use_directlymodule Symtable = Do_not_use_directlymodule Syntaxerr = Do_not_use_directlymodule Tag = Do_not_use_directlymodule Targetint = Do_not_use_directlymodule Tast_mapper = Do_not_use_directlymodule Tbl = Do_not_use_directlymodule Terminfo = Do_not_use_directlymodule Timings = Do_not_use_directlymodule Topdirs = Do_not_use_directlymodule Toploop = Do_not_use_directlymodule Topmain = Do_not_use_directlymodule Topstart = Do_not_use_directlymodule Trace = Do_not_use_directlymodule Translattribute = Do_not_use_directlymodule Translclass = Do_not_use_directlymodule Translcore = Do_not_use_directlymodule Translmod = Do_not_use_directlymodule Translobj = Do_not_use_directlymodule Typeclass = Do_not_use_directlymodule Typecore = Do_not_use_directlymodule Typedecl = Do_not_use_directlymodule Typedtree = Do_not_use_directlymodule TypedtreeIter = Do_not_use_directlymodule TypedtreeMap = Do_not_use_directlymodule Typemod = Do_not_use_directlymodule Typeopt = Do_not_use_directlymodule Types = Do_not_use_directlymodule Typetexp = Do_not_use_directlymodule Un_anf = Do_not_use_directlymodule Unbox_closures = Do_not_use_directlymodule Unbox_free_vars_of_closures = Do_not_use_directlymodule Unbox_specialised_args = Do_not_use_directlymodule Untypeast = Do_not_use_directlymodule Var_within_closure = Do_not_use_directlymodule Variable = Do_not_use_directlymodule Warnings = Do_not_use_directlymodule X86_ast = Do_not_use_directlymodule X86_dsl = Do_not_use_directlymodule X86_gas = Do_not_use_directlymodule X86_masm = Do_not_use_directlymodule X86_proc = Do_not_use_directlymodule Std : sig ... endmodule Light : sig ... endYou should open this module if you intend to use Ppx_core with a standard library that is not Base.
include LightYou should open this module if you intend to use Ppx_core with a standard library that is not Base.
Includes the overrides from Ppx_ast, as well as all the Ast definitions since we need them in every single ppx
include Ppx_astmodule Ast = Ppx_ast.Astmodule Ast_helper = Ppx_ast.Ast_helpermodule Ast_magic = Ppx_ast__.Import.Selected_ast.Ast.Configmodule Asttypes = Ppx_ast__.Import.Asttypesmodule Docstrings = Ppx_ast.Docstringsmodule Extra_warnings = Ppx_ast__.Warnmodule Lexer = Ppx_ast.Lexermodule Parse = Ppx_ast.Parsemodule Parser = Ppx_ast.Parsermodule Parsetree = Ppx_ast__.Import.Parsetreemodule Pprintast = Ppx_ast.Pprintastmodule Select_ast = Ppx_ast__.Import.Select_astmodule Selected_ast = Ppx_ast__.Import.Selected_astmodule Syntaxerr = Ppx_ast.Syntaxerrinclude AstDefinition of the OCaml AST
type location = Ppx_ast__.Import.Location.t = {loc_start : position; |
loc_end : position; |
loc_ghost : bool; |
}type longident = Ppx_ast__.Import.Longident.t = | Lident of string |
| Ldot of longident * string |
| Lapply of longident * longident |
type arg_label = Ppx_ast__.Import.Asttypes.arg_label = | Nolabel |
| Labelled of string |
| Optional of string |
Abstract syntax tree produced by parsing
type constant = Ppx_ast__.Import.Parsetree.constant = | Pconst_integer of string * char option |
| Pconst_char of char |
| Pconst_string of string * string option |
| Pconst_float of string * char option |
type payload = Ppx_ast__.Import.Parsetree.payload = | PStr of structure |
| PSig of signature |
| PTyp of core_type |
| PPat of pattern * expression option |
type core_type = Ppx_ast__.Import.Parsetree.core_type = {ptyp_desc : core_type_desc; |
ptyp_loc : location; |
ptyp_attributes : attributes; |
}type core_type_desc = Ppx_ast__.Import.Parsetree.core_type_desc = | Ptyp_any |
| Ptyp_var of string |
| Ptyp_arrow of arg_label * core_type * core_type |
| Ptyp_tuple of core_type list |
| Ptyp_constr of longident_loc * core_type list |
| Ptyp_object of (string * attributes * core_type) list * closed_flag |
| Ptyp_class of longident_loc * core_type list |
| Ptyp_alias of core_type * string |
| Ptyp_variant of row_field list * closed_flag * label list option |
| Ptyp_poly of string list * core_type |
| Ptyp_package of package_type |
| Ptyp_extension of extension |
type row_field = Ppx_ast__.Import.Parsetree.row_field = | Rtag of label * attributes * bool * core_type list |
| Rinherit of core_type |
type pattern = Ppx_ast__.Import.Parsetree.pattern = {ppat_desc : pattern_desc; |
ppat_loc : location; |
ppat_attributes : attributes; |
}type pattern_desc = Ppx_ast__.Import.Parsetree.pattern_desc = | Ppat_any |
| Ppat_var of string loc |
| Ppat_alias of pattern * string loc |
| Ppat_constant of constant |
| Ppat_interval of constant * constant |
| Ppat_tuple of pattern list |
| Ppat_construct of longident_loc * pattern option |
| Ppat_variant of label * pattern option |
| Ppat_record of (longident_loc * pattern) list * closed_flag |
| Ppat_array of pattern list |
| Ppat_or of pattern * pattern |
| Ppat_constraint of pattern * core_type |
| Ppat_type of longident_loc |
| Ppat_lazy of pattern |
| Ppat_unpack of string loc |
| Ppat_exception of pattern |
| Ppat_extension of extension |
| Ppat_open of longident loc * pattern |
type expression = Ppx_ast__.Import.Parsetree.expression = {pexp_desc : expression_desc; |
pexp_loc : location; |
pexp_attributes : attributes; |
}type expression_desc = Ppx_ast__.Import.Parsetree.expression_desc = | Pexp_ident of longident_loc |
| Pexp_constant of constant |
| Pexp_let of rec_flag * value_binding list * expression |
| Pexp_function of case list |
| Pexp_fun of arg_label * expression option * pattern * expression |
| Pexp_apply of expression * (arg_label * expression) list |
| Pexp_match of expression * case list |
| Pexp_try of expression * case list |
| Pexp_tuple of expression list |
| Pexp_construct of longident_loc * expression option |
| Pexp_variant of label * expression option |
| Pexp_record of (longident_loc * expression) list * expression option |
| Pexp_field of expression * longident_loc |
| Pexp_setfield of expression * longident_loc * expression |
| Pexp_array of expression list |
| Pexp_ifthenelse of expression * expression * expression option |
| Pexp_sequence of expression * expression |
| Pexp_while of expression * expression |
| Pexp_for of pattern * expression * expression * direction_flag * expression |
| Pexp_constraint of expression * core_type |
| Pexp_coerce of expression * core_type option * core_type |
| Pexp_send of expression * string |
| Pexp_new of longident_loc |
| Pexp_setinstvar of string loc * expression |
| Pexp_override of (string loc * expression) list |
| Pexp_letmodule of string loc * module_expr * expression |
| Pexp_letexception of extension_constructor * expression |
| Pexp_assert of expression |
| Pexp_lazy of expression |
| Pexp_poly of expression * core_type option |
| Pexp_object of class_structure |
| Pexp_newtype of string * expression |
| Pexp_pack of module_expr |
| Pexp_open of override_flag * longident_loc * expression |
| Pexp_extension of extension |
| Pexp_unreachable |
type case = Ppx_ast__.Import.Parsetree.case = {pc_lhs : pattern; |
pc_guard : expression option; |
pc_rhs : expression; |
}type value_description = Ppx_ast__.Import.Parsetree.value_description = {pval_name : string loc; |
pval_type : core_type; |
pval_prim : string list; |
pval_attributes : attributes; |
pval_loc : location; |
}type type_declaration = Ppx_ast__.Import.Parsetree.type_declaration = {ptype_name : string loc; |
ptype_params : (core_type * variance) list; |
ptype_cstrs : (core_type * core_type * location) list; |
ptype_kind : type_kind; |
ptype_private : private_flag; |
ptype_manifest : core_type option; |
ptype_attributes : attributes; |
ptype_loc : location; |
}type type_kind = Ppx_ast__.Import.Parsetree.type_kind = | Ptype_abstract |
| Ptype_variant of constructor_declaration list |
| Ptype_record of label_declaration list |
| Ptype_open |
type label_declaration = Ppx_ast__.Import.Parsetree.label_declaration = {pld_name : string loc; |
pld_mutable : mutable_flag; |
pld_type : core_type; |
pld_loc : location; |
pld_attributes : attributes; |
}type constructor_declaration = Ppx_ast__.Import.Parsetree.constructor_declaration = {pcd_name : string loc; |
pcd_args : constructor_arguments; |
pcd_res : core_type option; |
pcd_loc : location; |
pcd_attributes : attributes; |
}type constructor_arguments = Ppx_ast__.Import.Parsetree.constructor_arguments = | Pcstr_tuple of core_type list |
| Pcstr_record of label_declaration list |
type type_extension = Ppx_ast__.Import.Parsetree.type_extension = {ptyext_path : longident_loc; |
ptyext_params : (core_type * variance) list; |
ptyext_constructors : extension_constructor list; |
ptyext_private : private_flag; |
ptyext_attributes : attributes; |
}type extension_constructor = Ppx_ast__.Import.Parsetree.extension_constructor = {pext_name : string loc; |
pext_kind : extension_constructor_kind; |
pext_loc : location; |
pext_attributes : attributes; |
}type extension_constructor_kind = Ppx_ast__.Import.Parsetree.extension_constructor_kind = | Pext_decl of constructor_arguments * core_type option |
| Pext_rebind of longident_loc |
type class_type = Ppx_ast__.Import.Parsetree.class_type = {pcty_desc : class_type_desc; |
pcty_loc : location; |
pcty_attributes : attributes; |
}type class_type_desc = Ppx_ast__.Import.Parsetree.class_type_desc = | Pcty_constr of longident_loc * core_type list |
| Pcty_signature of class_signature |
| Pcty_arrow of arg_label * core_type * class_type |
| Pcty_extension of extension |
type class_signature = Ppx_ast__.Import.Parsetree.class_signature = {pcsig_self : core_type; |
pcsig_fields : class_type_field list; |
}type class_type_field = Ppx_ast__.Import.Parsetree.class_type_field = {pctf_desc : class_type_field_desc; |
pctf_loc : location; |
pctf_attributes : attributes; |
}type class_type_field_desc = Ppx_ast__.Import.Parsetree.class_type_field_desc = | Pctf_inherit of class_type |
| Pctf_val of string * mutable_flag * virtual_flag * core_type |
| Pctf_method of string * private_flag * virtual_flag * core_type |
| Pctf_constraint of core_type * core_type |
| Pctf_attribute of attribute |
| Pctf_extension of extension |
type 'a class_infos = 'a Ppx_ast__.Import.Parsetree.class_infos = {pci_virt : virtual_flag; |
pci_params : (core_type * variance) list; |
pci_name : string loc; |
pci_expr : 'a; |
pci_loc : location; |
pci_attributes : attributes; |
}type class_expr = Ppx_ast__.Import.Parsetree.class_expr = {pcl_desc : class_expr_desc; |
pcl_loc : location; |
pcl_attributes : attributes; |
}type class_expr_desc = Ppx_ast__.Import.Parsetree.class_expr_desc = | Pcl_constr of longident_loc * core_type list |
| Pcl_structure of class_structure |
| Pcl_fun of arg_label * expression option * pattern * class_expr |
| Pcl_apply of class_expr * (arg_label * expression) list |
| Pcl_let of rec_flag * value_binding list * class_expr |
| Pcl_constraint of class_expr * class_type |
| Pcl_extension of extension |
type class_structure = Ppx_ast__.Import.Parsetree.class_structure = {pcstr_self : pattern; |
pcstr_fields : class_field list; |
}type class_field = Ppx_ast__.Import.Parsetree.class_field = {pcf_desc : class_field_desc; |
pcf_loc : location; |
pcf_attributes : attributes; |
}type class_field_desc = Ppx_ast__.Import.Parsetree.class_field_desc = | Pcf_inherit of override_flag * class_expr * string option |
| Pcf_val of string loc * mutable_flag * class_field_kind |
| Pcf_method of string loc * private_flag * class_field_kind |
| Pcf_constraint of core_type * core_type |
| Pcf_initializer of expression |
| Pcf_attribute of attribute |
| Pcf_extension of extension |
type class_field_kind = Ppx_ast__.Import.Parsetree.class_field_kind = | Cfk_virtual of core_type |
| Cfk_concrete of override_flag * expression |
type module_type = Ppx_ast__.Import.Parsetree.module_type = {pmty_desc : module_type_desc; |
pmty_loc : location; |
pmty_attributes : attributes; |
}type module_type_desc = Ppx_ast__.Import.Parsetree.module_type_desc = | Pmty_ident of longident_loc |
| Pmty_signature of signature |
| Pmty_functor of string loc * module_type option * module_type |
| Pmty_with of module_type * with_constraint list |
| Pmty_typeof of module_expr |
| Pmty_extension of extension |
| Pmty_alias of longident_loc |
type signature_item = Ppx_ast__.Import.Parsetree.signature_item = {psig_desc : signature_item_desc; |
psig_loc : location; |
}type signature_item_desc = Ppx_ast__.Import.Parsetree.signature_item_desc = | Psig_value of value_description |
| Psig_type of rec_flag * type_declaration list |
| Psig_typext of type_extension |
| Psig_exception of extension_constructor |
| Psig_module of module_declaration |
| Psig_recmodule of module_declaration list |
| Psig_modtype of module_type_declaration |
| Psig_open of open_description |
| Psig_include of include_description |
| Psig_class of class_description list |
| Psig_class_type of class_type_declaration list |
| Psig_attribute of attribute |
| Psig_extension of extension * attributes |
type module_declaration = Ppx_ast__.Import.Parsetree.module_declaration = {pmd_name : string loc; |
pmd_type : module_type; |
pmd_attributes : attributes; |
pmd_loc : location; |
}type module_type_declaration = Ppx_ast__.Import.Parsetree.module_type_declaration = {pmtd_name : string loc; |
pmtd_type : module_type option; |
pmtd_attributes : attributes; |
pmtd_loc : location; |
}type open_description = Ppx_ast__.Import.Parsetree.open_description = {popen_lid : longident_loc; |
popen_override : override_flag; |
popen_loc : location; |
popen_attributes : attributes; |
}type 'a include_infos = 'a Ppx_ast__.Import.Parsetree.include_infos = {pincl_mod : 'a; |
pincl_loc : location; |
pincl_attributes : attributes; |
}type with_constraint = Ppx_ast__.Import.Parsetree.with_constraint = | Pwith_type of longident_loc * type_declaration |
| Pwith_module of longident_loc * longident_loc |
| Pwith_typesubst of type_declaration |
| Pwith_modsubst of string loc * longident_loc |
type module_expr = Ppx_ast__.Import.Parsetree.module_expr = {pmod_desc : module_expr_desc; |
pmod_loc : location; |
pmod_attributes : attributes; |
}type module_expr_desc = Ppx_ast__.Import.Parsetree.module_expr_desc = | Pmod_ident of longident_loc |
| Pmod_structure of structure |
| Pmod_functor of string loc * module_type option * module_expr |
| Pmod_apply of module_expr * module_expr |
| Pmod_constraint of module_expr * module_type |
| Pmod_unpack of expression |
| Pmod_extension of extension |
type structure_item = Ppx_ast__.Import.Parsetree.structure_item = {pstr_desc : structure_item_desc; |
pstr_loc : location; |
}type structure_item_desc = Ppx_ast__.Import.Parsetree.structure_item_desc = | Pstr_eval of expression * attributes |
| Pstr_value of rec_flag * value_binding list |
| Pstr_primitive of value_description |
| Pstr_type of rec_flag * type_declaration list |
| Pstr_typext of type_extension |
| Pstr_exception of extension_constructor |
| Pstr_module of module_binding |
| Pstr_recmodule of module_binding list |
| Pstr_modtype of module_type_declaration |
| Pstr_open of open_description |
| Pstr_class of class_declaration list |
| Pstr_class_type of class_type_declaration list |
| Pstr_include of include_declaration |
| Pstr_attribute of attribute |
| Pstr_extension of extension * attributes |
type value_binding = Ppx_ast__.Import.Parsetree.value_binding = {pvb_pat : pattern; |
pvb_expr : expression; |
pvb_attributes : attributes; |
pvb_loc : location; |
}type module_binding = Ppx_ast__.Import.Parsetree.module_binding = {pmb_name : string loc; |
pmb_expr : module_expr; |
pmb_attributes : attributes; |
pmb_loc : location; |
}type toplevel_phrase = Ppx_ast__.Import.Parsetree.toplevel_phrase = | Ptop_def of structure |
| Ptop_dir of string * directive_argument |
type directive_argument = Ppx_ast__.Import.Parsetree.directive_argument = | Pdir_none |
| Pdir_string of string |
| Pdir_int of string * char option |
| Pdir_ident of longident |
| Pdir_bool of bool |
class virtual map : object ... endclass virtual iter : object ... endclass virtual +'b fold : object ... endclass virtual +'b fold_map : object ... endclass virtual +'b map_with_context : object ... endclass virtual +'b lift : object ... endinclude Stdmodule Caller_id : sig ... endmodule Extension : sig ... endmodule Merlin_helpers : sig ... endSome helpers to annotate the AST so merlin can decide which branches to look at and which branches to ignore.
module Reserved_namespaces = Ppx_core__.Name.Reserved_namespacesmodule Spellcheck : sig ... endinclude Ppx_core__.Commonval lident : Ppx_core__.Import.string ‑> Longident.tval core_type_of_type_declaration : Ppx_core__.Import.type_declaration ‑> Ppx_core__.Import.core_typeval name_type_params_in_td : Ppx_core__.Import.type_declaration ‑> Ppx_core__.Import.type_declarationval combinator_type_of_type_declaration : Ppx_core__.Import.type_declaration ‑> f:(loc:Location.t ‑> Ppx_core__.Import.core_type ‑> Ppx_core__.Import.core_type) ‑> Ppx_core__.Import.core_typeval gen_symbol : ?prefix:Ppx_core__.Import.string ‑> Ppx_core__.Import.unit ‑> Ppx_core__.Import.stringgen_symbol ?prefix () generates a fresh variable name with prefix.
val string_of_core_type : Ppx_core__.Import.core_type ‑> Ppx_core__.Import.stringval assert_no_attributes : Ppx_core__.Import.attributes ‑> Ppx_core__.Import.unitval assert_no_attributes_in : Ast_traverse.iterval get_type_param_name : (Ppx_core__.Import.core_type * Ppx_core__.Import.variance) ‑> Ppx_core__.Import.string Loc.tget_tparam_id tp
tp if it is a type
parameter.class type_is_recursive : Ppx_core__.Import.rec_flag ‑> Ppx_core__.Import.type_declaration Ppx_core__.Import.list ‑> object ... end(new type_is_recursive rec_flag tds)#go () returns whether rec_flag, tds is really
a recursive type. We disregard recursive occurrences appearing in arrow types. You can
override the search for certain type expressions by inheriting from this class.
val really_recursive : Ppx_core__.Import.rec_flag ‑> Ppx_core__.Import.type_declaration Ppx_core__.Import.list ‑> Ppx_core__.Import.rec_flagreally_recursive rec_flag tds = (new type_is_recursive rec_flag tds)#go ()
val loc_of_payload : Ppx_core__.Import.attribute ‑> Location.tval loc_of_attribute : Ppx_core__.Import.attribute ‑> Location.tval curry_applications : Ppx_core__.Import.expression ‑> Ppx_core__.Import.expressionconvert multi-arg function applications into a cascade of 1-arg applications
val attribute_of_warning : Location.t ‑> Ppx_core__.Import.string ‑> Ppx_core__.Import.attributeEncode a warning message into an 'ocaml.ppwarning' attribute which can be inserted in a generated Parsetree. The compiler will be responsible for reporting the warning.
We don't include these in Std as these are likely to break external code
The API of these modules won't change when we upgrade the AST defined by ppx_ast.
module Ast_builder_403 = Ast_buildermodule Ast_pattern_403 = Ast_pattern