[project @ 2000-12-07 08:22:53 by simonpj]
[ghc-hetmet.git] / ghc / compiler / basicTypes / VarSet.lhs
index 18579d3..e90ed25 100644 (file)
@@ -5,27 +5,23 @@
 
 \begin{code}
 module VarSet (
-       VarSet, IdSet, TyVarSet, IdOrTyVarSet,
+       VarSet, IdSet, TyVarSet,
        emptyVarSet, unitVarSet, mkVarSet,
-       extendVarSet,
+       extendVarSet, extendVarSet_C,
        elemVarSet, varSetElems, subVarSet,
        unionVarSet, unionVarSets,
        intersectVarSet, intersectsVarSet,
        isEmptyVarSet, delVarSet, delVarSetByKey,
        minusVarSet, foldVarSet, filterVarSet,
-       lookupVarSet, mapVarSet, sizeVarSet, seqVarSet,
-
-       uniqAway
+       lookupVarSet, mapVarSet, sizeVarSet, seqVarSet
     ) where
 
 #include "HsVersions.h"
 
-import CmdLineOpts     ( opt_PprStyle_Debug )
-import Var             ( Var, Id, TyVar, IdOrTyVar, setVarUnique )
-import Unique          ( Unique, Uniquable(..), incrUnique, deriveUnique )
+import Var             ( Var, Id, TyVar )
+import Unique          ( Unique )
 import UniqSet
-import UniqFM          ( delFromUFM_Directly )
-import Outputable
+import UniqFM          ( delFromUFM_Directly, addToUFM_C )
 \end{code}
 
 %************************************************************************
@@ -38,7 +34,6 @@ import Outputable
 type VarSet       = UniqSet Var
 type IdSet       = UniqSet Id
 type TyVarSet    = UniqSet TyVar
-type IdOrTyVarSet = UniqSet IdOrTyVar
 
 emptyVarSet    :: VarSet
 intersectVarSet        :: VarSet -> VarSet -> VarSet
@@ -61,6 +56,7 @@ mapVarSet     :: (Var -> Var) -> VarSet -> VarSet
 sizeVarSet     :: VarSet -> Int
 filterVarSet   :: (Var -> Bool) -> VarSet -> VarSet
 subVarSet      :: VarSet -> VarSet -> Bool
+extendVarSet_C  :: (Var->Var->Var) -> VarSet -> Var -> VarSet
 
 delVarSetByKey :: VarSet -> Unique -> VarSet
 
@@ -82,6 +78,7 @@ lookupVarSet  = lookupUniqSet
 mapVarSet      = mapUniqSet
 sizeVarSet     = sizeUniqSet
 filterVarSet   = filterUniqSet
+extendVarSet_C combine s x = addToUFM_C combine s x x
 a `subVarSet` b = isEmptyVarSet (a `minusVarSet` b)
 delVarSetByKey = delFromUFM_Directly   -- Can't be bothered to add this to UniqSet
 \end{code}
@@ -91,20 +88,3 @@ seqVarSet :: VarSet -> ()
 seqVarSet s = sizeVarSet s `seq` ()
 \end{code}
 
-\begin{code}
-uniqAway :: VarSet -> Var -> Var
--- Give the Var a new unique, different to any in the VarSet
-uniqAway set var
-  | not (var `elemVarSet` set) = var   -- Nothing to do
-
-  | otherwise
-  = try 1 (deriveUnique (getUnique var) (hashUniqSet set))
-  where
-    try n uniq | uniq `elemUniqSet_Directly` set = try ((n+1)::Int) (incrUnique uniq)
-#ifdef DEBUG
-              | opt_PprStyle_Debug && n > 3
-              = pprTrace "uniqAway:" (ppr n <+> text "tries" <+> ppr var) 
-                setVarUnique var uniq
-#endif                     
-              | otherwise = setVarUnique var uniq
-\end{code}