diff options
-rw-r--r-- | libraries/base/Control/Exception.hs | 22 | ||||
-rw-r--r-- | libraries/base/Control/OldException.hs | 5 | ||||
-rw-r--r-- | libraries/base/System/Timeout.hs | 6 |
3 files changed, 22 insertions, 11 deletions
diff --git a/libraries/base/Control/Exception.hs b/libraries/base/Control/Exception.hs index d3a88e8d6c..13b6cac404 100644 --- a/libraries/base/Control/Exception.hs +++ b/libraries/base/Control/Exception.hs @@ -1,4 +1,7 @@ {-# OPTIONS_GHC -XNoImplicitPrelude #-} + +#include "Typeable.h" + ----------------------------------------------------------------------------- -- | -- Module : Control.Exception @@ -46,6 +49,7 @@ module Control.Exception ( RecConError(..), RecSelError(..), RecUpdError(..), + ErrorCall(..), -- * Throwing exceptions throwIO, -- :: Exception -> IO a @@ -557,7 +561,7 @@ patError s = throw (PatternMatchFail (untangle s "Non-exhaustive ----- data PatternMatchFail = PatternMatchFail String - deriving Typeable +INSTANCE_TYPEABLE0(PatternMatchFail,patternMatchFailTc,"PatternMatchFail") instance Exception PatternMatchFail @@ -567,7 +571,7 @@ instance Show PatternMatchFail where ----- data RecSelError = RecSelError String - deriving Typeable +INSTANCE_TYPEABLE0(RecSelError,recSelErrorTc,"RecSelError") instance Exception RecSelError @@ -577,7 +581,7 @@ instance Show RecSelError where ----- data RecConError = RecConError String - deriving Typeable +INSTANCE_TYPEABLE0(RecConError,recConErrorTc,"RecConError") instance Exception RecConError @@ -587,7 +591,7 @@ instance Show RecConError where ----- data RecUpdError = RecUpdError String - deriving Typeable +INSTANCE_TYPEABLE0(RecUpdError,recUpdErrorTc,"RecUpdError") instance Exception RecUpdError @@ -597,7 +601,7 @@ instance Show RecUpdError where ----- data NoMethodError = NoMethodError String - deriving Typeable +INSTANCE_TYPEABLE0(NoMethodError,noMethodErrorTc,"NoMethodError") instance Exception NoMethodError @@ -607,7 +611,7 @@ instance Show NoMethodError where ----- data AssertionFailed = AssertionFailed String - deriving Typeable +INSTANCE_TYPEABLE0(AssertionFailed,assertionFailedTc,"AssertionFailed") instance Exception AssertionFailed @@ -617,7 +621,7 @@ instance Show AssertionFailed where ----- data NonTermination = NonTermination - deriving Typeable +INSTANCE_TYPEABLE0(NonTermination,nonTerminationTc,"NonTermination") instance Exception NonTermination @@ -631,7 +635,7 @@ nonTermination = toException NonTermination ----- data Deadlock = Deadlock - deriving Typeable +INSTANCE_TYPEABLE0(Deadlock,deadlockTc,"Deadlock") instance Exception Deadlock @@ -641,7 +645,7 @@ instance Show Deadlock where ----- data NestedAtomically = NestedAtomically - deriving Typeable +INSTANCE_TYPEABLE0(NestedAtomically,nestedAtomicallyTc,"NestedAtomically") instance Exception NestedAtomically diff --git a/libraries/base/Control/OldException.hs b/libraries/base/Control/OldException.hs index 3f43f58c8d..dd26167659 100644 --- a/libraries/base/Control/OldException.hs +++ b/libraries/base/Control/OldException.hs @@ -1,4 +1,7 @@ {-# OPTIONS_GHC -XNoImplicitPrelude #-} + +#include "Typeable.h" + ----------------------------------------------------------------------------- -- | -- Module : Control.OldException @@ -714,7 +717,7 @@ data Exception -- fields are missing from some of the constructors. The -- 'String' argument gives the location of the -- record update in the source program. - deriving Typeable +INSTANCE_TYPEABLE0(Exception,exceptionTc,"Exception") nonTermination :: SomeException nonTermination = toException NonTermination diff --git a/libraries/base/System/Timeout.hs b/libraries/base/System/Timeout.hs index 634b3548af..0e82704a85 100644 --- a/libraries/base/System/Timeout.hs +++ b/libraries/base/System/Timeout.hs @@ -12,6 +12,8 @@ -- ------------------------------------------------------------------------------- +#include "Typeable.h" + module System.Timeout ( timeout ) where #if __NHC__ @@ -26,13 +28,15 @@ import Control.Monad (Monad(..), guard) import Control.Concurrent (forkIO, threadDelay, myThreadId, killThread) import Control.Exception (Exception, handleJust, throwTo, bracket) import Data.Dynamic (Typeable, fromDynamic) +import Data.Typeable import Data.Unique (Unique, newUnique) -- An internal type that is thrown as a dynamic exception to -- interrupt the running IO computation when the timeout has -- expired. -data Timeout = Timeout Unique deriving (Eq, Typeable) +data Timeout = Timeout Unique deriving Eq +INSTANCE_TYPEABLE0(Timeout,timeoutTc,"Timeout") instance Show Timeout where show _ = "<<timeout>>" |