module Control.Monad.Except.IOH ( handle ) where import Control.Monad.Except (MonadError(..), ExceptT, runExceptT) handle :: Monad m => ExceptT a m b -> (a -> m b) -> m b handle m handler = (runExceptT m) >>= either handler return