The "write side" of a chan pair
The "read side" of a chan pair
Return a lazy list representing the contents of the supplied OutChan, much like System.IO.hGetContents.
OutChan: the duplicate channel contains any unread messages
in the original (n.b. this differs from the behavior of dupChan in Chan),
and data written to the corresponding
InChan will appear in both, i.e.
consuming a value from the copy will have no affect on the values in the
(Note that a duplicated channel is not equal to its original.
fmap (c /=) $ dupChan c returns
True for all