On Sun, 17 Feb 2008, Philippa Cowderoy wrote:
The nicest use would be for converting between a more specific error type
and a more general one that handles a wider range of errors - enabling us
to keep tighter track of which errors are possible in a given piece of
code. Bonus points for
For a while I've been meaning to propose something along the lines of
this class:
class (MonadError m e, MonadError m' e') =
MonadErrorRelated m e m' e' | m - e, m' - e', m e' - m' where
catch' :: m a - (e - m' a) - m' a
rethrow :: m a - (e - e') - m' a
with an example instance