Marker hierarchy for fixed-arity product types.
Tuple implementations inherit these interfaces so generators can talk about positional items in a type-safe way without resorting to reflection.