export type NonEmptyTuple = (T[] & { "0" : T }); export type EmptyTuple = (T[] & { length : 0 }); export type Tuple = ( NonEmptyTuple | EmptyTuple );