Run an Error effect, applying the first continuation to uncaught errors and the second continuation to successful computations’ results.
runError j k (pure a) = k a
runError j k (throwError e) = j e
runError j k (throwError e `catchError` pure) = k e