Replace custom exception classes (ExceptionMonad) with classes from the exceptions library
There are quite a few classes in GHC which are similar to the MonadMask
, MonadCatch
and MonadThrow
classes in
the exceptions library. Now that's a boot library it seems to make sense to make GHC depend on it and use those
classes rather than the custom ones.
- It fits in better with the rest of the ecosystem, GHC API users would have to implement less custom instances.
- Many instances of the classes can be derived using
DerivingVia
.
Modules of interest are Exception
, Panic
, GHC.Driver.Monad
.