X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=System%2FTimeout.hs;h=df33625c8d4cca3f8b51052c4c87492481d4cd5f;hb=be2750a0a11b919fb03cc070074e430f88bdfa90;hp=9ccc634ed9a0c9cfeb79e237c464b218ff40ce6f;hpb=94d448d7f730854a921293f71787864b76b6b267;p=ghc-base.git diff --git a/System/Timeout.hs b/System/Timeout.hs index 9ccc634..df33625 100644 --- a/System/Timeout.hs +++ b/System/Timeout.hs @@ -1,3 +1,8 @@ +{-# LANGUAGE CPP #-} +#ifdef __GLASGOW_HASKELL__ +{-# LANGUAGE DeriveDataTypeable, StandaloneDeriving #-} +#endif + ------------------------------------------------------------------------------- -- | -- Module : System.Timeout @@ -20,12 +25,11 @@ module System.Timeout ( timeout ) where #ifdef __GLASGOW_HASKELL__ import Prelude (Show(show), IO, Ord((<)), Eq((==)), Int, - (.), otherwise, fmap) + otherwise, fmap) import Data.Maybe (Maybe(..)) -import Control.Monad (Monad(..), guard) +import Control.Monad (Monad(..)) 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) @@ -33,7 +37,7 @@ import Data.Unique (Unique, newUnique) -- interrupt the running IO computation when the timeout has -- expired. -data Timeout = Timeout Unique deriving Eq +newtype Timeout = Timeout Unique deriving Eq INSTANCE_TYPEABLE0(Timeout,timeoutTc,"Timeout") instance Show Timeout where