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