Interleave a list of actions [x]++xs and return the result of the first action
that completes (and cancel all others).
todo: we need a list1 type.
Interleave a list of actions. If any raises an exception, cancels, or finalizes, propagate that and cancel all others.
Execute a and b interleaved. As soon as one of them finishes,
cancel the other one and return the result of finished action.
Interleave two actions.
Execute action but if it is not finished within secs seconds duration
cancel it (and return Nothingstd/core/types/Nothing: forall<a> maybe<a>). Due to the generality of cancel, this timeoutstd/async/interleave/timeout: forall<a,e> (secs : duration, action : () -> <async,ndet|e> a) -> <async,ndet|e> maybe<a>
abstraction can reliably time out over any composition of asynchronous operations
and is therefore quite expressive.
Asynchronous interleavings.
Various forms of interleaving for asynchronous operations.