| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.Drinkery.Awaiter
Synopsis
- newtype Awaiter s m a = Awaiter {
- runAwaiter :: m (Either (s -> Awaiter s m a) a)
- await :: Monad m => Awaiter s m s
- serving_ :: Monad m => [Awaiter s m a] -> Awaiter s m ()
- iterAwaiter :: Monad m => m s -> Awaiter s m a -> m a
- iterAwaiterT :: (Monad m, MonadTrans t, Monad (t m)) => t m s -> Awaiter s m a -> t m a
- lookAheadT :: (Monad m, MonadTrans t, Monoid r, Semigroup r, MonadSink (Tap r s) (t m)) => Awaiter s m a -> t m a
Documentation
newtype Awaiter s m a Source #
Awaiter s is a simple consumer of s. Unlike Sink, it can be
partially run.
serving distributes each input to a list of Awaiters until all the patrons
terminate.
(<|>) returns the first result.
Constructors
| Awaiter | |
Fields
| |
Instances
| MonadTrans (Awaiter s) Source # | |
Defined in Data.Drinkery.Awaiter | |
| Monad m => Monad (Awaiter s m) Source # | |
| Functor m => Functor (Awaiter s m) Source # | |
| Monad m => Applicative (Awaiter s m) Source # | |
Defined in Data.Drinkery.Awaiter | |
| MonadIO m => MonadIO (Awaiter s m) Source # | |
Defined in Data.Drinkery.Awaiter | |
| Monad m => Alternative (Awaiter s m) Source # | |
| Monad m => MonadPlus (Awaiter s m) Source # | |
iterAwaiter :: Monad m => m s -> Awaiter s m a -> m a Source #
iterAwaiterT :: (Monad m, MonadTrans t, Monad (t m)) => t m s -> Awaiter s m a -> t m a Source #
iterAwaiterT consume :: Awaiter s m a -> Sink s m a
lookAheadT :: (Monad m, MonadTrans t, Monoid r, Semigroup r, MonadSink (Tap r s) (t m)) => Awaiter s m a -> t m a Source #