| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Bio.Streaming.Furrow
Documentation
A tiny stream that can be afforded to incrementally.
The streaming abstraction works fine if multiple sources feed into a
small constant number of functions, but fails if there is an
unpredictable number of such consumers. In that case, evertStream
should be used to turn each consumer into a Furrow. It's then
possible to incrementally afford stuff to each Furrow in a
collection in a simple loop. To get the final value, drain each
Furrow.
Instances
| MonadTrans (Furrow a) Source # | |
| MMonad (Furrow a) Source # | |
| MFunctor (Furrow a :: (Type -> Type) -> Type -> Type) Source # | |
| Monad m => Monad (Furrow a m) Source # | |
| Monad m => Functor (Furrow a m) Source # | |
| Monad m => Applicative (Furrow a m) Source # | |
Defined in Bio.Streaming.Furrow Methods pure :: a0 -> Furrow a m a0 Source # (<*>) :: Furrow a m (a0 -> b) -> Furrow a m a0 -> Furrow a m b Source # liftA2 :: (a0 -> b -> c) -> Furrow a m a0 -> Furrow a m b -> Furrow a m c Source # (*>) :: Furrow a m a0 -> Furrow a m b -> Furrow a m b Source # (<*) :: Furrow a m a0 -> Furrow a m b -> Furrow a m a0 Source # | |
| MonadIO m => MonadIO (Furrow a m) Source # | |
| MonadThrow m => MonadThrow (Furrow a m) Source # | |
Defined in Bio.Streaming.Furrow | |