ghc-8.0.0.20160421: The GHC API

Safe HaskellNone
LanguageHaskell2010

UniqFM

Contents

Synopsis

Unique-keyed mappings

data UniqFM ele Source #

Instances

Functor UniqFM # 

Methods

fmap :: (a -> b) -> UniqFM a -> UniqFM b Source #

(<$) :: a -> UniqFM b -> UniqFM a Source #

Foldable UniqFM # 

Methods

fold :: Monoid m => UniqFM m -> m Source #

foldMap :: Monoid m => (a -> m) -> UniqFM a -> m Source #

foldr :: (a -> b -> b) -> b -> UniqFM a -> b Source #

foldr' :: (a -> b -> b) -> b -> UniqFM a -> b Source #

foldl :: (b -> a -> b) -> b -> UniqFM a -> b Source #

foldl' :: (b -> a -> b) -> b -> UniqFM a -> b Source #

foldr1 :: (a -> a -> a) -> UniqFM a -> a Source #

foldl1 :: (a -> a -> a) -> UniqFM a -> a Source #

toList :: UniqFM a -> [a] Source #

null :: UniqFM a -> Bool Source #

length :: UniqFM a -> Int Source #

elem :: Eq a => a -> UniqFM a -> Bool Source #

maximum :: Ord a => UniqFM a -> a Source #

minimum :: Ord a => UniqFM a -> a Source #

sum :: Num a => UniqFM a -> a Source #

product :: Num a => UniqFM a -> a Source #

Traversable UniqFM # 

Methods

traverse :: Applicative f => (a -> f b) -> UniqFM a -> f (UniqFM b) Source #

sequenceA :: Applicative f => UniqFM (f a) -> f (UniqFM a) Source #

mapM :: Monad m => (a -> m b) -> UniqFM a -> m (UniqFM b) Source #

sequence :: Monad m => UniqFM (m a) -> m (UniqFM a) Source #

TrieMap UniqFM # 

Associated Types

type Key (UniqFM :: * -> *) :: * Source #

Methods

emptyTM :: UniqFM a Source #

lookupTM :: Key UniqFM -> UniqFM b -> Maybe b Source #

alterTM :: Key UniqFM -> XT b -> UniqFM b -> UniqFM b Source #

mapTM :: (a -> b) -> UniqFM a -> UniqFM b Source #

foldTM :: (a -> b -> b) -> UniqFM a -> b -> b Source #

Eq ele => Eq (UniqFM ele) # 

Methods

(==) :: UniqFM ele -> UniqFM ele -> Bool #

(/=) :: UniqFM ele -> UniqFM ele -> Bool #

Data ele => Data (UniqFM ele) # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UniqFM ele -> c (UniqFM ele) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (UniqFM ele) Source #

toConstr :: UniqFM ele -> Constr Source #

dataTypeOf :: UniqFM ele -> DataType Source #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (UniqFM ele)) Source #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (UniqFM ele)) Source #

gmapT :: (forall b. Data b => b -> b) -> UniqFM ele -> UniqFM ele Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UniqFM ele -> r Source #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UniqFM ele -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> UniqFM ele -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> UniqFM ele -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UniqFM ele -> m (UniqFM ele) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UniqFM ele -> m (UniqFM ele) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UniqFM ele -> m (UniqFM ele) Source #

Semigroup (UniqFM a) # 

Methods

(<>) :: UniqFM a -> UniqFM a -> UniqFM a Source #

sconcat :: NonEmpty (UniqFM a) -> UniqFM a Source #

stimes :: Integral b => b -> UniqFM a -> UniqFM a Source #

Monoid (UniqFM a) # 
Outputable a => Outputable (UniqFM a) # 

Methods

ppr :: UniqFM a -> SDoc Source #

pprPrec :: Rational -> UniqFM a -> SDoc Source #

type Key UniqFM # 

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 #

disjointUFM :: UniqFM elt1 -> UniqFM elt2 -> Bool 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 #