a b) (ISO b a) => MyClass a b where
https://github.com/rampion/constraint-unions#the--class
Почему не сделать instance (ISO b a) => ISO a b и instance (ISO a b) => MyClass a b
там выше грязный хак, но вообще так не надо делать, потому что когда результат компиляции одного модуля зависит от наличия импортов в десятом, — это плохо
первая строчка рекурсивно в себя уходит
Буквально любое применение type classes
гхц кеширует констрейнты, так что оно к зацикливанию не должно приводить
Обсуждают сегодня