finally -package:streamly

A specialised variant of bracket with just a computation to run afterward.
Perform an action with a finalizer action that is run, even if an error occurs.
Perform thing, guaranteeing that after will run after, even if an exception occurs. Same interruptible vs uninterrupible points apply as with bracket. See base's finally for more information.
Async safe version of finally
Generalized version of finally. Note, any monadic side effects in m of the "afterward" computation will be discarded.
Like bracket, but for the simple case of one computation to run afterward.
Analogous to finally from Control.Monad.Catch, except this also protects against premature termination
Deprecated: Use Control.Monad.Catch.finally instead
Lifted finally.
Run a computation and always perform a second, final computation even if an exception is raised. If a short-circuiting monad transformer such as ErrorT or MaybeT is used to transform a MonadException monad, then the implementation of finally for the transformed monad must guarantee that the final action is also always performed when any short-circuiting occurs.
We need to be able to terminate benchmarking in case of an exception.
Finally for the Error class. Errors in the finally part take precedence over prior errors.
Like bracket, but for the simple case of one computation to run afterward.
Run an action and then, run a finalizer afterwards. The second action will run whether or not an exception was raised by the first one. This is like bracket above, but can be used when you know you have cleanup steps to take after your computation which do have to be run even if (especially if!) an exception is thrown but that that cleanup doesn't depend on the result of that computation or the resources used to do it. The return value γ of the subsequent action is ignored.
Generalized version of finally. Note, any monadic side effects in m of the "afterward" computation will be discarded.
Async safe version of finally
Variant of bracket.
finallyE a b executes computation a followed by computation b, even if a exits early by throwing an exception. In the latter case, the exception is re-thrown after b has been executed.
Same as a normal finally but specialized for the Sh monad.
Deprecated: use Control.Exception.Lifted.finally instead