Typecoreval mk_expected : ?explanation:type_forcing_context -> Types.type_expr -> type_expectedval is_nonexpansive : Typedtree.expression -> boolmodule Datatype_kind : sig ... endtype wrong_name = {type_path : Path.t; | 
kind : Datatype_kind.t; | 
name : string Asttypes.loc; | 
valid_names : string list; | 
}type existential_restriction = val type_binding : Env.t -> Asttypes.rec_flag -> Parsetree.value_binding list -> Typedtree.value_binding list * Env.tval type_let : existential_restriction -> Env.t -> Asttypes.rec_flag -> Parsetree.value_binding list -> Typedtree.value_binding list * Env.tval type_expression : Env.t -> Parsetree.expression -> Typedtree.expressionval type_class_arg_pattern : string -> Env.t -> Env.t -> Asttypes.arg_label -> Parsetree.pattern -> Typedtree.pattern * (Ident.t * Ident.t * Types.type_expr) list * Env.t * Env.tval type_self_pattern : string -> Types.type_expr -> Env.t -> Env.t -> Env.t -> Parsetree.pattern -> Typedtree.pattern * (Ident.t * Types.type_expr) Types.Meths.t ref * (Ident.t * Asttypes.mutable_flag * Asttypes.virtual_flag * Types.type_expr) Types.Vars.t ref * Env.t * Env.t * Env.tval check_partial : ?lev:int -> Env.t -> Types.type_expr -> Location.t -> Typedtree.value Typedtree.case list -> Typedtree.partialval type_expect : ?in_function:(Location.t * Types.type_expr) -> Env.t -> Parsetree.expression -> type_expected -> Typedtree.expressionval type_exp : Env.t -> Parsetree.expression -> Typedtree.expressionval type_approx : Env.t -> Parsetree.expression -> Types.type_exprval type_argument : Env.t -> Parsetree.expression -> Types.type_expr -> Types.type_expr -> Typedtree.expressionval option_some : Env.t -> Typedtree.expression -> Typedtree.expressionval option_none : Env.t -> Types.type_expr -> Location.t -> Typedtree.expressionval extract_option_type : Env.t -> Types.type_expr -> Types.type_exprval generalizable : int -> Types.type_expr -> boolval name_pattern : string -> Typedtree.pattern list -> Ident.tval name_cases : string -> Typedtree.value Typedtree.case list -> Ident.tval self_coercion : (Path.t * Location.t list ref) list reftype error = | Constructor_arity_mismatch of Longident.t * int * int | 
| Label_mismatch of Longident.t * Ctype.Unification_trace.t | 
| Pattern_type_clash : Ctype.Unification_trace.t * _ Typedtree.pattern_desc option -> error | 
| Or_pattern_type_clash of Ident.t * Ctype.Unification_trace.t | 
| Multiply_bound_variable of string | 
| Orpat_vars of Ident.t * Ident.t list | 
| Expr_type_clash of Ctype.Unification_trace.t * type_forcing_context option * Typedtree.expression_desc option | 
| Apply_non_function of Types.type_expr | 
| Apply_wrong_label of Asttypes.arg_label * Types.type_expr * bool | 
| Label_multiply_defined of string | 
| Label_missing of Ident.t list | 
| Label_not_mutable of Longident.t | 
| Wrong_name of string * type_expected * wrong_name | 
| Name_type_mismatch of Datatype_kind.t * 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 | 
| Private_constructor of Types.constructor_description * Types.type_expr | 
| Unbound_instance_variable of string * string list | 
| Instance_variable_not_mutable of string | 
| Not_subtype of Ctype.Unification_trace.t * Ctype.Unification_trace.t | 
| Outside_class | 
| Value_multiply_overridden of string | 
| Coercion_failure of Types.type_expr * Types.type_expr * Ctype.Unification_trace.t * 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 | 
| Not_a_variant_type of Longident.t | 
| Incoherent_label_order | 
| Less_general of string * Ctype.Unification_trace.t | 
| Modules_not_allowed | 
| Cannot_infer_signature | 
| Not_a_packed_module of Types.type_expr | 
| Unexpected_existential of existential_restriction * string * string list | 
| Invalid_interval | 
| Invalid_for_loop_index | 
| No_value_clauses | 
| Exception_pattern_disallowed | 
| Mixed_value_and_exception_patterns_under_guard | 
| 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 | 
| Letop_type_clash of string * Ctype.Unification_trace.t | 
| Andop_type_clash of string * Ctype.Unification_trace.t | 
| Bindings_type_clash of Ctype.Unification_trace.t | 
exception Error of Location.t * Env.t * errorexception Error_forward of Location.errorval report_error : loc:Location.t -> Env.t -> error -> Location.errorval type_module : (Env.t -> Parsetree.module_expr -> Typedtree.module_expr) refval type_open : (?used_slot:bool ref -> Asttypes.override_flag -> Env.t -> Location.t -> Longident.t Asttypes.loc -> Path.t * Env.t) refval type_open_decl : (?used_slot:bool ref -> Env.t -> Parsetree.open_declaration -> Typedtree.open_declaration * Types.signature * Env.t) refval type_object : (Env.t -> Location.t -> Parsetree.class_structure -> Typedtree.class_structure * Types.class_signature * string list) refval type_package : (Env.t -> Parsetree.module_expr -> Path.t -> Longident.t list -> Typedtree.module_expr * Types.type_expr list) refval create_package_type : Location.t -> Env.t -> (Longident.t * (Longident.t * Parsetree.core_type) list) -> Path.t * (Longident.t * Typedtree.core_type) list * Types.type_exprval constant : Parsetree.constant -> (Asttypes.constant, error) resultval check_recursive_bindings : Env.t -> Typedtree.value_binding list -> unitval check_recursive_class_bindings : Env.t -> Ident.t list -> Typedtree.class_expr list -> unit