ghc-7.8.4: The GHC API

Safe HaskellNone
LanguageHaskell98

UniqFM

Contents

Synopsis

Unique-keyed mappings

data UniqFM ele Source

Manipulating those mappings

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

`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 Source

intersectUFM :: UniqFM elt -> UniqFM elt -> UniqFM elt Source

intersectUFM_C :: (elt1 -> elt2 -> elt3) -> UniqFM elt1 -> UniqFM elt2 -> UniqFM elt3 Source

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

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

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

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

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

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

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

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

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

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

eltsUFM :: UniqFM elt -> [elt] Source

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

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

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