[Haskell-cafe] How do I lift Control.Monad.Reader.local?
dsf at seereason.com
Thu Oct 31 22:54:06 UTC 2013
Hmm, I'm still having trouble implementing local for the MonadReader
instance of M.
On Thu, Oct 31, 2013 at 11:59 AM, Nickolay Kudasov <
nickolay.kudasov at gmail.com> wrote:
> 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:)
> 2013/10/31 David Fox <dsf at seereason.com>
>> 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 at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe