Safe Haskell | None |
---|---|
Language | Haskell2010 |
See here for the original term-level code by Stefan Kahrs.
Since: 0.1.1.0
Synopsis
- data TypeSet a
- type Empty = E
- type family Member (t :: k) (bst :: TypeSet k) :: Bool where ...
- class Insertable (k :: ki) (t :: TypeSet ki) where
- type family InsertAll (es :: [k]) (t :: TypeSet k) :: TypeSet k where ...
- type FromList (es :: [k]) = InsertAll es Empty
- class Removable (k :: ki) (t :: TypeSet ki) where
- type family Merge (small :: TypeSet k) (big :: TypeSet k) :: TypeSet k where ...
Core type
A Red-Black tree.
Since: 0.1.1.0
Set operations
type family Member (t :: k) (bst :: TypeSet k) :: Bool where ... Source #
O(log n). Determine membership in the 'TypeSet.'
class Insertable (k :: ki) (t :: TypeSet ki) Source #
The associated type family Insert
produces the resulting map.
Instances
(InsertableHelper1 k t, Insert1 k t ~ inserted, CanMakeBlack inserted) => Insertable (k :: ki) (t :: TypeSet ki) Source # | |
Defined in Type.RBSet |
type family InsertAll (es :: [k]) (t :: TypeSet k) :: TypeSet k where ... Source #
Insert a list of type level key / value pairs into a type-level map.
type FromList (es :: [k]) = InsertAll es Empty Source #
Build a type-level map out of a list of type level key / value pairs.