Refactored the Monad{Catch,Error,Exception,Throw} classes by adopting the design of the MonadAbort and MonadRecover classes from the monad-abort-fd package.