Chan package:strict-concurrency

Chan is an abstract type representing an unbounded FIFO channel.
Duplicate a Chan: the duplicate channel begins empty, but data written to either channel from then on will be available from both. Hence this creates a kind of broadcast channel, where data written by anyone is seen by everyone else.
Return a lazy list representing the contents of the supplied Chan, much like hGetContents.
Returns True if the supplied Chan is empty.
Build and returns a new instance of Chan.
Read the next value from the Chan.
Put a data item back onto a channel, where it will be the next item read.
Write a value to a Chan.
Write an entire list of items to a Chan.