package ppxlib
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=d269f882a31ff75095a80793082f7481884ca75ef867c8c409f26ad36f9a0a54
sha512=b903b0386739e17107f89fb9d7c861e95232c0deebbceeacad2d54f1ef771eb942a63e6057d2e3828f4c299c896c6488b6fd351bc150fd4e49d5a48bef84d8a8
doc/ppxlib/Ppxlib/index.html
Module Ppxlib
Standard library for ppx rewriters
Make sure code using Ppxlib doesn't refer to compiler-libs without being explicit about it
include module type of struct include Ocaml_shadow 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.Syntaxerr
module Do_not_use_directly = Ocaml_shadow.Do_not_use_directlymodule Afl_instrument = Ocaml_shadow.Afl_instrumentmodule Alias_analysis = Ocaml_shadow.Alias_analysismodule Allocated_const = Ocaml_shadow.Allocated_constmodule Annot = Ocaml_shadow.Annotmodule Arch = Ocaml_shadow.Archmodule Arg_helper = Ocaml_shadow.Arg_helpermodule Asmgen = Ocaml_shadow.Asmgenmodule Asmlibrarian = Ocaml_shadow.Asmlibrarianmodule Asmlink = Ocaml_shadow.Asmlinkmodule Asmpackager = Ocaml_shadow.Asmpackagermodule Ast_invariants = Ocaml_shadow.Ast_invariantsmodule Ast_iterator = Ocaml_shadow.Ast_iteratormodule Ast_mapper = Ocaml_shadow.Ast_mappermodule Attr_helper = Ocaml_shadow.Attr_helpermodule Augment_specialised_args = Ocaml_shadow.Augment_specialised_argsmodule Available_regs = Ocaml_shadow.Available_regsmodule Backend_intf = Ocaml_shadow.Backend_intfmodule Backend_var = Ocaml_shadow.Backend_varmodule Branch_relaxation = Ocaml_shadow.Branch_relaxationmodule Branch_relaxation_intf = Ocaml_shadow.Branch_relaxation_intfmodule Btype = Ocaml_shadow.Btypemodule Build_export_info = Ocaml_shadow.Build_export_infomodule Build_path_prefix_map = Ocaml_shadow.Build_path_prefix_mapmodule Builtin_attributes = Ocaml_shadow.Builtin_attributesmodule Bytegen = Ocaml_shadow.Bytegenmodule Bytelibrarian = Ocaml_shadow.Bytelibrarianmodule Bytelink = Ocaml_shadow.Bytelinkmodule Bytepackager = Ocaml_shadow.Bytepackagermodule Bytesections = Ocaml_shadow.Bytesectionsmodule CSE = Ocaml_shadow.CSEmodule CSEgen = Ocaml_shadow.CSEgenmodule CamlinternalMenhirLib = Ocaml_shadow.CamlinternalMenhirLibmodule Ccomp = Ocaml_shadow.Ccompmodule Clambda = Ocaml_shadow.Clambdamodule Clambda_primitives = Ocaml_shadow.Clambda_primitivesmodule Clflags = Ocaml_shadow.Clflagsmodule Closure = Ocaml_shadow.Closuremodule Closure_conversion = Ocaml_shadow.Closure_conversionmodule Closure_conversion_aux = Ocaml_shadow.Closure_conversion_auxmodule Closure_element = Ocaml_shadow.Closure_elementmodule Closure_id = Ocaml_shadow.Closure_idmodule Closure_offsets = Ocaml_shadow.Closure_offsetsmodule Closure_origin = Ocaml_shadow.Closure_originmodule Cmi_format = Ocaml_shadow.Cmi_formatmodule Cmm = Ocaml_shadow.Cmmmodule Cmmgen = Ocaml_shadow.Cmmgenmodule Cmmgen_state = Ocaml_shadow.Cmmgen_statemodule Cmo_format = Ocaml_shadow.Cmo_formatmodule Cmt_format = Ocaml_shadow.Cmt_formatmodule Cmx_format = Ocaml_shadow.Cmx_formatmodule Cmxs_format = Ocaml_shadow.Cmxs_formatmodule Coloring = Ocaml_shadow.Coloringmodule Comballoc = Ocaml_shadow.Comballocmodule Compenv = Ocaml_shadow.Compenvmodule Compilation_unit = Ocaml_shadow.Compilation_unitmodule Compile = Ocaml_shadow.Compilemodule Compile_common = Ocaml_shadow.Compile_commonmodule Compilenv = Ocaml_shadow.Compilenvmodule Compmisc = Ocaml_shadow.Compmiscmodule Compute_ranges = Ocaml_shadow.Compute_rangesmodule Compute_ranges_intf = Ocaml_shadow.Compute_ranges_intfmodule Config = Ocaml_shadow.Configmodule Consistbl = Ocaml_shadow.Consistblmodule Convert_primitives = Ocaml_shadow.Convert_primitivesmodule Ctype = Ocaml_shadow.Ctypemodule Datarepr = Ocaml_shadow.Datareprmodule Deadcode = Ocaml_shadow.Deadcodemodule Debuginfo = Ocaml_shadow.Debuginfomodule Depend = Ocaml_shadow.Dependmodule Dll = Ocaml_shadow.Dllmodule Effect_analysis = Ocaml_shadow.Effect_analysismodule Emit = Ocaml_shadow.Emitmodule Emitaux = Ocaml_shadow.Emitauxmodule Emitcode = Ocaml_shadow.Emitcodemodule Env = Ocaml_shadow.Envmodule Envaux = Ocaml_shadow.Envauxmodule Errors = Ocaml_shadow.Errorsmodule Export_id = Ocaml_shadow.Export_idmodule Export_info = Ocaml_shadow.Export_infomodule Export_info_for_pack = Ocaml_shadow.Export_info_for_packmodule Expunge = Ocaml_shadow.Expungemodule Extract_projections = Ocaml_shadow.Extract_projectionsmodule Find_recursive_functions = Ocaml_shadow.Find_recursive_functionsmodule Flambda = Ocaml_shadow.Flambdamodule Flambda_invariants = Ocaml_shadow.Flambda_invariantsmodule Flambda_iterators = Ocaml_shadow.Flambda_iteratorsmodule Flambda_middle_end = Ocaml_shadow.Flambda_middle_endmodule Flambda_to_clambda = Ocaml_shadow.Flambda_to_clambdamodule Flambda_utils = Ocaml_shadow.Flambda_utilsmodule Freshening = Ocaml_shadow.Fresheningmodule Genprintval = Ocaml_shadow.Genprintvalmodule Id_types = Ocaml_shadow.Id_typesmodule Ident = Ocaml_shadow.Identmodule Import_approx = Ocaml_shadow.Import_approxmodule Includeclass = Ocaml_shadow.Includeclassmodule Includecore = Ocaml_shadow.Includecoremodule Includemod = Ocaml_shadow.Includemodmodule Inconstant_idents = Ocaml_shadow.Inconstant_identsmodule Initialize_symbol_to_let_symbol =
Ocaml_shadow.Initialize_symbol_to_let_symbolmodule Inline_and_simplify = Ocaml_shadow.Inline_and_simplifymodule Inline_and_simplify_aux = Ocaml_shadow.Inline_and_simplify_auxmodule Inlining_cost = Ocaml_shadow.Inlining_costmodule Inlining_decision = Ocaml_shadow.Inlining_decisionmodule Inlining_decision_intf = Ocaml_shadow.Inlining_decision_intfmodule Inlining_stats = Ocaml_shadow.Inlining_statsmodule Inlining_stats_types = Ocaml_shadow.Inlining_stats_typesmodule Inlining_transforms = Ocaml_shadow.Inlining_transformsmodule Instruct = Ocaml_shadow.Instructmodule Int_replace_polymorphic_compare =
Ocaml_shadow.Int_replace_polymorphic_comparemodule Interf = Ocaml_shadow.Interfmodule Internal_variable_names = Ocaml_shadow.Internal_variable_namesmodule Interval = Ocaml_shadow.Intervalmodule Invariant_params = Ocaml_shadow.Invariant_paramsmodule Lambda = Ocaml_shadow.Lambdamodule Lift_code = Ocaml_shadow.Lift_codemodule Lift_constants = Ocaml_shadow.Lift_constantsmodule Lift_let_to_initialize_symbol =
Ocaml_shadow.Lift_let_to_initialize_symbolmodule Linearize = Ocaml_shadow.Linearizemodule Linkage_name = Ocaml_shadow.Linkage_namemodule Linscan = Ocaml_shadow.Linscanmodule Liveness = Ocaml_shadow.Livenessmodule Load_path = Ocaml_shadow.Load_pathmodule Mach = Ocaml_shadow.Machmodule Main = Ocaml_shadow.Mainmodule Main_args = Ocaml_shadow.Main_argsmodule Makedepend = Ocaml_shadow.Makedependmodule Matching = Ocaml_shadow.Matchingmodule Meta = Ocaml_shadow.Metamodule Misc = Ocaml_shadow.Miscmodule Mtype = Ocaml_shadow.Mtypemodule Mutable_variable = Ocaml_shadow.Mutable_variablemodule Numbers = Ocaml_shadow.Numbersmodule Opcodes = Ocaml_shadow.Opcodesmodule Oprint = Ocaml_shadow.Oprintmodule Optcompile = Ocaml_shadow.Optcompilemodule Opterrors = Ocaml_shadow.Opterrorsmodule Optmain = Ocaml_shadow.Optmainmodule Outcometree = Ocaml_shadow.Outcometreemodule Parameter = Ocaml_shadow.Parametermodule Parmatch = Ocaml_shadow.Parmatchmodule Pass_wrapper = Ocaml_shadow.Pass_wrappermodule Path = Ocaml_shadow.Pathmodule Persistent_env = Ocaml_shadow.Persistent_envmodule Pparse = Ocaml_shadow.Pparsemodule Predef = Ocaml_shadow.Predefmodule Primitive = Ocaml_shadow.Primitivemodule Printast = Ocaml_shadow.Printastmodule Printclambda = Ocaml_shadow.Printclambdamodule Printclambda_primitives = Ocaml_shadow.Printclambda_primitivesmodule Printcmm = Ocaml_shadow.Printcmmmodule Printinstr = Ocaml_shadow.Printinstrmodule Printlambda = Ocaml_shadow.Printlambdamodule Printlinear = Ocaml_shadow.Printlinearmodule Printmach = Ocaml_shadow.Printmachmodule Printpat = Ocaml_shadow.Printpatmodule Printtyp = Ocaml_shadow.Printtypmodule Printtyped = Ocaml_shadow.Printtypedmodule Proc = Ocaml_shadow.Procmodule Profile = Ocaml_shadow.Profilemodule Projection = Ocaml_shadow.Projectionmodule Rec_check = Ocaml_shadow.Rec_checkmodule Ref_to_variables = Ocaml_shadow.Ref_to_variablesmodule Reg = Ocaml_shadow.Regmodule Reg_availability_set = Ocaml_shadow.Reg_availability_setmodule Reg_with_debug_info = Ocaml_shadow.Reg_with_debug_infomodule Reload = Ocaml_shadow.Reloadmodule Reloadgen = Ocaml_shadow.Reloadgenmodule Remove_free_vars_equal_to_args =
Ocaml_shadow.Remove_free_vars_equal_to_argsmodule Remove_unused_arguments = Ocaml_shadow.Remove_unused_argumentsmodule Remove_unused_closure_vars = Ocaml_shadow.Remove_unused_closure_varsmodule Remove_unused_program_constructs =
Ocaml_shadow.Remove_unused_program_constructsmodule Runtimedef = Ocaml_shadow.Runtimedefmodule Schedgen = Ocaml_shadow.Schedgenmodule Scheduling = Ocaml_shadow.Schedulingmodule Selectgen = Ocaml_shadow.Selectgenmodule Selection = Ocaml_shadow.Selectionmodule Semantics_of_primitives = Ocaml_shadow.Semantics_of_primitivesmodule Set_of_closures_id = Ocaml_shadow.Set_of_closures_idmodule Set_of_closures_origin = Ocaml_shadow.Set_of_closures_originmodule Simple_value_approx = Ocaml_shadow.Simple_value_approxmodule Simplif = Ocaml_shadow.Simplifmodule Simplify_boxed_integer_ops = Ocaml_shadow.Simplify_boxed_integer_opsmodule Simplify_boxed_integer_ops_intf =
Ocaml_shadow.Simplify_boxed_integer_ops_intfmodule Simplify_common = Ocaml_shadow.Simplify_commonmodule Simplify_primitives = Ocaml_shadow.Simplify_primitivesmodule Spacetime_profiling = Ocaml_shadow.Spacetime_profilingmodule Spill = Ocaml_shadow.Spillmodule Split = Ocaml_shadow.Splitmodule Static_exception = Ocaml_shadow.Static_exceptionmodule Strmatch = Ocaml_shadow.Strmatchmodule Strongly_connected_components =
Ocaml_shadow.Strongly_connected_componentsmodule Stypes = Ocaml_shadow.Stypesmodule Subst = Ocaml_shadow.Substmodule Switch = Ocaml_shadow.Switchmodule Symbol = Ocaml_shadow.Symbolmodule Symtable = Ocaml_shadow.Symtablemodule Tag = Ocaml_shadow.Tagmodule Targetint = Ocaml_shadow.Targetintmodule Tast_iterator = Ocaml_shadow.Tast_iteratormodule Tast_mapper = Ocaml_shadow.Tast_mappermodule Terminfo = Ocaml_shadow.Terminfomodule Topdirs = Ocaml_shadow.Topdirsmodule Toploop = Ocaml_shadow.Toploopmodule Topmain = Ocaml_shadow.Topmainmodule Topstart = Ocaml_shadow.Topstartmodule Trace = Ocaml_shadow.Tracemodule Translattribute = Ocaml_shadow.Translattributemodule Translclass = Ocaml_shadow.Translclassmodule Translcore = Ocaml_shadow.Translcoremodule Translmod = Ocaml_shadow.Translmodmodule Translobj = Ocaml_shadow.Translobjmodule Translprim = Ocaml_shadow.Translprimmodule Traverse_for_exported_symbols =
Ocaml_shadow.Traverse_for_exported_symbolsmodule Typeclass = Ocaml_shadow.Typeclassmodule Typecore = Ocaml_shadow.Typecoremodule Typedecl = Ocaml_shadow.Typedeclmodule Typedecl_immediacy = Ocaml_shadow.Typedecl_immediacymodule Typedecl_properties = Ocaml_shadow.Typedecl_propertiesmodule Typedecl_unboxed = Ocaml_shadow.Typedecl_unboxedmodule Typedecl_variance = Ocaml_shadow.Typedecl_variancemodule Typedtree = Ocaml_shadow.Typedtreemodule Typemod = Ocaml_shadow.Typemodmodule Typeopt = Ocaml_shadow.Typeoptmodule Types = Ocaml_shadow.Typesmodule Typetexp = Ocaml_shadow.Typetexpmodule Un_anf = Ocaml_shadow.Un_anfmodule Unbox_closures = Ocaml_shadow.Unbox_closuresmodule Unbox_free_vars_of_closures = Ocaml_shadow.Unbox_free_vars_of_closuresmodule Unbox_specialised_args = Ocaml_shadow.Unbox_specialised_argsmodule Untypeast = Ocaml_shadow.Untypeastmodule Var_within_closure = Ocaml_shadow.Var_within_closuremodule Variable = Ocaml_shadow.Variablemodule Warnings = Ocaml_shadow.Warningsmodule X86_ast = Ocaml_shadow.X86_astmodule X86_dsl = Ocaml_shadow.X86_dslmodule X86_gas = Ocaml_shadow.X86_gasmodule X86_masm = Ocaml_shadow.X86_masmmodule X86_proc = Ocaml_shadow.X86_procIncludes the overrides from Ppxlib_ast, as well as all the Ast definitions since we need them in every single ppx
include module type of struct include Ppxlib_ast end
module Ast = Ppxlib_ast.Astmodule Ast_helper = Ppxlib_ast.Ast_helpermodule Ast_magic = Ppxlib_ast.Ast_magicmodule Asttypes = Ppxlib_ast.Asttypesmodule Docstrings = Ppxlib_ast.Docstringsmodule Extra_warnings = Ppxlib_ast.Extra_warningsmodule Lexer = Ppxlib_ast.Lexermodule Parse = Ppxlib_ast.Parsemodule Parser = Ppxlib_ast.Parsermodule Parsetree = Ppxlib_ast.Parsetreemodule Pprintast = Ppxlib_ast.Pprintastmodule Select_ast = Ppxlib_ast.Select_astmodule Selected_ast = Ppxlib_ast.Selected_astmodule Syntaxerr = Ppxlib_ast.Syntaxerrmodule Import_for_core = Ppxlib_ast.Import_for_coreinclude module type of struct include Ast end
and location_stack = location listAuxiliary AST types used by parsetree and typedtree.
and arg_label = Migrate_parsetree.Ast_408.Asttypes.arg_label = Abstract syntax tree produced by parsing
and constant = Migrate_parsetree.Ast_408.Parsetree.constant = Extension points
and attributes = attribute listand payload = Migrate_parsetree.Ast_408.Parsetree.payload = | PStr of structure| PSig of signature| PTyp of core_type| PPat of pattern * expression option
Core language
and core_type = Migrate_parsetree.Ast_408.Parsetree.core_type = {ptyp_desc : core_type_desc;ptyp_loc : location;ptyp_loc_stack : location_stack;ptyp_attributes : attributes;
}and core_type_desc = Migrate_parsetree.Ast_408.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 object_field 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 loc list * core_type| Ptyp_package of package_type| Ptyp_extension of extension
and package_type = longident_loc * (longident_loc * core_type) listand row_field = Migrate_parsetree.Ast_408.Parsetree.row_field = {prf_desc : row_field_desc;prf_loc : location;prf_attributes : attributes;
}and row_field_desc = Migrate_parsetree.Ast_408.Parsetree.row_field_desc = and object_field = Migrate_parsetree.Ast_408.Parsetree.object_field = {pof_desc : object_field_desc;pof_loc : location;pof_attributes : attributes;
}and object_field_desc = Migrate_parsetree.Ast_408.Parsetree.object_field_desc = and pattern = Migrate_parsetree.Ast_408.Parsetree.pattern = {ppat_desc : pattern_desc;ppat_loc : location;ppat_loc_stack : location_stack;ppat_attributes : attributes;
}and pattern_desc = Migrate_parsetree.Ast_408.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
and expression = Migrate_parsetree.Ast_408.Parsetree.expression = {pexp_desc : expression_desc;pexp_loc : location;pexp_loc_stack : location_stack;pexp_attributes : attributes;
}and expression_desc = Migrate_parsetree.Ast_408.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 * label loc| Pexp_new of longident_loc| Pexp_setinstvar of label loc * expression| Pexp_override of (label 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 loc * expression| Pexp_pack of module_expr| Pexp_open of open_declaration * expression| Pexp_letop of letop| Pexp_extension of extension| Pexp_unreachable
and case = Migrate_parsetree.Ast_408.Parsetree.case = {pc_lhs : pattern;pc_guard : expression option;pc_rhs : expression;
}and letop = Migrate_parsetree.Ast_408.Parsetree.letop = {let_ : binding_op;ands : binding_op list;body : expression;
}and binding_op = Migrate_parsetree.Ast_408.Parsetree.binding_op = {pbop_op : string loc;pbop_pat : pattern;pbop_exp : expression;pbop_loc : location;
}and value_description = Migrate_parsetree.Ast_408.Parsetree.value_description = {pval_name : string loc;pval_type : core_type;pval_prim : string list;pval_attributes : attributes;pval_loc : location;
}and type_declaration = Migrate_parsetree.Ast_408.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;
}and type_kind = Migrate_parsetree.Ast_408.Parsetree.type_kind = | Ptype_abstract| Ptype_variant of constructor_declaration list| Ptype_record of label_declaration list| Ptype_open
and label_declaration = Migrate_parsetree.Ast_408.Parsetree.label_declaration = {pld_name : string loc;pld_mutable : mutable_flag;pld_type : core_type;pld_loc : location;pld_attributes : attributes;
}and constructor_declaration =
Migrate_parsetree.Ast_408.Parsetree.constructor_declaration =
{pcd_name : string loc;pcd_args : constructor_arguments;pcd_res : core_type option;pcd_loc : location;pcd_attributes : attributes;
}and constructor_arguments =
Migrate_parsetree.Ast_408.Parsetree.constructor_arguments =
| Pcstr_tuple of core_type list| Pcstr_record of label_declaration list
and type_extension = Migrate_parsetree.Ast_408.Parsetree.type_extension = {ptyext_path : longident_loc;ptyext_params : (core_type * variance) list;ptyext_constructors : extension_constructor list;ptyext_private : private_flag;ptyext_loc : location;ptyext_attributes : attributes;
}and extension_constructor =
Migrate_parsetree.Ast_408.Parsetree.extension_constructor =
{pext_name : string loc;pext_kind : extension_constructor_kind;pext_loc : location;pext_attributes : attributes;
}and type_exception = Migrate_parsetree.Ast_408.Parsetree.type_exception = {ptyexn_constructor : extension_constructor;ptyexn_loc : location;ptyexn_attributes : attributes;
}and extension_constructor_kind =
Migrate_parsetree.Ast_408.Parsetree.extension_constructor_kind =
| Pext_decl of constructor_arguments * core_type option| Pext_rebind of longident_loc
Class language
and class_type = Migrate_parsetree.Ast_408.Parsetree.class_type = {pcty_desc : class_type_desc;pcty_loc : location;pcty_attributes : attributes;
}and class_type_desc = Migrate_parsetree.Ast_408.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| Pcty_open of open_description * class_type
and class_signature = Migrate_parsetree.Ast_408.Parsetree.class_signature = {pcsig_self : core_type;pcsig_fields : class_type_field list;
}and class_type_field = Migrate_parsetree.Ast_408.Parsetree.class_type_field = {pctf_desc : class_type_field_desc;pctf_loc : location;pctf_attributes : attributes;
}and class_type_field_desc =
Migrate_parsetree.Ast_408.Parsetree.class_type_field_desc =
| Pctf_inherit of class_type| Pctf_val of label loc * mutable_flag * virtual_flag * core_type| Pctf_method of label loc * private_flag * virtual_flag * core_type| Pctf_constraint of core_type * core_type| Pctf_attribute of attribute| Pctf_extension of extension
and 'a class_infos = 'a Migrate_parsetree.Ast_408.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;
}and class_description = class_type class_infosand class_type_declaration = class_type class_infosand class_expr = Migrate_parsetree.Ast_408.Parsetree.class_expr = {pcl_desc : class_expr_desc;pcl_loc : location;pcl_attributes : attributes;
}and class_expr_desc = Migrate_parsetree.Ast_408.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| Pcl_open of open_description * class_expr
and class_structure = Migrate_parsetree.Ast_408.Parsetree.class_structure = {pcstr_self : pattern;pcstr_fields : class_field list;
}and class_field = Migrate_parsetree.Ast_408.Parsetree.class_field = {pcf_desc : class_field_desc;pcf_loc : location;pcf_attributes : attributes;
}and class_field_desc = Migrate_parsetree.Ast_408.Parsetree.class_field_desc = | Pcf_inherit of override_flag * class_expr * string loc option| Pcf_val of label loc * mutable_flag * class_field_kind| Pcf_method of label 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
and class_field_kind = Migrate_parsetree.Ast_408.Parsetree.class_field_kind = | Cfk_virtual of core_type| Cfk_concrete of override_flag * expression
and class_declaration = class_expr class_infosModule language
and module_type = Migrate_parsetree.Ast_408.Parsetree.module_type = {pmty_desc : module_type_desc;pmty_loc : location;pmty_attributes : attributes;
}and module_type_desc = Migrate_parsetree.Ast_408.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
and signature = signature_item listand signature_item = Migrate_parsetree.Ast_408.Parsetree.signature_item = {psig_desc : signature_item_desc;psig_loc : location;
}and signature_item_desc =
Migrate_parsetree.Ast_408.Parsetree.signature_item_desc =
| Psig_value of value_description| Psig_type of rec_flag * type_declaration list| Psig_typesubst of type_declaration list| Psig_typext of type_extension| Psig_exception of type_exception| Psig_module of module_declaration| Psig_modsubst of module_substitution| 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
and module_declaration = Migrate_parsetree.Ast_408.Parsetree.module_declaration =
{pmd_name : string loc;pmd_type : module_type;pmd_attributes : attributes;pmd_loc : location;
}and module_substitution =
Migrate_parsetree.Ast_408.Parsetree.module_substitution =
{pms_name : string loc;pms_manifest : longident_loc;pms_attributes : attributes;pms_loc : location;
}and module_type_declaration =
Migrate_parsetree.Ast_408.Parsetree.module_type_declaration =
{pmtd_name : string loc;pmtd_type : module_type option;pmtd_attributes : attributes;pmtd_loc : location;
}and 'a open_infos = 'a Migrate_parsetree.Ast_408.Parsetree.open_infos = {popen_expr : 'a;popen_override : override_flag;popen_loc : location;popen_attributes : attributes;
}and open_description = longident_loc open_infosand open_declaration = module_expr open_infosand 'a include_infos = 'a Migrate_parsetree.Ast_408.Parsetree.include_infos = {pincl_mod : 'a;pincl_loc : location;pincl_attributes : attributes;
}and include_description = module_type include_infosand include_declaration = module_expr include_infosand with_constraint = Migrate_parsetree.Ast_408.Parsetree.with_constraint = | Pwith_type of longident_loc * type_declaration| Pwith_module of longident_loc * longident_loc| Pwith_typesubst of longident_loc * type_declaration| Pwith_modsubst of longident_loc * longident_loc
and module_expr = Migrate_parsetree.Ast_408.Parsetree.module_expr = {pmod_desc : module_expr_desc;pmod_loc : location;pmod_attributes : attributes;
}and module_expr_desc = Migrate_parsetree.Ast_408.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
and structure = structure_item listand structure_item = Migrate_parsetree.Ast_408.Parsetree.structure_item = {pstr_desc : structure_item_desc;pstr_loc : location;
}and structure_item_desc =
Migrate_parsetree.Ast_408.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 type_exception| Pstr_module of module_binding| Pstr_recmodule of module_binding list| Pstr_modtype of module_type_declaration| Pstr_open of open_declaration| 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
and value_binding = Migrate_parsetree.Ast_408.Parsetree.value_binding = {pvb_pat : pattern;pvb_expr : expression;pvb_attributes : attributes;pvb_loc : location;
}and module_binding = Migrate_parsetree.Ast_408.Parsetree.module_binding = {pmb_name : string loc;pmb_expr : module_expr;pmb_attributes : attributes;pmb_loc : location;
}Toplevel
and toplevel_phrase = Migrate_parsetree.Ast_408.Parsetree.toplevel_phrase = | Ptop_def of structure| Ptop_dir of toplevel_directive
and toplevel_directive = Migrate_parsetree.Ast_408.Parsetree.toplevel_directive =
{pdir_name : string loc;pdir_arg : directive_argument option;pdir_loc : location;
}and directive_argument = Migrate_parsetree.Ast_408.Parsetree.directive_argument =
{pdira_desc : directive_argument_desc;pdira_loc : location;
}and directive_argument_desc =
Migrate_parsetree.Ast_408.Parsetree.directive_argument_desc =
| 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 'acc fold : object ... endclass virtual 'acc fold_map : object ... endclass virtual 'ctx map_with_context : object ... endclass virtual 'res lift : object ... endmodule Ast_builder : sig ... endHelpers for build OCaml AST fragments
module Ast_pattern : sig ... endFirst class AST patterns
module Ast_traverse : sig ... endAST traversal classes
module Attribute : sig ... endAttribute hygiene
module Code_path : sig ... endmodule Caller_id : sig ... endmodule Context_free : sig ... endContext free rewriting
module Deriving : sig ... endDeriving code from type declarations
module Driver : sig ... endmodule Expansion_context : sig ... endmodule Extension : sig ... endmodule File_path : sig ... endReturn the path used as root in a file
module Loc : sig ... endLocated items
module Location : sig ... endOverrides the Location module of OCaml
module Longident : sig ... endOverrides the Longident module of OCaml
module 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 : sig ... endmodule Spellcheck : sig ... endval lident : Base.String.t -> Longident.tval core_type_of_type_declaration :
Migrate_parsetree.Ast_408.Parsetree.type_declaration ->
Migrate_parsetree.Ast_408.Parsetree.core_typeval name_type_params_in_td :
Migrate_parsetree.Ast_408.Parsetree.type_declaration ->
Migrate_parsetree.Ast_408.Parsetree.type_declarationval combinator_type_of_type_declaration :
Migrate_parsetree.Ast_408.Parsetree.type_declaration ->
f:
(loc:Location.t ->
Migrate_parsetree.Ast_408.Parsetree.core_type ->
Migrate_parsetree.Ast_408.Parsetree.core_type) ->
Migrate_parsetree.Ast_408.Parsetree.core_typeval gen_symbol : ?prefix:Base.String.t -> Base.Unit.t -> Base.String.tgen_symbol ?prefix () generates a fresh variable name with prefix.
val string_of_core_type :
Migrate_parsetree.Ast_408.Parsetree.core_type ->
Base.String.tval assert_no_attributes :
Migrate_parsetree.Ast_408.Parsetree.attribute list ->
Base.Unit.tval assert_no_attributes_in : Ast_traverse.iterval get_type_param_name :
(Migrate_parsetree.Ast_408.Parsetree.core_type
* Migrate_parsetree.Ast_408.Asttypes.variance) ->
Base.String.t Loc.tget_tparam_id tp
class type_is_recursive : Migrate_parsetree.Ast_408.Asttypes.rec_flag -> Migrate_parsetree.Ast_408.Parsetree.type_declaration
Base.List.t -> 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 :
Migrate_parsetree.Ast_408.Asttypes.rec_flag ->
Migrate_parsetree.Ast_408.Parsetree.type_declaration Base.List.t ->
Migrate_parsetree.Ast_408.Asttypes.rec_flagreally_recursive rec_flag tds = (new type_is_recursive rec_flag tds)#go ()
val loc_of_payload :
Migrate_parsetree.Ast_408.Parsetree.attribute ->
Location.tval loc_of_attribute :
Migrate_parsetree.Ast_408.Parsetree.attribute ->
Location.tval loc_of_extension :
(string Location.loc * Migrate_parsetree.Ast_408.Parsetree.payload) ->
Location.tval curry_applications :
Migrate_parsetree.Ast_408.Parsetree.expression ->
Migrate_parsetree.Ast_408.Parsetree.expressionconvert multi-arg function applications into a cascade of 1-arg applications
val attribute_of_warning :
Location.t ->
Base.String.t ->
Migrate_parsetree.Ast_408.Parsetree.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.
val is_polymorphic_variant :
Migrate_parsetree.Ast_408.Parsetree.type_declaration ->
sig_:Base.Bool.t ->
[> `Definitely | `Maybe | `Surely_not ]val mk_named_sig :
loc:Location.t ->
sg_name:Base.String.t ->
handle_polymorphic_variant:Base.Bool.t ->
Migrate_parsetree.Ast_408.Parsetree.type_declaration Base.List.t ->
Migrate_parsetree.Ast_408.Parsetree.module_type
Migrate_parsetree.Ast_408.Parsetree.include_infos
Base.Option.tmk_named_sig ~loc ~sg_name:"Foo" ~handle_polymorphic_variant tds will generate
include Foo (* or Foo1, Foo2, Foo3 *)
with type (* ('a, 'b, 'c) *) t := (* ('a, 'b, 'c) *) twhen:
- there is only one type declaration
- the type is named t
- there are less than 4 type parameters
- there are no constraints on the type parameters
It will take care of giving fresh names to unnamed type parameters.