#5)      !"#$%&'(,Portability : concurrency, unsafeIntereaveIO!John Launchbury <john@galois.com>)*+,-.EThe thread-registry environment is a hierarchical structure of local  thread neighborhoods. /0123456789Portability : concurrency!John Launchbury <john@galois.com> :; < =>?@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.  !"List-like functions #$%&'(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?@F?GH?IJ?IK?IL?IM?IN?IO?IP?IQ?IR?IS?IT?IU?IV?IW?IX?IY?IZ?IZ?I[?I\?I]?I^?I_?I`?Ia?Ib?Ib?cd?ef?eg?eh?ei?ej?ek?el?em?no?pq?Gr?Gs?Gt?Gu?Gv?Gw?Gx?Gy?Gz?G{?G|?G}?G~?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?G?@?@ orc-1.1.2.0Control.Concurrent.Hierarchical Orc.MonadOrc.CombinatorsOrcGroupHIOnewGrouplocalclosefinishedrunHIO newPrimGroupstoprunOrc<+>eagerlyvalsignalcut onlyUntilbutAftertimeoutsilentliftList repeatingrunChansync notBeforesyncListdelayprintOrcprompt putStrLinescancountcollecttakeOrcdropOrczipOrcsandboxechozipppublishEntryThread 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