Do not go into an infinite loop when pretty-printer finds a negative indent (Trac...
[ghc-hetmet.git] / compiler / utils / UniqFM.lhs
index 84294aa..267aeab 100644 (file)
@@ -1,7 +1,9 @@
-%ilter
+%
+% (c) The University of Glasgow 2006
 % (c) The AQUA Project, Glasgow University, 1994-1998
 %
-\section[UniqFM]{Specialised finite maps, for things with @Uniques@}
+
+UniqFM: Specialised finite maps, for things with @Uniques@
 
 Based on @FiniteMaps@ (as you would expect).
 
@@ -29,6 +31,7 @@ module UniqFM (
        plusUFM,
        plusUFM_C,
        minusUFM,
+       intersectsUFM,
        intersectUFM,
        intersectUFM_C,
        foldUFM,
@@ -51,7 +54,7 @@ import Maybes         ( maybeToBool )
 import FastTypes
 import Outputable
 
-import GLAEXTS         -- Lots of Int# operations
+import GHC.Exts                -- Lots of Int# operations
 \end{code}
 
 %************************************************************************
@@ -107,6 +110,8 @@ minusUFM    :: UniqFM elt1 -> UniqFM elt2 -> UniqFM elt1
 intersectUFM   :: UniqFM elt -> UniqFM elt -> UniqFM elt
 intersectUFM_C :: (elt1 -> elt2 -> elt3)
                -> UniqFM elt1 -> UniqFM elt2 -> UniqFM elt3
+intersectsUFM  :: UniqFM elt1 -> UniqFM elt2 -> Bool
+
 foldUFM                :: (elt -> a -> a) -> a -> UniqFM elt -> a
 mapUFM         :: (elt1 -> elt2) -> UniqFM elt1 -> UniqFM elt2
 filterUFM      :: (elt -> Bool) -> UniqFM elt -> UniqFM elt
@@ -450,7 +455,8 @@ minusUFM fm1 fm2     = minus_trees fm1 fm2
 And taking the intersection of two UniqFM's.
 
 \begin{code}
-intersectUFM t1 t2 = intersectUFM_C use_snd t1 t2
+intersectUFM  t1 t2 = intersectUFM_C use_snd t1 t2
+intersectsUFM t1 t2 = isNullUFM (intersectUFM_C (\ _ _ -> error "urk") t1 t2)
 
 intersectUFM_C f EmptyUFM _ = EmptyUFM
 intersectUFM_C f _ EmptyUFM = EmptyUFM