Applies the "during" action, calling "after" regardless of whether there was an exception.
Applies the "during" action, calling "after" regardless of whether there was an exception. All exceptions are rethrown. Generalizes try/finally.
A variant of "bracket" that performs the final action only if there was an error.
A variant of "bracket" where the return value of this computation is not needed.
Returns a disjunction result which is right if no exception was raised, or left if an exception was raised.
Executes the handler for exceptions that are raised and match the given predicate.
Executes the handler for exceptions that are raised and match the given predicate. Other exceptions are rethrown.
Like "catchLeft" but takes a predicate to select which exceptions are caught.
Like "bracket", but takes only a computation to run afterward.
Like "bracket", but takes only a computation to run afterward. Generalizes "finally".
Executes the handler if an exception is raised.
Continues this action with the given action.
Lift this action to a given IO-like monad.
Continues this action with the given function.
Like "finally", but only performs the final action if there was an exception.
Constructs an IO action whose steps may be interleaved with another.
Constructs an IO action whose steps may be interleaved with another. An unsafe operation, since it exposes a trampoline that allows one to step through the components of the IO action.
Runs I/O and performs side-effects.
Runs I/O and performs side-effects. An unsafe operation. Do not call until the end of the universe.
Interleaves the steps of this IO action with the steps of another, yielding the results of both.
Interleaves the steps of this IO action with the steps of another, consuming the results of both with the given function.
Interleaves the steps of this IO action with the steps of another, ignoring the result of this action.
An automatic resource management.