Только смысла в этом не очень, это только проверка, потом этот факт использовать для чего-то не выйдет, a :~: b -> Void не выведется
а там не совсем "~" вроде бы
Да, там с лучшим инференсом: type (==) :: k -> k -> Bool type family a == b where f a == g b = f == g && a == b a == a = 'True _ == _ = 'False
Обсуждают сегодня