úÎÜï     7an abreviation for  ' HCons (K t e)') adds a remote computation in front of a   ! is the empty   "  T represents a sequence of remote computations, possibly owned by different threads.  | When a  = is executed, at least one remote computation is successful. A value of type 'K t a'+ represents a remote computation returning a that is performed by a thread  . #$2JobStatus shows whether a job is finished or not. %&VThreadStatus shows whether a thread is finished or have to try executing another job. Each   type has  'SucT t' is a   if t is a   . The name $ comes from the successor function. '   is a   ( PAn abstract representation of a thread. Threads are actually implemented using ). * +,F creates a IO hypersequent consisting of a single remote computation. 2extend a IO hypersequent with another computation -6 allows to look at the result of a remote computation  stands for communication. S combines two hypersequents with a communicating component from each hypersequent.  | '.comm hypersequent1 error1 hypersequent2 error2' where error1 and error2/ specifies what to do in case of read failure.  executes a . hypersequent. /012345678      9      !"#$%  &'()*+,-./0123456789:waitfree-0.1.5Control.Concurrent.Waitfree:*:HConsHNilK ThreadStatusFinished TryAnotherJobAbstractThreadIdSucTZeroTThreadtatidfollowsexchangecyclingsingle-*-peekcommexecutechoice LconvertiblehtolLJobPool ThreadPool JobChannelHLasthLastHAppendhAppend IOerSequent JobStatusDoneHavingbase GHC.Conc.SyncforkIOjth2thcycling_remotelmaybeghc-prim GHC.TypesIOextendworkerexecute' spawnPoolrun threadSpawnconstructJobPool waitThread threadWait progress_