[Haskell-cafe] Re: Monad transformers
max-appolo at mail.ru
Sun May 8 14:19:28 EDT 2005
On Sun, 8 May 2005 18:34:37 +0200, Tomasz Zielonka <tomasz.zielonka at gmail.com> said:
> On Sun, May 08, 2005 at 07:54:43PM +0400, Max Vasin wrote:
>> Suppose we have functions
>> f :: ReaderT env monad1 rtype g :: Reader env rtype
>> and we need to call g from f.
>> Currently I write something like
>> f = do env <- ask let r = runReader g env doSmth r
>> I don't like doing it this way (I need to get environment and
>> explicitly pass it). Is there another way to get things done?
> How about:
> toReaderT :: (Monad m) => Reader r a -> ReaderT r m a
> toReaderT (Reader f) = ReaderT (return . f)
More information about the Haskell-Cafe