[project @ 2000-10-03 08:43:00 by simonpj]
[ghc-hetmet.git] / ghc / compiler / basicTypes / Id.lhs
index c743dbb..d32cd53 100644 (file)
@@ -9,7 +9,7 @@ module Id (
 
        -- Simple construction
        mkId, mkVanillaId, mkSysLocal, mkUserLocal,
-       mkTemplateLocals, mkWildId, mkTemplateLocal,
+       mkTemplateLocals, mkTemplateLocalsNum, mkWildId, mkTemplateLocal,
 
        -- Taking an Id apart
        idName, idType, idUnique, idInfo,
@@ -29,7 +29,8 @@ module Id (
        isIP,
        isSpecPragmaId, isRecordSelector,
        isPrimOpId, isPrimOpId_maybe, 
-       isDataConId, isDataConId_maybe, isDataConWrapId, isDataConWrapId_maybe,
+       isDataConId, isDataConId_maybe, isDataConWrapId, 
+               isDataConWrapId_maybe,
        isBottomingId,
        isExportedId, isUserExportedId,
        hasNoBinding,
@@ -62,24 +63,28 @@ module Id (
        idCafInfo,
        idCprInfo,
        idLBVarInfo,
-       idOccInfo
+       idOccInfo,
 
     ) where
 
 #include "HsVersions.h"
 
 
-import CoreSyn         ( Unfolding, CoreRules )
+import CoreSyn         ( Unfolding, CoreRules, CoreExpr, Expr(..),
+                         AltCon (..), Alt, mkApps, Arg )
 import BasicTypes      ( Arity )
 import Var             ( Id, DictId,
                          isId, mkIdVar,
                          idName, idType, idUnique, idInfo,
                          setIdName, setVarType, setIdUnique, 
-                         setIdInfo, lazySetIdInfo, modifyIdInfo, maybeModifyIdInfo,
+                         setIdInfo, lazySetIdInfo, modifyIdInfo, 
+                         maybeModifyIdInfo,
                          externallyVisibleId
                        )
 import VarSet
-import Type            ( Type, tyVarsOfType, typePrimRep, addFreeTyVars, seqType, splitTyConApp_maybe )
+import Type            ( Type, tyVarsOfType, typePrimRep, addFreeTyVars, 
+                         seqType, splitAlgTyConApp_maybe, mkTyVarTy,
+                         mkTyConApp, splitTyConApp_maybe)
 
 import IdInfo 
 
@@ -95,9 +100,14 @@ import PrimOp               ( PrimOp, primOpIsCheap )
 import TysPrim         ( statePrimTyCon )
 import FieldLabel      ( FieldLabel )
 import SrcLoc          ( SrcLoc )
-import Unique          ( Unique, mkBuiltinUnique, getBuiltinUniques )
+import Unique          ( Unique, mkBuiltinUnique, getBuiltinUniques, 
+                         getNumBuiltinUniques )
 import Outputable
-
+import TyCon            ( TyCon, AlgTyConFlavour(..), ArgVrcs, mkSynTyCon, 
+                         mkAlgTyConRep, tyConName, 
+                         tyConTyVars, tyConDataCons )
+import DataCon                 ( DataCon, dataConWrapId, dataConOrigArgTys )
+import Var             ( Var )
 infixl         1 `setIdUnfolding`,
          `setIdArityInfo`,
          `setIdDemandInfo`,
@@ -160,6 +170,11 @@ mkTemplateLocals tys = zipWith (mkSysLocal SLIT("tpl"))
                               (getBuiltinUniques (length tys))
                               tys
 
+mkTemplateLocalsNum :: Int -> [Type] -> [Id]
+mkTemplateLocalsNum n tys = zipWith (mkSysLocal SLIT("tpl"))
+                              (getNumBuiltinUniques n (length tys))
+                              tys
+
 mkTemplateLocal :: Int -> Type -> Id
 mkTemplateLocal i ty = mkSysLocal SLIT("tpl") (mkBuiltinUnique i) ty
 \end{code}
@@ -451,3 +466,13 @@ zapLamIdInfo :: Id -> Id
 zapLamIdInfo id = maybeModifyIdInfo zapLamInfo id
 \end{code}
 
+
+
+
+
+
+
+
+
+
+