Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module provides a Map
variant which uses the value's
Monoid
instance to accumulate conflicting entries when merging
Map
s.
While some functions mirroring those of Map
are provided
here for convenience, more specialized needs will likely want to use
either the Newtype
or Wrapped
instances to manipulate the
underlying Map
.
Synopsis
- newtype MonoidalMap k a = MonoidalMap {
- getMonoidalMap :: Map k a
- singleton :: k -> a -> MonoidalMap k a
- size :: MonoidalMap k a -> Int
- member :: Ord k => k -> MonoidalMap k a -> Bool
- notMember :: Ord k => k -> MonoidalMap k a -> Bool
- findWithDefault :: Ord k => a -> k -> MonoidalMap k a -> a
- assocs :: MonoidalMap k a -> [(k, a)]
- elems :: MonoidalMap k a -> [a]
- keys :: MonoidalMap k a -> [k]
- (!) :: forall k a. Ord k => MonoidalMap k a -> k -> a
- (\\) :: forall k a b. Ord k => MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k a
- adjust :: forall k a. Ord k => (a -> a) -> k -> MonoidalMap k a -> MonoidalMap k a
- adjustWithKey :: forall k a. Ord k => (k -> a -> a) -> k -> MonoidalMap k a -> MonoidalMap k a
- alter :: forall k a. Ord k => (Maybe a -> Maybe a) -> k -> MonoidalMap k a -> MonoidalMap k a
- delete :: Ord k => k -> MonoidalMap k a -> MonoidalMap k a
- deleteAt :: forall k a. Int -> MonoidalMap k a -> MonoidalMap k a
- deleteFindMax :: forall k a. MonoidalMap k a -> ((k, a), MonoidalMap k a)
- deleteFindMin :: forall k a. MonoidalMap k a -> ((k, a), MonoidalMap k a)
- deleteMax :: forall k a. MonoidalMap k a -> MonoidalMap k a
- deleteMin :: forall k a. MonoidalMap k a -> MonoidalMap k a
- difference :: forall k a b. Ord k => MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k a
- differenceWith :: forall k a b. Ord k => (a -> b -> Maybe a) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k a
- differenceWithKey :: forall k a b. Ord k => (k -> a -> b -> Maybe a) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k a
- elemAt :: forall k a. Int -> MonoidalMap k a -> (k, a)
- empty :: forall k a. MonoidalMap k a
- filter :: forall k a. (a -> Bool) -> MonoidalMap k a -> MonoidalMap k a
- filterWithKey :: forall k a. (k -> a -> Bool) -> MonoidalMap k a -> MonoidalMap k a
- findIndex :: forall k a. Ord k => k -> MonoidalMap k a -> Int
- findMax :: forall k a. MonoidalMap k a -> (k, a)
- findMin :: forall k a. MonoidalMap k a -> (k, a)
- foldMapWithKey :: forall k a m. Monoid m => (k -> a -> m) -> MonoidalMap k a -> m
- foldl :: forall k a b. (a -> b -> a) -> a -> MonoidalMap k b -> a
- foldl' :: forall k a b. (a -> b -> a) -> a -> MonoidalMap k b -> a
- foldlWithKey :: forall k a b. (a -> k -> b -> a) -> a -> MonoidalMap k b -> a
- foldlWithKey' :: forall k a b. (a -> k -> b -> a) -> a -> MonoidalMap k b -> a
- foldr :: forall k a b. (a -> b -> b) -> b -> MonoidalMap k a -> b
- foldr' :: forall k a b. (a -> b -> b) -> b -> MonoidalMap k a -> b
- foldrWithKey :: forall k a b. (k -> a -> b -> b) -> b -> MonoidalMap k a -> b
- foldrWithKey' :: forall k a b. (k -> a -> b -> b) -> b -> MonoidalMap k a -> b
- fromAscList :: forall k a. (Eq k, Semigroup a) => [(k, a)] -> MonoidalMap k a
- fromAscListWith :: forall k a. Eq k => (a -> a -> a) -> [(k, a)] -> MonoidalMap k a
- fromAscListWithKey :: forall k a. Eq k => (k -> a -> a -> a) -> [(k, a)] -> MonoidalMap k a
- fromDistinctAscList :: forall k a. [(k, a)] -> MonoidalMap k a
- fromDistinctList :: forall k a. Ord k => [(k, a)] -> MonoidalMap k a
- fromList :: forall k a. (Ord k, Semigroup a) => [(k, a)] -> MonoidalMap k a
- fromListWith :: forall k a. Ord k => (a -> a -> a) -> [(k, a)] -> MonoidalMap k a
- fromListWithKey :: forall k a. Ord k => (k -> a -> a -> a) -> [(k, a)] -> MonoidalMap k a
- fromSet :: forall k a. (k -> a) -> Set k -> MonoidalMap k a
- insert :: forall k a. (Ord k, Semigroup a) => k -> a -> MonoidalMap k a -> MonoidalMap k a
- insertLookupWithKey :: forall k a. Ord k => (k -> a -> a -> a) -> k -> a -> MonoidalMap k a -> (Maybe a, MonoidalMap k a)
- insertWith :: forall k a. Ord k => (a -> a -> a) -> k -> a -> MonoidalMap k a -> MonoidalMap k a
- insertWithKey :: forall k a. Ord k => (k -> a -> a -> a) -> k -> a -> MonoidalMap k a -> MonoidalMap k a
- intersectionWith :: forall k a b c. Ord k => (a -> b -> c) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k c
- intersectionWithKey :: forall k a b c. Ord k => (k -> a -> b -> c) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k c
- isProperSubmapOf :: forall k a. (Ord k, Eq a) => MonoidalMap k a -> MonoidalMap k a -> Bool
- isProperSubmapOfBy :: forall k a b. Ord k => (a -> b -> Bool) -> MonoidalMap k a -> MonoidalMap k b -> Bool
- isSubmapOf :: forall k a. (Ord k, Eq a) => MonoidalMap k a -> MonoidalMap k a -> Bool
- isSubmapOfBy :: forall k a b. Ord k => (a -> b -> Bool) -> MonoidalMap k a -> MonoidalMap k b -> Bool
- keysSet :: forall k a. MonoidalMap k a -> Set k
- lookup :: forall k a. Ord k => k -> MonoidalMap k a -> Maybe a
- lookupGE :: forall k a. Ord k => k -> MonoidalMap k a -> Maybe (k, a)
- lookupGT :: forall k a. Ord k => k -> MonoidalMap k a -> Maybe (k, a)
- lookupIndex :: forall k a. Ord k => k -> MonoidalMap k a -> Maybe Int
- lookupLE :: forall k a. Ord k => k -> MonoidalMap k a -> Maybe (k, a)
- lookupLT :: forall k a. Ord k => k -> MonoidalMap k a -> Maybe (k, a)
- map :: (a -> b) -> MonoidalMap k a -> MonoidalMap k b
- mapAccum :: forall k a b c. (a -> b -> (a, c)) -> a -> MonoidalMap k b -> (a, MonoidalMap k c)
- mapAccumRWithKey :: forall k a b c. (a -> k -> b -> (a, c)) -> a -> MonoidalMap k b -> (a, MonoidalMap k c)
- mapAccumWithKey :: forall k a b c. (a -> k -> b -> (a, c)) -> a -> MonoidalMap k b -> (a, MonoidalMap k c)
- mapEither :: forall k a b c. (a -> Either b c) -> MonoidalMap k a -> (MonoidalMap k b, MonoidalMap k c)
- mapEitherWithKey :: forall k a b c. (k -> a -> Either b c) -> MonoidalMap k a -> (MonoidalMap k b, MonoidalMap k c)
- mapKeys :: forall k1 k2 a. (Ord k2, Semigroup a) => (k1 -> k2) -> MonoidalMap k1 a -> MonoidalMap k2 a
- mapKeysMonotonic :: forall k1 k2 a. (k1 -> k2) -> MonoidalMap k1 a -> MonoidalMap k2 a
- mapKeysWith :: forall k1 k2 a. Ord k2 => (a -> a -> a) -> (k1 -> k2) -> MonoidalMap k1 a -> MonoidalMap k2 a
- mapMaybe :: forall k a b. (a -> Maybe b) -> MonoidalMap k a -> MonoidalMap k b
- mapMaybeWithKey :: forall k a b. (k -> a -> Maybe b) -> MonoidalMap k a -> MonoidalMap k b
- mapWithKey :: forall k a b. (k -> a -> b) -> MonoidalMap k a -> MonoidalMap k b
- maxView :: forall k a. MonoidalMap k a -> Maybe (a, MonoidalMap k a)
- maxViewWithKey :: forall k a. MonoidalMap k a -> Maybe ((k, a), MonoidalMap k a)
- mergeWithKey :: forall k a b c. Ord k => (k -> a -> b -> Maybe c) -> (MonoidalMap k a -> MonoidalMap k c) -> (MonoidalMap k b -> MonoidalMap k c) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k c
- minView :: forall k a. MonoidalMap k a -> Maybe (a, MonoidalMap k a)
- minViewWithKey :: forall k a. MonoidalMap k a -> Maybe ((k, a), MonoidalMap k a)
- null :: forall k a. MonoidalMap k a -> Bool
- partition :: forall k a. (a -> Bool) -> MonoidalMap k a -> (MonoidalMap k a, MonoidalMap k a)
- partitionWithKey :: forall k a. (k -> a -> Bool) -> MonoidalMap k a -> (MonoidalMap k a, MonoidalMap k a)
- split :: forall k a. Ord k => k -> MonoidalMap k a -> (MonoidalMap k a, MonoidalMap k a)
- splitLookup :: forall k a. Ord k => k -> MonoidalMap k a -> (MonoidalMap k a, Maybe a, MonoidalMap k a)
- splitRoot :: forall k a. MonoidalMap k a -> [MonoidalMap k a]
- toAscList :: forall k a. MonoidalMap k a -> [(k, a)]
- toDescList :: forall k a. MonoidalMap k a -> [(k, a)]
- toList :: forall k a. MonoidalMap k a -> [(k, a)]
- traverseWithKey :: Applicative t => (k -> a -> t b) -> MonoidalMap k a -> t (MonoidalMap k b)
- unionWith :: forall k a. Ord k => (a -> a -> a) -> MonoidalMap k a -> MonoidalMap k a -> MonoidalMap k a
- unionWithKey :: forall k a. Ord k => (k -> a -> a -> a) -> MonoidalMap k a -> MonoidalMap k a -> MonoidalMap k a
- unionsWith :: forall k a. Ord k => (a -> a -> a) -> [MonoidalMap k a] -> MonoidalMap k a
- update :: forall k a. Ord k => (a -> Maybe a) -> k -> MonoidalMap k a -> MonoidalMap k a
- updateAt :: forall k a. (k -> a -> Maybe a) -> Int -> MonoidalMap k a -> MonoidalMap k a
- updateLookupWithKey :: forall k a. Ord k => (k -> a -> Maybe a) -> k -> MonoidalMap k a -> (Maybe a, MonoidalMap k a)
- updateMax :: forall k a. (a -> Maybe a) -> MonoidalMap k a -> MonoidalMap k a
- updateMaxWithKey :: forall k a. (k -> a -> Maybe a) -> MonoidalMap k a -> MonoidalMap k a
- updateMin :: forall k a. (a -> Maybe a) -> MonoidalMap k a -> MonoidalMap k a
- updateMinWithKey :: forall k a. (k -> a -> Maybe a) -> MonoidalMap k a -> MonoidalMap k a
- updateWithKey :: forall k a. Ord k => (k -> a -> Maybe a) -> k -> MonoidalMap k a -> MonoidalMap k a
- valid :: forall k a. Ord k => MonoidalMap k a -> Bool
Documentation
newtype MonoidalMap k a Source #
A Map
with monoidal accumulation
MonoidalMap | |
|
Instances
Often-needed functions
singleton :: k -> a -> MonoidalMap k a Source #
O(1). A map with a single element.
size :: MonoidalMap k a -> Int Source #
O(1). The number of elements in the map.
member :: Ord k => k -> MonoidalMap k a -> Bool Source #
O(log n). Is the key a member of the map? See also notMember
.
notMember :: Ord k => k -> MonoidalMap k a -> Bool Source #
O(log n). Is the key not a member of the map? See also member
.
findWithDefault :: Ord k => a -> k -> MonoidalMap k a -> a Source #
O(log n). The expression (
returns
the value at key findWithDefault
def k map)k
or returns default value def
when the key is not in the map.
assocs :: MonoidalMap k a -> [(k, a)] Source #
O(n). Return all elements of the map and their keys
elems :: MonoidalMap k a -> [a] Source #
O(n). Return all elements of the map in the ascending order of their keys. Subject to list fusion.
keys :: MonoidalMap k a -> [k] Source #
O(n). Return all keys of the map in ascending order. Subject to list fusion.
(!) :: forall k a. Ord k => MonoidalMap k a -> k -> a infixl 9 Source #
(\\) :: forall k a b. Ord k => MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k a infixl 9 Source #
adjust :: forall k a. Ord k => (a -> a) -> k -> MonoidalMap k a -> MonoidalMap k a Source #
adjustWithKey :: forall k a. Ord k => (k -> a -> a) -> k -> MonoidalMap k a -> MonoidalMap k a Source #
alter :: forall k a. Ord k => (Maybe a -> Maybe a) -> k -> MonoidalMap k a -> MonoidalMap k a Source #
delete :: Ord k => k -> MonoidalMap k a -> MonoidalMap k a Source #
O(log n). Delete a key and its value from the map. When the key is not a member of the map, the original map is returned.
deleteAt :: forall k a. Int -> MonoidalMap k a -> MonoidalMap k a Source #
deleteFindMax :: forall k a. MonoidalMap k a -> ((k, a), MonoidalMap k a) Source #
deleteFindMin :: forall k a. MonoidalMap k a -> ((k, a), MonoidalMap k a) Source #
deleteMax :: forall k a. MonoidalMap k a -> MonoidalMap k a Source #
deleteMin :: forall k a. MonoidalMap k a -> MonoidalMap k a Source #
difference :: forall k a b. Ord k => MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k a Source #
differenceWith :: forall k a b. Ord k => (a -> b -> Maybe a) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k a Source #
differenceWithKey :: forall k a b. Ord k => (k -> a -> b -> Maybe a) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k a Source #
elemAt :: forall k a. Int -> MonoidalMap k a -> (k, a) Source #
empty :: forall k a. MonoidalMap k a Source #
filter :: forall k a. (a -> Bool) -> MonoidalMap k a -> MonoidalMap k a Source #
filterWithKey :: forall k a. (k -> a -> Bool) -> MonoidalMap k a -> MonoidalMap k a Source #
findMax :: forall k a. MonoidalMap k a -> (k, a) Source #
findMin :: forall k a. MonoidalMap k a -> (k, a) Source #
foldMapWithKey :: forall k a m. Monoid m => (k -> a -> m) -> MonoidalMap k a -> m Source #
foldl :: forall k a b. (a -> b -> a) -> a -> MonoidalMap k b -> a Source #
foldl' :: forall k a b. (a -> b -> a) -> a -> MonoidalMap k b -> a Source #
foldlWithKey :: forall k a b. (a -> k -> b -> a) -> a -> MonoidalMap k b -> a Source #
foldlWithKey' :: forall k a b. (a -> k -> b -> a) -> a -> MonoidalMap k b -> a Source #
foldr :: forall k a b. (a -> b -> b) -> b -> MonoidalMap k a -> b Source #
foldr' :: forall k a b. (a -> b -> b) -> b -> MonoidalMap k a -> b Source #
foldrWithKey :: forall k a b. (k -> a -> b -> b) -> b -> MonoidalMap k a -> b Source #
foldrWithKey' :: forall k a b. (k -> a -> b -> b) -> b -> MonoidalMap k a -> b Source #
fromAscList :: forall k a. (Eq k, Semigroup a) => [(k, a)] -> MonoidalMap k a Source #
fromAscListWith :: forall k a. Eq k => (a -> a -> a) -> [(k, a)] -> MonoidalMap k a Source #
fromAscListWithKey :: forall k a. Eq k => (k -> a -> a -> a) -> [(k, a)] -> MonoidalMap k a Source #
fromDistinctAscList :: forall k a. [(k, a)] -> MonoidalMap k a Source #
fromDistinctList :: forall k a. Ord k => [(k, a)] -> MonoidalMap k a Source #
fromListWith :: forall k a. Ord k => (a -> a -> a) -> [(k, a)] -> MonoidalMap k a Source #
fromListWithKey :: forall k a. Ord k => (k -> a -> a -> a) -> [(k, a)] -> MonoidalMap k a Source #
fromSet :: forall k a. (k -> a) -> Set k -> MonoidalMap k a Source #
insert :: forall k a. (Ord k, Semigroup a) => k -> a -> MonoidalMap k a -> MonoidalMap k a Source #
insertLookupWithKey :: forall k a. Ord k => (k -> a -> a -> a) -> k -> a -> MonoidalMap k a -> (Maybe a, MonoidalMap k a) Source #
insertWith :: forall k a. Ord k => (a -> a -> a) -> k -> a -> MonoidalMap k a -> MonoidalMap k a Source #
insertWithKey :: forall k a. Ord k => (k -> a -> a -> a) -> k -> a -> MonoidalMap k a -> MonoidalMap k a Source #
intersectionWith :: forall k a b c. Ord k => (a -> b -> c) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k c Source #
intersectionWithKey :: forall k a b c. Ord k => (k -> a -> b -> c) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k c Source #
isProperSubmapOf :: forall k a. (Ord k, Eq a) => MonoidalMap k a -> MonoidalMap k a -> Bool Source #
isProperSubmapOfBy :: forall k a b. Ord k => (a -> b -> Bool) -> MonoidalMap k a -> MonoidalMap k b -> Bool Source #
isSubmapOf :: forall k a. (Ord k, Eq a) => MonoidalMap k a -> MonoidalMap k a -> Bool Source #
isSubmapOfBy :: forall k a b. Ord k => (a -> b -> Bool) -> MonoidalMap k a -> MonoidalMap k b -> Bool Source #
keysSet :: forall k a. MonoidalMap k a -> Set k Source #
lookupIndex :: forall k a. Ord k => k -> MonoidalMap k a -> Maybe Int Source #
map :: (a -> b) -> MonoidalMap k a -> MonoidalMap k b Source #
mapAccum :: forall k a b c. (a -> b -> (a, c)) -> a -> MonoidalMap k b -> (a, MonoidalMap k c) Source #
mapAccumRWithKey :: forall k a b c. (a -> k -> b -> (a, c)) -> a -> MonoidalMap k b -> (a, MonoidalMap k c) Source #
mapAccumWithKey :: forall k a b c. (a -> k -> b -> (a, c)) -> a -> MonoidalMap k b -> (a, MonoidalMap k c) Source #
mapEither :: forall k a b c. (a -> Either b c) -> MonoidalMap k a -> (MonoidalMap k b, MonoidalMap k c) Source #
mapEitherWithKey :: forall k a b c. (k -> a -> Either b c) -> MonoidalMap k a -> (MonoidalMap k b, MonoidalMap k c) Source #
mapKeys :: forall k1 k2 a. (Ord k2, Semigroup a) => (k1 -> k2) -> MonoidalMap k1 a -> MonoidalMap k2 a Source #
mapKeysMonotonic :: forall k1 k2 a. (k1 -> k2) -> MonoidalMap k1 a -> MonoidalMap k2 a Source #
O(n).
, but works only when mapKeysMonotonic
f s == mapKeys
f sf
is strictly increasing (both monotonic and injective).
That is, for any values x
and y
, if x
< y
then f x
< f y
and f
is injective (i.e. it never maps two input keys to the same output key).
The precondition is not checked.
Semi-formally, we have:
and [x < y ==> f x < f y | x <- ls, y <- ls] ==> mapKeysMonotonic f s == mapKeys f s where ls = keys s
This means that f
maps distinct original keys to distinct resulting keys.
This function has better performance than mapKeys
.
mapKeysMonotonic (\ k -> k * 2) (fromList [(5,"a"), (3,"b")]) == fromList [(6, "b"), (10, "a")] valid (mapKeysMonotonic (\ k -> k * 2) (fromList [(5,"a"), (3,"b")])) == True valid (mapKeysMonotonic (\ _ -> 1) (fromList [(5,"a"), (3,"b")])) == False
mapKeysWith :: forall k1 k2 a. Ord k2 => (a -> a -> a) -> (k1 -> k2) -> MonoidalMap k1 a -> MonoidalMap k2 a Source #
mapMaybe :: forall k a b. (a -> Maybe b) -> MonoidalMap k a -> MonoidalMap k b Source #
mapMaybeWithKey :: forall k a b. (k -> a -> Maybe b) -> MonoidalMap k a -> MonoidalMap k b Source #
mapWithKey :: forall k a b. (k -> a -> b) -> MonoidalMap k a -> MonoidalMap k b Source #
maxView :: forall k a. MonoidalMap k a -> Maybe (a, MonoidalMap k a) Source #
maxViewWithKey :: forall k a. MonoidalMap k a -> Maybe ((k, a), MonoidalMap k a) Source #
mergeWithKey :: forall k a b c. Ord k => (k -> a -> b -> Maybe c) -> (MonoidalMap k a -> MonoidalMap k c) -> (MonoidalMap k b -> MonoidalMap k c) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k c Source #
minView :: forall k a. MonoidalMap k a -> Maybe (a, MonoidalMap k a) Source #
minViewWithKey :: forall k a. MonoidalMap k a -> Maybe ((k, a), MonoidalMap k a) Source #
null :: forall k a. MonoidalMap k a -> Bool Source #
partition :: forall k a. (a -> Bool) -> MonoidalMap k a -> (MonoidalMap k a, MonoidalMap k a) Source #
partitionWithKey :: forall k a. (k -> a -> Bool) -> MonoidalMap k a -> (MonoidalMap k a, MonoidalMap k a) Source #
split :: forall k a. Ord k => k -> MonoidalMap k a -> (MonoidalMap k a, MonoidalMap k a) Source #
splitLookup :: forall k a. Ord k => k -> MonoidalMap k a -> (MonoidalMap k a, Maybe a, MonoidalMap k a) Source #
splitRoot :: forall k a. MonoidalMap k a -> [MonoidalMap k a] Source #
toAscList :: forall k a. MonoidalMap k a -> [(k, a)] Source #
toDescList :: forall k a. MonoidalMap k a -> [(k, a)] Source #
toList :: forall k a. MonoidalMap k a -> [(k, a)] Source #
traverseWithKey :: Applicative t => (k -> a -> t b) -> MonoidalMap k a -> t (MonoidalMap k b) Source #
unionWith :: forall k a. Ord k => (a -> a -> a) -> MonoidalMap k a -> MonoidalMap k a -> MonoidalMap k a Source #
unionWithKey :: forall k a. Ord k => (k -> a -> a -> a) -> MonoidalMap k a -> MonoidalMap k a -> MonoidalMap k a Source #
unionsWith :: forall k a. Ord k => (a -> a -> a) -> [MonoidalMap k a] -> MonoidalMap k a Source #
update :: forall k a. Ord k => (a -> Maybe a) -> k -> MonoidalMap k a -> MonoidalMap k a Source #
updateAt :: forall k a. (k -> a -> Maybe a) -> Int -> MonoidalMap k a -> MonoidalMap k a Source #
updateLookupWithKey :: forall k a. Ord k => (k -> a -> Maybe a) -> k -> MonoidalMap k a -> (Maybe a, MonoidalMap k a) Source #
updateMax :: forall k a. (a -> Maybe a) -> MonoidalMap k a -> MonoidalMap k a Source #
updateMaxWithKey :: forall k a. (k -> a -> Maybe a) -> MonoidalMap k a -> MonoidalMap k a Source #
updateMin :: forall k a. (a -> Maybe a) -> MonoidalMap k a -> MonoidalMap k a Source #
updateMinWithKey :: forall k a. (k -> a -> Maybe a) -> MonoidalMap k a -> MonoidalMap k a Source #
updateWithKey :: forall k a. Ord k => (k -> a -> Maybe a) -> k -> MonoidalMap k a -> MonoidalMap k a Source #