diff options
Diffstat (limited to 'compiler/utils/UniqDFM.hs')
-rw-r--r-- | compiler/utils/UniqDFM.hs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/utils/UniqDFM.hs b/compiler/utils/UniqDFM.hs index 82a67f351b..bd530b76c3 100644 --- a/compiler/utils/UniqDFM.hs +++ b/compiler/utils/UniqDFM.hs @@ -46,12 +46,13 @@ module UniqDFM ( intersectUDFM, udfmIntersectUFM, intersectsUDFM, disjointUDFM, disjointUdfmUfm, + equalKeysUDFM, minusUDFM, listToUDFM, udfmMinusUFM, partitionUDFM, anyUDFM, allUDFM, - pprUDFM, + pprUniqDFM, pprUDFM, udfmToList, udfmToUfm, @@ -66,6 +67,7 @@ import Outputable import qualified Data.IntMap as M import Data.Data +import Data.Functor.Classes (Eq1 (..)) import Data.List (sortBy) import Data.Function (on) import qualified Data.Semigroup as Semi @@ -288,6 +290,10 @@ udfmToList (UDFM m _i) = [ (getUnique k, taggedFst v) | (k, v) <- sortBy (compare `on` (taggedSnd . snd)) $ M.toList m ] +-- Determines whether two 'UniqDFM's contain the same keys. +equalKeysUDFM :: UniqDFM a -> UniqDFM b -> Bool +equalKeysUDFM (UDFM m1 _) (UDFM m2 _) = liftEq (\_ _ -> True) m1 m2 + isNullUDFM :: UniqDFM elt -> Bool isNullUDFM (UDFM m _) = M.null m |