Portability | Uses GHC extensions |
---|---|
Maintainer | Stability : experimental |
Safe Haskell | None |
Based on Data.IntSet.
- type EnumMapSet k = EnumMapMap k ()
- data K k = K !k
- data k :& t = !k :& !t
- null :: IsEmm k => EnumMapSet k -> Bool
- size :: IsEmm k => EnumMapSet k -> Int
- member :: IsEmm k => k -> EnumMapSet k -> Bool
- empty :: IsEmm k => EnumMapSet k
- singleton :: IsEmm k => k -> EnumMapSet k
- insert :: IsEmm k => k -> EnumMapSet k -> EnumMapSet k
- delete :: IsEmm k => k -> EnumMapSet k -> EnumMapSet k
- union :: IsEmm k => EnumMapSet k -> EnumMapSet k -> EnumMapSet k
- difference :: IsEmm k => EnumMapSet k -> EnumMapSet k -> EnumMapSet k
- intersection :: IsEmm k => EnumMapSet k -> EnumMapSet k -> EnumMapSet k
- map :: (IsEmm k1, IsEmm k2) => (k1 -> k2) -> EnumMapSet k1 -> EnumMapSet k2
- foldr :: IsEmm k => (k -> t -> t) -> t -> EnumMapSet k -> t
- toList :: IsEmm k => EnumMapSet k -> [k]
- fromList :: IsEmm k => [k] -> EnumMapSet k
Documentation
type EnumMapSet k = EnumMapMap k ()Source
Multiple keys are joined by the (:&
) constructor and terminated with K
.
multiKey :: Int :& Int :& K Int multiKey = 5 :& 6 :& K 5
!k :& !t |
(Eq k, Eq t) => Eq (:& k t) | |
(Show v, Show (EnumMapMap t v)) => Show (EnumMapMap (:& k t) v) | |
(Show k, Show t) => Show (:& k t) | |
(NFData v, NFData (EnumMapMap t v)) => NFData (EnumMapMap (:& k t) v) | |
(Enum k, IsEmm t) => IsEmm (:& k t) | |
IsSplit (:& k t) Z | |
IsSplit (:& k t) Z | |
(IsSplit t n, Enum k) => IsSplit (:& k t) (N n) |
Query
null :: IsEmm k => EnumMapSet k -> BoolSource
size :: IsEmm k => EnumMapSet k -> IntSource
member :: IsEmm k => k -> EnumMapSet k -> BoolSource
Construction
empty :: IsEmm k => EnumMapSet kSource
singleton :: IsEmm k => k -> EnumMapSet kSource
insert :: IsEmm k => k -> EnumMapSet k -> EnumMapSet kSource
delete :: IsEmm k => k -> EnumMapSet k -> EnumMapSet kSource
Combine
union :: IsEmm k => EnumMapSet k -> EnumMapSet k -> EnumMapSet kSource
difference :: IsEmm k => EnumMapSet k -> EnumMapSet k -> EnumMapSet kSource
intersection :: IsEmm k => EnumMapSet k -> EnumMapSet k -> EnumMapSet kSource
Map
map :: (IsEmm k1, IsEmm k2) => (k1 -> k2) -> EnumMapSet k1 -> EnumMapSet k2Source
is the set obtained by applying map
f sf
to each element of s
.
It's worth noting that the size of the result may be smaller if,
for some (x,y)
, x /= y && f x == f y
Folds
foldr :: IsEmm k => (k -> t -> t) -> t -> EnumMapSet k -> tSource
Lists
toList :: IsEmm k => EnumMapSet k -> [k]Source
fromList :: IsEmm k => [k] -> EnumMapSet kSource