# type-list Common list and tuple operations rewritten as type families that operate in the type level, on data-kinded types. Both uncurried (type family) and curried (GADTs to be used with the Apply type family from Singletons) are provided, to work around the inability to partially apply type families.