hreader-1.1.1: Generalization of MonadReader and ReaderT using hset
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.HReader.Class

Synopsis

Documentation

class (Monad m, Applicative m) => MonadHReader m where Source #

Monad which is a reader of HSet (or just can construct it).

Associated Types

type MHRElements m :: [*] Source #

Methods

askHSet :: m (HSet (MHRElements m)) Source #

hlocal :: (HSet (MHRElements m) -> HSet (MHRElements m)) -> m a -> m a Source #

Instances

Instances details
MonadHReader m => MonadHReader (ListT m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (ListT m) :: [Type] Source #

Methods

askHSet :: ListT m (HSet (MHRElements (ListT m))) Source #

hlocal :: (HSet (MHRElements (ListT m)) -> HSet (MHRElements (ListT m))) -> ListT m a -> ListT m a Source #

MonadHReader m => MonadHReader (MaybeT m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (MaybeT m) :: [Type] Source #

(Monad m, Applicative m) => MonadHReader (HReaderT els m) Source # 
Instance details

Defined in Control.Monad.HReader

Associated Types

type MHRElements (HReaderT els m) :: [Type] Source #

Methods

askHSet :: HReaderT els m (HSet (MHRElements (HReaderT els m))) Source #

hlocal :: (HSet (MHRElements (HReaderT els m)) -> HSet (MHRElements (HReaderT els m))) -> HReaderT els m a -> HReaderT els m a Source #

MonadHReader m => MonadHReader (ExceptT e m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (ExceptT e m) :: [Type] Source #

Methods

askHSet :: ExceptT e m (HSet (MHRElements (ExceptT e m))) Source #

hlocal :: (HSet (MHRElements (ExceptT e m)) -> HSet (MHRElements (ExceptT e m))) -> ExceptT e m a -> ExceptT e m a Source #

MonadHReader m => MonadHReader (IdentityT m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (IdentityT m) :: [Type] Source #

MonadHReader m => MonadHReader (ReaderT r m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (ReaderT r m) :: [Type] Source #

Methods

askHSet :: ReaderT r m (HSet (MHRElements (ReaderT r m))) Source #

hlocal :: (HSet (MHRElements (ReaderT r m)) -> HSet (MHRElements (ReaderT r m))) -> ReaderT r m a -> ReaderT r m a Source #

MonadHReader m => MonadHReader (StateT s m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (StateT s m) :: [Type] Source #

Methods

askHSet :: StateT s m (HSet (MHRElements (StateT s m))) Source #

hlocal :: (HSet (MHRElements (StateT s m)) -> HSet (MHRElements (StateT s m))) -> StateT s m a -> StateT s m a Source #

MonadHReader m => MonadHReader (StateT s m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (StateT s m) :: [Type] Source #

Methods

askHSet :: StateT s m (HSet (MHRElements (StateT s m))) Source #

hlocal :: (HSet (MHRElements (StateT s m)) -> HSet (MHRElements (StateT s m))) -> StateT s m a -> StateT s m a Source #

(MonadHReader m, Monoid w) => MonadHReader (WriterT w m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (WriterT w m) :: [Type] Source #

Methods

askHSet :: WriterT w m (HSet (MHRElements (WriterT w m))) Source #

hlocal :: (HSet (MHRElements (WriterT w m)) -> HSet (MHRElements (WriterT w m))) -> WriterT w m a -> WriterT w m a Source #

(MonadHReader m, Monoid w) => MonadHReader (WriterT w m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (WriterT w m) :: [Type] Source #

Methods

askHSet :: WriterT w m (HSet (MHRElements (WriterT w m))) Source #

hlocal :: (HSet (MHRElements (WriterT w m)) -> HSet (MHRElements (WriterT w m))) -> WriterT w m a -> WriterT w m a Source #

MonadHReader m => MonadHReader (ContT r m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (ContT r m) :: [Type] Source #

Methods

askHSet :: ContT r m (HSet (MHRElements (ContT r m))) Source #

hlocal :: (HSet (MHRElements (ContT r m)) -> HSet (MHRElements (ContT r m))) -> ContT r m a -> ContT r m a Source #

(MonadHReader m, Monoid w) => MonadHReader (RWST r w s m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (RWST r w s m) :: [Type] Source #

Methods

askHSet :: RWST r w s m (HSet (MHRElements (RWST r w s m))) Source #

hlocal :: (HSet (MHRElements (RWST r w s m)) -> HSet (MHRElements (RWST r w s m))) -> RWST r w s m a -> RWST r w s m a Source #

(MonadHReader m, Monoid w) => MonadHReader (RWST r w s m) Source # 
Instance details

Defined in Control.Monad.HReader.Class

Associated Types

type MHRElements (RWST r w s m) :: [Type] Source #

Methods

askHSet :: RWST r w s m (HSet (MHRElements (RWST r w s m))) Source #

hlocal :: (HSet (MHRElements (RWST r w s m)) -> HSet (MHRElements (RWST r w s m))) -> RWST r w s m a -> RWST r w s m a Source #

type family MHRElemsConstraint (m :: * -> *) (els :: [*]) :: Constraint where ... Source #

Easy generate constraint like (HGettable (MHRElements m) Int, HGettable (MHRElements m) Bool) from type list [Int, Bool]. Usable to reuse type lists for constraints and concrete HSet.

hask :: (MonadHReader m, HGettable (MHRElements m) e) => m e Source #

Ask arbitrary element of hset inside HReader

haskTagged :: (MonadHReader m, HGettable (MHRElements m) (Tagged tag e)) => proxy tag -> m e Source #

Ask arbitrary labeled element of hset in HReader