| Safe Haskell | Safe |
|---|---|
| Language | Haskell98 |
Control.Monad.Reader.Extended
Description
This module provides a generic way to combine multiple MonadReader contexts into a single one.
Example
{-# LANGUAGE TupleSections #-}
f :: (MonadReader r m, Has A r, Has B r) => m ()
f = do
(a :: A) <- ask
(b :: B) <- ask
doSomething a b
main = let a = makeA :: A
b = makeB :: B
in flip runReaderT (a, ()) . withReaderT (b,) $ f- class Has a t where
- get :: t -> a
- ask :: (MonadReader r m, Has a r) => m a
- asks :: (MonadReader r m, Has a r) => (a -> b) -> m b
Documentation
class Has a t where
Methods
get :: t -> a
Instances
| Has' (Embedded a t HFalse) a t => Has a t | This instance means |
ask :: (MonadReader r m, Has a r) => m a
Replacement for ask.
asks :: (MonadReader r m, Has a r) => (a -> b) -> m b
Replacement for asks.