simple-pipe-0.0.0.16: simple pipeline library like conduit

Safe HaskellSafe-Inferred
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 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 () -> pc b' c' m () -> pc (Either b b') (Either c c') m () Source

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

Instances

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

data Pipe i o m r Source

Instances

PipeChoice Pipe 
PipeClass Pipe 
MonadTrans (Pipe i o) 
Monad m => Monad (Pipe i o m) 
Monad m => Functor (Pipe i o m) 
Monad m => Applicative (Pipe i o m) 
MonadIO m => MonadIO (Pipe i o m) 
MonadWriter m => MonadWriter (Pipe i o m) 
MonadState m => MonadState (Pipe i o m) 
MonadReader m => MonadReader (Pipe i o m) 
MonadError m => MonadError (Pipe i o m) 
type WriterType (Pipe i o m) = WriterType m 
type StateType (Pipe i o m) = StateType m 
type EnvType (Pipe i o m) = EnvType m 
type ErrorType (Pipe i o m) = ErrorType m 

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