Module V1.OCAML_TAST

include module type of Tast_types.OCAML_TAST
type rec_flag = Asttypes.rec_flag
include module type of struct include Typedtree end
type partial = Typedtree.partial =
  1. | Partial
  2. | Total
type attribute = Parsetree.attribute
type attributes = attribute list
type value = Typedtree.value =
  1. | Value_pattern
type computation = Typedtree.computation =
  1. | Computation_pattern
type !'a pattern_category = 'a Typedtree.pattern_category =
  1. | Value : value pattern_category
  2. | Computation : computation pattern_category
type pattern = value general_pattern
and !'k general_pattern = 'k pattern_desc pattern_data
and !'a pattern_data = 'a Typedtree.pattern_data = {
  1. pat_desc : 'a;
  2. pat_loc : Location.t;
  3. pat_extra : (pat_extra * Location.t * attributes) list;
  4. pat_type : Types.type_expr;
  5. pat_env : Env.t;
  6. pat_attributes : attributes;
}
and pat_extra = Typedtree.pat_extra =
  1. | Tpat_constraint of core_type
  2. | Tpat_type of Path.t * Longident.t Asttypes.loc
  3. | Tpat_open of Path.t * Longident.t Asttypes.loc * Env.t
  4. | Tpat_unpack
and !'k pattern_desc = 'k Typedtree.pattern_desc =
  1. | Tpat_any : value pattern_desc
  2. | Tpat_var : Ident.t * string Asttypes.loc -> value pattern_desc
  3. | Tpat_alias : value general_pattern * Ident.t * string Asttypes.loc -> value pattern_desc
  4. | Tpat_constant : Asttypes.constant -> value pattern_desc
  5. | Tpat_tuple : value general_pattern list -> value pattern_desc
  6. | Tpat_construct : Longident.t Asttypes.loc * Types.constructor_description * value general_pattern list * (Ident.t Asttypes.loc list * core_type) option -> value pattern_desc
  7. | Tpat_variant : Asttypes.label * value general_pattern option * Types.row_desc Stdlib.ref -> value pattern_desc
  8. | Tpat_record : (Longident.t Asttypes.loc * Types.label_description * value general_pattern) list * Asttypes.closed_flag -> value pattern_desc
  9. | Tpat_array : value general_pattern list -> value pattern_desc
  10. | Tpat_lazy : value general_pattern -> value pattern_desc
  11. | Tpat_value : tpat_value_argument -> computation pattern_desc
  12. | Tpat_exception : value general_pattern -> computation pattern_desc
  13. | Tpat_or : 'k0 general_pattern * 'k0 general_pattern * Types.row_desc option -> 'k0 pattern_desc
and tpat_value_argument = Typedtree.tpat_value_argument
and expression = Typedtree.expression = {
  1. exp_desc : expression_desc;
  2. exp_loc : Location.t;
  3. exp_extra : (exp_extra * Location.t * attributes) list;
  4. exp_type : Types.type_expr;
  5. exp_env : Env.t;
  6. exp_attributes : attributes;
}
and exp_extra = Typedtree.exp_extra =
  1. | Texp_constraint of core_type
  2. | Texp_coerce of core_type option * core_type
  3. | Texp_poly of core_type option
  4. | Texp_newtype of string
and expression_desc = Typedtree.expression_desc =
  1. | Texp_ident of Path.t * Longident.t Asttypes.loc * Types.value_description
  2. | Texp_constant of Asttypes.constant
  3. | Texp_let of Asttypes.rec_flag * value_binding list * expression
  4. | Texp_function of {
    1. arg_label : Asttypes.arg_label;
    2. param : Ident.t;
    3. cases : value case list;
    4. partial : partial;
    }
  5. | Texp_apply of expression * (Asttypes.arg_label * expression option) list
  6. | Texp_match of expression * computation case list * partial
  7. | Texp_try of expression * value case list
  8. | Texp_tuple of expression list
  9. | Texp_construct of Longident.t Asttypes.loc * Types.constructor_description * expression list
  10. | Texp_variant of Asttypes.label * expression option
  11. | Texp_record of {
    1. fields : (Types.label_description * record_label_definition) array;
    2. representation : Types.record_representation;
    3. extended_expression : expression option;
    }
  12. | Texp_field of expression * Longident.t Asttypes.loc * Types.label_description
  13. | Texp_setfield of expression * Longident.t Asttypes.loc * Types.label_description * expression
  14. | Texp_array of expression list
  15. | Texp_ifthenelse of expression * expression * expression option
  16. | Texp_sequence of expression * expression
  17. | Texp_while of expression * expression
  18. | Texp_for of Ident.t * Parsetree.pattern * expression * expression * Asttypes.direction_flag * expression
  19. | Texp_send of expression * meth
  20. | Texp_new of Path.t * Longident.t Asttypes.loc * Types.class_declaration
  21. | Texp_instvar of Path.t * Path.t * string Asttypes.loc
  22. | Texp_setinstvar of Path.t * Path.t * string Asttypes.loc * expression
  23. | Texp_override of Path.t * (Ident.t * string Asttypes.loc * expression) list
  24. | Texp_letmodule of Ident.t option * string option Asttypes.loc * Types.module_presence * module_expr * expression
  25. | Texp_letexception of extension_constructor * expression
  26. | Texp_assert of expression
  27. | Texp_lazy of expression
  28. | Texp_object of class_structure * string list
  29. | Texp_pack of module_expr
  30. | Texp_letop of {
    1. let_ : binding_op;
    2. ands : binding_op list;
    3. param : Ident.t;
    4. body : value case;
    5. partial : partial;
    }
  31. | Texp_unreachable
  32. | Texp_extension_constructor of Longident.t Asttypes.loc * Path.t
  33. | Texp_open of open_declaration * expression
and meth = Typedtree.meth =
  1. | Tmeth_name of string
  2. | Tmeth_val of Ident.t
  3. | Tmeth_ancestor of Ident.t * Path.t
and !'k case = 'k Typedtree.case = {
  1. c_lhs : 'k general_pattern;
  2. c_guard : expression option;
  3. c_rhs : expression;
}
and record_label_definition = Typedtree.record_label_definition =
  1. | Kept of Types.type_expr
  2. | Overridden of Longident.t Asttypes.loc * expression
and binding_op = Typedtree.binding_op = {
  1. bop_op_path : Path.t;
  2. bop_op_name : string Asttypes.loc;
  3. bop_op_val : Types.value_description;
  4. bop_op_type : Types.type_expr;
  5. bop_exp : expression;
  6. bop_loc : Location.t;
}
and class_expr = Typedtree.class_expr = {
  1. cl_desc : class_expr_desc;
  2. cl_loc : Location.t;
  3. cl_type : Types.class_type;
  4. cl_env : Env.t;
  5. cl_attributes : attributes;
}
and class_expr_desc = Typedtree.class_expr_desc =
  1. | Tcl_ident of Path.t * Longident.t Asttypes.loc * core_type list
  2. | Tcl_structure of class_structure
  3. | Tcl_fun of Asttypes.arg_label * pattern * (Ident.t * expression) list * class_expr * partial
  4. | Tcl_apply of class_expr * (Asttypes.arg_label * expression option) list
  5. | Tcl_let of Asttypes.rec_flag * value_binding list * (Ident.t * expression) list * class_expr
  6. | Tcl_constraint of class_expr * class_type option * string list * string list * Types.MethSet.t
  7. | Tcl_open of open_description * class_expr
and class_structure = Typedtree.class_structure = {
  1. cstr_self : pattern;
  2. cstr_fields : class_field list;
  3. cstr_type : Types.class_signature;
  4. cstr_meths : Ident.t Types.Meths.t;
}
and class_field = Typedtree.class_field = {
  1. cf_desc : class_field_desc;
  2. cf_loc : Location.t;
  3. cf_attributes : attributes;
}
and class_field_kind = Typedtree.class_field_kind =
  1. | Tcfk_virtual of core_type
  2. | Tcfk_concrete of Asttypes.override_flag * expression
and class_field_desc = Typedtree.class_field_desc =
  1. | Tcf_inherit of Asttypes.override_flag * class_expr * string option * (string * Ident.t) list * (string * Ident.t) list
  2. | Tcf_val of string Asttypes.loc * Asttypes.mutable_flag * Ident.t * class_field_kind * bool
  3. | Tcf_method of string Asttypes.loc * Asttypes.private_flag * class_field_kind
  4. | Tcf_constraint of core_type * core_type
  5. | Tcf_initializer of expression
  6. | Tcf_attribute of attribute
and module_expr = Typedtree.module_expr = {
  1. mod_desc : module_expr_desc;
  2. mod_loc : Location.t;
  3. mod_type : Types.module_type;
  4. mod_env : Env.t;
  5. mod_attributes : attributes;
}
and module_type_constraint = Typedtree.module_type_constraint =
  1. | Tmodtype_implicit
  2. | Tmodtype_explicit of module_type
and functor_parameter = Typedtree.functor_parameter =
  1. | Unit
  2. | Named of Ident.t option * string option Asttypes.loc * module_type
and module_expr_desc = Typedtree.module_expr_desc =
  1. | Tmod_ident of Path.t * Longident.t Asttypes.loc
  2. | Tmod_structure of structure
  3. | Tmod_functor of functor_parameter * module_expr
  4. | Tmod_apply of module_expr * module_expr * module_coercion
  5. | Tmod_constraint of module_expr * Types.module_type * module_type_constraint * module_coercion
  6. | Tmod_unpack of expression * Types.module_type
and structure = Typedtree.structure = {
  1. str_items : structure_item list;
  2. str_type : Types.signature;
  3. str_final_env : Env.t;
}
and structure_item = Typedtree.structure_item = {
  1. str_desc : structure_item_desc;
  2. str_loc : Location.t;
  3. str_env : Env.t;
}
and structure_item_desc = Typedtree.structure_item_desc =
  1. | Tstr_eval of expression * attributes
  2. | Tstr_value of Asttypes.rec_flag * value_binding list
  3. | Tstr_primitive of value_description
  4. | Tstr_type of Asttypes.rec_flag * type_declaration list
  5. | Tstr_typext of type_extension
  6. | Tstr_exception of type_exception
  7. | Tstr_module of module_binding
  8. | Tstr_recmodule of module_binding list
  9. | Tstr_modtype of module_type_declaration
  10. | Tstr_open of open_declaration
  11. | Tstr_class of (class_declaration * string list) list
  12. | Tstr_class_type of (Ident.t * string Asttypes.loc * class_type_declaration) list
  13. | Tstr_include of include_declaration
  14. | Tstr_attribute of attribute
and module_binding = Typedtree.module_binding = {
  1. mb_id : Ident.t option;
  2. mb_name : string option Asttypes.loc;
  3. mb_presence : Types.module_presence;
  4. mb_expr : module_expr;
  5. mb_attributes : attributes;
  6. mb_loc : Location.t;
}
and value_binding = Typedtree.value_binding = {
  1. vb_pat : pattern;
  2. vb_expr : expression;
  3. vb_attributes : attributes;
  4. vb_loc : Location.t;
}
and module_coercion = Typedtree.module_coercion =
  1. | Tcoerce_none
  2. | Tcoerce_structure of (int * module_coercion) list * (Ident.t * int * module_coercion) list
  3. | Tcoerce_functor of module_coercion * module_coercion
  4. | Tcoerce_primitive of primitive_coercion
  5. | Tcoerce_alias of Env.t * Path.t * module_coercion
and module_type = Typedtree.module_type = {
  1. mty_desc : module_type_desc;
  2. mty_type : Types.module_type;
  3. mty_env : Env.t;
  4. mty_loc : Location.t;
  5. mty_attributes : attributes;
}
and module_type_desc = Typedtree.module_type_desc =
  1. | Tmty_ident of Path.t * Longident.t Asttypes.loc
  2. | Tmty_signature of signature
  3. | Tmty_functor of functor_parameter * module_type
  4. | Tmty_with of module_type * (Path.t * Longident.t Asttypes.loc * with_constraint) list
  5. | Tmty_typeof of module_expr
  6. | Tmty_alias of Path.t * Longident.t Asttypes.loc
and primitive_coercion = Typedtree.primitive_coercion = {
  1. pc_desc : Primitive.description;
  2. pc_type : Types.type_expr;
  3. pc_env : Env.t;
  4. pc_loc : Location.t;
}
and signature = Typedtree.signature = {
  1. sig_items : signature_item list;
  2. sig_type : Types.signature;
  3. sig_final_env : Env.t;
}
and signature_item = Typedtree.signature_item = {
  1. sig_desc : signature_item_desc;
  2. sig_env : Env.t;
  3. sig_loc : Location.t;
}
and signature_item_desc = Typedtree.signature_item_desc =
  1. | Tsig_value of value_description
  2. | Tsig_type of Asttypes.rec_flag * type_declaration list
  3. | Tsig_typesubst of type_declaration list
  4. | Tsig_typext of type_extension
  5. | Tsig_exception of type_exception
  6. | Tsig_module of module_declaration
  7. | Tsig_modsubst of module_substitution
  8. | Tsig_recmodule of module_declaration list
  9. | Tsig_modtype of module_type_declaration
  10. | Tsig_modtypesubst of module_type_declaration
  11. | Tsig_open of open_description
  12. | Tsig_include of include_description
  13. | Tsig_class of class_description list
  14. | Tsig_class_type of class_type_declaration list
  15. | Tsig_attribute of attribute
and module_declaration = Typedtree.module_declaration = {
  1. md_id : Ident.t option;
  2. md_name : string option Asttypes.loc;
  3. md_presence : Types.module_presence;
  4. md_type : module_type;
  5. md_attributes : attributes;
  6. md_loc : Location.t;
}
and module_substitution = Typedtree.module_substitution = {
  1. ms_id : Ident.t;
  2. ms_name : string Asttypes.loc;
  3. ms_manifest : Path.t;
  4. ms_txt : Longident.t Asttypes.loc;
  5. ms_attributes : attributes;
  6. ms_loc : Location.t;
}
and module_type_declaration = Typedtree.module_type_declaration = {
  1. mtd_id : Ident.t;
  2. mtd_name : string Asttypes.loc;
  3. mtd_type : module_type option;
  4. mtd_attributes : attributes;
  5. mtd_loc : Location.t;
}
and !'a open_infos = 'a Typedtree.open_infos = {
  1. open_expr : 'a;
  2. open_bound_items : Types.signature;
  3. open_override : Asttypes.override_flag;
  4. open_env : Env.t;
  5. open_loc : Location.t;
  6. open_attributes : attribute list;
}
and open_description = (Path.t * Longident.t Asttypes.loc) open_infos
and open_declaration = module_expr open_infos
and !'a include_infos = 'a Typedtree.include_infos = {
  1. incl_mod : 'a;
  2. incl_type : Types.signature;
  3. incl_loc : Location.t;
  4. incl_attributes : attribute list;
}
and include_description = module_type include_infos
and include_declaration = module_expr include_infos
and with_constraint = Typedtree.with_constraint =
  1. | Twith_type of type_declaration
  2. | Twith_module of Path.t * Longident.t Asttypes.loc
  3. | Twith_modtype of module_type
  4. | Twith_typesubst of type_declaration
  5. | Twith_modsubst of Path.t * Longident.t Asttypes.loc
  6. | Twith_modtypesubst of module_type
and core_type = Typedtree.core_type = {
  1. mutable ctyp_desc : core_type_desc;
  2. mutable ctyp_type : Types.type_expr;
  3. ctyp_env : Env.t;
  4. ctyp_loc : Location.t;
  5. ctyp_attributes : attributes;
}
and core_type_desc = Typedtree.core_type_desc =
  1. | Ttyp_any
  2. | Ttyp_var of string
  3. | Ttyp_arrow of Asttypes.arg_label * core_type * core_type
  4. | Ttyp_tuple of core_type list
  5. | Ttyp_constr of Path.t * Longident.t Asttypes.loc * core_type list
  6. | Ttyp_object of object_field list * Asttypes.closed_flag
  7. | Ttyp_class of Path.t * Longident.t Asttypes.loc * core_type list
  8. | Ttyp_alias of core_type * string
  9. | Ttyp_variant of row_field list * Asttypes.closed_flag * Asttypes.label list option
  10. | Ttyp_poly of string list * core_type
  11. | Ttyp_package of package_type
and package_type = Typedtree.package_type = {
  1. pack_path : Path.t;
  2. pack_fields : (Longident.t Asttypes.loc * core_type) list;
  3. pack_type : Types.module_type;
  4. pack_txt : Longident.t Asttypes.loc;
}
and row_field = Typedtree.row_field = {
  1. rf_desc : row_field_desc;
  2. rf_loc : Location.t;
  3. rf_attributes : attributes;
}
and row_field_desc = Typedtree.row_field_desc =
  1. | Ttag of string Asttypes.loc * bool * core_type list
  2. | Tinherit of core_type
and object_field = Typedtree.object_field = {
  1. of_desc : object_field_desc;
  2. of_loc : Location.t;
  3. of_attributes : attributes;
}
and object_field_desc = Typedtree.object_field_desc =
  1. | OTtag of string Asttypes.loc * core_type
  2. | OTinherit of core_type
and value_description = Typedtree.value_description = {
  1. val_id : Ident.t;
  2. val_name : string Asttypes.loc;
  3. val_desc : core_type;
  4. val_val : Types.value_description;
  5. val_prim : string list;
  6. val_loc : Location.t;
  7. val_attributes : attributes;
}
and type_declaration = Typedtree.type_declaration = {
  1. typ_id : Ident.t;
  2. typ_name : string Asttypes.loc;
  3. typ_params : (core_type * (Asttypes.variance * Asttypes.injectivity)) list;
  4. typ_type : Types.type_declaration;
  5. typ_cstrs : (core_type * core_type * Location.t) list;
  6. typ_kind : type_kind;
  7. typ_private : Asttypes.private_flag;
  8. typ_manifest : core_type option;
  9. typ_loc : Location.t;
  10. typ_attributes : attributes;
}
and type_kind = Typedtree.type_kind =
  1. | Ttype_abstract
  2. | Ttype_variant of constructor_declaration list
  3. | Ttype_record of label_declaration list
  4. | Ttype_open
and label_declaration = Typedtree.label_declaration = {
  1. ld_id : Ident.t;
  2. ld_name : string Asttypes.loc;
  3. ld_mutable : Asttypes.mutable_flag;
  4. ld_type : core_type;
  5. ld_loc : Location.t;
  6. ld_attributes : attributes;
}
and constructor_declaration = Typedtree.constructor_declaration = {
  1. cd_id : Ident.t;
  2. cd_name : string Asttypes.loc;
  3. cd_vars : string Asttypes.loc list;
  4. cd_args : constructor_arguments;
  5. cd_res : core_type option;
  6. cd_loc : Location.t;
  7. cd_attributes : attributes;
}
and constructor_arguments = Typedtree.constructor_arguments =
  1. | Cstr_tuple of core_type list
  2. | Cstr_record of label_declaration list
and type_extension = Typedtree.type_extension = {
  1. tyext_path : Path.t;
  2. tyext_txt : Longident.t Asttypes.loc;
  3. tyext_params : (core_type * (Asttypes.variance * Asttypes.injectivity)) list;
  4. tyext_constructors : extension_constructor list;
  5. tyext_private : Asttypes.private_flag;
  6. tyext_loc : Location.t;
  7. tyext_attributes : attributes;
}
and type_exception = Typedtree.type_exception = {
  1. tyexn_constructor : extension_constructor;
  2. tyexn_loc : Location.t;
  3. tyexn_attributes : attribute list;
}
and extension_constructor = Typedtree.extension_constructor = {
  1. ext_id : Ident.t;
  2. ext_name : string Asttypes.loc;
  3. ext_type : Types.extension_constructor;
  4. ext_kind : extension_constructor_kind;
  5. ext_loc : Location.t;
  6. ext_attributes : attributes;
}
and extension_constructor_kind = Typedtree.extension_constructor_kind =
  1. | Text_decl of string Asttypes.loc list * constructor_arguments * core_type option
  2. | Text_rebind of Path.t * Longident.t Asttypes.loc
and class_type = Typedtree.class_type = {
  1. cltyp_desc : class_type_desc;
  2. cltyp_type : Types.class_type;
  3. cltyp_env : Env.t;
  4. cltyp_loc : Location.t;
  5. cltyp_attributes : attributes;
}
and class_type_desc = Typedtree.class_type_desc =
  1. | Tcty_constr of Path.t * Longident.t Asttypes.loc * core_type list
  2. | Tcty_signature of class_signature
  3. | Tcty_arrow of Asttypes.arg_label * core_type * class_type
  4. | Tcty_open of open_description * class_type
and class_signature = Typedtree.class_signature = {
  1. csig_self : core_type;
  2. csig_fields : class_type_field list;
  3. csig_type : Types.class_signature;
}
and class_type_field = Typedtree.class_type_field = {
  1. ctf_desc : class_type_field_desc;
  2. ctf_loc : Location.t;
  3. ctf_attributes : attributes;
}
and class_type_field_desc = Typedtree.class_type_field_desc =
  1. | Tctf_inherit of class_type
  2. | Tctf_val of string * Asttypes.mutable_flag * Asttypes.virtual_flag * core_type
  3. | Tctf_method of string * Asttypes.private_flag * Asttypes.virtual_flag * core_type
  4. | Tctf_constraint of core_type * core_type
  5. | Tctf_attribute of attribute
and class_declaration = class_expr class_infos
and class_description = class_type class_infos
and class_type_declaration = class_type class_infos
and !'a class_infos = 'a Typedtree.class_infos = {
  1. ci_virt : Asttypes.virtual_flag;
  2. ci_params : (core_type * (Asttypes.variance * Asttypes.injectivity)) list;
  3. ci_id_name : string Asttypes.loc;
  4. ci_id_class : Ident.t;
  5. ci_id_class_type : Ident.t;
  6. ci_id_object : Ident.t;
  7. ci_id_typehash : Ident.t;
  8. ci_expr : 'a;
  9. ci_decl : Types.class_declaration;
  10. ci_type_decl : Types.class_type_declaration;
  11. ci_loc : Location.t;
  12. ci_attributes : attributes;
}
type implementation = Typedtree.implementation = {
  1. structure : structure;
  2. coercion : module_coercion;
  3. signature : Types.signature;
  4. shape : Shape.t;
}
val as_computation_pattern : pattern -> computation general_pattern
val classify_pattern_desc : 'k pattern_desc -> 'k pattern_category
val classify_pattern : 'k general_pattern -> 'k pattern_category
type pattern_action = Typedtree.pattern_action = {
  1. f : 'k. 'k general_pattern -> unit;
}
val shallow_iter_pattern_desc : pattern_action -> 'k pattern_desc -> unit
type pattern_transformation = Typedtree.pattern_transformation = {
  1. f : 'k. 'k general_pattern -> 'k general_pattern;
}
val shallow_map_pattern_desc : pattern_transformation -> 'k pattern_desc -> 'k pattern_desc
val iter_general_pattern : pattern_action -> 'k general_pattern -> unit
val iter_pattern : (pattern -> unit) -> pattern -> unit
type pattern_predicate = Typedtree.pattern_predicate = {
  1. f : 'k. 'k general_pattern -> bool;
}
val exists_general_pattern : pattern_predicate -> 'k general_pattern -> bool
val exists_pattern : (pattern -> bool) -> pattern -> bool
val let_bound_idents : value_binding list -> Ident.t list
val let_bound_idents_full : value_binding list -> (Ident.t * string Asttypes.loc * Types.type_expr) list
val alpha_pat : (Ident.t * Ident.t) list -> 'k general_pattern -> 'k general_pattern
val mknoloc : 'a -> 'a Asttypes.loc
val mkloc : 'a -> Location.t -> 'a Asttypes.loc
val pat_bound_idents : 'k general_pattern -> Ident.t list
val pat_bound_idents_full : 'k general_pattern -> (Ident.t * string Asttypes.loc * Types.type_expr) list
val split_pattern : computation general_pattern -> pattern option * pattern option
include module type of struct include Untypeast end
val lident_of_path : Path.t -> Longident.t
type mapper = Untypeast.mapper = {
  1. attribute : mapper -> Typedtree.attribute -> Parsetree.attribute;
  2. attributes : mapper -> Typedtree.attribute list -> Parsetree.attribute list;
  3. binding_op : mapper -> Typedtree.binding_op -> Typedtree.pattern -> Parsetree.binding_op;
  4. case : 'k. mapper -> 'k Typedtree.case -> Parsetree.case;
  5. class_declaration : mapper -> Typedtree.class_declaration -> Parsetree.class_declaration;
  6. class_description : mapper -> Typedtree.class_description -> Parsetree.class_description;
  7. class_expr : mapper -> Typedtree.class_expr -> Parsetree.class_expr;
  8. class_field : mapper -> Typedtree.class_field -> Parsetree.class_field;
  9. class_signature : mapper -> Typedtree.class_signature -> Parsetree.class_signature;
  10. class_structure : mapper -> Typedtree.class_structure -> Parsetree.class_structure;
  11. class_type : mapper -> Typedtree.class_type -> Parsetree.class_type;
  12. class_type_declaration : mapper -> Typedtree.class_type_declaration -> Parsetree.class_type_declaration;
  13. class_type_field : mapper -> Typedtree.class_type_field -> Parsetree.class_type_field;
  14. constructor_declaration : mapper -> Typedtree.constructor_declaration -> Parsetree.constructor_declaration;
  15. expr : mapper -> Typedtree.expression -> Parsetree.expression;
  16. extension_constructor : mapper -> Typedtree.extension_constructor -> Parsetree.extension_constructor;
  17. include_declaration : mapper -> Typedtree.include_declaration -> Parsetree.include_declaration;
  18. include_description : mapper -> Typedtree.include_description -> Parsetree.include_description;
  19. label_declaration : mapper -> Typedtree.label_declaration -> Parsetree.label_declaration;
  20. location : mapper -> Location.t -> Location.t;
  21. module_binding : mapper -> Typedtree.module_binding -> Parsetree.module_binding;
  22. module_declaration : mapper -> Typedtree.module_declaration -> Parsetree.module_declaration;
  23. module_substitution : mapper -> Typedtree.module_substitution -> Parsetree.module_substitution;
  24. module_expr : mapper -> Typedtree.module_expr -> Parsetree.module_expr;
  25. module_type : mapper -> Typedtree.module_type -> Parsetree.module_type;
  26. module_type_declaration : mapper -> Typedtree.module_type_declaration -> Parsetree.module_type_declaration;
  27. package_type : mapper -> Typedtree.package_type -> Parsetree.package_type;
  28. open_declaration : mapper -> Typedtree.open_declaration -> Parsetree.open_declaration;
  29. open_description : mapper -> Typedtree.open_description -> Parsetree.open_description;
  30. pat : 'k. mapper -> 'k Typedtree.general_pattern -> Parsetree.pattern;
  31. row_field : mapper -> Typedtree.row_field -> Parsetree.row_field;
  32. object_field : mapper -> Typedtree.object_field -> Parsetree.object_field;
  33. signature : mapper -> Typedtree.signature -> Parsetree.signature;
  34. signature_item : mapper -> Typedtree.signature_item -> Parsetree.signature_item;
  35. structure : mapper -> Typedtree.structure -> Parsetree.structure;
  36. structure_item : mapper -> Typedtree.structure_item -> Parsetree.structure_item;
  37. typ : mapper -> Typedtree.core_type -> Parsetree.core_type;
  38. type_declaration : mapper -> Typedtree.type_declaration -> Parsetree.type_declaration;
  39. type_extension : mapper -> Typedtree.type_extension -> Parsetree.type_extension;
  40. type_exception : mapper -> Typedtree.type_exception -> Parsetree.type_exception;
  41. type_kind : mapper -> Typedtree.type_kind -> Parsetree.type_kind;
  42. value_binding : mapper -> Typedtree.value_binding -> Parsetree.value_binding;
  43. value_description : mapper -> Typedtree.value_description -> Parsetree.value_description;
  44. with_constraint : mapper -> (Path.t * Longident.t Location.loc * Typedtree.with_constraint) -> Parsetree.with_constraint;
}
val default_mapper : mapper
val untype_structure : ?mapper:mapper -> Typedtree.structure -> Parsetree.structure
val untype_signature : ?mapper:mapper -> Typedtree.signature -> Parsetree.signature
val untype_expression : ?mapper:mapper -> Typedtree.expression -> Parsetree.expression
val untype_pattern : ?mapper:mapper -> 'a Typedtree.general_pattern -> Parsetree.pattern
val constant : Asttypes.constant -> Parsetree.constant
val extract_const_string : Asttypes.constant -> string * string option
val extract_arg : 'a -> 'a
val module_binding_id : 'a -> 'a
val module_binding_name : 'a -> 'a
val extract_Pconst_string : Parsetree.constant -> string option
module TYPES : sig ... end
val format_to_string : (Stdlib.Format.formatter -> 'a -> unit) -> 'a -> string
val string_of_structure : Typedtree.structure -> string
val string_of_signature : Typedtree.signature -> string
val is_menhir_generated_file : structure -> bool