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