Error

Error エフェクトは、Eval エフェクトと Either エフェクトを合わせたもので、「左」側を Either[Throwable, F] としている。その狙いは、例外ないしは失敗を表す任意の型どちらかを使って失敗できる計算を表現することだ。できることは、

他にも便利なコンビネーターが利用できる。

Error エフェクトを実行すると Either[Error, A] が返ってくる。ここで ErrorEither[Throwable, Failure] のエイリアスだ。

Error オブジェクトはこのエフェクトを StringFailure 型として実装してはいるが、自分たちの失敗データ型を作り、Error[MyFailureDatatype] トレイトを実装することを推奨する。