変換されたモナドがインスタンスである場合、モナド変換子をインスタンスにしたいと考えてMonadError
います。基本的に、トランスフォーマーが組み込みのトランスフォーマーと同じように動作するようにします。たとえば、次のMonadError
インスタンスがありますStateT
。
MonadError e m => MonadError e (StateT s m)
私はこれをやってみました:
instance MonadError e m => MonadError e (MyMonadT m)
しかし、GHC は決定不能なインスタンスについて不平を言い始めました。明らかに MTL ライブラリは決定不能なインスタンスを有効にするだけですが、それを回避する方法はありますか? それとも、この場合は問題なく問題ないのでしょうか?