Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Map.Monoidal.Strict
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.Strict 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.Strict Methods imap :: (k -> a -> b) -> MonoidalMap k a -> MonoidalMap k b | |
TraversableWithIndex k (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal.Strict 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.Strict Methods traverseMax :: IndexedTraversal' k (MonoidalMap k v) v | |
Ord k => TraverseMin k (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal.Strict Methods traverseMin :: IndexedTraversal' k (MonoidalMap k v) v | |
Functor (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal.Strict 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.Strict 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.Strict 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.Strict Methods liftEq :: (a -> b -> Bool) -> MonoidalMap k a -> MonoidalMap k b -> Bool # | |
Ord k => Ord1 (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal.Strict Methods liftCompare :: (a -> b -> Ordering) -> MonoidalMap k a -> MonoidalMap k b -> Ordering # | |
Show k => Show1 (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal.Strict 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.Strict Methods nil :: MonoidalMap k a | |
Ord k => Semialign (MonoidalMap k) Source # | |
Defined in Data.Map.Monoidal.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict 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.Strict Methods rnf :: MonoidalMap k a -> () # | |
Ord k => At (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal.Strict 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.Strict Methods ix :: Index (MonoidalMap k a) -> Traversal' (MonoidalMap k a) (IxValue (MonoidalMap k a)) | |
AsEmpty (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal.Strict Methods _Empty :: Prism' (MonoidalMap k a) () | |
Wrapped (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal.Strict 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.Strict 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.Strict 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.Strict | |
Ord k => Rewrapped (Map k a) (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal.Strict | |
Ord k => Rewrapped (MonoidalMap k a) (Map k a) Source # | |
Defined in Data.Map.Monoidal.Strict | |
Each (MonoidalMap k a) (MonoidalMap k b) a b Source # | |
Defined in Data.Map.Monoidal.Strict Methods each :: Traversal (MonoidalMap k a) (MonoidalMap k b) a b | |
type Item (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal.Strict | |
type Index (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal.Strict type Index (MonoidalMap k a) = k | |
type IxValue (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal.Strict type IxValue (MonoidalMap k a) = a | |
type Unwrapped (MonoidalMap k a) Source # | |
Defined in Data.Map.Monoidal.Strict |
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 #