úÎ.+>      Safe-Inferred A class for 3 types that can be instantiated without programmer  input. e.g. the standard haskell TChan$ is a member of this class, however " a bounded chan type that took an Int& to define the buffer size would not. *A class capturing Chan operations in STM. Write a value to the in chan. 'Read the next value from the out chan. 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.  A version of " which does not retry. Instead it  returns Nothing if no value is available. Returns  if the supplied  is empty.  !"   !"None .The output side of an unbounded FIFO channel. -The input side of an unbounded FIFO channel. IO version of newTChan). This is useful for creating top-level  TChans using , because using  # inside  isn't  possible. 'Create a new write end of a TChan. Use  to get an OutChan that  values can be read from. IO version of  . Create a duplicate OutChan from an InChan. The OutChan starts A empty but will receive a copy of all subsequent values written. JPut a data item back onto a channel, where it will be the next item read. Clone a TChan>: similar to dupTChan, but the cloned channel starts with the 1 same content available as the original channel. $%&' ( ) *+   $&%' ( ) *+ Safe-Inferred A class for 3 types that can be instantiated without programmer  input. e.g. the standard haskell Chan$ is a member of this class, however " a bounded chan type that took an Int& to define the buffer size would not. A class for chan types with a " write end" and a "read end" . A minimal  complete instance defines  and one of  or  . Read the next value from the OutChan. -Write an entire list of items to a chan type Write a value to a Chan type. ,-./,-./NoneThe " read side" of a chan pair The " write side" of a chan pair KReturn a lazy list representing the contents of the supplied OutChan, much  like System.IO.hGetContents.  Duplicate an 5: the duplicate channel contains any unread messages K in the original (n.b. this differs from the behavior of dupChan in Chan), ' and data written to the corresponding  will appear in both, i.e. J consuming a value from the copy will have no affect on the values in the  original OutChan. >(Note that a duplicated channel is not equal to its original.  So: fmap (c /=) $ dupChan c returns True for all c.) 0123456 01234567      !"# "# $%&"#'()*+,-./01234567899:;<=chan-split-0.5.0"Control.Concurrent.STM.TChan.Class"Control.Concurrent.STM.TChan.SplitControl.Concurrent.Chan.ClassControl.Concurrent.Chan.SplitSystem.IO.UnsafeunsafePerformIO NewSplitTChan newSplitTChan SplitTChan writeTChan readTChan peekTChan tryPeekTChan tryReadTChan isEmptyTChanOutTChanInTChannewSplitTChanIO newInTChan newInTChanIOdupTChan unGetTChan cloneTChan NewSplitChan newSplitChan SplitChanreadChanwriteList2Chan writeChanOutChanInChangetChanContentsdupChanstm-2.4Control.Concurrent.STM.TChanghc-prim GHC.TypesTrueTChan$fNewSplitTChanTChanTChan$fNewSplitTChanTMVarTMVar$fSplitTChanTChanTChan$fSplitTChanTMVarTMVarbase GHC.Conc.Sync atomicallyTListTConsTNilTVarList$fSplitTChanInTChanOutTChan$fNewSplitTChanInTChanOutTChan$fNewSplitChanMVarMVar$fSplitChanMVarMVar$fNewSplitChanChanChan$fSplitChanChanChanChItemStream$fSplitChanInChanOutChan$fNewSplitChanInChanOutChan