
31 Oct
2013
31 Oct
'13
2:59 p.m.
Hi David,
I believe the easiest way to do what you want is to use MonadReader class
instead of explicit t (Reader [String] a):
push' :: MonadReader [String] m => String -> m a -> m apush' s = local (s:)
Best,
Nick
2013/10/31 David Fox
I can write a stack push function in the reader monad like so:
import Control.Monad.Reader
push :: String -> Reader [String] a -> Reader [String] a push s action = local (s :) action
How can I write a push that works inside a monad transformer?
push' :: MonadTrans t => String -> t (Reader [String]) a -> t (Reader [String]) a push' s action = ???
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe