The async library
provides a higher-level interface over threads, allowing users to
conveniently run IO operations asynchronously and wait for their
results. This package is a reimplementation of async using the
MonadConc abstraction from
easy-to-use asynchronous operaitons within an easily-testable
This library itself is tested with dejafu.
When these functions are used in an IO context, the behaviour should appear identical to the original async package.