1
Future
で失敗する可能性のある長いメソッドKleisli
を組み合わせたいと思っています。 Kleisliにエフェクトを積み重ねるコードを次に示します。スカラズに既存のコンビネータがあるか?Kleisli [Future、Context、 /]からKleisli [どちらかのT、Context、...]
type FutureEitherT[A] = EitherT[Future, String, A]
def toKleisliEitherTFromDisjunction[A](f: Kleisli[Future, Context,String \/ A]) =
Kleisli[FutureEitherT, Context, A] { ctx => EitherT(f(ctx)) }
私は成功f.liftMK[FutureEitherT]
せずに試してみたが、残念ながら、Kleisli
型コンストラクタにおける第三のタイプはまだEither
です。