Make the macros in Typeable.h add type signatures
authorIan Lynagh <igloo@earth.li>
Thu, 19 Jun 2008 23:58:08 +0000 (23:58 +0000)
committerIan Lynagh <igloo@earth.li>
Thu, 19 Jun 2008 23:58:08 +0000 (23:58 +0000)
Foreign/Ptr.hs
GHC/Weak.lhs
include/Typeable.h

index f57e1ac..7c83326 100644 (file)
@@ -67,7 +67,7 @@ import Foreign.C.Types
 #endif
 
 import Data.Bits
-import Data.Typeable    ( Typeable(..), mkTyCon, mkTyConApp )
+import Data.Typeable
 import Foreign.Storable ( Storable(..) )
 
 #ifdef __NHC__
index 3866ed4..66fefcd 100644 (file)
@@ -21,7 +21,7 @@ module GHC.Weak where
 import GHC.Base
 import Data.Maybe
 import GHC.IOBase       ( IO(..), unIO )
-import Data.Typeable    ( Typeable1(..), mkTyCon, mkTyConApp )
+import Data.Typeable
 
 {-|
 A weak pointer object with a key and a value.  The value has type @v@.
index 5e22e03..649d6f3 100644 (file)
@@ -15,6 +15,7 @@
 #define TYPEABLE_H
 
 #define INSTANCE_TYPEABLE0(tycon,tcname,str) \
+tcname :: TyCon; \
 tcname = mkTyCon str; \
 instance Typeable tycon where { typeOf _ = mkTyConApp tcname [] }
 
@@ -24,14 +25,17 @@ instance Typeable tycon where { typeOf _ = mkTyConApp tcname [] }
 --  // defined in Data.Typeable.
 
 #define INSTANCE_TYPEABLE1(tycon,tcname,str) \
+tcname :: TyCon; \
 tcname = mkTyCon str; \
 instance Typeable1 tycon where { typeOf1 _ = mkTyConApp tcname [] }
 
 #define INSTANCE_TYPEABLE2(tycon,tcname,str) \
+tcname :: TyCon; \
 tcname = mkTyCon str; \
 instance Typeable2 tycon where { typeOf2 _ = mkTyConApp tcname [] }
 
 #define INSTANCE_TYPEABLE3(tycon,tcname,str) \
+tcname :: TyCon; \
 tcname = mkTyCon str; \
 instance Typeable3 tycon where { typeOf3 _ = mkTyConApp tcname [] }