packages feed

streaming 0.1.0.4 → 0.1.0.5

raw patch · 2 files changed

+28/−14 lines, 2 files

Files

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