@@ -299,6 +299,22 @@ instance IsStream WSerialT where
299-- Semigroup
299-- Semigroup
300------------------------------------------------------------------------------
300------------------------------------------------------------------------------
303+-- We always starts with the first stream yielding but there can be many ways
304+-- to end it. In general we can have the following variants of interleaving
306+-- wSerial - interleave - end when both streams end
307+-- wSerialEndByAny - interleave_ - end as soon as any stream ends
308+-- wSerialEndByFirst - interleave1 - make sure we end with first
309+-- - - interleave2 - make sure we end with second
311+-- Additionally we can have m elements yield from the first stream and n
312+-- elements yeilding from the second stream. We can also have time slicing
313+-- variants of positional interleaving, e.g. run first stream for m seconds and
314+-- run the second stream for n seconds.
316+-- Similar combinators can be implemented using WAhead style.
302-- | Polymorphic version of the 'Semigroup' operation '<>' of 'WSerialT'.
318-- | Polymorphic version of the 'Semigroup' operation '<>' of 'WSerialT'.
303-- Interleaves two streams, yielding one element from each stream alternately.
319-- Interleaves two streams, yielding one element from each stream alternately.
304-- When one stream stops the rest of the other stream is used in the output
320-- When one stream stops the rest of the other stream is used in the output