module System.IO.Exception.File where import System.IO.Straight (ExceptionalT, IOException, SIO, ioToExceptionalSIO, ) import qualified System.IO as IO -- import System.IO (Handle, IOMode, ) type EIO = ExceptionalT IOException SIO close :: IO.Handle -> EIO () close :: Handle -> EIO () close Handle h = IO () -> EIO () forall a. IO a -> ExceptionalT IOException SIO a ioToExceptionalSIO (IO () -> EIO ()) -> IO () -> EIO () forall a b. (a -> b) -> a -> b $ Handle -> IO () IO.hClose Handle h