úÎ&Þ%w   portable provisionalben.franksen@online.de*Events return a value on synchronization. CNote that by construction, an event can synchronize at exactly one   commit point2, where a message is either sent or accepted on a A channel. This commit point may be selected among several other, 6 potential commit points. Some code may be run before " synchronization, as specified by  functions throughout the F event. Some more code may be run after synchronization, as specified  by 2 functions that surround the commit point, and by  2 functions that do not surround the commit point. Values of type a* can be transported over channels of type  Channel a. Create a new channel. "Receive a message from a channel. More precisely, receive c cond, returns an event that, on synchronization,  accepts a message m on channel c and returns m. The resulting . event is eligible for synchronization with a  transmit c m only if cond m  is true. #Transmit a message over a channel. More precisely,  transmit c m, returns an event that, on synchronization,  sends the message m on channel c and returns (). Such an event must  synchronize with  receive c. ENon-deterministically select an event from a list of events, so that J the selected event can be synchronized. The other events in the list are  aborted. 'Specify a post-synchronization action. More precisely, wrap v f, returns an event that, on synchronization,  synchronizes the event v& and then runs the action returned by f  applied to the result. &Specify a pre-synchronization action. More precisely, guard a, returns an event that, on synchronization, / synchronizes the event returned by the action a. Here, a is run  every time a thread tries to synchronize guard a. ESpecify a post-synchronization action that is spawned if an event is  not selected by a . More precisely,  wrapabort a v returns an event that, on ) synchronization, synchronizes the event v, and on abortion, spawns a  thread that runs the action a . Here, if v itself is of the form   choose vs and one of the events in vs is selected, then v is  considered selected, so a is not spawned. Synchronize an event. DThis blocks the calling thread until a matching event is available. A synonym for .          cml-0.1Control.Concurrent.CMLEventChannelchannelreceivetransmitchoosewrapguard wrapabortsyncspawn SynchronizerAbortNamePointOutIn CandidateDecisionCommitatchanatsyncatpointIatpointObaseGHC.ConcforkIO