Capability to catch exceptions of type
e under
tag.
HasThrow/
HasCatch capabilities at different tags
should be independent. In particular, the following program should
throw
SomeError and not return
(). > example ::
> (HasThrow
Left SomeError m, HasCatch
Right
SomeError m) > => m () > example = > catch
Left
> (throw Right SomeError) > _ -> pure ()
See
wrapError for a way to combine multiple exception types
into one.