Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Map.Monoidal
Contents
Description
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 -> Maybe a
- (!) :: 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
- take :: forall k a. Int -> MonoidalMap k a -> MonoidalMap k a
- drop :: forall k a. Int -> MonoidalMap k a -> MonoidalMap k a
- splitAt :: forall k a. Int -> MonoidalMap k a -> (MonoidalMap k a, MonoidalMap k a)
- lookupMin :: forall k a. MonoidalMap k a -> Maybe (k, a)
- lookupMax :: forall k a. MonoidalMap k a -> Maybe (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
- restrictKeys :: forall k a. Ord k => MonoidalMap k a -> Set k -> MonoidalMap k a
- withoutKeys :: forall k a. Ord k => MonoidalMap k a -> Set k -> 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 => [(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
- fromDescList :: forall k a. Eq k => [(k, a)] -> MonoidalMap k a
- fromDescListWith :: forall k a. Eq k => (a -> a -> a) -> [(k, a)] -> MonoidalMap k a
- fromDescListWithKey :: forall k a. Eq k => (k -> a -> a -> a) -> [(k, a)] -> MonoidalMap k a
- fromDistinctDescList :: forall k a. [(k, a)] -> MonoidalMap k a
- fromList :: forall k a. Ord k => [(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 => 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 => (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)
- takeWhileAntitone :: forall k a. (k -> Bool) -> MonoidalMap k a -> MonoidalMap k a
- dropWhileAntitone :: forall k a. (k -> Bool) -> MonoidalMap k a -> MonoidalMap k a
- spanAntitone :: forall k a. (k -> 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)
- traverseMaybeWithKey :: forall f k a b. Applicative f => (k -> a -> f (Maybe b)) -> MonoidalMap k a -> f (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
Constructors
MonoidalMap | |
Fields
|
Instances
FoldableWithIndex k (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods ifoldMap :: Monoid m => (k -> a -> m) -> MonoidalMap k a -> m ifoldMap' :: Monoid m => (k -> a -> m) -> MonoidalMap k a -> m ifoldr :: (k -> a -> b -> b) -> b -> MonoidalMap k a -> b ifoldl :: (k -> b -> a -> b) -> b -> MonoidalMap k a -> b ifoldr' :: (k -> a -> b -> b) -> b -> MonoidalMap k a -> b ifoldl' :: (k -> b -> a -> b) -> b -> MonoidalMap k a -> b | |
FunctorWithIndex k (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods imap :: (k -> a -> b) -> MonoidalMap k a -> MonoidalMap k b | |
TraversableWithIndex k (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods itraverse :: Applicative f => (k -> a -> f b) -> MonoidalMap k a -> f (MonoidalMap k b) | |
Ord k => TraverseMax k (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods traverseMax :: IndexedTraversal' k (MonoidalMap k v) v | |
Ord k => TraverseMin k (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods traverseMin :: IndexedTraversal' k (MonoidalMap k v) v | |
Functor (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods fmap :: (a -> b) -> MonoidalMap k a -> MonoidalMap k b # (<$) :: a -> MonoidalMap k b -> MonoidalMap k a # | |
Foldable (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods fold :: Monoid m => MonoidalMap k m -> m # foldMap :: Monoid m => (a -> m) -> MonoidalMap k a -> m # foldr :: (a -> b -> b) -> b -> MonoidalMap k a -> b # foldr' :: (a -> b -> b) -> b -> MonoidalMap k a -> b # foldl :: (b -> a -> b) -> b -> MonoidalMap k a -> b # foldl' :: (b -> a -> b) -> b -> MonoidalMap k a -> b # foldr1 :: (a -> a -> a) -> MonoidalMap k a -> a # foldl1 :: (a -> a -> a) -> MonoidalMap k a -> a # toList :: MonoidalMap k a -> [a] # null :: MonoidalMap k a -> Bool # length :: MonoidalMap k a -> Int # elem :: Eq a => a -> MonoidalMap k a -> Bool # maximum :: Ord a => MonoidalMap k a -> a # minimum :: Ord a => MonoidalMap k a -> a # sum :: Num a => MonoidalMap k a -> a # product :: Num a => MonoidalMap k a -> a # | |
Traversable (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods traverse :: Applicative f => (a -> f b) -> MonoidalMap k a -> f (MonoidalMap k b) # sequenceA :: Applicative f => MonoidalMap k (f a) -> f (MonoidalMap k a) # mapM :: Monad m => (a -> m b) -> MonoidalMap k a -> m (MonoidalMap k b) # sequence :: Monad m => MonoidalMap k (m a) -> m (MonoidalMap k a) # | |
Ord k => Eq1 (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods liftEq :: (a -> b -> Bool) -> MonoidalMap k a -> MonoidalMap k b -> Bool # | |
Ord k => Ord1 (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods liftCompare :: (a -> b -> Ordering) -> MonoidalMap k a -> MonoidalMap k b -> Ordering # | |
Show k => Show1 (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> MonoidalMap k a -> ShowS # liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [MonoidalMap k a] -> ShowS # | |
Ord k => Align (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods nil :: MonoidalMap k a | |
Ord k => Semialign (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods align :: MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k (These a b) alignWith :: (These a b -> c) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k c | |
Ord k => Unalign (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods unalign :: MonoidalMap k (These a b) -> (MonoidalMap k a, MonoidalMap k b) unalignWith :: (c -> These a b) -> MonoidalMap k c -> (MonoidalMap k a, MonoidalMap k b) | |
Ord k => Zip (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods zip :: MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k (a, b) zipWith :: (a -> b -> c) -> MonoidalMap k a -> MonoidalMap k b -> MonoidalMap k c | |
Filterable (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods mapMaybe :: (a -> Maybe b) -> MonoidalMap k a -> MonoidalMap k b catMaybes :: MonoidalMap k (Maybe a) -> MonoidalMap k a filter :: (a -> Bool) -> MonoidalMap k a -> MonoidalMap k a | |
Ord k => Witherable (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods wither :: Applicative f => (a -> f (Maybe b)) -> MonoidalMap k a -> f (MonoidalMap k b) witherM :: Monad m => (a -> m (Maybe b)) -> MonoidalMap k a -> m (MonoidalMap k b) filterA :: Applicative f => (a -> f Bool) -> MonoidalMap k a -> f (MonoidalMap k a) witherMap :: Applicative m => (MonoidalMap k b -> r) -> (a -> m (Maybe b)) -> MonoidalMap k a -> m r | |
(FromJSONKey k, Ord k) => FromJSON1 (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods liftParseJSON :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser (MonoidalMap k a) liftParseJSONList :: (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser [MonoidalMap k a] | |
ToJSONKey k => ToJSON1 (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal Methods liftToJSON :: (a -> Value) -> ([a] -> Value) -> MonoidalMap k a -> Value liftToJSONList :: (a -> Value) -> ([a] -> Value) -> [MonoidalMap k a] -> Value liftToEncoding :: (a -> Encoding) -> ([a] -> Encoding) -> MonoidalMap k a -> Encoding liftToEncodingList :: (a -> Encoding) -> ([a] -> Encoding) -> [MonoidalMap k a] -> Encoding | |
(Ord k, Semigroup a) => IsList (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Associated Types type Item (MonoidalMap k a) :: Type # Methods fromList :: [Item (MonoidalMap k a)] -> MonoidalMap k a # fromListN :: Int -> [Item (MonoidalMap k a)] -> MonoidalMap k a # toList :: MonoidalMap k a -> [Item (MonoidalMap k a)] # | |
(Eq k, Eq a) => Eq (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods (==) :: MonoidalMap k a -> MonoidalMap k a -> Bool # (/=) :: MonoidalMap k a -> MonoidalMap k a -> Bool # | |
(Data k, Data a, Ord k) => Data (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MonoidalMap k a -> c (MonoidalMap k a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (MonoidalMap k a) # toConstr :: MonoidalMap k a -> Constr # dataTypeOf :: MonoidalMap k a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (MonoidalMap k a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (MonoidalMap k a)) # gmapT :: (forall b. Data b => b -> b) -> MonoidalMap k a -> MonoidalMap k a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MonoidalMap k a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MonoidalMap k a -> r # gmapQ :: (forall d. Data d => d -> u) -> MonoidalMap k a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> MonoidalMap k a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MonoidalMap k a -> m (MonoidalMap k a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MonoidalMap k a -> m (MonoidalMap k a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MonoidalMap k a -> m (MonoidalMap k a) # | |
(Ord k, Ord a) => Ord (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods compare :: MonoidalMap k a -> MonoidalMap k a -> Ordering # (<) :: MonoidalMap k a -> MonoidalMap k a -> Bool # (<=) :: MonoidalMap k a -> MonoidalMap k a -> Bool # (>) :: MonoidalMap k a -> MonoidalMap k a -> Bool # (>=) :: MonoidalMap k a -> MonoidalMap k a -> Bool # max :: MonoidalMap k a -> MonoidalMap k a -> MonoidalMap k a # min :: MonoidalMap k a -> MonoidalMap k a -> MonoidalMap k a # | |
(Ord k, Read k, Read a) => Read (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods readsPrec :: Int -> ReadS (MonoidalMap k a) # readList :: ReadS [MonoidalMap k a] # readPrec :: ReadPrec (MonoidalMap k a) # readListPrec :: ReadPrec [MonoidalMap k a] # | |
(Show k, Show a) => Show (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods showsPrec :: Int -> MonoidalMap k a -> ShowS # show :: MonoidalMap k a -> String # showList :: [MonoidalMap k a] -> ShowS # | |
(Ord k, Semigroup a) => Semigroup (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods (<>) :: MonoidalMap k a -> MonoidalMap k a -> MonoidalMap k a # sconcat :: NonEmpty (MonoidalMap k a) -> MonoidalMap k a # stimes :: Integral b => b -> MonoidalMap k a -> MonoidalMap k a # | |
(Ord k, Semigroup a) => Monoid (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods mempty :: MonoidalMap k a # mappend :: MonoidalMap k a -> MonoidalMap k a -> MonoidalMap k a # mconcat :: [MonoidalMap k a] -> MonoidalMap k a # | |
(NFData k, NFData a) => NFData (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods rnf :: MonoidalMap k a -> () # | |
Ord k => At (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods at :: Index (MonoidalMap k a) -> Lens' (MonoidalMap k a) (Maybe (IxValue (MonoidalMap k a))) | |
Ord k => Ixed (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods ix :: Index (MonoidalMap k a) -> Traversal' (MonoidalMap k a) (IxValue (MonoidalMap k a)) | |
AsEmpty (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods _Empty :: Prism' (MonoidalMap k a) () | |
Wrapped (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Associated Types type Unwrapped (MonoidalMap k a) :: Type Methods _Wrapped' :: Iso' (MonoidalMap k a) (Unwrapped (MonoidalMap k a)) | |
(FromJSONKey k, Ord k, FromJSON a) => FromJSON (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods parseJSON :: Value -> Parser (MonoidalMap k a) parseJSONList :: Value -> Parser [MonoidalMap k a] | |
(ToJSON a, ToJSONKey k) => ToJSON (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal Methods toJSON :: MonoidalMap k a -> Value toEncoding :: MonoidalMap k a -> Encoding toJSONList :: [MonoidalMap k a] -> Value toEncodingList :: [MonoidalMap k a] -> Encoding | |
Newtype (MonoidalMap k a) (Map k a) Source # | |
Defined in Data.Map.Monoidal | |
Ord k => Rewrapped (Map k a) (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal | |
Ord k => Rewrapped (MonoidalMap k a) (Map k a) Source # | |
Defined in Data.Map.Monoidal | |
Each (MonoidalMap k a) (MonoidalMap k b) a b Source # | |
Defined in Data.Map.Monoidal Methods each :: Traversal (MonoidalMap k a) (MonoidalMap k b) a b | |
type Item (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal | |
type Index (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal type Index (MonoidalMap k a) = k | |
type IxValue (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal type IxValue (MonoidalMap k a) = a | |
type Unwrapped (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal |
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 #
take :: forall k a. Int -> MonoidalMap k a -> MonoidalMap k a Source #
drop :: forall k a. Int -> MonoidalMap k a -> MonoidalMap k a Source #
splitAt :: forall k a. Int -> MonoidalMap k a -> (MonoidalMap k a, MonoidalMap k a) Source #
lookupMin :: forall k a. MonoidalMap k a -> Maybe (k, a) Source #
lookupMax :: forall k a. MonoidalMap k a -> Maybe (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 #
restrictKeys :: forall k a. Ord k => MonoidalMap k a -> Set k -> MonoidalMap k a Source #
withoutKeys :: forall k a. Ord k => MonoidalMap k a -> Set k -> 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 => [(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 #
fromDescList :: forall k a. Eq k => [(k, a)] -> MonoidalMap k a Source #
fromDescListWith :: forall k a. Eq k => (a -> a -> a) -> [(k, a)] -> MonoidalMap k a Source #
fromDescListWithKey :: forall k a. Eq k => (k -> a -> a -> a) -> [(k, a)] -> MonoidalMap k a Source #
fromDistinctDescList :: forall k a. [(k, a)] -> MonoidalMap k a Source #
fromList :: 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 => 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 => (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 #
takeWhileAntitone :: forall k a. (k -> Bool) -> MonoidalMap k a -> MonoidalMap k a Source #
dropWhileAntitone :: forall k a. (k -> Bool) -> MonoidalMap k a -> MonoidalMap k a Source #
spanAntitone :: forall k a. (k -> 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 #
traverseMaybeWithKey :: forall f k a b. Applicative f => (k -> a -> f (Maybe b)) -> MonoidalMap k a -> f (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 #