-- Stability : experimental
-- Portability : non-portable
--
--- $Id: Exception.hs,v 1.4 2001/10/18 11:14:17 rrt Exp $
+-- $Id: Exception.hs,v 1.6 2002/02/05 17:32:25 simonmar Exp $
--
-- The External API for exceptions. The functions provided in this
-- module allow catching of exceptions in the IO monad.
#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(..) )
asyncExceptions (AsyncException e) = Just e
asyncExceptions _ = Nothing
-userErrors (UserError e) = Just e
+userErrors e | isUserError e = Just (ioeGetErrorString e)
userErrors _ = Nothing
-----------------------------------------------------------------------------