simple-pipe-0.0.0.29: simple pipeline library like conduit

Safe HaskellSafe
LanguageHaskell98

Data.Pipe

Synopsis

Documentation

class PipeClass p where Source

Minimal complete definition

runPipe, (=$=), yield, await, onBreak, onDone, mapMonad, mapOut, mapIn

Methods

runPipe :: Monad m => p i o m r -> m (Maybe r) Source

(=$=) :: Monad m => p a b m x -> p b c m y -> p a c m y infixr 3 Source

yield :: Monad m => o -> p i o m () Source

await :: Monad m => p i o m (Maybe i) Source

onBreak :: Monad m => p i o m r -> m b -> p i o m r Source

onDone :: Monad m => p i o m r -> m b -> p i o m r Source

finalize :: Monad m => p i o m r -> m b -> p i o m r Source

mapMonad :: Monad m => (forall a. m a -> m a) -> p i o m r -> p i o m r Source

mapOut :: Monad m => (o -> o') -> p i o m r -> p i o' m r Source

mapIn :: Monad m => (i' -> i) -> p i o m r -> p i' o m r Source

Instances

class PipeClass pc => PipeChoice pc where Source

Minimal complete definition: appLeft

Minimal complete definition

appLeft

Methods

appLeft :: Monad m => pc b c m r -> pc (Either b d) (Either c d) m r Source

appRight :: Monad m => pc b c m r -> pc (Either d b) (Either d c) m r Source

(++++) :: Monad m => pc b c m r -> pc b' c' m r -> pc (Either b b') (Either c c') m r infixr 4 Source

(||||) :: Monad m => pc b d m r -> pc c d m r -> pc (Either b c) d m r infixr 4 Source

(=@=) :: (PipeClass p, PipeChoice p, Monad m, Monad (p i (Either a r) m), Monad (p a o m), Monad (p r o m), Monad (p (Either a r) o m)) => p i a m r -> p a o m r' -> p i o m r infixr 2 Source

runPipe_ :: (PipeClass p, Monad m) => p i o m r -> m () Source

convert :: (PipeClass p, Monad m, Monad (p a b m)) => (a -> b) -> p a b m () Source

data Pipe i o m r Source

finally :: (MonadBaseControl IO m, PipeClass p) => p i o m r -> m b -> p i o m r Source

bracket :: (MonadBaseControl IO m, PipeClass p, MonadTrans (p i o), Monad (p i o m)) => m a -> (a -> m b) -> (a -> p i o m r) -> p i o m r Source