This library is useful for running a large amount of parallel tasks
that run on top of the IO monad, executing them in batches from a work queue.

It has several features aimed at monitoring the progress of the tasks
and tries to be reasonably efficient (in space and time) for large
numbers (millions) of tasks. There is also caching support available so that the results of
running the task can be preserved between runs of the same program, which
is useful for doing scientific analysis.