|Portability||non-portable (GHC extensions)|
|Maintainer||Manuel M T Chakravarty <email@example.com>|
Our representation of tuples are heterogenous snoc lists, which are typed by type lists, where '()' and '(,)' are type-level nil and snoc, respectively. The components may only be drawn from types that can be used as array elements.
- data Tuple c t where
- data TupleIdx t e where
- class IsTuple tup where
We represent tuples as heterogenous lists, typed by a type list.
Type-safe projection indicies for tuples.
NB: We index tuples by starting to count from the *right*!
Conversion between surface n-tuples and our tuple representation.