ghc-8.0.0.20160204: The GHC API

Safe HaskellNone
LanguageHaskell2010

UniqFM

Contents

Synopsis

Unique-keyed mappings

data UniqFM ele

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 :: TYPE Lifted -> TYPE Lifted) :: *

Methods

emptyTM :: UniqFM a

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

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

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

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

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 (TYPE Lifted -> TYPE Lifted) t => (forall d. Data d => c (t d)) -> Maybe (c (UniqFM ele)) Source

dataCast2 :: Typeable (TYPE Lifted -> TYPE Lifted -> TYPE Lifted) 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

pprPrec :: Rational -> UniqFM a -> SDoc

type Key UniqFM = Unique 

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

disjointUFM :: UniqFM elt1 -> UniqFM elt2 -> Bool

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