Chan is:module

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.
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.
Channel messages
Changelog and changes file support.
Update a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments. See: Enterprise Apps Reseller API Reference for reseller.subscriptions.changePlan.
Update a user license's renewal settings. This is applicable for accounts with annual commitment plans only. See: Enterprise Apps Reseller API Reference for reseller.subscriptions.changeRenewalSettings.
Update a subscription's user license settings. See: Enterprise Apps Reseller API Reference for reseller.subscriptions.changeSeats.
Tools for connecting communicating sequential processes (threads) with closeable channels.
(GHC only)
The GIOChannel data type aims to provide a portable method for using file descriptors, pipes, and sockets, and integrating them into the main event loop (see [structgLib.MainContext]). Currently, full support is available on UNIX platforms; support for Windows is only partially complete. To create a new GIOChannel on UNIX systems use iOChannelUnixNew. This works for plain file descriptors, pipes and sockets. Alternatively, a channel can be created for a file in a system independent manner using iOChannelNewFile. Once a GIOChannel has been created, it can be used in a generic manner with the functions iOChannelReadChars, iOChannelWriteChars, iOChannelSeekPosition, and iOChannelShutdown. To add a GIOChannel to the main event loop, use ioAddWatch or GLib.io_add_watch_full. Here you specify which events you are interested in on the GIOChannel, and provide a function to be called whenever these events occur. GIOChannel instances are created with an initial reference count of 1. iOChannelRef and iOChannelUnref can be used to increment or decrement the reference count respectively. When the reference count falls to 0, the GIOChannel is freed. (Though it isn’t closed automatically, unless it was created using iOChannelNewFile.) Using ioAddWatch or GLib.io_add_watch_full increments a channel’s reference count. The new functions iOChannelReadChars, iOChannelReadLine, IOChannel.read_line_string(), iOChannelReadToEnd, iOChannelWriteChars, iOChannelSeekPosition, and iOChannelFlush should not be mixed with the deprecated functions iOChannelRead, iOChannelWrite, and iOChannelSeek on the same channel.
A version of Control.Concurrent.STM.TChan where the queue is bounded in length. This variant incorporates ideas from Thomas M. DuBuisson's bounded-tchan package in order to reduce contention between readers and writers.
A version of Control.Concurrent.STM.TChan where the queue is bounded in length and closeable. This combines the abilities of Control.Concurrent.STM.TBChan and Control.Concurrent.STM.TMChan. This variant incorporates ideas from Thomas M. DuBuisson's bounded-tchan package in order to reduce contention between readers and writers.