Cabal revisions of streaming-0.1.0.16
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-name: streaming-version: 0.1.0.16-cabal-version: >=1.10-build-type: Simple-synopsis: a free monad transformer optimized for streaming applications--description: @Stream@ can be used wherever - <https://hackage.haskell.org/package/free-4.12.1/docs/Control-Monad-Trans-Free.html FreeT> - is used. The compiler's- standard range of optimizations work better for operations - written in terms of `Stream`. @FreeT f m r@ / @Stream f m r@- is of course extremely general, and many functor-general combinators- are exported by the general module @Streaming@. - . - @Streaming.Prelude@ is focused on elementary /streaming/ applications.- Here the free iteration of the \'base\' functors - (readings of the @f@ in @Stream f m r@) express - forms of effectful sequence or succession. Some of types in question- appear in the streaming IO libraries under titles like- .- > pipes: Producer a m r, Producer a m (Producer a m r), FreeT (Producer a m) m r- > io-streams: InputStream a, Generator a r- > conduit: Source m a, ConduitM () o m r- .- @Streaming.Prelude@ closely follows @Pipes.Prelude@, but cleverly /omits the pipes/:- .- > ghci> S.stdoutLn $ S.take 2 S.stdinLn- > let's<Enter>- > let's- > stream<Enter>- > stream- .- And here we do a little /connect and resume/, as the streaming-io experts call it:- .- > ghci> rest <- S.print $ S.splitAt 3 $ S.each [1..10]- > 1- > 2- > 3- > ghci> S.sum rest- > 49- .- Somehow, we didn't even need a four-character operator for that, nor advice- about best practices! - just ordinary Haskell common sense. - .- The simplest form of interoperation with - <http://hackage.haskell.org/package/pipes pipes>- is accomplished with this isomorphism:- . - > Pipes.unfoldr Streaming.next :: Stream (Of a) m r -> Producer a m r- > Streaming.unfoldr Pipes.next :: Producer a m r -> Stream (Of a) m r - .- (@streaming@ can be mixed with @pipes@ wherever @pipes@ - itself employs @Control.Monad.Trans.Free@; speedups are frequently- appreciable.) Interoperation with - <http://hackage.haskell.org/package/io-streams io-streams> - is thus:- .- > Streaming.reread IOStreams.read :: InputStream a -> Stream (Of a) IO ()- > IOStreams.unfoldM Streaming.uncons :: Stream (Of a) IO () -> IO (InputStream a)- .- A simple exit to <http://hackage.haskell.org/package/conduit conduit> would be, e.g.:- .- > Conduit.unfoldM Streaming.uncons :: Stream (Of a) m () -> Source m a- .- These conversions should never be more expensive than a single @>->@ or @=$=@.- .- At a much more general level, we also of course have interoperation with - <http://hackage.haskell.org/package/free free>:- .- > Free.iterTM Stream.wrap :: FreeT f m a -> Stream f m a- > Stream.iterTM Free.wrap :: Stream f m a -> FreeT f m a - .- For some simple ghci examples, see the commentary throughout the Prelude module.- For slightly more advanced usage see the commentary in the haddocks of <https://hackage.haskell.org/package/streaming-bytestring streaming-bytestring>- and e.g. - <https://gist.github.com/michaelt/6c6843e6dd8030e95d58 these replicas> of shell-like programs from- the io-streams tutorial.- Here's a simple <https://gist.github.com/michaelt/2dcea1ba32562c091357 streaming GET request> with- intrinsically streaming byte streams.- - -license: BSD3-license-file: LICENSE-author: michaelt-maintainer: what_is_it_to_do_anything@yahoo.com-stability: Experimental-homepage: https://github.com/michaelt/streaming-bug-reports: https://github.com/michaelt/streaming/issues-category: Data, Pipes-source-repository head- type: git- location: https://github.com/michaelt/streaming---library- exposed-modules: Streaming, - Streaming.Prelude,- Streaming.Internal-- -- other-modules: - other-extensions: RankNTypes, CPP,- StandaloneDeriving, FlexibleContexts, - DeriveDataTypeable, DeriveFoldable, - DeriveFunctor, DeriveTraversable, - UndecidableInstances- - build-depends: base >=4.6 && <5- , mtl >=2.1 && <2.3- , mmorph >=1.0 && <1.2- , transformers >=0.3 && <0.5-- default-language: Haskell2010- --+name: streaming +version: 0.1.0.16 +x-revision: 1 +cabal-version: >=1.10 +build-type: Simple +synopsis: a free monad transformer optimized for streaming applications + +description: @Stream@ can be used wherever + <https://hackage.haskell.org/package/free-4.12.1/docs/Control-Monad-Trans-Free.html FreeT> + is used. The compiler's + standard range of optimizations work better for operations + written in terms of `Stream`. @FreeT f m r@ / @Stream f m r@ + is of course extremely general, and many functor-general combinators + are exported by the general module @Streaming@. + . + @Streaming.Prelude@ is focused on elementary /streaming/ applications. + Here the free iteration of the \'base\' functors + (readings of the @f@ in @Stream f m r@) express + forms of effectful sequence or succession. Some of types in question + appear in the streaming IO libraries under titles like + . + > pipes: Producer a m r, Producer a m (Producer a m r), FreeT (Producer a m) m r + > io-streams: InputStream a, Generator a r + > conduit: Source m a, ConduitM () o m r + . + @Streaming.Prelude@ closely follows @Pipes.Prelude@, but cleverly /omits the pipes/: + . + > ghci> S.stdoutLn $ S.take 2 S.stdinLn + > let's<Enter> + > let's + > stream<Enter> + > stream + . + And here we do a little /connect and resume/, as the streaming-io experts call it: + . + > ghci> rest <- S.print $ S.splitAt 3 $ S.each [1..10] + > 1 + > 2 + > 3 + > ghci> S.sum rest + > 49 + . + Somehow, we didn't even need a four-character operator for that, nor advice + about best practices! - just ordinary Haskell common sense. + . + The simplest form of interoperation with + <http://hackage.haskell.org/package/pipes pipes> + is accomplished with this isomorphism: + . + > Pipes.unfoldr Streaming.next :: Stream (Of a) m r -> Producer a m r + > Streaming.unfoldr Pipes.next :: Producer a m r -> Stream (Of a) m r + . + (@streaming@ can be mixed with @pipes@ wherever @pipes@ + itself employs @Control.Monad.Trans.Free@; speedups are frequently + appreciable.) Interoperation with + <http://hackage.haskell.org/package/io-streams io-streams> + is thus: + . + > Streaming.reread IOStreams.read :: InputStream a -> Stream (Of a) IO () + > IOStreams.unfoldM Streaming.uncons :: Stream (Of a) IO () -> IO (InputStream a) + . + A simple exit to <http://hackage.haskell.org/package/conduit conduit> would be, e.g.: + . + > Conduit.unfoldM Streaming.uncons :: Stream (Of a) m () -> Source m a + . + These conversions should never be more expensive than a single @>->@ or @=$=@. + . + At a much more general level, we also of course have interoperation with + <http://hackage.haskell.org/package/free free>: + . + > Free.iterTM Stream.wrap :: FreeT f m a -> Stream f m a + > Stream.iterTM Free.wrap :: Stream f m a -> FreeT f m a + . + For some simple ghci examples, see the commentary throughout the Prelude module. + For slightly more advanced usage see the commentary in the haddocks of <https://hackage.haskell.org/package/streaming-bytestring streaming-bytestring> + and e.g. + <https://gist.github.com/michaelt/6c6843e6dd8030e95d58 these replicas> of shell-like programs from + the io-streams tutorial. + Here's a simple <https://gist.github.com/michaelt/2dcea1ba32562c091357 streaming GET request> with + intrinsically streaming byte streams. + + +license: BSD3 +license-file: LICENSE +author: michaelt +maintainer: what_is_it_to_do_anything@yahoo.com +stability: Experimental +homepage: https://github.com/michaelt/streaming +bug-reports: https://github.com/michaelt/streaming/issues +category: Data, Pipes +source-repository head + type: git + location: https://github.com/michaelt/streaming + + +library + exposed-modules: Streaming, + Streaming.Prelude, + Streaming.Internal + + -- other-modules: + other-extensions: RankNTypes, CPP, + StandaloneDeriving, FlexibleContexts, + DeriveDataTypeable, DeriveFoldable, + DeriveFunctor, DeriveTraversable, + UndecidableInstances + + build-depends: base >=4.6 && <5 + , mtl >=2.1 && <2.3 + , mmorph >=1.0 && <1.2 + , transformers >=0.4 && <0.5 + + default-language: Haskell2010 + + +