Chan is:exact

Unbounded channels. The channels are implemented with MVars and therefore inherit all the caveats that apply to MVars (possibility of races, deadlocks etc). The stm (software transactional memory) library has a more robust implementation of channels called TChans.
Chan is an abstract type representing an unbounded FIFO channel.
Chan is an abstract type representing an unbounded FIFO channel.
Unbounded channels. Deviations: Chan as defined here does not have an Eq instance, this is because the MonadConc MVar type does not have an Eq constraint. The deprecated unGetChan and isEmptyCHan functions are not provided. Furthermore, the getChanContents function is not provided as it needs unsafe I/O.
Chan is an abstract type representing an unbounded FIFO channel.