ghc-8.0.0.20160204: 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 :: TYPE Lifted -> TYPE Lifted) :: * 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 (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) 
type Key UniqFM = Unique 

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