If elementArity is...
An 'extractor' can be a case class or an unapply or unapplySeq method.
The type in its unextracted form
The non-sequence types which are extracted
The sequence type which is extracted
It's not optimal that we're carrying both sequence and repeated type here, but the implementation requires more unraveling before it can be avoided.
You'll note we're not inside the cake.
In this case we are basing the pattern expansion on a case class constructor.
Converts a T => (A, B, C) extractor to a T => ((A, B, CC)) extractor.
In this case, expansion is based on an unapply or unapplySeq method.