catchError -package:freer-simple

A handler function to handle previous errors and return to normal execution. A common idiom is:
do { action1; action2; action3 } `catchError` handler
where the action functions can call throwError. Note that handler and the do-block must have the same return type.
Catch an error in the base monad
A handler function to handle previous errors and return to normal execution. A common idiom is:
do { action1; action2; action3 } `catchError` handler
where the action functions can call throwError. Note that handler and the do-block must have the same return type.
Handle an error of type e.
Run a computation which can throw errors with a handler to run on error. Errors thrown by the handler will escape up to the nearest enclosing catchError (if any). Note that this effect does not handle errors thrown from impure contexts such as IO, nor will it handle exceptions thrown from pure code. If you need to handle IO-based errors, consider if fused-effects-exceptions fits your use case; if not, use liftIO with try or use catch from outside the effect invocation.
runError (throwError e catchError f) = runError (f e)
Run a computation that might produce exceptions, and give it a way to deal with the exceptions that come up. The handler is allowed to rethrow the exception
Preserve the state of the failing computation.
A handler function to handle previous errors and return to normal execution.
Catch an error using a catch function for the base monad
catchError with MergingStrategy knowledge propagation.