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