Case classes may have arbitrary arity.

If it's above 22, `Companion extends FunctionN` and
`Comanpanion.unapply` are sacrificed. Pattern matching
still works, for those who like there patterns wide.