@@ -30,7 +30,8 @@ the functionality of list transformer libraries like `pipes` or
30[list-t](https://hackage.haskell.org/package/list-t), and also the logic
30[list-t](https://hackage.haskell.org/package/list-t), and also the logic
31programming library [logict](https://hackage.haskell.org/package/logict). On
31programming library [logict](https://hackage.haskell.org/package/logict). On
32the concurrency side, it subsumes the functionality of the
32the concurrency side, it subsumes the functionality of the
33−[async](https://hackage.haskell.org/package/async) package. Because it supports
33+[async](https://hackage.haskell.org/package/async) package, and provides even
34+higher level concurrent composition. Because it supports
34streaming with concurrency we can write FRP applications similar in concept to
35streaming with concurrency we can write FRP applications similar in concept to
35[Yampa](https://hackage.haskell.org/package/Yampa) or
36[Yampa](https://hackage.haskell.org/package/Yampa) or
36[reflex](https://hackage.haskell.org/package/reflex).
37[reflex](https://hackage.haskell.org/package/reflex).
@@ -59,18 +60,6 @@ processing a million elements. The timings for streamly and vector are in the
60
61
62−For more details on streaming library ecosystem and where streamly fits in,
64−[streaming libraries](https://github.com/composewell/streaming-benchmarks#streaming-libraries).
65−Also, see the [Comparison with Existing
66−Packages](https://hackage.haskell.org/package/streamly/docs/Streamly-Tutorial.html)
67−section in the streamly tutorial.
69−For more information on streamly, see:
71− * [Streamly.Tutorial](https://hackage.haskell.org/package/streamly/docs/Streamly-Tutorial.html) module in the haddock documentation for a detailed introduction
72− * [examples](https://github.com/composewell/streamly/tree/master/examples) directory in the package for some simple practical examples
74## Streaming Pipelines
63## Streaming Pipelines
76Unlike `pipes` or `conduit` and like `vector` and `streaming`, `streamly`
65Unlike `pipes` or `conduit` and like `vector` and `streaming`, `streamly`
@@ -338,12 +327,16 @@ for a console based FRP game example and
338[CirclingSquare.hs](https://github.com/composewell/streamly/tree/master/examples/CirclingSquare.hs)
327[CirclingSquare.hs](https://github.com/composewell/streamly/tree/master/examples/CirclingSquare.hs)
339for an SDL based animation example.
328for an SDL based animation example.
341−## Comparison with the `async` package
330+## Further Reading
332+For more information, see:
343−Streamly provides higher level concurrency compared to the `async` package, it
334+ * [A comprehensive tutorial](https://hackage.haskell.org/package/streamly/docs/Streamly-Tutorial.html)
344−can be used wherever you would want to use the `async` package. [See this
335+ * [Some practical examples](https://github.com/composewell/streamly/tree/master/examples)
345−tutorial for a quick comparison of streamly with
336+ * [Comparison with other packages](https://hackage.haskell.org/package/streamly/docs/Streamly-Tutorial.html)
337+ * [Streaming benchmarks comparing streamly with other streaming libraries](https://github.com/composewell/streaming-benchmarks)
346−async](https://github.com/composewell/streamly/blob/master/docs/Async.md).
338+ * [Quick tutorial comparing streamly with the async package](https://github.com/composewell/streamly/blob/master/docs/Async.md)
339+ * [Concurrency benchmarks comparing streamly with async](https://github.com/composewell/concurrency-benchmarks)
348## Contributing
341## Contributing