Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Map k v
- pure :: (Prim k, Bounded k) => v -> Map k v
- singleton :: (Prim k, Bounded k, Enum k, Ord k, Eq v) => v -> k -> k -> v -> Map k v
- lookup :: (Ord k, Prim k) => k -> Map k v -> v
- fromList :: (Prim k, Bounded k, Ord k, Enum k, Eq v) => v -> [(k, k, v)] -> Map k v
- unionWith :: (Ord k, Eq c, Prim k) => (a -> b -> c) -> Map k a -> Map k b -> Map k c
- map :: (Prim k, Eq w) => (v -> w) -> Map k v -> Map k w
- mapBijection :: (v -> w) -> Map k v -> Map k w
- traverseBijectionP :: PrimMonad m => (v -> m w) -> Map k v -> m (Map k w)
- traverseBijection :: Applicative m => (v -> m w) -> Map k v -> m (Map k w)
- foldl' :: Prim k => (b -> v -> b) -> b -> Map k v -> b
- foldlM' :: (Monad m, Prim k) => (b -> v -> m b) -> b -> Map k v -> m b
- foldMap :: (Monoid m, Prim k) => (v -> m) -> Map k v -> m
- foldrWithKey :: (Bounded k, Enum k, Prim k) => (k -> k -> v -> b -> b) -> b -> Map k v -> b
- foldlWithKeyM' :: (Bounded k, Enum k, Monad m, Prim k) => (b -> k -> k -> v -> m b) -> b -> Map k v -> m b
- traverse_ :: Applicative m => (v -> m w) -> Map k v -> m ()
- size :: Map k v -> Int
- elems :: Map k v -> Array v
- toList :: (Bounded k, Enum k, Prim k) => Map k v -> [(k, k, v)]
- fromLiftedLifted :: Prim k => 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 must have a
Prim
instance.
Instances
(Prim k, Bounded k, Enum k, Ord k, Eq v, Monoid v) => IsList (Map k v) Source # | |
(Prim k, Eq k, Eq v) => Eq (Map k v) Source # | |
(Prim k, Bounded k, Enum k, Show k, Show v) => Show (Map k v) Source # | |
(Prim k, Ord k, Semigroup v, Eq v) => Semigroup (Map k v) Source # | |
(Prim k, Ord k, Bounded k, Semigroup v, Monoid v, Eq v) => Monoid (Map k v) Source # | |
type Item (Map k v) Source # | |
Defined in Data.Map.Interval.DBTSUL |
lookup :: (Ord k, Prim k) => 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, 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.
Mapping
mapBijection :: (v -> w) -> Map k v -> Map k w Source #
Traversals
traverseBijectionP :: PrimMonad m => (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 => (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) => (k -> k -> v -> b -> b) -> b -> Map k v -> b Source #
foldlWithKeyM' :: (Bounded k, Enum k, Monad m, Prim k) => (b -> k -> k -> v -> m b) -> b -> Map k v -> m b Source #
traverse_ :: Applicative m => (v -> m w) -> Map k v -> m () Source #
Properties
size :: Map k v -> Int Source #
The number of values in the interval map. Also the number of contiguous key ranges in the map.