Module Jkind.Const
Constant jkinds are used for user-written annotations. They are not actually constant, though: they might contain variables in with-types. The "constant" refers to the fact that there are no sort variables here. The existence of with-types means, though, that we still need the allowance machinery here.
include Ocaml_typing.Allowance.Allow_disallow
with type (_, _, 'd) sided = 'd Ocaml_typing.Jkind.Const.t
type (_, _, 'd) sided = 'd Ocaml_typing.Jkind.Const.tval disallow_right :
('a, 'b, 'l * 'r) Ocaml_typing.Jkind.Const.sided ->
('a, 'b, 'l * Ocaml_typing.Allowance.disallowed)
Ocaml_typing.Jkind.Const.sidedDisallows on the right.
val disallow_left :
('a, 'b, 'l * 'r) Ocaml_typing.Jkind.Const.sided ->
('a, 'b, Ocaml_typing.Allowance.disallowed * 'r)
Ocaml_typing.Jkind.Const.sidedDisallows a the left.
val allow_right :
('a, 'b, 'l * Ocaml_typing.Allowance.allowed) Ocaml_typing.Jkind.Const.sided ->
('a, 'b, 'l * 'r) Ocaml_typing.Jkind.Const.sidedGeneralizes a right-hand-side allowed to be any allowance.
val allow_left :
('a, 'b, Ocaml_typing.Allowance.allowed * 'r) Ocaml_typing.Jkind.Const.sided ->
('a, 'b, 'l * 'r) Ocaml_typing.Jkind.Const.sidedGeneralizes a left-hand-side allowed to be any allowance.
val to_out_jkind_const :
'd Ocaml_typing.Jkind.Const.t ->
Ocaml_typing.Outcometree.out_jkind_constval no_with_bounds_and_equal :
'd1 Ocaml_typing.Jkind.Const.t ->
'd2 Ocaml_typing.Jkind.Const.t ->
boolThis returns true iff both types have no with-bounds and they are equal. Normally, we want an equality check to happen only on values that are allowed on both the left and the right. But a type with no with-bounds is allowed on the left and the right, so we test for that condition first before doing the proper equality check.
module Builtin : sig ... end