úÎ!K`FPO      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ K L M N Safe>MOPQRSTUSafe2EX¿ Trustworthy2ÅConcurrentUtilsThrown by the writer function. ConcurrentUtils Construct a channel from a list. ConcurrentUtils^Take the first element from a channel, and a channel representing the remainder of the output. ConcurrentUtils˜Create a new channel. The first return value is a function that can be used to add values to the channel. The second return value is the channel itself.ConcurrentUtilsþThe first return value is a procedure that returns values from the channel successively, starting from the position of the parameter channel. The second thunk can be used to retrieve the position of the channel after the reads made using the first thunk.ConcurrentUtilsHCreate a channel which is initially empty, but accumulates new elements.     None2XQVConcurrentUtils2Make a new quantity semaphore initialized at zero.WConcurrentUtils˜Put quantity into the semaphore. Caller is responsible for ensuring that n is non-negative and that it leaves the counter within the positive integers.XConcurrentUtils=Probe the semaphore. Quantity requested must be non-negative.YVWX Trustworthy2>HVpConcurrentUtils+Read the maximum size of the bounded queue.ConcurrentUtilsSnapshot buffer size. SafeÖZSafe"GConcurrentUtils%Arrows that have a strictness effect.ConcurrentUtilsLaws:Either aW has arrow apply-constraint, or it is an application of an arrow transformer or both. Provided a% has arrow apply-constraint, force = . Provided a, is an application of an arrow transformer, [1 force is more defined (less strict) than force.Y has the unique most strict implementation which is compatible with the previous laws.1These laws place limitations on the effects that ; can introduce. Reynolds' parametricity also implies that 1 does not change the argument and return values. Trustworthy&'2X_&Ü'ConcurrentUtilsBUse if you don't want to use a thread pool. The implementation of , spawns a green thread.+ConcurrentUtils1Thread pools support some standard operations....0ConcurrentUtils8Stop each worker thread in turn by sending it a message. %&'()*+,-./01 -./01+,)*'(%& Trustworthy,2X>Ñ:ConcurrentUtilsMA type for functions that transform a base method, taking a thread pool also.;ConcurrentUtils/A type for methods that accept a list of tasks.<ConcurrentUtilsÿbFor internal errors. If a procedure throws this, some threads it created may still be running. This exception type is provided out of an abundance of caution, in case you want to take precautions against the activities of threads that for whatever reason cannot be terminated. If thrown it is never among the exceptions listed inside an ExceptionList.>ConcurrentUtils%For exceptions caused by caller code.@ConcurrentUtils¼Run the collection of tasks in the specified thread pool. Each task does not necessarily get its own thread--a best effort is made to spread the load over all threads in the thread pool.AConcurrentUtils)This function implements some policy for @. @› makes the guarantee that the tasks given as an argument, map one-to-one to the tasks run on the thread pool. This guarantee is dropped for the function A!, which allows more optimization.0In order to get the tasks, the integer argument n! is accepted and the functional mnds. is evaluated in the range 0 to n-1 inclusive.BConcurrentUtilsÿAn adapter which modifies the argument concurrent method, to implement an exception handling policy in which exceptions are collected in a list, which is thrown as an exception in the caller. This appropriates the exception handling behavior of old versions of this package.%&'()*+,-./01:;<=>?@ABC >?<=;:@ABC Trustworthy>XCXHConcurrentUtils—Concurrent evaluation of an associative fold. The caller is responsible for introducing appropriate strictness for the results in the second argument.IConcurrentUtils)Pattern which is a simple wrapper around H.HIHI  Trustworthy>FMConcurrentUtils}Runs several computations concurrently, and returns their results as an array. Waits for all threads to end before returning. <=>?JKLMN >?<=JKLMN\   !"#$%&'()*+,-./001123456789:;<=>?@ABCDEEFFGHIJKLMNOP Q R S T UVWXVWYVWVWZVW[VWVW \ ] ^ _ `abcd.ConcurrentUtils-0.5.0.0-1IlTe38wFC44lIukE4Wme7Control.CUtils.ChannelControl.CUtils.DynControl.CUtils.FChanControl.CUtils.BoundedQueueControl.CUtils.StrictArrowControl.CUtils.ThreadPool Control.CUtils.CPUMultiThreadingControl.CUtils.AssociativeFoldControl.CUtils.ConcControl.CUtils.SemaphoreControl.CUtils.SplitChannelDynvaluemakeDyn determineType $fShowDyn$fEqDynDoneReadingExceptionChan listToChantakeChan tryTakeChannewChan makeConsumer chanContentsdupChan$fExceptionDoneReadingException$fShowDoneReadingException BoundedQueuenewRBwriteRBreadRBlengthRB getSizeRB$fDataBoundedQueueStrictforceProfunctorOpticforceDef evalInFst$fStrictAbortT$fStrictWriterT$fStrictStateT$fStrictReaderT$fStrictKleisli $fStrict->BoxedThreadPoolNoPool InterruptiblestopPool ThreadPool addToPoolPooladdToPoolMultinewPool stopPool_ globalPool$fDataInstruction $fDataWorker$fThreadPoolPool$fInterruptiblePool$fThreadPoolNoPool$fThreadPoolBoxedThreadPool $fDataPool $fDataNoPoolConcurrentMethodAdapterConcurrentMethod ConcException ExceptionList simpleConc_ concurrent_throwToCallerAdapter_ toNewStyle$fExceptionExceptionList$fExceptionConcException$fShowExceptionList$fShowConcException assocFoldassocFold_patternconcF_conc_concFconc arr_assocFoldbaseControl.Concurrent.ChanwriteList2ChangetChanContentsreadChan writeChannewSemputSemtakeSemSemsplit atl-17072-AbMs6uloJ5YKKZS5kyKdzsControl.Arrow.Transformertmap