[project @ 2000-08-07 14:11:48 by sewardj]
[ghc-hetmet.git] / ghc / compiler / prelude / TysPrim.lhs
index 694492e..ff4e305 100644 (file)
@@ -10,7 +10,7 @@ types and operations.''
 module TysPrim(
        alphaTyVars, betaTyVars, alphaTyVar, betaTyVar, gammaTyVar, deltaTyVar,
        alphaTy, betaTy, gammaTy, deltaTy,
-       openAlphaTyVar, openAlphaTyVars,
+       openAlphaTy, openAlphaTyVar, openAlphaTyVars,
 
        charPrimTyCon,          charPrimTy,
        intPrimTyCon,           intPrimTy,
@@ -31,6 +31,7 @@ module TysPrim(
        mVarPrimTyCon,                  mkMVarPrimTy,   
        stablePtrPrimTyCon,             mkStablePtrPrimTy,
        stableNamePrimTyCon,            mkStableNamePrimTy,
+       bcoPrimTyCon,                   bcoPrimTy,
        weakPrimTyCon,                  mkWeakPrimTy,
        foreignObjPrimTyCon,            foreignObjPrimTy,
        threadIdPrimTyCon,              threadIdPrimTy,
@@ -50,10 +51,10 @@ import Name         ( mkWiredInTyConName )
 import PrimRep         ( PrimRep(..), isFollowableRep )
 import TyCon           ( mkPrimTyCon, TyCon, ArgVrcs )
 import Type            ( Type, 
-                         mkTyConApp, mkTyConTy, mkTyVarTys,
+                         mkTyConApp, mkTyConTy, mkTyVarTys, mkTyVarTy,
                          unboxedTypeKind, boxedTypeKind, openTypeKind, mkArrowKinds
                        )
-import PrelMods                ( pREL_GHC )
+import PrelNames       ( pREL_GHC )
 import Outputable
 import Unique
 \end{code}
@@ -81,6 +82,8 @@ openAlphaTyVars :: [TyVar]
 openAlphaTyVars = [ mkSysTyVar u openTypeKind
                  | u <- map mkAlphaTyVarUnique [2..] ]
 
+openAlphaTy = mkTyVarTy openAlphaTyVar
+
 vrcPos,vrcZero :: (Bool,Bool)
 vrcPos  = (True,False)
 vrcZero = (False,False)
@@ -268,6 +271,17 @@ foreignObjPrimTyCon = pcPrimTyCon foreignObjPrimTyConKey SLIT("ForeignObj#") 0 [
   
 %************************************************************************
 %*                                                                     *
+\subsection[TysPrim-BCOs]{The ``bytecode object'' type}
+%*                                                                     *
+%************************************************************************
+
+\begin{code}
+bcoPrimTy    = mkTyConTy bcoPrimTyCon
+bcoPrimTyCon = pcPrimTyCon bcoPrimTyConKey SLIT("BCO#") 0 [] BCORep
+\end{code}
+  
+%************************************************************************
+%*                                                                     *
 \subsection[TysPrim-Weak]{The ``weak pointer'' type}
 %*                                                                     *
 %************************************************************************