haskell - Add a monad to the middle of a transformer stack -
i'm trying "semilift" (exceptt error io foo) (exceptt error (statet bar io) baz).
i've tried lift, fmap lift, , fmap return, , none work; there standard idiom here?
> import control.monad.except > import control.monad.state > data error > data foo > data bar > data baz > x = undefined :: exceptt error io foo > y = undefined :: (exceptt error (statet bar io) baz) -> > f = ??? -- i'm trying find. > :t y (f x) y (f x) ::
ignoring exceptt newtypes, have
io (either error foo) and want
statet bar io (either error foo) (i don't see want baz, i'm ignoring it.)
that lift. believe should able use
exceptt . lift . runexceptt as alec noted, can written using mapexceptt:
mapexceptt lift
Comments
Post a Comment