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 with_new_pool : level:int -> (unit -> 'a) -> 'a * Types.transient_expr list
val add_to_pool : level:int -> Types.transient_expr -> unit
val newty3 : level:int -> scope:int -> Types.type_desc -> Types.type_expr
val newty2 : level:int -> Types.type_desc -> Types.type_expr
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 is_poly_Tpoly : Types.type_expr -> bool
val dummy_method : Asttypes.label
val type_kind_is_abstract : Types.type_declaration -> bool
val type_origin : Types.type_declaration -> Types.type_origin
val label_is_poly : Types.label_description -> bool
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
val mark_type : Types.type_mark -> Types.type_expr -> unit
val mark_type_params : Types.type_mark -> Types.type_expr -> unit
type 'a type_iterators = {
it_signature : 'a type_iterators -> Types.signature -> unit;
it_signature_item : 'a type_iterators -> Types.signature_item -> unit;
it_value_description : 'a type_iterators -> Types.value_description -> unit;
it_type_declaration : 'a type_iterators -> Types.type_declaration -> unit;
it_extension_constructor : 'a type_iterators ->
Types.extension_constructor ->
unit;
it_module_declaration : 'a type_iterators -> Types.module_declaration -> unit;
it_modtype_declaration : 'a type_iterators ->
Types.modtype_declaration ->
unit;
it_class_declaration : 'a type_iterators -> Types.class_declaration -> unit;
it_class_type_declaration : 'a type_iterators ->
Types.class_type_declaration ->
unit;
it_functor_param : 'a type_iterators -> Types.functor_parameter -> unit;
it_module_type : 'a type_iterators -> Types.module_type -> unit;
it_class_type : 'a type_iterators -> Types.class_type -> unit;
it_type_kind : 'a type_iterators -> Types.type_decl_kind -> unit;
it_do_type_expr : 'a type_iterators -> 'a;
it_type_expr : 'a type_iterators -> Types.type_expr -> unit;
it_path : Path.t -> unit;
}
type type_iterators_full = (Types.type_expr -> unit) type_iterators
type type_iterators_without_type_expr = (unit -> unit) type_iterators
val type_iterators : Types.type_mark -> type_iterators_full
val type_iterators_without_type_expr : type_iterators_without_type_expr
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 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 cstr_type_path : Types.constructor_description -> Path.t