úÎno     A  is a bounded   - a FIFO channel using   and J a transactional variable to limit the number of elements on the channel. An IO version of .. This should be useful with unsafePerformIO  in the same manner as  and  are used.  newBTChan m& make a new bounded TChan of max size m. Writes the value to the # or blocks if the channel is full. "A non-blocking write that returns  if the write succeeded,  otherwise. Reads the next value from the  !A non-blocking read that returns 'Just a' on success and   when the channel is empty. Returns  if the supplied   is empty. *Get the current number of elements in the . let c2 = setMaxOfBTChan c1 mx Using the same underlying  , ' set a new maximum number of messages, mx. If the current size  is greater than mx+ then no messages are dropped, but writes * will block till the size goes lower than mx . Using c2 and  c1 concurrently is possible, but c2 writes will block at the new  maximum while writes to c1) will block at the new, making it biased B against whichever writer has the channel with the smaller bound. Get the bound of the .         bounded-tchan-0.2Control.Concurrent.STM.BTChanBTChan newBTChanIO newBTChan writeBTChantryWriteBTChan readBTChan tryReadBTChan unGetBTChan isEmptyBTChan sizeOfBTChansetMaxOfBTChan maxOfBTChan stm-2.2.0.1Control.Concurrent.STM.TChanTChanbase GHC.Conc.Sync newTVarIO newTChanIOghc-primGHC.BoolTrueFalse Data.MaybeNothing