@@ -89,6 +89,29 @@ main = runStream $
89 & S.mapM print
89 & S.mapM print
92+## Concurrent Stream Generation
94+We can use standard monadic stream generation APIs like `repeatM`,
95+`replicateM`, `unfoldrM`, `iterateM` etc. to generate streams in a concurrent
96+manner by using an appropriate stream style combinator.
98+## Concurrent Streaming Pipelines
100+Use `|&` or `|$` to apply stream processing functions concurrently. In the
101+following example "hello" is printed every second, if you use `&` instead of
102+`|&` you will see that the delay doubles to 2 seconds instead because of serial
107+ S.repeatM (threadDelay 1000000 >> return "hello")
108+ |& S.mapM (\x -> threadDelay 1000000 >> putStrLn x)
111+## Concurrent transformation
113+We can use `mapM` `sequence` concurrently on a stream.
92## Serial and Concurrent Merging
115## Serial and Concurrent Merging
94Semigroup and Monoid instances can be used to fold streams serially or
117Semigroup and Monoid instances can be used to fold streams serially or