Module Typedecl_variance
val variance_of_params :
(Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list ->
Typedecl_variance.surface_variance listtype prop = Types.Variance.t listtype req = Typedecl_variance.surface_variance listval property :
(Types.Variance.t list, Typedecl_variance.req) Typedecl_properties.propertytype variance_variable_context = | Type_declaration of {id : Ident.t;decl : Types.type_declaration;unboxed_version : bool;
}| Gadt_constructor of Types.constructor_declaration| Extension_constructor of Ident.t * Types.extension_constructor
type variance_error = | Variance_not_satisfied of int| Variance_variable_error of {error : Typedecl_variance.variance_variable_error;context : Typedecl_variance.variance_variable_context;variable : Types.type_expr;
}
type error = | Bad_variance of Typedecl_variance.variance_error * Typedecl_variance.surface_variance * Typedecl_variance.surface_variance| Varying_anonymous
exception Error of Location.t * Typedecl_variance.errorval check_variance_extension :
Env.t ->
Types.type_declaration ->
Typedtree.extension_constructor ->
(Typedecl_variance.req * Location.t) ->
unitval compute_decl :
Env.t ->
check:(Ident.t * bool) option ->
Types.type_declaration ->
Typedecl_variance.req ->
Types.Variance.t listval update_decls :
Env.t ->
Parsetree.type_declaration list ->
(Ident.t * Types.type_declaration) list ->
(Ident.t * Types.type_declaration) listval 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