Fix hReady (trac #1063)
[ghc-base.git] / Prelude.hs
index 8eb912b..050da04 100644 (file)
@@ -146,22 +146,17 @@ module Prelude (
 #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 GHC.Exception ( throw )
+import Text.Read
 import GHC.Enum
 import GHC.Num
 import GHC.Real
@@ -170,7 +165,9 @@ import GHC.Show
 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
@@ -195,6 +192,7 @@ seq :: a -> b -> b
 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
@@ -214,7 +212,5 @@ seq _ y = y
 -- 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__ */