Control.Concurrent.BoundedChan
data BoundedChan a
newBoundedChan
writeChan
tryWriteChan
readChan
tryReadChan
isEmptyChan
getChanContents
writeList2Chan