merlin-lib.ocaml_typing
Ocaml_typing.Typedecl_variance
merlin-lib.analysis
merlin-lib.commands
merlin-lib.config
merlin-lib.dot_protocol
merlin-lib.extend
merlin-lib.index_format
merlin-lib.kernel
merlin-lib.ocaml_compression
merlin-lib.ocaml_merlin_specific
merlin-lib.ocaml_parsing
merlin-lib.ocaml_preprocess
merlin-lib.ocaml_utils
merlin-lib.os_ipc
merlin-lib.query_commands
merlin-lib.query_protocol
merlin-lib.sherlodoc
merlin-lib.utils
type surface_variance = bool * bool * bool
val variance_of_params : (Ocaml_parsing.Parsetree.core_type * (Ocaml_parsing.Asttypes.variance * Ocaml_parsing.Asttypes.injectivity)) list -> surface_variance list
val variance_of_sdecl : Ocaml_parsing.Parsetree.type_declaration -> surface_variance list
type prop = Types.Variance.t list
type req = surface_variance list
val property : (Types.Variance.t list, req) Typedecl_properties.property
type variance_variable_context =
| Type_declaration of Ident.t * Types.type_declaration
| Gadt_constructor of Types.constructor_declaration
| Extension_constructor of Ident.t * Types.extension_constructor
type variance_variable_error =
| No_variable
| Variance_not_reflected
| Variance_not_deducible
type variance_error =
| Variance_not_satisfied of int
| Variance_variable_error of {
error : variance_variable_error;
context : variance_variable_context;
variable : Types.type_expr;
}
type error =
| Bad_variance of variance_error * surface_variance * surface_variance
| Varying_anonymous
exception Error of Ocaml_parsing.Location.t * error
val check_variance_extension : Env.t -> Types.type_declaration -> Typedtree.extension_constructor -> (req * Ocaml_parsing.Location.t) -> unit
val compute_decl : Env.t -> check:Ident.t option -> Types.type_declaration -> req -> prop
val update_decls : Env.t -> Ocaml_parsing.Parsetree.type_declaration list -> (Ident.t * Types.type_declaration) list -> (Ident.t * Types.type_declaration) list
val update_class_decls : Env.t -> (Ident.t * Typedecl_properties.decl * Types.class_declaration * Types.class_type_declaration * 'a Typedtree.class_infos) list -> (Typedecl_properties.decl * Types.class_declaration * Types.class_type_declaration) list