úÎŽu      SforkPromise take an action to run, and runs it in a new thread. This is run in an unblock ` context. If the action succeeds it will store its result as (Right {}). If the action throws  an exception, or the [forkPromises is build on top of forkPromise. It converts a list of actions into a list of _ promises, and additionally collects the results, in completion order, into the returned Chan. ^racePromises is build on top of forkPromise. It runs a list of actions as promises and waits _ for the first result (which may be an exception). Once the result is found it asynchronously  kills the threads. `declarePromise is built on top of forkPromise. It creates a promise and an function to fulfill a the promise with an action. The first time the fulfull function is used it gives the action to b the promise and returns True. All additional usages of the fulfill function will do nothing and a return False. Note that the Promise may be aborted before the fulfill function is used, and in L this case the fulfill function will appear to succeed but achieve nothing.  is a non-blocking read. Like  with 0 delay.  is a blocking read. I with a positive value in micro seconds is a blocking read with timeout.  > is wait which rethrows a SomeException in the calling thread   is a 6 which rethrows a SomeException in the calling thread WIf the abort occurs before the action has stored a result then the result is set to an \ exception. The first call to abort gets the threadId and performs the, possibly blocking, [ killThread. If it completes then the ThreadId is forgotten (so the thread can be garbage  collected). XPost an action to perform in a new thread with the reasult of the promise. All are run  unblocked in a fresh thread.           future-2.0.0Control.Concurrent.FuturePromise PromiseResult forkPromise forkPromises racePromisesdeclarePromisecheckwait timedWaitgettimedGetabortaddTodop_tidp_writep_notifyp_resultp_todo setPromise launchWith