5

変換されたモナドがインスタンスである場合、モナド変換子をインスタンスにしたいと考えてMonadErrorいます。基本的に、トランスフォーマーが組み込みのトランスフォーマーと同じように動作するようにします。たとえば、次のMonadErrorインスタンスがありますStateT

MonadError e m => MonadError e (StateT s m)

私はこれをやってみました:

instance MonadError e m => MonadError e (MyMonadT m)

しかし、GHC は決定不能なインスタンスについて不平を言い始めました。明らかに MTL ライブラリは決定不能なインスタンスを有効にするだけですが、それを回避する方法はありますか? それとも、この場合は問題なく問題ないのでしょうか?

4

1 に答える 1