sousit-0.3: Source/Sink/Transform: An alternative to lazy IO and iteratees.

Safe HaskellSafe-Inferred

Data.SouSiT.Transform

Synopsis

Documentation

type Transform a b = forall m r. Monad m => Sink b m r -> Sink a m rSource

mergeTransform :: Monad m => (Sink b m r -> Sink a m r) -> (Sink c m r -> Sink b m r) -> Sink c m r -> Sink a m rSource

Merges two transforms into one.

transformSink :: Monad m => (Sink b m r -> Sink a m r) -> Sink b m r -> Sink a m rSource

Apply a transform to a sink.

transformSource :: (Source src, Monad m) => (forall r. Sink b m r -> Sink a m r) -> src m a -> SimpleSource m bSource

Apply a transform to a Source.

(=$=) :: Monad m => (Sink b m r -> Sink a m r) -> (Sink c m r -> Sink b m r) -> Sink c m r -> Sink a m rSource

Merges two transforms into one.

(=$) :: Monad m => (Sink b m r -> Sink a m r) -> Sink b m r -> Sink a m rSource

Apply a transform to a sink.

($=) :: (Source src, Monad m) => src m a -> (forall r. Sink b m r -> Sink a m r) -> SimpleSource m bSource

Apply a transform to a source.