EitherのMonadTrans相当のものを使いたいときに、何を使うべきか毎回忘れてしまうので、メモしておきます。
下記の理由により現在は、eitherのEitherTまたはtransformersのExceptTではなく、mtlのExceptTを使うべきです。
- eitherのEitherTはDeprecated
- transformersのExceptTは
MonadExcept e m | m -> s
相当のものがないのでGenralizedNewtypeDeriving
すると効力を無くす(deriving MonadExcept E
できない) - mtlのExceptTには
MonadError e m | m -> e
がある
この記事はこちらから修正リクエストを送ることができます。
mtlのExceptTを使うべき。EitherTでもtransformersのExceptTでもなく。 - github
ゴミ箱ボタンの左にある、鉛筆ボタンを押してね!