[project @ 1998-10-21 11:28:00 by sof]
[ghc-hetmet.git] / ghc / compiler / prelude / TysPrim.lhs
index 660b2a5..69b6592 100644 (file)
@@ -11,14 +11,14 @@ module TysPrim where
 
 #include "HsVersions.h"
 
-import Kind            ( mkUnboxedTypeKind, mkBoxedTypeKind, mkTypeKind, mkArrowKind )
+import Kind            ( mkBoxedTypeKind )
 import Name            ( mkWiredInTyConName )
 import PrimRep         ( PrimRep(..) ) -- getPrimRepInfo uses PrimRep repn
 import TyCon           ( mkPrimTyCon, mkDataTyCon, TyCon )
 import BasicTypes      ( NewOrData(..), RecFlag(..) )
 import Type            ( mkTyConApp, mkTyConTy, mkTyVarTys, Type )
 import TyVar           ( GenTyVar(..), alphaTyVars )
-import PrelMods                ( gHC__ )
+import PrelMods                ( pREL_GHC )
 import Unique
 \end{code}
 
@@ -40,7 +40,7 @@ pcPrimTyCon :: Unique{-TyConKey-} -> FAST_STRING -> Int -> PrimRep -> TyCon
 pcPrimTyCon key str arity primrep
   = the_tycon
   where
-    name      = mkWiredInTyConName key gHC__ str the_tycon
+    name      = mkWiredInTyConName key pREL_GHC str the_tycon
     the_tycon = mkPrimTyCon name arity primrep
 
 
@@ -50,9 +50,15 @@ charPrimTyCon        = pcPrimTyCon charPrimTyConKey SLIT("Char#") 0 CharRep
 intPrimTy      = mkTyConTy intPrimTyCon
 intPrimTyCon   = pcPrimTyCon intPrimTyConKey SLIT("Int#") 0 IntRep
 
+int64PrimTy    = mkTyConTy int64PrimTyCon
+int64PrimTyCon = pcPrimTyCon int64PrimTyConKey SLIT("Int64#") 0 Int64Rep
+
 wordPrimTy     = mkTyConTy wordPrimTyCon
 wordPrimTyCon  = pcPrimTyCon wordPrimTyConKey SLIT("Word#") 0 WordRep
 
+word64PrimTy   = mkTyConTy word64PrimTyCon
+word64PrimTyCon        = pcPrimTyCon word64PrimTyConKey SLIT("Word64#") 0 Word64Rep
+
 addrPrimTy     = mkTyConTy addrPrimTyCon
 addrPrimTyCon  = pcPrimTyCon addrPrimTyConKey SLIT("Addr#") 0 AddrRep
 
@@ -73,12 +79,17 @@ getPrimRepInfo ::
     PrimRep -> (String,                -- tag string
                Type, TyCon)    -- prim type and tycon
 
-getPrimRepInfo CharRep   = ("Char",   charPrimTy,   charPrimTyCon)
-getPrimRepInfo IntRep    = ("Int",    intPrimTy,    intPrimTyCon)
-getPrimRepInfo WordRep   = ("Word",   wordPrimTy,   wordPrimTyCon)
-getPrimRepInfo AddrRep   = ("Addr",   addrPrimTy,   addrPrimTyCon)
-getPrimRepInfo FloatRep  = ("Float",  floatPrimTy,  floatPrimTyCon)
-getPrimRepInfo DoubleRep = ("Double", doublePrimTy, doublePrimTyCon)
+getPrimRepInfo CharRep       = ("Char",   charPrimTy,   charPrimTyCon)
+getPrimRepInfo IntRep        = ("Int",    intPrimTy,    intPrimTyCon)
+getPrimRepInfo WordRep       = ("Word",   wordPrimTy,   wordPrimTyCon)
+getPrimRepInfo AddrRep       = ("Addr",   addrPrimTy,   addrPrimTyCon)
+getPrimRepInfo FloatRep      = ("Float",  floatPrimTy,  floatPrimTyCon)
+getPrimRepInfo DoubleRep     = ("Double", doublePrimTy, doublePrimTyCon)
+getPrimRepInfo Int64Rep      = ("Int64",  int64PrimTy,  int64PrimTyCon)
+getPrimRepInfo Word64Rep     = ("Word64", word64PrimTy, word64PrimTyCon)
+getPrimRepInfo StablePtrRep  = ("StablePtr", mkStablePtrPrimTy alphaTy, stablePtrPrimTyCon)
+getPrimRepInfo ForeignObjRep = ("ForeignObj", foreignObjPrimTy, foreignObjPrimTyCon)
+
 \end{code}
 
 %************************************************************************
@@ -132,7 +143,7 @@ voidTyCon = mk_no_constr_tycon voidTyConKey SLIT("Void")
 mk_no_constr_tycon key str
   = the_tycon
   where
-    name      = mkWiredInTyConName key gHC__ str the_tycon
+    name      = mkWiredInTyConName key pREL_GHC str the_tycon
     the_tycon = mkDataTyCon name mkBoxedTypeKind 
                        []              -- No tyvars
                        []              -- No context