Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- 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 Awaiter
s until all the patrons
terminate.
(<|>
) returns the first result.
Awaiter | |
|
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 #