| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
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) Source # | |
| (GCompare k2, Has' Eq k2 f, Has' Ord k2 f) => Ord (DMap k2 f) Source # | |
| (GCompare k2, GRead k2, Has' Read k2 f) => Read (DMap k2 f) Source # | |
| (GShow k2, Has' Show k2 f) => Show (DMap k2 f) Source # | |
| GCompare k2 => Semigroup (DMap k2 f) Source # | |
| GCompare k2 => Monoid (DMap k2 f) Source # | |
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
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