Control.Concurrent.GoChan
data Chan a
data Result a
data Case a
chanMake
chanClose
chanRecv
chanTryRecv
chanSend
chanTrySend
chanSelect