Btype
module TypeSet : sig ... end
module TransientTypeMap : Map.S with type key = Types.transient_expr
module TypeMap : sig ... end
module TypeHash : sig ... end
module TypePairs : sig ... end
val newgenty : Types.type_desc -> Types.type_expr
val newgenvar : ?name:string -> unit -> Types.type_expr
val newgenstub : scope:int -> Types.type_expr
val is_Tvar : Types.type_expr -> bool
val is_Tunivar : Types.type_expr -> bool
val is_Tconstr : Types.type_expr -> bool
val dummy_method : Asttypes.label
val is_fixed : Types.row_desc -> bool
val has_fixed_explanation : Types.row_desc -> bool
val fixed_explanation : Types.row_desc -> Types.fixed_explanation option
val merge_fixed_explanation :
Types.fixed_explanation option ->
Types.fixed_explanation option ->
Types.fixed_explanation option
val static_row : Types.row_desc -> bool
val hash_variant : Asttypes.label -> int
val proxy : Types.type_expr -> Types.type_expr
val row_of_type : Types.type_expr -> Types.type_expr
val has_constr_row : Types.type_expr -> bool
val is_constr_row : allow_ident:bool -> Types.type_expr -> bool
val set_static_row_name : Types.type_declaration -> Path.t -> unit
val iter_type_expr : (Types.type_expr -> unit) -> Types.type_expr -> unit
val fold_type_expr :
('a -> Types.type_expr -> 'a) ->
'a ->
Types.type_expr ->
'a
val iter_row : (Types.type_expr -> unit) -> Types.row_desc -> unit
val fold_row : ('a -> Types.type_expr -> 'a) -> 'a -> Types.row_desc -> 'a
val iter_abbrev : (Types.type_expr -> unit) -> Types.abbrev_memo -> unit
val iter_type_expr_kind :
(Types.type_expr -> unit) ->
Types.type_decl_kind ->
unit
val iter_type_expr_cstr_args :
(Types.type_expr -> unit) ->
Types.constructor_arguments ->
unit
val map_type_expr_cstr_args :
(Types.type_expr -> Types.type_expr) ->
Types.constructor_arguments ->
Types.constructor_arguments
type type_iterators = {
it_signature : type_iterators -> Types.signature -> unit;
it_signature_item : type_iterators -> Types.signature_item -> unit;
it_value_description : type_iterators -> Types.value_description -> unit;
it_type_declaration : type_iterators -> Types.type_declaration -> unit;
it_extension_constructor : type_iterators ->
Types.extension_constructor ->
unit;
it_module_declaration : type_iterators -> Types.module_declaration -> unit;
it_modtype_declaration : type_iterators -> Types.modtype_declaration -> unit;
it_class_declaration : type_iterators -> Types.class_declaration -> unit;
it_class_type_declaration : type_iterators ->
Types.class_type_declaration ->
unit;
it_functor_param : type_iterators -> Types.functor_parameter -> unit;
it_module_type : type_iterators -> Types.module_type -> unit;
it_class_type : type_iterators -> Types.class_type -> unit;
it_type_kind : type_iterators -> Types.type_decl_kind -> unit;
it_do_type_expr : type_iterators -> Types.type_expr -> unit;
it_type_expr : type_iterators -> Types.type_expr -> unit;
it_path : Path.t -> unit;
}
val type_iterators : type_iterators
val unmark_iterators : type_iterators
val copy_type_desc :
?keep_names:bool ->
(Types.type_expr -> Types.type_expr) ->
Types.type_desc ->
Types.type_desc
val copy_row :
(Types.type_expr -> Types.type_expr) ->
bool ->
Types.row_desc ->
bool ->
Types.type_expr ->
Types.row_desc
module For_copy : sig ... end
val not_marked_node : Types.type_expr -> bool
val logged_mark_node : Types.type_expr -> unit
val try_logged_mark_node : Types.type_expr -> bool
val flip_mark_node : Types.type_expr -> unit
val try_mark_node : Types.type_expr -> bool
val mark_type : Types.type_expr -> unit
val mark_type_params : Types.type_expr -> unit
val unmark_type : Types.type_expr -> unit
val unmark_type_decl : Types.type_declaration -> unit
val unmark_extension_constructor : Types.extension_constructor -> unit
val unmark_class_type : Types.class_type -> unit
val unmark_class_signature : Types.class_signature -> unit
val find_expans :
Asttypes.private_flag ->
Path.t ->
Types.abbrev_memo ->
Types.type_expr option
val memorize_abbrev :
Types.abbrev_memo ref ->
Asttypes.private_flag ->
Path.t ->
Types.type_expr ->
Types.type_expr ->
unit
val forget_abbrev : Types.abbrev_memo ref -> Path.t -> unit
val snapshot : unit -> Types.snapshot
val backtrack : Types.snapshot -> unit
val is_optional : Asttypes.arg_label -> bool
val label_name : Asttypes.arg_label -> Asttypes.label
val prefixed_label_name : Asttypes.arg_label -> Asttypes.label
val extract_label :
Asttypes.label ->
(Asttypes.arg_label * 'a) list ->
(Asttypes.arg_label * 'a * bool * (Asttypes.arg_label * 'a) list) option
val signature_of_class_type : Types.class_type -> Types.class_signature
val class_body : Types.class_type -> Types.class_type
val scrape_class_type : Types.class_type -> Types.class_type
val class_type_arity : Types.class_type -> int
val abbreviate_class_type :
Path.t ->
Types.type_expr list ->
Types.class_type ->
Types.class_type
val self_type : Types.class_type -> Types.type_expr
val self_type_row : Types.class_type -> Types.type_expr
val methods : Types.class_signature -> string list
val virtual_methods : Types.class_signature -> string list
val concrete_methods : Types.class_signature -> Types.MethSet.t
val public_methods : Types.class_signature -> string list
val instance_vars : Types.class_signature -> string list
val virtual_instance_vars : Types.class_signature -> string list
val concrete_instance_vars : Types.class_signature -> Types.VarSet.t
val method_type : Asttypes.label -> Types.class_signature -> Types.type_expr
val instance_variable_type :
Asttypes.label ->
Types.class_signature ->
Types.type_expr
val print_raw : (Format.formatter -> Types.type_expr -> unit) ref
val cstr_type_path : Types.constructor_description -> Path.t