Safe Haskell | None |
---|---|
Language | Haskell2010 |
Control.Monad.HReader
- newtype HReaderT els m a = HReaderT {
- unHReaderT :: ReaderT (HSet els) m a
- runHReaderT :: HSet els -> HReaderT els m a -> m a
- subHSetHReaderT :: (Monad m, Applicative m, SubHSettable els subels) => HReaderT subels m a -> HReaderT els m a
- narrowHReaderT :: (Monad m, Applicative m, SubHSettable els subels) => proxy subels -> HReaderT subels m a -> HReaderT els m a
- module Control.Monad.HReader.Class
Documentation
Constructors
HReaderT | |
Fields
|
Instances
MonadBase b m => MonadBase b (HReaderT els m) # | |
MonadBaseControl b m => MonadBaseControl b (HReaderT els m) # | |
MonadError e m => MonadError e (HReaderT els m) # | |
MonadReader r m => MonadReader r (HReaderT els m) # | |
MonadState s m => MonadState s (HReaderT els m) # | |
MonadWriter w m => MonadWriter w (HReaderT els m) # | |
MFunctor (HReaderT els) # | |
MMonad (HReaderT els) # | |
MonadTrans (HReaderT els) # | |
MonadTransControl (HReaderT els) # | |
Monad m => Monad (HReaderT els m) # | |
Functor m => Functor (HReaderT els m) # | |
Applicative m => Applicative (HReaderT els m) # | |
MonadIO m => MonadIO (HReaderT els m) # | |
MonadThrow m => MonadThrow (HReaderT els m) # | |
MonadCatch m => MonadCatch (HReaderT els m) # | |
MonadMask m => MonadMask (HReaderT els m) # | |
MonadCont m => MonadCont (HReaderT els m) # | |
(Monad m, Applicative m) => MonadHReader (HReaderT els m) # | |
Generic (HReaderT els m a) # | |
type StT (HReaderT els) a # | |
type MHRElements (HReaderT els m) # | |
type StM (HReaderT els m) a # | |
type Rep (HReaderT els m a) # | |
runHReaderT :: HSet els -> HReaderT els m a -> m a #
subHSetHReaderT :: (Monad m, Applicative m, SubHSettable els subels) => HReaderT subels m a -> HReaderT els m a #
Run a local reader with a subset of HSet elements.
narrowHReaderT :: (Monad m, Applicative m, SubHSettable els subels) => proxy subels -> HReaderT subels m a -> HReaderT els m a #
Convenient variant of subHSetHReaderT
with proxy type to make it
posible to run nested HReaderT in place without complex type
declarations, e.g.
narrowHReaderT (Proxy :: Proxy '[String, Int]) $ do doThingsWithString doThingsWithInt doThingsWithOtherStuff -- < this will not compile
module Control.Monad.HReader.Class