@hackage streaming0.1.0.3
A general free monad transformer optimized for streaming applications.
Installation
Dependencies (5)
Dependents (97)
@hackage/prometheus-effect, @hackage/box, @hackage/eventsource-store-specs, @hackage/cabal-scaffold, @hackage/web-rep, @hackage/om-socket, Show all…
Stream can be used wherever FreeT is used. The compiler
is better able to optimize operations written in
terms of Stream.
An associated prelude of functions, closely following
Pipes.Prelude is focused on on employment with a base
functor like ((,) a) (here called Of a) which generates
effectful sequences or producers - Pipes.Producer,
Conduit.Source, IOStreams.InputStream, IOStreams.Generator
and the like.
Interoperation with pipes is accomplished with this isomorphism:
Pipes.unfoldr Streaming.next :: Stream (Of a) m r -> Producer a m r Stream.unfoldr Pipes.next :: Producer a m r -> Stream (Of a) m r
Exit to conduit and iostreams is thus:
Conduit.unfoldM Streaming.uncons :: Stream (Of a) m () -> Source m a IOStreams.unfoldM Streaming.uncons :: Stream (Of a) IO () -> InputStream a