catch +mtl

catchError :: MonadError e m => m a -> (e -> m a) -> m a
mtl Control.Monad.Error.Class, mtl Control.Monad.Error