Streams
Generating Streams
Eliminating Streams
Combining Streams
Semigroup Style
Serial composition (<>)
Async composition (<|)
Interleaved composition (<=>)
Fair Concurrent composition (<|>)
Custom composition
Monoid Style
Transforming Streams
Monad
Serial Composition (StreamT)
Async Composition (AsyncT)
Interleaved Composition (InterleavedT)
Fair Concurrent Composition (ParallelT)
Exercise
Applicative
Functor
Zipping Streams
Serial Zipping
Parallel Zipping
Summary of Compositions
Concurrent Programming
Reactive Programming
Performance
Interoperation with Streaming Libraries
Comparison with Existing Packages