If elementArity is.
An 'extractor' can be a case class or an unapply or unapplySeq method.
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.
You'll note we're not inside the cake. "Pattern" and "Type" are arbitrary types here, and NoPattern and NoType arbitrary values.
In this case we are basing the pattern expansion on a case class constructor.
In this case we are basing the pattern expansion on a case class constructor. The argument is the MethodType carried by the primary constructor.
In this case, expansion is based on an unapply or unapplySeq method.
In this case, expansion is based on an unapply or unapplySeq method. Unfortunately the MethodType does not carry the information of whether it was unapplySeq, so we have to funnel that information in separately.