Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | Merijn Verstraaten <merijn@inconsistent.nl> |
Safe Haskell | Safe-Inferred |
Control.Monad.Supply.Class
Description
See Control.Monad.Supply for documentation.
- class Monad m => MonadSupply s f m | m -> s, m -> f where
- demand :: MonadSupply s f m => m s
Documentation
class Monad m => MonadSupply s f m | m -> s, m -> f whereSource
The MonadSupply
class provides access to the functions needed to
construct supply-consuming computations in a monad transformer stack.
Methods
supply :: (s -> f a) -> m aSource
Supply a construction function with an s
value from the supply,
the f
in the function's type refers to the monad wrapped by SupplyT
.
provide :: (s -> a) -> m aSource
Provide a non-monadic construction function with an s
value from the
supply and automatically lift its result into the f
monad that
SupplyT
wraps.
Instances
MonadSupply s f m => MonadSupply s f (MaybeT m) | |
MonadSupply s f m => MonadSupply s f (ListT m) | |
MonadSupply s f m => MonadSupply s f (IdentityT m) | |
(Monoid w, MonadSupply s f m) => MonadSupply s f (WriterT w m) | |
(Monoid w, MonadSupply s f m) => MonadSupply s f (WriterT w m) | |
MonadSupply s f m => MonadSupply s f (StateT s m) | |
MonadSupply s f m => MonadSupply s f (StateT s m) | |
MonadSupply s f m => MonadSupply s f (ReaderT r m) | |
(Error e, MonadSupply s f m) => MonadSupply s f (ErrorT e m) | |
MonadSupply s f m => MonadSupply s f (ContT r m) | |
(Functor m, Monad m) => MonadSupply s m (SupplyT s m) | |
(Monoid w, MonadSupply s f m) => MonadSupply s f (RWST r w s m) | |
(Monoid w, MonadSupply s f m) => MonadSupply s f (RWST r w s m) |
demand :: MonadSupply s f m => m sSource
Demand an s
value from the supply.