streaming 0.1.0.4 → 0.1.0.5
raw patch · 2 files changed
+28/−14 lines, 2 files
Files
- Streaming/Prelude.hs +2/−2
- streaming.cabal +26/−12
Streaming/Prelude.hs view
@@ -5,8 +5,8 @@ > import Streaming > import qualified Streaming as S - The @Streaming@ exports types, functor-general operations and some other kit; - it may clash with @free@ and @pipes-group@.+ The @Streaming@ module exports types, functor-general operations and some other kit; + it may clash with @free@ and @pipes-group@, but not with standard base modules. Interoperation with @pipes@ is accomplished with this isomorphism, which uses @Pipes.Prelude.unfoldr@ from @HEAD@:
streaming.cabal view
@@ -1,5 +1,5 @@ name: streaming-version: 0.1.0.4+version: 0.1.0.5 cabal-version: >=1.10 build-type: Simple synopsis: A free monad transformer optimized for streaming applications.@@ -8,29 +8,43 @@ is better able to optimize operations written in terms of `Stream`. .- See the examples in @Streaming.Prelude@ for a sense of things.- It closely follows - @Pipes.Prelude@, and 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.+ See the examples in @Streaming.Prelude@ for a sense+ of how simple the library is to use and think about. + @Streaming.Prelude@ closely follows + @Pipes.Prelude@, but cleverly omits the pipes. It is focused + on employment with a base functors which generate+ effectful sequences: i.e., things like .- Interoperation with @pipes@ is accomplished with this isomorphism, which+ * @Pipes.Producer@+ . + * @Conduit.Source@+ .+ * @IOStreams.InputStream@+ .+ * @IOStreams.Generator@+ .+ Interoperation with + <http://hackage.haskell.org/package/pipes pipes>+ is accomplished with this isomorphism which uses @Pipes.Prelude.unfoldr@ from @HEAD@: . > 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 .- Interoperation with `iostreams` is thus:+ (If you don't have @pipes-HEAD@, inline the definition of <https://github.com/Gabriel439/Haskell-Pipes-Library/blob/master/src/Pipes/Prelude.hs#L909 unfoldr>.) .+ 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) .- for example. A simple exit to conduit would be, e.g.:+ for example. 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 @=$=@. license: BSD3 license-file: LICENSE