ocaml-base-compiler

Official release 4.07.1
IN THIS PACKAGE
Module Typecore
type type_forcing_context =
| If_conditional
| If_no_else_branch
| While_loop_conditional
| While_loop_body
| For_loop_start_index
| For_loop_stop_index
| For_loop_body
| Assert_condition
| Sequence_left_hand_side
type type_expected = private {
ty : Types.type_expr;
explanation : type_forcing_context option;
}
val mk_expected : ?explanation:type_forcing_context -> Types.type_expr -> type_expected
val is_nonexpansive : Typedtree.expression -> bool
val type_expression : Env.t -> Parsetree.expression -> Typedtree.expression
val type_class_arg_pattern : string -> Env.t -> Env.t -> Asttypes.arg_label -> Parsetree.pattern -> Typedtree.pattern * (Ident.t * string Asttypes.loc * Ident.t * Types.type_expr) list * Env.t * Env.t
val check_partial : ?lev:int -> Env.t -> Types.type_expr -> Location.t -> Typedtree.case list -> Typedtree.partial
val extract_option_type : Env.t -> Types.type_expr -> Types.type_expr
val iter_pattern : ( Typedtree.pattern -> unit ) -> Typedtree.pattern -> unit
val generalizable : int -> Types.type_expr -> bool
val reset_delayed_checks : unit -> unit
val force_delayed_checks : unit -> unit
val name_pattern : string -> Typedtree.case list -> Ident.t
val self_coercion : (Path.t * Location.t list ref) list ref
type error =
| Polymorphic_label of Longident.t
| Constructor_arity_mismatch of Longident.t * int * int
| Label_mismatch of Longident.t * (Types.type_expr * Types.type_expr) list
| Pattern_type_clash of (Types.type_expr * Types.type_expr) list
| Or_pattern_type_clash of Ident.t * (Types.type_expr * Types.type_expr) list
| Multiply_bound_variable of string
| Orpat_vars of Ident.t * Ident.t list
| Expr_type_clash of (Types.type_expr * Types.type_expr) list * type_forcing_context option
| Apply_non_function of Types.type_expr
| Apply_wrong_label of Asttypes.arg_label * Types.type_expr
| Label_multiply_defined of string
| Label_missing of Ident.t list
| Label_not_mutable of Longident.t
| Wrong_name of string * type_expected * string * Path.t * string * string list
| Name_type_mismatch of string * Longident.t * Path.t * Path.t * (Path.t * Path.t) list
| Invalid_format of string
| Undefined_method of Types.type_expr * string * string list option
| Undefined_inherited_method of string * string list
| Virtual_class of Longident.t
| Private_type of Types.type_expr
| Private_label of Longident.t * Types.type_expr
| Unbound_instance_variable of string * string list
| Instance_variable_not_mutable of bool * string
| Not_subtype of (Types.type_expr * Types.type_expr) list * (Types.type_expr * Types.type_expr) list
| Outside_class
| Value_multiply_overridden of string
| Coercion_failure of Types.type_expr * Types.type_expr * (Types.type_expr * Types.type_expr) list * bool
| Too_many_arguments of bool * Types.type_expr * type_forcing_context option
| Abstract_wrong_label of Asttypes.arg_label * Types.type_expr * type_forcing_context option
| Scoping_let_module of string * Types.type_expr
| Masked_instance_variable of Longident.t
| Not_a_variant_type of Longident.t
| Incoherent_label_order
| Less_general of string * (Types.type_expr * Types.type_expr) list
| Modules_not_allowed
| Cannot_infer_signature
| Not_a_packed_module of Types.type_expr
| Recursive_local_constraint of (Types.type_expr * Types.type_expr) list
| Unexpected_existential
| Invalid_interval
| Invalid_for_loop_index
| No_value_clauses
| Exception_pattern_below_toplevel
| Inlined_record_escape
| Inlined_record_expected
| Unrefuted_pattern of Typedtree.pattern
| Invalid_extension_constructor_payload
| Not_an_extension_constructor
| Literal_overflow of string
| Unknown_literal of string * char
| Illegal_letrec_pat
| Illegal_letrec_expr
| Illegal_class_expr
| Empty_pattern
exception Error of Location.t * Env.t * error
exception Error_forward of Location.error
val report_error : Env.t -> Format.formatter -> error -> unit
val type_open : ( ?used_slot:bool ref -> Asttypes.override_flag -> Env.t -> Location.t -> Longident.t Asttypes.loc -> Path.t * Env.t ) ref
val check_recursive_bindings : Env.t -> Typedtree.value_binding list -> unit
val check_recursive_class_bindings : Env.t -> Ident.t list -> Typedtree.class_expr list -> unit