Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- newtype Tap r s m = Tap {}
- consTap :: (Monoid r, Applicative m) => s -> Tap r s m -> Tap r s m
- orderTap :: Monoid r => r -> Tap r s m -> Tap r s m
- makeTap :: (Monoid r, Monad m) => m (Tap r s m) -> Tap r s m
- newtype Barman r s m a = Barman {}
- yield :: (Monoid r, Applicative m) => s -> Barman r s m ()
- accept :: Monoid r => Barman r s m r
- inexhaustible :: Barman r s m x -> Tap r s m
- runBarman :: (Monoid r, Applicative m, Alternative f) => Barman r (f s) m a -> Tap r (f s) m
- runBarman' :: (Applicative m, Alternative f) => Barman () (f s) m a -> Tap () (f s) m
- pour :: (Monoid r, Applicative f, Applicative m) => s -> Barman r (f s) m ()
- newtype Sommelier r m s = Sommelier {
- unSommelier :: forall x. (s -> Tap r x m -> Tap r x m) -> Tap r x m -> Tap r x m
- taste :: Foldable f => f s -> Sommelier r m s
- inquire :: Monoid r => Sommelier r m r
- runSommelier :: (Monoid r, Applicative m, Alternative f) => Sommelier r m s -> Tap r (f s) m
- runSommelier' :: (Applicative m, Alternative f) => Sommelier () m s -> Tap () (f s) m
- drink :: (Monoid r, MonadDrunk (Tap r s) m) => m s
- leftover :: (Monoid r, MonadDrunk (Tap r s) m) => s -> m ()
- request :: (Monoid r, MonadDrunk (Tap r s) m) => r -> m ()
- smell :: (Monoid r, MonadDrunk (Tap r s) m) => m s
- eof :: (Applicative m, Alternative f) => Tap r (f a) m
Tap
is a non-monadic, endless producer of Tap
m r ss
. It takes a request
r
.
CloseRequest r => Closable (Tap r s) Source # | |
consTap :: (Monoid r, Applicative m) => s -> Tap r s m -> Tap r s m Source #
Prepend a new element, delaying requests.
Barman
yield :: (Monoid r, Applicative m) => s -> Barman r s m () Source #
Produce one element. Orders are put off.
inexhaustible :: Barman r s m x -> Tap r s m Source #
runBarman :: (Monoid r, Applicative m, Alternative f) => Barman r (f s) m a -> Tap r (f s) m Source #
runBarman' :: (Applicative m, Alternative f) => Barman () (f s) m a -> Tap () (f s) m Source #
Specialised runBarman
pour :: (Monoid r, Applicative f, Applicative m) => s -> Barman r (f s) m () Source #
Sommelier
newtype Sommelier r m s Source #
Backtracking producer a.k.a. "ListT done right".
MonadDrunk t m => MonadDrunk t (Sommelier p m) Source # | |
MonadTrans (Sommelier r) Source # | |
Monad (Sommelier r m) Source # | |
Functor (Sommelier r m) Source # | |
Applicative (Sommelier r m) Source # | |
MonadIO m => MonadIO (Sommelier r m) Source # | |
Alternative (Sommelier r m) Source # | |
MonadPlus (Sommelier r m) Source # | |
taste :: Foldable f => f s -> Sommelier r m s Source #
Take all the elements in a Foldable
container.
runSommelier :: (Monoid r, Applicative m, Alternative f) => Sommelier r m s -> Tap r (f s) m Source #
runSommelier' :: (Applicative m, Alternative f) => Sommelier () m s -> Tap () (f s) m Source #
Specialised runSommelier
Drinker
End of stream
eof :: (Applicative m, Alternative f) => Tap r (f a) m Source #
End of stream