úÎ?';),      !"#$%&'()*+ Trustworthy,-./0123456789:; ,.12345678,-./0123456789:;non-portable (requires STM) experimentallibraries@haskell.org Trustworthy = is an abstract type representing an unbounded FIFO channel. $Build and returns a new instance of  IO version of ). This is useful for creating top-level  s using , because using    inside  isn't  possible. Write a value to a . Read the next value from the .  A version of " which does not retry. Instead it  returns Nothing if no value is available. Get the next value from the TChan without removing it, # retrying if the channel is empty.  A version of " which does not retry. Instead it  returns Nothing if no value is available.  Duplicate a :: the duplicate channel begins empty, but data written to N either channel from then on will be available from both. Hence this creates F a kind of broadcast channel, where data written by anyone is seen by  everyone else. JPut a data item back onto a channel, where it will be the next item read. Returns < if the supplied  is empty. =>?@A   =?>@Anon-portable (requires STM) experimentallibraries@haskell.org Trustworthy A # is a synchronising variable, used Dfor communication between concurrent threads. It can be thought of &as a box, which may be empty or full.  Create a $ which contains the supplied value. IO version of ). This is useful for creating top-level  s using , because using    inside  isn't  possible.  Create a  which is initially empty. IO version of ). This is useful for creating top-level  s using , because using    inside  isn't  possible. Return the contents of the  . If the  is currently  empty, the transaction will   . After a ,  the  is left empty.  A version of  that does not  . The    function returns B if the  was empty, or C a if  the  was full with contents a . After  , the   is left empty. !Put a value into a  . If the  is currently full,  ! will  . " A version of ! that does not  . The " $ function attempts to put the value a into the  , returning  < if it was successful, or D otherwise. #This is a combination of  and ! ; ie. it  takes the value from the !, puts it back, and also returns  it. $ A version of #" which does not retry. Instead it  returns Nothing if no value is available. %Swap the contents of a  for a new value. &Check whether a given  is empty. E !"#$%&  !"#$%& !#$% "& E !"#$%&non-portable (requires STM) experimentallibraries@haskell.org Trustworthy'Mutate the contents of a . N.B., this version is  non-strict. (Strict version of '. )Swap the contents of a  for a new value. '() '() '()'()non-portable (requires STM) experimentallibraries@haskell.org Trustworthy*6TArray is a transactional array, supporting the usual F  interface for mutable arrays. It is currently implemented as Array ix (TVar e), I but it may be replaced by a more efficient implementation in the future 0 (the interface will remain the same, however). GLike  replicateM5 but uses an accumulator to prevent stack overflows.  Unlike  replicateM) the returned list is in reversed order.  This doesn';t matter though since this function is only used to create ! arrays with identical elements. *HGI***HGInon-portable (requires STM) experimentallibraries@haskell.org TrustworthyJK+LM  +  + JK+LM non-portable (requires STM) experimentallibraries@haskell.org Trustworthy,  !"#$%&'()*+N               !"#$%&'()*+,-./0123456789:;<=>?@ABC DE DF=>G'HIJK7LMMNOPstm-2.3Control.Concurrent.STM.TVarControl.Monad.STMControl.Concurrent.STM.TChanControl.Concurrent.STM.TMVarControl.Concurrent.STM.TArrayControl.Sequential.STMSystem.IO.UnsafeunsafePerformIOControl.Concurrent.STMbase GHC.Conc.IO registerDelay GHC.Conc.Sync writeTVarreadTVar readTVarIO newTVarIOnewTVaralwaysalwaysSucceedscatchSTMthrowSTMorElseretry atomicallySTMTVarTChannewTChan newTChanIO writeTChan readTChan tryReadTChan peekTChan tryPeekTChandupTChan unGetTChan isEmptyTChanTMVarnewTMVar newTMVarIO newEmptyTMVarnewEmptyTMVarIO takeTMVar tryTakeTMVarputTMVar tryPutTMVar readTMVar tryReadTMVar swapTMVar isEmptyTMVar modifyTVar modifyTVar'swapTVarTArraycheckunSTM $fMonadSTM$fApplicativeSTM $fFunctorSTMghc-prim GHC.TypesTrueTListTConsTNilTVarList Data.MaybeNothingJustFalse array-0.4.0.1Data.Array.BaseMArrayrep$fMArrayTArrayeSTMSTMretliftSTM $fMonadFixSTM