猫を使って、これを行うにはより良い/より慣用的な方法がありますか? class Foo
class Bar extends Foo
val eithertBar = EitherT.apply(SomeMonad(Right[Whatever, Bar](new Bar)))
val eithertFoo = EitherT[SomeMonad, Whatever, Foo].apply(
私はモナド変換器UlffTを次のように定義しました。 私はHalogenで働いているが、これはHalogen -questionではありません - 私はちょうどコンテキストを提供しています。 UlffTは、Affに積み重ねられ、HalogenMで使用されます。 newtype UlffT m a = UlffT (ExceptT Error (ReaderT Env m) a)
unUlffT
は、私が試したとき: foos <- (return $ map (encode .> cs .> jsonToFoo body) `catch` r400
は、私は、次のタイプのエラーを得た: /path/to/File.hs:47:78: error:
• Couldn't match type ‘(->) e0’ with ‘IO’
arising from a f