A heterogeneous list of values that preserves type information
HList supported arity is up to product of 22 elements
A type class abstracting over the
product operation of type classes over
types of kind
*, as well as deriving instances using an isomorphism.
Refines ProductTypeClass with the addition of runtime
corresponding to the names of the product elements.