| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Control.Monad.Supply
Description
Support for computations which consume values from a (possibly infinite) supply. See http://www.haskell.org/haskellwiki/New_monads/MonadSupply for details.
- class Monad m => MonadSupply s m | m -> s where
- data SupplyT s m a
- data Supply s a
- evalSupplyT :: Monad m => SupplyT s m a -> [s] -> m a
- evalSupply :: Supply s a -> [s] -> a
- runSupplyT :: Monad m => SupplyT s m a -> [s] -> m (a, [s])
- runSupply :: Supply s a -> [s] -> (a, [s])
- supplies :: MonadSupply s m => Int -> m [s]
Documentation
class Monad m => MonadSupply s m | m -> s where Source #
Instances
| MonadSupply s (Supply s) Source # | |
| (Monoid w, MonadSupply s m) => MonadSupply s (WriterT w m) Source # | |
| MonadSupply s m => MonadSupply s (StateT st m) Source # | |
| MonadSupply s m => MonadSupply s (ExceptT e m) Source # | |
| Monad m => MonadSupply s (SupplyT s m) Source # | |
| MonadSupply s m => MonadSupply s (ReaderT * r m) Source # | |
Supply monad transformer.
Instances
Supply monad.
evalSupplyT :: Monad m => SupplyT s m a -> [s] -> m a Source #
evalSupply :: Supply s a -> [s] -> a Source #
runSupplyT :: Monad m => SupplyT s m a -> [s] -> m (a, [s]) Source #
supplies :: MonadSupply s m => Int -> m [s] Source #
Get n supplies.