Applies the "during" action, calling "after" regardless of whether there was an exception.
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.
Like "catchLeft" but takes a predicate to select which exceptions are caught.
Like "bracket", but takes only a computation to run afterward.
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.
Runs I/O and performs side-effects.
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.