[Haskell-cafe] Monad transformers
Tomasz Zielonka
tomasz.zielonka at gmail.com
Sun May 8 12:34:37 EDT 2005
On Sun, May 08, 2005 at 07:54:43PM +0400, Max Vasin wrote:
> Hello!
>
> 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)
Best regards
Tomasz
More information about the Haskell-Cafe
mailing list