Right. This is a technical constraint which arises naturally from the Swift generics model and would be quite difficult to lift, and attempts to do so would inevitably be incomplete and compromised and would probably just lead to a lot of user frustration in practice. “Same-length” constraints are really “same-shape” constraints. Shape is deeply bound up with the actual dynamic pack length, and shape equality implies length equality, and shape equality devolves to length equality when there aren’t pack expansions involved, which is always true at some ultimate concrete use site; as a result, it’s only a slight misnomer to call it length equality, and it avoids the confusion of throwing a new term at users when they typically don’t need to worry about it.
2 Likes