1{-# OPTIONS_GHC -fno-warn-deprecations #-} 2{-# LANGUAGE ConstraintKinds #-} 3 4module GHC.Utils.Exception 5 ( 6 module CE, 7 module GHC.Utils.Exception 8 ) 9 where 10 11import GHC.Prelude 12 13import Control.Exception as CE 14import Control.Monad.IO.Class 15import Control.Monad.Catch 16 17-- Monomorphised versions of exception-handling utilities 18catchIO :: IO a -> (IOException -> IO a) -> IO a 19catchIO = CE.catch 20 21handleIO :: (IOException -> IO a) -> IO a -> IO a 22handleIO = flip catchIO 23 24tryIO :: IO a -> IO (Either IOException a) 25tryIO = CE.try 26 27type ExceptionMonad m = (MonadCatch m, MonadThrow m, MonadMask m, MonadIO m) 28