MonadCatch instance c/o @jwiegley