#endif
import Data.Bits
-import Data.Typeable ( Typeable(..), mkTyCon, mkTyConApp )
+import Data.Typeable
import Foreign.Storable ( Storable(..) )
#ifdef __NHC__
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@.
#define TYPEABLE_H
#define INSTANCE_TYPEABLE0(tycon,tcname,str) \
+tcname :: TyCon; \
tcname = mkTyCon str; \
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 [] }