box-0.0.1.5: boxes

Safe HaskellNone
LanguageHaskell2010

Box.Stream

Description

Streaming functionality

Synopsis

Documentation

toStream :: MonadConc m => Emitter (STM m) a -> Stream (Of a) m () Source #

turn an emitter into a stream

fromStream :: MonadConc m => Stream (Of b) m () -> Committer (STM m) b -> m () Source #

turn a stream into a committer

toCommit :: MonadConc m => (Stream (Of a) m () -> m r) -> Cont m (Committer (STM m) a) Source #

create a committer from a stream consumer

toCommitFold :: MonadConc m => FoldM m a () -> Cont m (Committer (STM m) a) Source #

create a committer from a fold

toCommitSink :: MonadConc m => (a -> m ()) -> Cont m (Committer (STM m) a) Source #

create a committer from a sink

toEmit :: MonadConc m => Stream (Of a) m () -> Cont m (Emitter (STM m) a) Source #

create an emitter from a stream

queueStream :: MonadConc m => Stream (Of a) m () -> Cont m (Stream (Of a) m ()) Source #

insert a queue into a stream (left biased collapse) todo: look at biases

toStreamM :: MonadConc m => Emitter m a -> Stream (Of a) m () Source #

turn an emitter into a stream

fromStreamM :: MonadConc m => Stream (Of b) m () -> Committer m b -> m () Source #

turn a stream into a committer