t
Size: a a a
t
N
[
t
[
SP
SP
t
t
unique
не будет применим для всего остального, де-факто их нетЖК
type Truth = Enum () :: ConstraintКак сформулировать тип cmp, чтобы убедить компилятор, что в любом случае
data KBool = 'KTrue | 'KFalse
type family Default (flag :: KBool) (a :: k) (b :: k) :: k
type instance Default 'KTrue a _ = a
type instance Default 'KFalse _ b = b
cmp :: forall (flag :: KBool) a c
. (Default flag Truth (Eq a), c ~ Default flag Int a)
=> c -> c -> c
cmp x y = x == y
Eq c
?Dict
и a
получить констрейнт, а у самого мозгов не хватает.MK
() :: Constraint
использоватьЖК
MK
MK
ЖК
MK
YS