Module Ikind
val type_declaration_ikind_gated :
env:Env.t option ->
path:Path.t ->
Types.type_ikindval type_declaration_ikind_of_jkind :
env:Env.t option ->
params:Types.type_expr list ->
Types.jkind_l ->
Types.type_ikindval sub_jkind_l :
?allow_any_crossing:bool ->
?origin:string ->
type_equal:(Types.type_expr -> Types.type_expr -> bool) ->
context:Jkind.jkind_context ->
Env.t ->
Types.jkind_l ->
Types.jkind_l ->
(unit, Jkind.Violation.t) resultval crossing_of_jkind :
context:Jkind.jkind_context ->
Env.t ->
('l * 'r) Types.jkind ->
Mode.Crossing.tval crossing_of_type : Env.t -> Types.type_expr -> Mode.Crossing.tval instance_poly_for_jkind' :
(Types.type_expr list -> Types.type_expr -> Types.type_expr) reftype sub_or_intersect = Jkind.sub_or_intersectval sub_or_intersect :
?origin:string ->
type_equal:(Types.type_expr -> Types.type_expr -> bool) ->
context:Jkind.jkind_context ->
Env.t ->
(Allowance.allowed * 'r1) Types.jkind ->
('l2 * Allowance.allowed) Types.jkind ->
sub_or_intersectval sub_or_error :
?origin:string ->
type_equal:(Types.type_expr -> Types.type_expr -> bool) ->
context:Jkind.jkind_context ->
Env.t ->
(Allowance.allowed * 'r1) Types.jkind ->
('l2 * Allowance.allowed) Types.jkind ->
(unit, Jkind.Violation.t) resultval substitute_decl_ikind_with_lookup :
lookup_type:(Path.t -> Subst.Ikind_substitution.type_lookup_result) ->
lookup_jkind:(Path.t -> Subst.Ikind_substitution.jkind_lookup_result) ->
Types.type_ikind ->
Types.type_ikindApply path substitutions to a constructor ikind.