[project @ 2002-05-09 13:16:29 by simonmar]
[ghc-base.git] / Control / Exception.hs
index 96205c6..8a66e97 100644 (file)
@@ -1,15 +1,13 @@
 -----------------------------------------------------------------------------
--- 
+-- |
 -- Module      :  Control.Exception
 -- Copyright   :  (c) The University of Glasgow 2001
--- License     :  BSD-style (see the file libraries/core/LICENSE)
+-- License     :  BSD-style (see the file libraries/base/LICENSE)
 -- 
 -- Maintainer  :  libraries@haskell.org
 -- Stability   :  experimental
 -- Portability :  non-portable
 --
--- $Id: Exception.hs,v 1.3 2001/10/18 11:10:19 rrt Exp $
---
 -- The External API for exceptions.  The functions provided in this
 -- module allow catching of exceptions in the IO monad.
 --
@@ -47,7 +45,6 @@ module Control.Exception (
        -- Throwing exceptions
 
        throw,          -- :: Exception -> a
-       -- for now
        throwTo,        -- :: ThreadId -> Exception -> a
 
        -- Dynamic exceptions
@@ -77,7 +74,8 @@ module Control.Exception (
 
 #ifdef __GLASGOW_HASKELL__
 import Prelude                 hiding (catch)
-import GHC.Prim                ( assert )
+import System.IO.Error
+import GHC.Base                ( assert )
 import GHC.Exception   hiding (try, catch, bracket, bracket_)
 import GHC.Conc                ( throwTo, ThreadId )
 import GHC.IOBase      ( IO(..) )
@@ -200,7 +198,7 @@ dynExceptions _ = Nothing
 asyncExceptions (AsyncException e) = Just e
 asyncExceptions _ = Nothing
 
-userErrors (UserError e) = Just e
+userErrors e | isUserError e = Just (ioeGetErrorString e)
 userErrors _ = Nothing
 
 -----------------------------------------------------------------------------