Module Ocaml_typing.Btype

module TypeSet : sig ... end
module TypeMap : sig ... end
module TypeHash : sig ... end
module TypePairs : sig ... end
val generic_level : int
val lowest_level : int
val newgenvar : ?name:string -> Types.jkind_lr -> Types.type_expr
val newgenstub : scope:int -> Types.jkind_lr -> 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_Tpoly : Types.type_expr -> bool
val dummy_method : Ocaml_parsing.Asttypes.label
val type_kind_is_abstract : Types.type_declaration -> 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 tvariant_not_immediate : Types.row_desc -> bool
val hash_variant : Ocaml_parsing.Asttypes.label -> int
val tpoly_is_mono : Types.type_expr -> bool
val tpoly_get_mono : Types.type_expr -> Types.type_expr
val tpoly_get_poly : Types.type_expr -> Types.type_expr * Types.type_expr list
val row_of_type : Types.type_expr -> Types.type_expr
val has_constr_row : Types.type_expr -> bool
val is_row_name : string -> 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 mark_type : Types.type_mark -> Types.type_expr -> unit
val mark_type_params : Types.type_mark -> Types.type_expr -> unit
type 'a type_iterators = {
  1. it_signature : 'a type_iterators -> Types.signature -> unit;
  2. it_signature_item : 'a type_iterators -> Types.signature_item -> unit;
  3. it_value_description : 'a type_iterators -> Types.value_description -> unit;
  4. it_type_declaration : 'a type_iterators -> Types.type_declaration -> unit;
  5. it_extension_constructor : 'a type_iterators -> Types.extension_constructor -> unit;
  6. it_module_declaration : 'a type_iterators -> Types.module_declaration -> unit;
  7. it_modtype_declaration : 'a type_iterators -> Types.modtype_declaration -> unit;
  8. it_class_declaration : 'a type_iterators -> Types.class_declaration -> unit;
  9. it_class_type_declaration : 'a type_iterators -> Types.class_type_declaration -> unit;
  10. it_functor_param : 'a type_iterators -> Types.functor_parameter -> unit;
  11. it_module_type : 'a type_iterators -> Types.module_type -> unit;
  12. it_class_type : 'a type_iterators -> Types.class_type -> unit;
  13. it_type_kind : 'a type_iterators -> Types.type_decl_kind -> unit;
  14. it_do_type_expr : 'a type_iterators -> 'a;
  15. it_type_expr : 'a type_iterators -> Types.type_expr -> unit;
  16. 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 cleanup_abbrev : unit -> unit
val forget_abbrev : Types.abbrev_memo ref -> Path.t -> unit
val snapshot : unit -> Types.snapshot
val backtrack : Types.snapshot -> unit
val is_optional_parsetree : Ocaml_parsing.Parsetree.arg_label -> bool
val is_optional : Types.arg_label -> bool
val is_position : Types.arg_label -> bool
val is_omittable : Types.arg_label -> bool
val prefixed_label_name : Types.arg_label -> Ocaml_parsing.Asttypes.label
val extract_label : Ocaml_parsing.Asttypes.label -> (Types.arg_label * 'a) list -> (Types.arg_label * 'a * bool * (Types.arg_label * 'a) list) option
val signature_of_class_type : Types.class_type -> Types.class_signature
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_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 print_raw : (Format.formatter -> Types.type_expr -> unit) ref
val cstr_type_path : Types.constructor_description -> Path.t