Copyright | © 2022–2025 Jonathan Knowles |
---|---|
License | Apache-2.0 |
Safe Haskell | None |
Language | Haskell2010 |
Data.MonoidMap.Examples.NestedMonoidMap
Description
A nested map with compound keys, implemented in terms of MonoidMap
.
Synopsis
- data NestedMonoidMap k1 k2 v
- fromFlatList :: (Ord k1, Ord k2, MonoidNull v) => [((k1, k2), v)] -> NestedMonoidMap k1 k2 v
- fromFlatMap :: (Ord k1, Ord k2, MonoidNull v) => Map (k1, k2) v -> NestedMonoidMap k1 k2 v
- fromNestedList :: (Ord k1, Ord k2, MonoidNull v) => [(k1, [(k2, v)])] -> NestedMonoidMap k1 k2 v
- fromNestedMap :: (Ord k2, MonoidNull v) => Map k1 (Map k2 v) -> NestedMonoidMap k1 k2 v
- toFlatList :: (Ord k1, Ord k2, MonoidNull v) => NestedMonoidMap k1 k2 v -> [((k1, k2), v)]
- toFlatMap :: (Ord k1, Ord k2, MonoidNull v) => NestedMonoidMap k1 k2 v -> Map (k1, k2) v
- toNestedList :: (Ord k1, Ord k2, MonoidNull v) => NestedMonoidMap k1 k2 v -> [(k1, [(k2, v)])]
- toNestedMap :: NestedMonoidMap k1 k2 v -> Map k1 (Map k2 v)
- get :: (Ord k1, Ord k2, MonoidNull v) => k1 -> k2 -> NestedMonoidMap k1 k2 v -> v
- set :: (Ord k1, Ord k2, MonoidNull v) => k1 -> k2 -> v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v
- adjust :: (Ord k1, Ord k2, MonoidNull v) => (v -> v) -> k1 -> k2 -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v
- nullify :: (Ord k1, Ord k2, MonoidNull v) => k1 -> k2 -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v
- nonNullCount :: NestedMonoidMap k1 k2 v -> Int
- nonNullKey :: (Ord k1, Ord k2, MonoidNull v) => k1 -> k2 -> NestedMonoidMap k1 k2 v -> Bool
- nonNullKeys :: (Ord k1, Ord k2, MonoidNull v) => NestedMonoidMap k1 k2 v -> Set (k1, k2)
- intersection :: (Ord k1, Ord k2, MonoidNull v, GCDMonoid v) => NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v
- intersectionWith :: (Ord k1, Ord k2, MonoidNull v) => (v -> v -> v) -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v
- union :: (Ord k1, Ord k2, MonoidNull v, LCMMonoid v) => NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v
- unionWith :: (Ord k1, Ord k2, MonoidNull v) => (v -> v -> v) -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v
- isSubmapOf :: (Ord k1, Ord k2, MonoidNull v, Reductive v) => NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> Bool
- isSubmapOfBy :: (Ord k1, Ord k2, MonoidNull v, Reductive v) => (v -> v -> Bool) -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> Bool
- disjoint :: (Ord k1, Ord k2, MonoidNull v, GCDMonoid v) => NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> Bool
- disjointBy :: (Ord k1, Ord k2, MonoidNull v, GCDMonoid v) => (v -> v -> Bool) -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> Bool
Type
data NestedMonoidMap k1 k2 v Source #
Instances
Construction
fromFlatList :: (Ord k1, Ord k2, MonoidNull v) => [((k1, k2), v)] -> NestedMonoidMap k1 k2 v Source #
fromFlatMap :: (Ord k1, Ord k2, MonoidNull v) => Map (k1, k2) v -> NestedMonoidMap k1 k2 v Source #
fromNestedList :: (Ord k1, Ord k2, MonoidNull v) => [(k1, [(k2, v)])] -> NestedMonoidMap k1 k2 v Source #
fromNestedMap :: (Ord k2, MonoidNull v) => Map k1 (Map k2 v) -> NestedMonoidMap k1 k2 v Source #
Deconstruction
toFlatList :: (Ord k1, Ord k2, MonoidNull v) => NestedMonoidMap k1 k2 v -> [((k1, k2), v)] Source #
toFlatMap :: (Ord k1, Ord k2, MonoidNull v) => NestedMonoidMap k1 k2 v -> Map (k1, k2) v Source #
toNestedList :: (Ord k1, Ord k2, MonoidNull v) => NestedMonoidMap k1 k2 v -> [(k1, [(k2, v)])] Source #
toNestedMap :: NestedMonoidMap k1 k2 v -> Map k1 (Map k2 v) Source #
Basic operations
get :: (Ord k1, Ord k2, MonoidNull v) => k1 -> k2 -> NestedMonoidMap k1 k2 v -> v Source #
set :: (Ord k1, Ord k2, MonoidNull v) => k1 -> k2 -> v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v Source #
adjust :: (Ord k1, Ord k2, MonoidNull v) => (v -> v) -> k1 -> k2 -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v Source #
nullify :: (Ord k1, Ord k2, MonoidNull v) => k1 -> k2 -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v Source #
Membership
nonNullCount :: NestedMonoidMap k1 k2 v -> Int Source #
nonNullKey :: (Ord k1, Ord k2, MonoidNull v) => k1 -> k2 -> NestedMonoidMap k1 k2 v -> Bool Source #
nonNullKeys :: (Ord k1, Ord k2, MonoidNull v) => NestedMonoidMap k1 k2 v -> Set (k1, k2) Source #
Intersection
intersection :: (Ord k1, Ord k2, MonoidNull v, GCDMonoid v) => NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v Source #
intersectionWith :: (Ord k1, Ord k2, MonoidNull v) => (v -> v -> v) -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v Source #
Union
union :: (Ord k1, Ord k2, MonoidNull v, LCMMonoid v) => NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v Source #
unionWith :: (Ord k1, Ord k2, MonoidNull v) => (v -> v -> v) -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v Source #
Comparison
isSubmapOf :: (Ord k1, Ord k2, MonoidNull v, Reductive v) => NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> Bool Source #
isSubmapOfBy :: (Ord k1, Ord k2, MonoidNull v, Reductive v) => (v -> v -> Bool) -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> Bool Source #
disjoint :: (Ord k1, Ord k2, MonoidNull v, GCDMonoid v) => NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> Bool Source #
disjointBy :: (Ord k1, Ord k2, MonoidNull v, GCDMonoid v) => (v -> v -> Bool) -> NestedMonoidMap k1 k2 v -> NestedMonoidMap k1 k2 v -> Bool Source #