Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Pipe i o u m a
- (.|) :: Monad m => Pipe a b u m v -> Pipe b c v m r -> Pipe a c u m r
- runPipe :: Monad m => Pipe () Void u m a -> m a
- awaitEither :: Pipe i o u m (Either i u)
- await :: Pipe i o u m (Maybe i)
- awaitSurely :: Pipe i o Void m i
- repeatM :: Monad m => m o -> Pipe i o u m u
- unfoldP :: (b -> Maybe (a, b)) -> b -> Pipe i a u m ()
- unfoldPForever :: (b -> (a, b)) -> b -> Pipe i a u m r
- iterateP :: (a -> a) -> a -> Pipe i a u m r
- sourceList :: Foldable t => t a -> Pipe i a u m ()
- awaitForever :: (i -> Pipe i o u m a) -> Pipe i o u m u
- mapP :: (a -> b) -> Pipe a b u m u
- mapMP :: Monad m => (a -> m b) -> Pipe a b u m u
- dropP :: Int -> Pipe i o u m ()
- foldrP :: (a -> b -> b) -> b -> Pipe a Void u m b
- sinkList :: Pipe i Void u m [i]
- newtype ZipSink i u m a = ZipSink {
- getZipSink :: Pipe i Void u m a
Documentation
Similar to Conduit
i
: Type of input streamo
: Type of output streamu
: Type of the result of the upstream pipe (Outputted when upstream pipe finishes)m
: Underlying monada
: Result type (Outputted when finished)
Some specializations:
- A pipe is a source if
i
is '()': it doesn't need anything to go pump out items.
If a pipe is source and a
is Void
, it means that it will
produce forever.
- A pipe is a sink if
o
isVoid
: it will never yield anything else downstream. - If a pipe is both a source and a sink, it is an effect.
- Normally you can ask for input upstream with
await
, which returnsNothing
if the pipe upstream stops producing. However, ifu
isVoid
, it means that the pipe upstream will never stop, so you can useawaitSurely
to get a guaranteed answer.
Instances
MonadTrans (Pipe i o u) Source # | |
Defined in Data.Conduino | |
Monad (Pipe i o u m) Source # | |
Functor (Pipe i o u m) Source # | |
Applicative (Pipe i o u m) Source # | |
Defined in Data.Conduino |
awaitEither :: Pipe i o u m (Either i u) Source #
awaitSurely :: Pipe i o Void m i Source #
unfoldPForever :: (b -> (a, b)) -> b -> Pipe i a u m r Source #
sourceList :: Foldable t => t a -> Pipe i a u m () Source #
awaitForever :: (i -> Pipe i o u m a) -> Pipe i o u m u Source #
newtype ZipSink i u m a Source #
ZipSink | |
|
Instances
Functor (ZipSink i u m) Source # | |
Monad m => Applicative (ZipSink i u m) Source # |
|
Defined in Data.Conduino pure :: a -> ZipSink i u m a # (<*>) :: ZipSink i u m (a -> b) -> ZipSink i u m a -> ZipSink i u m b # liftA2 :: (a -> b -> c) -> ZipSink i u m a -> ZipSink i u m b -> ZipSink i u m c # (*>) :: ZipSink i u m a -> ZipSink i u m b -> ZipSink i u m b # (<*) :: ZipSink i u m a -> ZipSink i u m b -> ZipSink i u m a # | |
Monad m => Alternative (ZipSink i u m) Source # |
|