0

ペアノ数の型を定義しました

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)

今、私は 2 つの制約Plus a b cとを持っていることに気付きPlus c d eました。

コンパイラが派生できるように、クラスに加算演算を定義するにはどうすればよいPlus a (b + d) eですか?

4

0 に答える 0