[project @ 1998-04-16 09:08:32 by simonm]
[ghc-hetmet.git] / ghc / compiler / utils / UniqFM.lhs
index 2fec976..68bd7a7 100644 (file)
@@ -33,6 +33,7 @@ module UniqFM (
        intersectUFM_C,
        foldUFM,
        mapUFM,
+       elemUFM,
        filterUFM,
        sizeUFM,
        isNullUFM,
@@ -49,8 +50,6 @@ import {-# SOURCE #-} Name    ( Name )
 
 import Unique          ( Uniquable(..), Unique, u2i, mkUniqueGrimily )
 import Util
-import Outputable      ( Outputable(..) )
-import SrcLoc          ( SrcLoc )
 import GlaExts         -- Lots of Int# operations
 
 #if ! OMIT_NATIVE_CODEGEN
@@ -108,6 +107,7 @@ mapUFM              :: (elt1 -> elt2) -> UniqFM elt1 -> UniqFM elt2
 filterUFM      :: (elt -> Bool) -> UniqFM elt -> UniqFM elt
 
 sizeUFM                :: UniqFM elt -> Int
+elemUFM                :: Uniquable key => key -> UniqFM elt -> Bool
 
 lookupUFM      :: Uniquable key => UniqFM elt -> key -> Maybe elt
 lookupUFM_Directly  -- when you've got the Unique already
@@ -129,6 +129,9 @@ ufmToList   :: UniqFM elt -> [(Unique, elt)]
 %************************************************************************
 
 \begin{code}
+-- Turn off for now, these need to be updated (SDM 4/98)
+
+#if 0
 #ifdef __GLASGOW_HASKELL__
 -- I don't think HBC was too happy about this (WDP 94/10)
 
@@ -150,6 +153,7 @@ ufmToList   :: UniqFM elt -> [(Unique, elt)]
   #-}
 
 #endif {- __GLASGOW_HASKELL__ -}
+#endif
 \end{code}
 
 %************************************************************************
@@ -529,6 +533,10 @@ looking up in a hurry is the {\em whole point} of this binary tree lark.
 Lookup up a binary tree is easy (and fast).
 
 \begin{code}
+elemUFM key fm = case lookUp fm (u2i (uniqueOf key)) of
+                       Nothing -> False
+                       Just _  -> True
+
 lookupUFM         fm key = lookUp fm (u2i (uniqueOf key))
 lookupUFM_Directly fm key = lookUp fm (u2i key)