Дополнение к числам Пеано на уровне типа - PullRequest
0 голосов
/ 23 мая 2018

Я определил типы для чисел Пеано

class Plus (n :: T) (m :: T) (r :: T) | r n -> m
instance Plus 'Zero m m
instance Plus n m r => Plus ('Succ n) m ('Succ r)

Теперь я обнаружил, что у меня есть два ограничения Plus a b c и Plus c d e.

Как определить операцию сложения на моемкласс такой, что компилятор может получить Plus a (b + d) e?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...