#ifndef __HUGS__
import Control.Monad
import System.IO
-import Text.Read
-import Text.Show
import Data.List
import Data.Either
import Data.Maybe
-import Data.Bool
import Data.Tuple
-import Data.Eq
-import Data.Ord
#endif
#ifdef __GLASGOW_HASKELL__
import GHC.Base
import GHC.IOBase
-import GHC.Exception
-import GHC.Read
+import Text.Read
import GHC.Enum
import GHC.Num
import GHC.Real
import GHC.Err ( error, undefined )
#endif
-import qualified Control.OldException as Old
+#ifndef __HUGS__
+import qualified Control.Exception.Base as New (catch)
+#endif
#ifdef __HUGS__
import Hugs.Prelude
seq _ y = y
#endif
+#ifndef __HUGS__
-- | The 'catch' function establishes a handler that receives any 'IOError'
-- raised in the action protected by 'catch'. An 'IOError' is caught by
-- the most recent handler established by 'catch'. These handlers are
-- Non-I\/O exceptions are not caught by this variant; to catch all
-- exceptions, use 'Control.Exception.catch' from "Control.Exception".
catch :: IO a -> (IOError -> IO a) -> IO a
-catch io handler = io `Old.catch` handler'
- where handler' (Old.IOException ioe) = handler ioe
- handler' e = throw e
-
+catch = New.catch
+#endif /* !__HUGS__ */