type-level-sets
type-level-sets copied to clipboard
Type-level sets for Haskell (with value-level counterparts and various operations)
Addresses #17. Moving the `Filter` branching to top level type family patterns does appear to recover linear runtime. A rudimentary benchmark compiling the `hitmen` executable from https://github.com/jmorag/databass on my machine....
I have been trying to compute the union of 2 sets of 9 elements each and ... well the compiler is still running :-). Have you or anyone else investigating...
In Map, if I write ``` myMap :: Map '[ "w" ':-> Int] myMap = Ext (Var :: (Var "w")) 2 Empty elemAtW = lookp (Var :: (Var "w")) myMap...
The key has no run-time representation. If two `Map` values can be used as arguments to `==`, they must have the same type so their keys (`KnownSymbol`) must be the...
I'm writing some simple operations and I find myself with pretty long type constraints, such as: ``` ( S.Nubable (S.Sort (x :++ S.Nub (S.Sort (y :++ '[])))) , S.Nubable (S.Sort...
Redoing #7
I'm sorry to say I'm a bit mystified by the API. I would like to use this to build sets of error types. Suppose I had a value of type...
It would be nice to have a "map-like" Sum/Variant type to go along with `Data.Type.Map`. It could look something like: ```haskell data Sum (n :: [Mapping Symbol *]) where This...
I am working on a variation of the typelevel Set (a set with possibly "missing" values). I would like to find a way to define a `Cmp` instance for 2...