úΑ¤     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.4Control.Concurrent.Waitfree:*:HConsHNilK ThreadStatusFinished TryAnotherJobAbstractThreadIdSucTZeroTThreadtatidfollowscyclingsingle-*-commexecute LconvertiblehtolLJobPool ThreadPool JobChannelHLasthLastHAppendhAppend IOerSequent JobStatusDoneHavingbase GHC.Conc.SyncforkIOjth2thcycling_remotelmaybepeekcomm_ writeMVarghc-prim GHC.TypesIOextendworkerexecute' spawnPoolrun threadSpawnconstructJobPool waitThread threadWait progress_