@@ -31,8 +31,32 @@ Let's go through some practical examples to see it working. You
3131can find the working code of these examples in the [streamly-examples
3232repository](https://github.com/composewell/streamly-examples).
3333
34+## Installing and using
35+
36+Please see [INSTALL.md](./INSTALL.md) for instructions on how to use streamly
37+with your Haskell build tool or package manager.
38+
39+## Documentation
40+
41+Streamly comes with batteries included, see [the streamly documentation
42+portal](https://streamly.composewell.com) for available modules. Modules
43+are divided in two categories:
44+
45+* Released Modules: these are modules that have a stable API, any API changes
46+ conform to a versioning policy.
47+* Pre-release Modules: These modules are not yet released due to some planned
48+ changes in near future, they will be released soon.
49+
50+Pre-release APIs: Some of the APIs that are recently introduced
51+and require some soak time for stability are kept in the
52+internal modules corresponding to the released module (e.g.
53+Streamly.Internal.Data.Fold). We usually try to change even the
54+unstable APIs in a major release version.
55+
3456## Types Overview
3557
58+Quick overview of basic types for this tutorial:
59+
3660* `SerialT IO a` is a serial stream of values of type `a` in IO Monad.
3761* `AsyncT IO a` is a concurrent (async) stream of values of type `a` in IO
3862 Monad.
@@ -134,7 +158,7 @@ excellent modularity. Experienced Haskellers would notice that we have
134158not used bytestrings, we simply use a stream of `Word8`, simplifying the
135159program.
136160
137−## Performance
161+## Word Counting Performance
138162
139163We compare two equivalent implementations, one using Haskell Streamly and the
140164other using C. The
@@ -505,26 +529,6 @@ We hope to bring these optimizations to GHC in future but until
505529then we recommend that you use the plugin for performance sensitive
506530applications.
507531
508−## Installing and using
509−
510−Please see [INSTALL.md](./INSTALL.md) for instructions on how to use streamly
511−with your Haskell build tool or package manager.
512−
513−Streamly comes with batteries included, see [the
514−documentation](https://streamly.composewell.com) for available modules. Modules
515−are divided in two categories:
516−
517−* Released Modules: these are modules that have a stable API, any API changes
518− conform to a versioning policy.
519−* Pre-release APIs: Some of the APIs that are recently introduced and
520− require some soak time for stability are kept in the
521− internal modules corresponding to the released module (e.g.
522− Streamly.Internal.Data.Fold).
523−* Pre-release Modules: These modules are not yet released due to some planned
524− changes in near future, they will be released soon.
525−
526−We usually try to change even the unstable APIs in a major release version.
527−
528532## Support
529533
530534Please feel free to ask questions on the