Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Map k v
- pure :: (Prim k, Bounded k, Prim v) => v -> Map k v
- singleton :: (Prim k, Bounded k, Enum k, Ord k, Prim v, Eq v) => v -> k -> k -> v -> Map k v
- lookup :: (Ord k, Prim k, Prim v) => k -> Map k v -> v
- fromList :: (Prim k, Bounded k, Ord k, Enum k, Prim v, Eq v) => v -> [(k, k, v)] -> Map k v
- unionWith :: (Ord k, Eq c, Prim k, Prim a, Prim b, Prim c) => (a -> b -> c) -> Map k a -> Map k b -> Map k c
- map :: (Prim k, Prim v, Prim w, Eq w) => (v -> w) -> Map k v -> Map k w
- mapBijection :: (Prim v, Prim w) => (v -> w) -> Map k v -> Map k w
- traverseBijectionP :: (PrimMonad m, Prim v, Prim w) => (v -> m w) -> Map k v -> m (Map k w)
- traverseBijection :: (Applicative m, Prim v, Prim w) => (v -> m w) -> Map k v -> m (Map k w)
- foldl' :: (Prim k, Prim v) => (b -> v -> b) -> b -> Map k v -> b
- foldlM' :: (Monad m, Prim k, Prim v) => (b -> v -> m b) -> b -> Map k v -> m b
- foldMap :: (Monoid m, Prim k, Prim v) => (v -> m) -> Map k v -> m
- foldrWithKey :: (Bounded k, Enum k, Prim k, Prim v) => (k -> k -> v -> b -> b) -> b -> Map k v -> b
- foldlWithKeyM' :: (Bounded k, Enum k, Monad m, Prim k, Prim v) => (b -> k -> k -> v -> m b) -> b -> Map k v -> m b
- traverse_ :: (Applicative m, Prim v) => (v -> m w) -> Map k v -> m ()
- size :: Prim v => Map k v -> Int
- elems :: Map k v -> PrimArray v
- toList :: (Bounded k, Enum k, Prim k, Prim v) => Map k v -> [(k, k, v)]
- fromLiftedLifted :: (Prim k, Prim v) => Map k v -> Map k v
Documentation
A total interval map from keys k
to values v
. The key type must be discrete
and bounded. This map is strict in the values. The key type and the value type
must both have Prim
instances.
Instances
(Prim k, Bounded k, Enum k, Ord k, Prim v, Eq v, Monoid v) => IsList (Map k v) Source # | |
(Prim k, Prim v, Eq k, Eq v) => Eq (Map k v) Source # | |
(Prim k, Bounded k, Enum k, Show k, Prim v, Show v) => Show (Map k v) Source # | |
(Prim k, Prim v, Ord k, Semigroup v, Eq v) => Semigroup (Map k v) Source # | |
(Prim k, Ord k, Bounded k, Prim v, Semigroup v, Monoid v, Eq v) => Monoid (Map k v) Source # | |
type Item (Map k v) Source # | |
Defined in Data.Map.Interval.DBTSUU |
lookup :: (Ord k, Prim k, Prim v) => k -> Map k v -> v Source #
O(log n) Lookup a key. The value corresponding to the range that contains this key will be returned.
:: (Prim k, Bounded k, Ord k, Enum k, Prim v, Eq v) | |
=> v | value outside of the ranges |
-> [(k, k, v)] | low-high inclusive ranges with their corresponding values |
-> Map k v |
Create an interval map from a list of range-value triples. The first argument is a default value used everywhere outside of the given ranges. In the case of overlapping ranges, the leftmost value is used.
unionWith :: (Ord k, Eq c, Prim k, Prim a, Prim b, Prim c) => (a -> b -> c) -> Map k a -> Map k b -> Map k c Source #
Mapping
Traversals
traverseBijectionP :: (PrimMonad m, Prim v, Prim w) => (v -> m w) -> Map k v -> m (Map k w) Source #
This only provides a correct result when the effectful mapping is a bijection.
traverseBijection :: (Applicative m, Prim v, Prim w) => (v -> m w) -> Map k v -> m (Map k w) Source #
This only provides a correct result when the effectful mapping is a bijection.
Folds
foldrWithKey :: (Bounded k, Enum k, Prim k, Prim v) => (k -> k -> v -> b -> b) -> b -> Map k v -> b Source #
foldlWithKeyM' :: (Bounded k, Enum k, Monad m, Prim k, Prim v) => (b -> k -> k -> v -> m b) -> b -> Map k v -> m b Source #
Properties
size :: Prim v => Map k v -> Int Source #
The number of values in the interval map. Also the number of contiguous key ranges in the map.