| Safe Haskell | Safe |
|---|---|
| Language | Haskell98 |
Data.Dependent.Map.Internal
Synopsis
- data DMap k f where
- empty :: DMap k f
- singleton :: k v -> f v -> DMap k f
- null :: DMap k f -> Bool
- size :: DMap k f -> Int
- lookup :: forall k f v. GCompare k => k v -> DMap k f -> Maybe (f v)
- lookupAssoc :: forall k f v. GCompare k => Some k -> DMap k f -> Maybe (DSum k f)
- combine :: GCompare k => k v -> f v -> DMap k f -> DMap k f -> DMap k f
- insertMax :: k v -> f v -> DMap k f -> DMap k f
- insertMin :: k v -> f v -> DMap k f -> DMap k f
- merge :: DMap k f -> DMap k f -> DMap k f
- glue :: DMap k f -> DMap k f -> DMap k f
- deleteFindMin :: DMap k f -> (DSum k f, DMap k f)
- data a :*: b = !a :*: !b
- toPair :: (a :*: b) -> (a, b)
- data Triple' a b c = Triple' !a !b !c
- toTriple :: Triple' a b c -> (a, b, c)
- minViewWithKey :: forall k f. DMap k f -> Maybe (DSum k f, DMap k f)
- maxViewWithKey :: forall k f. DMap k f -> Maybe (DSum k f, DMap k f)
- deleteFindMax :: DMap k f -> (DSum k f, DMap k f)
- delta :: Int
- ratio :: Int
- balance :: k v -> f v -> DMap k f -> DMap k f -> DMap k f
- rotateL :: k v -> f v -> DMap k f -> DMap k f -> DMap k f
- rotateR :: k v -> f v -> DMap k f -> DMap k f -> DMap k f
- singleL :: k v -> f v -> DMap k f -> DMap k f -> DMap k f
- singleR :: k v -> f v -> DMap k f -> DMap k f -> DMap k f
- doubleL :: k v -> f v -> DMap k f -> DMap k f -> DMap k f
- doubleR :: k v -> f v -> DMap k f -> DMap k f -> DMap k f
- bin :: k v -> f v -> DMap k f -> DMap k f -> DMap k f
- trim :: (Some k -> Ordering) -> (Some k -> Ordering) -> DMap k f -> DMap k f
- trimLookupLo :: GCompare k => Some k -> (Some k -> Ordering) -> DMap k f -> (Maybe (DSum k f), DMap k f)
- filterGt :: GCompare k => (Some k -> Ordering) -> DMap k f -> DMap k f
- filterLt :: GCompare k => (Some k -> Ordering) -> DMap k f -> DMap k f
Documentation
Dependent maps: k is a GADT-like thing with a facility for
rediscovering its type parameter, elements of which function as identifiers
tagged with the type of the thing they identify. Real GADTs are one
useful instantiation of k, as are Tags from Data.Unique.Tag in the
'prim-uniq' package.
Semantically, is equivalent to a set of DMap k f where no two
elements have the same tag.DSum k f
More informally, DMap is to dependent products as Map is to (->).
Thus it could also be thought of as a partial (in the sense of "partial
function") dependent product.
Instances
| (GEq k2, Has' Eq k2 f) => Eq (DMap k2 f) | |
| (GCompare k2, Has' Eq k2 f, Has' Ord k2 f) => Ord (DMap k2 f) | |
Defined in Data.Dependent.Map | |
| (GCompare k2, GRead k2, Has' Read k2 f) => Read (DMap k2 f) | |
Defined in Data.Dependent.Map | |
| (GShow k2, Has' Show k2 f) => Show (DMap k2 f) | |
| GCompare k2 => Semigroup (DMap k2 f) | |
| GCompare k2 => Monoid (DMap k2 f) | |
singleton :: k v -> f v -> DMap k f Source #
O(1). A map with a single element.
singleton 1 'a' == fromList [(1, 'a')] size (singleton 1 'a') == 1
lookup :: forall k f v. GCompare k => k v -> DMap k f -> Maybe (f v) Source #
O(log n). Lookup the value at a key in the map.
The function will return the corresponding value as (,
or Just value)Nothing if the key isn't in the map.
lookupAssoc :: forall k f v. GCompare k => Some k -> DMap k f -> Maybe (DSum k f) Source #
deleteFindMin :: DMap k f -> (DSum k f, DMap k f) Source #
O(log n). Delete and find the minimal element.
deleteFindMin (fromList [(5,"a"), (3,"b"), (10,"c")]) == ((3,"b"), fromList[(5,"a"), (10,"c")]) deleteFindMin Error: can not return the minimal element of an empty map
minViewWithKey :: forall k f. DMap k f -> Maybe (DSum k f, DMap k f) Source #
O(log n). Retrieves the minimal (key :=> value) entry of the map, and
the map stripped of that element, or Nothing if passed an empty map.
maxViewWithKey :: forall k f. DMap k f -> Maybe (DSum k f, DMap k f) Source #
O(log n). Retrieves the maximal (key :=> value) entry of the map, and
the map stripped of that element, or Nothing if passed an empty map.
deleteFindMax :: DMap k f -> (DSum k f, DMap k f) Source #
O(log n). Delete and find the maximal element.
deleteFindMax (fromList [(5,"a"), (3,"b"), (10,"c")]) == ((10,"c"), fromList [(3,"b"), (5,"a")]) deleteFindMax empty Error: can not return the maximal element of an empty map