-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generalization of MonadReader and ReaderT -- @package hreader @version 0.1.0 module Control.Monad.HReader.Class -- | Monad which is a reader of HSet (or just can construct it). class (Monad m, Applicative m) => MonadHReader m where type family HSetElements m :: [*] askHSet :: MonadHReader m => m (HSet (HSetElements m)) -- | Ask arbitrary element of hset inside HReader haskM :: (MonadHReader m, HGetable (HSetElements m) e) => m e -- | Ask arbitrary labeled element of hset in HReader haskLabeledM :: (MonadHReader m, HGetable (HSetElements m) (Labeled label e)) => proxy label -> m e instance (MonadHReader m, Monoid w) => MonadHReader (RWST r w s m) instance (MonadHReader m, Monoid w) => MonadHReader (RWST r w s m) instance (MonadHReader m, Monoid w) => MonadHReader (WriterT w m) instance (MonadHReader m, Monoid w) => MonadHReader (WriterT w m) instance MonadHReader m => MonadHReader (StateT s m) instance MonadHReader m => MonadHReader (StateT s m) instance MonadHReader m => MonadHReader (ExceptT e m) instance MonadHReader m => MonadHReader (ListT m) instance MonadHReader m => MonadHReader (ContT r m) instance MonadHReader m => MonadHReader (ReaderT r m) module Control.Monad.HReader newtype HReaderT els m a HReaderT :: ReaderT (HSet els) m a -> HReaderT els m a unHReaderT :: HReaderT els m a -> ReaderT (HSet els) m a runHReaderT :: HSet els -> HReaderT els m a -> m a instance Typeable HReaderT instance MMonad (HReaderT els) instance MFunctor (HReaderT els) instance Functor m => Functor (HReaderT els m) instance Applicative m => Applicative (HReaderT els m) instance Monad m => Monad (HReaderT els m) instance MonadIO m => MonadIO (HReaderT els m) instance MonadError e m => MonadError e (HReaderT els m) instance MonadCont m => MonadCont (HReaderT els m) instance MonadWriter w m => MonadWriter w (HReaderT els m) instance MonadState s m => MonadState s (HReaderT els m) instance MonadBase b m => MonadBase b (HReaderT els m) instance MonadThrow m => MonadThrow (HReaderT els m) instance MonadCatch m => MonadCatch (HReaderT els m) instance Generic (HReaderT els m a) instance Datatype D1HReaderT instance Constructor C1_0HReaderT instance Selector S1_0_0HReaderT instance MonadBaseControl b m => MonadBaseControl b (HReaderT els m) instance MonadTransControl (HReaderT els) instance (Monad m, Applicative m) => MonadHReader (HReaderT els m) instance MonadReader r m => MonadReader r (HReaderT els m) instance MonadTrans (HReaderT els)