Module Jkind0.Const
type 'd t = 'd Types.jkind_const_descval of_path : Path.t -> Types.jkind_const_desc_lrThis returns true iff both kinds have no with-bounds and they are shallowly 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.
Note that this function IS NOT SEMANTIC EQUALITY - in particular it does not expand kind aliases, so it may return false for semantically equal kinds. That's fine for the places where it is used (printing and a memo table), but be aware of this if adding new uses.
include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t
type (_, _, 'd) sided = 'd tval disallow_right :
('a, 'b, 'l * 'r) sided ->
('a, 'b, 'l * Allowance.disallowed) sidedDisallows on the right.
val disallow_left :
('a, 'b, 'l * 'r) sided ->
('a, 'b, Allowance.disallowed * 'r) sidedDisallows a the left.
val allow_right :
('a, 'b, 'l * Allowance.allowed) sided ->
('a, 'b, 'l * 'r) sidedGeneralizes a right-hand-side allowed to be any allowance.
val allow_left :
('a, 'b, Allowance.allowed * 'r) sided ->
('a, 'b, 'l * 'r) sidedGeneralizes a left-hand-side allowed to be any allowance.
module Builtin : sig ... end