lpsmith/split-channel — pull request #1 by joeyadams (2013-03-16 04:26:36+00:00)
Title: Optimize 'fold', document blocking caveat of 'duplicate', and fix race in 'receive'

Please see the commit messages. In particular, `duplicate` has the same [blocking caveat][4154] that bit [isEmptyChan] and [unGetChan].

[4154]: http://hackage.haskell.org/trac/ghc/ticket/4154
[isEmptyChan]: http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Concurrent-Chan.html#v:isEmptyChan
[unGetChan]: http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Concurrent-Chan.html#v:unGetChan