hgeometry-combinatorial
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellNone
LanguageGHC2021

HGeometry.Map.NonEmpty.Monoidal

Description

A NonEmpty Monoidal Map, i.e. combining the monoidal maps combines the elements with their semigroup operation.

Synopsis

Documentation

newtype MonoidalNEMap k v Source #

A NonEmpty Map in which we combine conflicting elements by using their semigroup operation rather than picking the left value (as is done in the default Data.Map)

Constructors

MonoidalNEMap 

Fields

Instances

Instances details
Foldable1 (MonoidalNEMap k) Source # 
Instance details

Defined in HGeometry.Map.NonEmpty.Monoidal

Methods

fold1 :: Semigroup m => MonoidalNEMap k m -> m #

foldMap1 :: Semigroup m => (a -> m) -> MonoidalNEMap k a -> m #

foldMap1' :: Semigroup m => (a -> m) -> MonoidalNEMap k a -> m #

toNonEmpty :: MonoidalNEMap k a -> NonEmpty a #

maximum :: Ord a => MonoidalNEMap k a -> a #

minimum :: Ord a => MonoidalNEMap k a -> a #

head :: MonoidalNEMap k a -> a #

last :: MonoidalNEMap k a -> a #

foldrMap1 :: (a -> b) -> (a -> b -> b) -> MonoidalNEMap k a -> b #

foldlMap1' :: (a -> b) -> (b -> a -> b) -> MonoidalNEMap k a -> b #

foldlMap1 :: (a -> b) -> (b -> a -> b) -> MonoidalNEMap k a -> b #

foldrMap1' :: (a -> b) -> (a -> b -> b) -> MonoidalNEMap k a -> b #

Functor (MonoidalNEMap k) Source # 
Instance details

Defined in HGeometry.Map.NonEmpty.Monoidal

Methods

fmap :: (a -> b) -> MonoidalNEMap k a -> MonoidalNEMap k b #

(<$) :: a -> MonoidalNEMap k b -> MonoidalNEMap k a #

Foldable (MonoidalNEMap k) Source # 
Instance details

Defined in HGeometry.Map.NonEmpty.Monoidal

Methods

fold :: Monoid m => MonoidalNEMap k m -> m #

foldMap :: Monoid m => (a -> m) -> MonoidalNEMap k a -> m #

foldMap' :: Monoid m => (a -> m) -> MonoidalNEMap k a -> m #

foldr :: (a -> b -> b) -> b -> MonoidalNEMap k a -> b #

foldr' :: (a -> b -> b) -> b -> MonoidalNEMap k a -> b #

foldl :: (b -> a -> b) -> b -> MonoidalNEMap k a -> b #

foldl' :: (b -> a -> b) -> b -> MonoidalNEMap k a -> b #

foldr1 :: (a -> a -> a) -> MonoidalNEMap k a -> a #

foldl1 :: (a -> a -> a) -> MonoidalNEMap k a -> a #

toList :: MonoidalNEMap k a -> [a] #

null :: MonoidalNEMap k a -> Bool #

length :: MonoidalNEMap k a -> Int #

elem :: Eq a => a -> MonoidalNEMap k a -> Bool #

maximum :: Ord a => MonoidalNEMap k a -> a #

minimum :: Ord a => MonoidalNEMap k a -> a #

sum :: Num a => MonoidalNEMap k a -> a #

product :: Num a => MonoidalNEMap k a -> a #

(Ord k, Semigroup v) => Semigroup (MonoidalNEMap k v) Source # 
Instance details

Defined in HGeometry.Map.NonEmpty.Monoidal

(Show k, Show v) => Show (MonoidalNEMap k v) Source # 
Instance details

Defined in HGeometry.Map.NonEmpty.Monoidal

singleton :: k -> v -> MonoidalNEMap k v Source #

Create a singleton MonoidalNE Map

unions1WithKey :: (Foldable1 f, Ord k) => (k -> a -> a -> a) -> f (NEMap k a) -> NEMap k a Source #

Merge a bunch of non-empty maps with the given mergin function

mapWithKeyMerge1 :: (Ord k', Semigroup v') => (k -> v -> NEMap k' v') -> NEMap k v -> NEMap k' v' Source #

Merge the maps. When they share a key, combine their values using a semigroup.