この質問を読みました。受け入れられた回答の引用は次のとおりです。
このインスタンスはベース 4.3.xx で追加され、ghc 7 に付属しています。一方、
Either
インスタンスを直接使用Either
することも、失敗する可能性のあるものを表すために使用している場合は、ErrorT
モナド トランスフォーマーを使用する必要があります。
私はEither
このようなものに使いたい:
> (Left "bad thing happened") >>= \x -> Right (x ++ " ...")
Left "bad thing happened"
そのため、計算の一部が失敗した場合、その部分Left
が返されます。
実際の質問は、モナドErrorT
の代わりにモナド変換子を使用する必要があるのはなぜEither
ですか? 私は Haskell の初心者であり、モナド トランスフォーマーが少し怖いです。特に、モナド トランスフォーマー内で既にコードを書いている場合はなおさらです。