Control.Concurrent.Chan
Chan
data Chan a
newChan
writeChan
readChan
dupChan
unGetChan
isEmptyChan
getChanContents
writeList2Chan