ghc-7.10.2: The GHC API

Safe HaskellNone
LanguageHaskell2010

UniqFM

Contents

Synopsis

Unique-keyed mappings

data UniqFM ele

Manipulating those mappings

unitUFM :: Uniquable key => key -> elt -> UniqFM elt

unitDirectlyUFM :: Unique -> elt -> UniqFM elt

listToUFM :: Uniquable key => [(key, elt)] -> UniqFM elt

listToUFM_Directly :: [(Unique, elt)] -> UniqFM elt

listToUFM_C :: Uniquable key => (elt -> elt -> elt) -> [(key, elt)] -> UniqFM elt

addToUFM :: Uniquable key => UniqFM elt -> key -> elt -> UniqFM elt

addToUFM_C :: Uniquable key => (elt -> elt -> elt) -> UniqFM elt -> key -> elt -> UniqFM elt

addToUFM_Acc :: Uniquable key => (elt -> elts -> elts) -> (elt -> elts) -> UniqFM elts -> key -> elt -> UniqFM elts

addListToUFM :: Uniquable key => UniqFM elt -> [(key, elt)] -> UniqFM elt

addListToUFM_C :: Uniquable key => (elt -> elt -> elt) -> UniqFM elt -> [(key, elt)] -> UniqFM elt

addToUFM_Directly :: UniqFM elt -> Unique -> elt -> UniqFM elt

addListToUFM_Directly :: UniqFM elt -> [(Unique, elt)] -> UniqFM elt

adjustUFM :: Uniquable key => (elt -> elt) -> UniqFM elt -> key -> UniqFM elt

alterUFM :: Uniquable key => (Maybe elt -> Maybe elt) -> UniqFM elt -> key -> UniqFM elt

adjustUFM_Directly :: (elt -> elt) -> UniqFM elt -> Unique -> UniqFM elt

delFromUFM :: Uniquable key => UniqFM elt -> key -> UniqFM elt

delListFromUFM :: Uniquable key => UniqFM elt -> [key] -> UniqFM elt

plusUFM :: UniqFM elt -> UniqFM elt -> UniqFM elt

plusUFM_C :: (elt -> elt -> elt) -> UniqFM elt -> UniqFM elt -> UniqFM elt

plusUFM_CD :: (elt -> elt -> elt) -> UniqFM elt -> elt -> UniqFM elt -> elt -> UniqFM elt

`plusUFM_CD f m1 d1 m2 d2` merges the maps using f as the combinding function and d1 resp. d2 as the default value if there is no entry in m1 reps. m2. The domain is the union of the domains of m1 and m2.

Representative example:

plusUFM_CD f {A: 1, B: 2} 23 {B: 3, C: 4} 42
   == {A: f 1 42, B: f 2 3, C: f 23 4 }

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

foldUFM :: (elt -> a -> a) -> a -> UniqFM elt -> a

foldUFM_Directly :: (Unique -> elt -> a -> a) -> a -> UniqFM elt -> a

mapUFM :: (elt1 -> elt2) -> UniqFM elt1 -> UniqFM elt2

mapUFM_Directly :: (Unique -> elt1 -> elt2) -> UniqFM elt1 -> UniqFM elt2

elemUFM :: Uniquable key => key -> UniqFM elt -> Bool

filterUFM :: (elt -> Bool) -> UniqFM elt -> UniqFM elt

filterUFM_Directly :: (Unique -> elt -> Bool) -> UniqFM elt -> UniqFM elt

partitionUFM :: (elt -> Bool) -> UniqFM elt -> (UniqFM elt, UniqFM elt)

sizeUFM :: UniqFM elt -> Int

lookupUFM :: Uniquable key => UniqFM elt -> key -> Maybe elt

lookupWithDefaultUFM :: Uniquable key => UniqFM elt -> elt -> key -> elt

eltsUFM :: UniqFM elt -> [elt]

keysUFM :: UniqFM elt -> [Unique]

splitUFM :: Uniquable key => UniqFM elt -> key -> (UniqFM elt, Maybe elt, UniqFM elt)

ufmToList :: UniqFM elt -> [(Unique, elt)]

pprUniqFM :: (a -> SDoc) -> UniqFM a -> SDoc