Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data UniqDFM ele
- emptyUDFM :: UniqDFM elt
- unitUDFM :: Uniquable key => key -> elt -> UniqDFM elt
- addToUDFM :: Uniquable key => UniqDFM elt -> key -> elt -> UniqDFM elt
- addToUDFM_C :: Uniquable key => (elt -> elt -> elt) -> UniqDFM elt -> key -> elt -> UniqDFM elt
- addListToUDFM :: Uniquable key => UniqDFM elt -> [(key, elt)] -> UniqDFM elt
- delFromUDFM :: Uniquable key => UniqDFM elt -> key -> UniqDFM elt
- delListFromUDFM :: Uniquable key => UniqDFM elt -> [key] -> UniqDFM elt
- adjustUDFM :: Uniquable key => (elt -> elt) -> UniqDFM elt -> key -> UniqDFM elt
- alterUDFM :: Uniquable key => (Maybe elt -> Maybe elt) -> UniqDFM elt -> key -> UniqDFM elt
- mapUDFM :: (elt1 -> elt2) -> UniqDFM elt1 -> UniqDFM elt2
- plusUDFM :: UniqDFM elt -> UniqDFM elt -> UniqDFM elt
- plusUDFM_C :: (elt -> elt -> elt) -> UniqDFM elt -> UniqDFM elt -> UniqDFM elt
- lookupUDFM :: Uniquable key => UniqDFM elt -> key -> Maybe elt
- lookupUDFM_Directly :: UniqDFM elt -> Unique -> Maybe elt
- elemUDFM :: Uniquable key => key -> UniqDFM elt -> Bool
- foldUDFM :: (elt -> a -> a) -> a -> UniqDFM elt -> a
- eltsUDFM :: UniqDFM elt -> [elt]
- filterUDFM :: (elt -> Bool) -> UniqDFM elt -> UniqDFM elt
- filterUDFM_Directly :: (Unique -> elt -> Bool) -> UniqDFM elt -> UniqDFM elt
- isNullUDFM :: UniqDFM elt -> Bool
- sizeUDFM :: UniqDFM elt -> Int
- intersectUDFM :: UniqDFM elt -> UniqDFM elt -> UniqDFM elt
- udfmIntersectUFM :: UniqDFM elt1 -> UniqFM elt2 -> UniqDFM elt1
- intersectsUDFM :: UniqDFM elt -> UniqDFM elt -> Bool
- disjointUDFM :: UniqDFM elt -> UniqDFM elt -> Bool
- disjointUdfmUfm :: UniqDFM elt -> UniqFM elt2 -> Bool
- equalKeysUDFM :: UniqDFM a -> UniqDFM b -> Bool
- minusUDFM :: UniqDFM elt1 -> UniqDFM elt2 -> UniqDFM elt1
- listToUDFM :: Uniquable key => [(key, elt)] -> UniqDFM elt
- udfmMinusUFM :: UniqDFM elt1 -> UniqFM elt2 -> UniqDFM elt1
- partitionUDFM :: (elt -> Bool) -> UniqDFM elt -> (UniqDFM elt, UniqDFM elt)
- anyUDFM :: (elt -> Bool) -> UniqDFM elt -> Bool
- allUDFM :: (elt -> Bool) -> UniqDFM elt -> Bool
- pprUniqDFM :: (a -> SDoc) -> UniqDFM a -> SDoc
- pprUDFM :: UniqDFM a -> ([a] -> SDoc) -> SDoc
- udfmToList :: UniqDFM elt -> [(Unique, elt)]
- udfmToUfm :: UniqDFM elt -> UniqFM elt
- nonDetFoldUDFM :: (elt -> a -> a) -> a -> UniqDFM elt -> a
- alwaysUnsafeUfmToUdfm :: UniqFM elt -> UniqDFM elt
Unique-keyed deterministic mappings
Type of unique deterministic finite maps
Instances
Functor UniqDFM Source # | |
Foldable UniqDFM Source # | Deterministic, in O(n log n). |
Defined in UniqDFM fold :: Monoid m => UniqDFM m -> m # foldMap :: Monoid m => (a -> m) -> UniqDFM a -> m # foldr :: (a -> b -> b) -> b -> UniqDFM a -> b # foldr' :: (a -> b -> b) -> b -> UniqDFM a -> b # foldl :: (b -> a -> b) -> b -> UniqDFM a -> b # foldl' :: (b -> a -> b) -> b -> UniqDFM a -> b # foldr1 :: (a -> a -> a) -> UniqDFM a -> a # foldl1 :: (a -> a -> a) -> UniqDFM a -> a # elem :: Eq a => a -> UniqDFM a -> Bool # maximum :: Ord a => UniqDFM a -> a # minimum :: Ord a => UniqDFM a -> a # | |
Traversable UniqDFM Source # | Deterministic, in O(n log n). |
TrieMap UniqDFM Source # | |
Defined in TrieMap | |
Data ele => Data (UniqDFM ele) Source # | |
Defined in UniqDFM gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UniqDFM ele -> c (UniqDFM ele) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (UniqDFM ele) # toConstr :: UniqDFM ele -> Constr # dataTypeOf :: UniqDFM ele -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (UniqDFM ele)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (UniqDFM ele)) # gmapT :: (forall b. Data b => b -> b) -> UniqDFM ele -> UniqDFM ele # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UniqDFM ele -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UniqDFM ele -> r # gmapQ :: (forall d. Data d => d -> u) -> UniqDFM ele -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UniqDFM ele -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UniqDFM ele -> m (UniqDFM ele) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UniqDFM ele -> m (UniqDFM ele) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UniqDFM ele -> m (UniqDFM ele) # | |
Semigroup (UniqDFM a) Source # | |
Monoid (UniqDFM a) Source # | |
Outputable a => Outputable (UniqDFM a) Source # | |
type Key UniqDFM Source # | |
Manipulating those mappings
addToUDFM_C :: Uniquable key => (elt -> elt -> elt) -> UniqDFM elt -> key -> elt -> UniqDFM elt Source #
delListFromUDFM :: Uniquable key => UniqDFM elt -> [key] -> UniqDFM elt Source #
Delete a list of elements from a UniqDFM
adjustUDFM :: Uniquable key => (elt -> elt) -> UniqDFM elt -> key -> UniqDFM elt Source #
Apply a function to a particular element
alterUDFM :: Uniquable key => (Maybe elt -> Maybe elt) -> UniqDFM elt -> key -> UniqDFM elt Source #
The expression (alterUDFM f k map) alters value x at k, or absence thereof. alterUDFM can be used to insert, delete, or update a value in UniqDFM. Use addToUDFM, delFromUDFM or adjustUDFM when possible, they are more efficient.
mapUDFM :: (elt1 -> elt2) -> UniqDFM elt1 -> UniqDFM elt2 Source #
Map a function over every value in a UniqDFM
foldUDFM :: (elt -> a -> a) -> a -> UniqDFM elt -> a Source #
Performs a deterministic fold over the UniqDFM.
It's O(n log n) while the corresponding function on UniqFM
is O(n).
isNullUDFM :: UniqDFM elt -> Bool Source #
listToUDFM :: Uniquable key => [(key, elt)] -> UniqDFM elt Source #
partitionUDFM :: (elt -> Bool) -> UniqDFM elt -> (UniqDFM elt, UniqDFM elt) Source #
Partition UniqDFM into two UniqDFMs according to the predicate
udfmToList :: UniqDFM elt -> [(Unique, elt)] Source #
udfmToUfm :: UniqDFM elt -> UniqFM elt Source #
This allows for lossy conversion from UniqDFM to UniqFM
nonDetFoldUDFM :: (elt -> a -> a) -> a -> UniqDFM elt -> a Source #
Performs a nondeterministic fold over the UniqDFM.
It's O(n), same as the corresponding function on UniqFM
.
If you use this please provide a justification why it doesn't introduce
nondeterminism.
alwaysUnsafeUfmToUdfm :: UniqFM elt -> UniqDFM elt Source #