ocaml-base-compiler
  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module Unification_trace : sig ... end

Unification traces are used to explain unification errors when printing error messages

exception Unify of Unification_trace.t
exception Tags of Asttypes.label * Asttypes.label
exception Cannot_expand
exception Cannot_apply
val init_def : int -> unit
val begin_def : unit -> unit
val end_def : unit -> unit
val begin_class_def : unit -> unit
val raise_nongen_level : unit -> unit
val reset_global_level : unit -> unit
val increase_global_level : unit -> int
val restore_global_level : int -> unit
type levels = {
  1. current_level : int;
  2. nongen_level : int;
  3. global_level : int;
  4. saved_level : (int * int) list;
}
val save_levels : unit -> levels
val set_levels : levels -> unit
val create_scope : unit -> int
val newvar : ?name:string -> unit -> Types.type_expr
val newvar2 : ?name:string -> int -> Types.type_expr
val new_global_var : ?name:string -> unit -> Types.type_expr
val newconstr : Path.t -> Types.type_expr list -> Types.type_expr
val none : Types.type_expr
val object_fields : Types.type_expr -> Types.type_expr
val flatten_fields : Types.type_expr -> (string * Types.field_kind * Types.type_expr) list * Types.type_expr
val associate_fields : (string * Types.field_kind * Types.type_expr) list -> (string * Types.field_kind * Types.type_expr) list -> (string * Types.field_kind * Types.type_expr * Types.field_kind * Types.type_expr) list * (string * Types.field_kind * Types.type_expr) list * (string * Types.field_kind * Types.type_expr) list
val opened_object : Types.type_expr -> bool
val close_object : Types.type_expr -> bool
val row_variable : Types.type_expr -> Types.type_expr
val set_object_name : Ident.t -> Types.type_expr -> Types.type_expr list -> Types.type_expr -> unit
val remove_object_name : Types.type_expr -> unit
val hide_private_methods : Types.type_expr -> unit
val find_cltype_for_path : Env.t -> Path.t -> Types.type_declaration * Types.type_expr
val sort_row_fields : (Asttypes.label * Types.row_field) list -> (Asttypes.label * Types.row_field) list
val filter_row_fields : bool -> (Asttypes.label * Types.row_field) list -> (Asttypes.label * Types.row_field) list
val generalize : Types.type_expr -> unit
val lower_contravariant : Env.t -> Types.type_expr -> unit
val generalize_structure : Types.type_expr -> unit
val generalize_spine : Types.type_expr -> unit
val correct_levels : Types.type_expr -> Types.type_expr
val limited_generalize : Types.type_expr -> Types.type_expr -> unit
val check_scope_escape : Env.t -> int -> Types.type_expr -> unit
val instance : ?partial:bool -> Types.type_expr -> Types.type_expr
val generic_instance : Types.type_expr -> Types.type_expr
val instance_list : Types.type_expr list -> Types.type_expr list
val existential_name : Types.constructor_description -> Types.type_expr -> string
val instance_constructor : ?in_pattern:(Env.t ref * int) -> Types.constructor_description -> Types.type_expr list * Types.type_expr
val instance_parameterized_type : ?keep_names:bool -> Types.type_expr list -> Types.type_expr -> Types.type_expr list * Types.type_expr
val instance_parameterized_type_2 : Types.type_expr list -> Types.type_expr list -> Types.type_expr ->