There are two internal details of the library that must be reconciled and the UX must be figured out. How to manipulate list-valued indexing keys, with little boilerplate?
- On one hand, the generic encoding produces
Row values which are keyed by lists (since the original values are flattened into a single trie, collecting record names depth-first)
encode :: (Foldable t, Heidi a) => t a -> Frame (Row [TC] VP)
- On the other, the relational operations are completely polymorphic in the key type (as long as it's TrieKey from
generic-trie, i.e. either a primitive type or a list of such etc.)
https://hackage.haskell.org/package/heidi-0.0.0/docs/Heidi-Data-Frame-Algorithms-GenericTrie.html
innerJoin :: (Foldable t, Ord v, TrieKey k, Eq v, Eq k) => k -> k -> t (Row k v) -> t (Row k v) -> Frame (Row k v)
There are two internal details of the library that must be reconciled and the UX must be figured out. How to manipulate list-valued indexing keys, with little boilerplate?
Rowvalues which are keyed by lists (since the original values are flattened into a single trie, collecting record names depth-first)encode :: (Foldable t, Heidi a) => t a -> Frame (Row [TC] VP)generic-trie, i.e. either a primitive type or a list of such etc.)https://hackage.haskell.org/package/heidi-0.0.0/docs/Heidi-Data-Frame-Algorithms-GenericTrie.html