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