Transparent support for interruptible computations. A workflow can be seen as a persistent thread that executes a
monadic computation. Therefore, it can be used in very time consuming computations such are CPU intensive calculations
or procedures that are most of the time waiting for the action of a process or an user, that are prone to communication
failures, timeouts or shutdowns. It also can be used if you like to restart your
program at the point where the user left it last time
The computation can be restarted at the interrupted point thanks to its logged state in permanent storage.
The thread state is located in files by default. It can be moved and continued in another computer.
Besides that, the package also provides other higher level services associated to workflows: Workflow patterns,
and a general configuration utility, workflow observation events and references to the internal state.
The state can be stored maintaining memory references (using the
RefSerialize package), so that it is possible to track the modifications
of a big structure (for example a document) along the workflow execution.
Control.Workflow for details
In this release: * Adaptation for MonadMask instance introduced in the package exceptions-0.6