X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FTypeable.hs;h=efb020e4fcaf571655d19e35ab97b788a4abc594;hb=e9e2a5412bb7cda8d13a063ac403d9f18ac97380;hp=8bd01f78e1389a22a591fec4a57b8b5b64a74eee;hpb=48a210e49396b4998174350191759879b442ad75;p=ghc-base.git diff --git a/Data/Typeable.hs b/Data/Typeable.hs index 8bd01f7..efb020e 100644 --- a/Data/Typeable.hs +++ b/Data/Typeable.hs @@ -1,4 +1,4 @@ -{-# OPTIONS -fno-implicit-prelude #-} +{-# OPTIONS_GHC -fno-implicit-prelude #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Typeable @@ -9,12 +9,12 @@ -- Stability : experimental -- Portability : portable -- --- The Typeable class reifies types to some extent by associating type +-- The 'Typeable' class reifies types to some extent by associating type -- representations to types. These type representations can be compared, -- and one can in turn define a type-safe cast operation. To this end, -- an unsafe cast is guarded by a test for type (representation) --- equivalence. The module Data.Dynamic uses Typeable for an --- implementation of dynamics. The module Data.Generics uses Typeable +-- equivalence. The module "Data.Dynamic" uses Typeable for an +-- implementation of dynamics. The module "Data.Generics" uses Typeable -- and type-safe cast (but not dynamics) to support the \"Scrap your -- boilerplate\" style of generic programming. -- @@ -96,7 +96,9 @@ import GHC.Num import GHC.Float import GHC.Real( rem, Ratio ) import GHC.IOBase +import GHC.ST -- So we can give Typeable instance for ST import GHC.Ptr -- So we can give Typeable instance for Ptr +import GHC.ForeignPtr -- So we can give Typeable instance for ForeignPtr import GHC.Stable -- So we can give Typeable instance for StablePtr #endif @@ -463,6 +465,10 @@ INSTANCE_TYPEABLE1(Ratio,ratioTc,"Ratio") INSTANCE_TYPEABLE2(Either,eitherTc,"Either") INSTANCE_TYPEABLE2((->),funTc,"->") INSTANCE_TYPEABLE1(IO,ioTc,"IO") +#ifdef __GLASGOW_HASKELL__ +INSTANCE_TYPEABLE2(ST,stTc,"ST") +INSTANCE_TYPEABLE1(ForeignPtr,foreignPtrTc,"ForeignPtr") +#endif INSTANCE_TYPEABLE0((),unitTc,"()") #ifndef __NHC__ INSTANCE_TYPEABLE2((,),pairTc,",") @@ -508,6 +514,9 @@ INSTANCE_TYPEABLE0(Char,charTc,"Char") INSTANCE_TYPEABLE0(Float,floatTc,"Float") INSTANCE_TYPEABLE0(Double,doubleTc,"Double") INSTANCE_TYPEABLE0(Int,intTc,"Int") +#ifndef __NHC__ +INSTANCE_TYPEABLE0(Word,wordTc,"Word" ) +#endif INSTANCE_TYPEABLE0(Integer,integerTc,"Integer") INSTANCE_TYPEABLE0(Ordering,orderingTc,"Ordering") INSTANCE_TYPEABLE0(Handle,handleTc,"Handle") @@ -526,7 +535,7 @@ INSTANCE_TYPEABLE0(TyCon,tyconTc,"TyCon") INSTANCE_TYPEABLE0(TypeRep,typeRepTc,"TypeRep") #ifdef __GLASGOW_HASKELL__ -INSTANCE_TYPEABLE0(Word,wordTc,"Word" ) +INSTANCE_TYPEABLE0(RealWorld,realWorldTc,"RealWorld") #endif ---------------------------------------------