"(      !"#$%&',Portability : concurrency, unsafeIntereaveIO!John Launchbury <john@galois.com>()*+,-EThe thread-registry environment is a hierarchical structure of local  thread neighborhoods. ./012345678Portability : concurrency!John Launchbury <john@galois.com> 9: ; <=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   Portability : concurrency!John Launchbury <john@galois.com>ECut executes an orc expression, waits for the first result, and then ? suppresses the rest, including killing any threads involved  in computing the remainder. :Wait for a period of w seconds, then continue processing.  and  uses the Stdinout library to provide  basic console input/ output in a concurrent setting.   executes @ an orc expression and prints out the answers eagerly per line.  !"#$%&'6Publish is a hyperstrict form of return. It is useful ' for combining results from multiple   computations, providing  a synchronization point.  !"#$%&' !"#$%&' !"#$%&'Portability : concurrency!John Launchbury <john@galois.com>=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'      !"#$%&'()*+,-./0123456789:;<=>?@>?A>?B>?C>?D>?E>FG>HI>HJ>HK>HL>HM>HN>HO>HP>HQ>HR>HS>HT>HU>HV>HW>HX>HY>HY>HZ>H[>H\>H]>H^>H_>H`>Ha>Ha>bc>de>df>dg>dh>di>dj>dk>dl>mn>op>Fq>Fr>Fs>Ft>Fu>Fv>Fw>Fx>Fy>Fz>F{>F|>F}>F~>F>F>F>F>F>F>F>F>F>F>F>F>F>F>F>F>F>?>?orc-1.1Control.Concurrent.Hierarchical Orc.MonadOrc.CombinatorsOrcGroupHIOnewGrouplocalclosefinishedrunHIO newPrimGroupstoprunOrc<+>eagerlyvalsignalcut onlyUntilbutAftertimeoutsilentliftList repeatingrunChansync notBeforesyncListdelayprintOrcprompt putStrLinescancountcollectignorefirstsandboxzipperzipppublishEntryThread InhabitantsOpenClosedinGroupregisterkill increment decrementisZerocountingThreads threadCountincrementThreadCountprintThreadReport#parsaveOncebaseGHC.Basefail>>=>>returnMonadFunctor Control.Monad MonadPlusControl.Applicative ApplicativeoptionalliftA3liftA2liftA<**><**><*>puremanysome<|>empty AlternativegetConstConst unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow getZipListZipListControl.Concurrent.ChanChanGHC.ConcalwaysalwaysSucceedscatchSTMorElseretryThreadIdSTMTVar Data.Functor<$>GHC.MVarMVarapliftM5liftM4liftM3liftM2liftMunlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinforever<=<>=>msumforM_forMfilterMguardmapM_mapM sequence_sequence=<<mplusmzero<$fmapmonadIO-0.9.2.0Control.Concurrent.STM.MonadIOisEmptyTMVarSTMtryPutTMVarSTMtryTakeTMVarSTM swapTMVarSTM readTMVarSTM putTMVarSTM takeTMVarSTMnewEmptyTMVarSTM newTMVarSTM modifyTMVar_ modifyTMVar isEmptyTMVar tryPutTMVar tryTakeTMVar swapTMVar readTMVarputTMVar takeTMVar newEmptyTMVarnewTMVar writeTVarSTM readTVarSTM newTVarSTM modifyTVar_ modifyTVar registerDelay writeTVarreadTVarnewTVar atomicallyControl.Concurrent.MonadIO threadDelayyieldthrowTo killThread myThreadIdforkIOwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChan isEmptyMVar tryPutMVar tryTakeMVarswapMVarreadMVarputMVartakeMVarnewMVar newEmptyMVarforkHasFork stm-2.1.2.2Control.Concurrent.STM.TMVarTMVarControl.Monad.STMcheck mtl-1.1.1.0Control.Monad.TransMonadIOliftIO