Variadic generics design sketch

Your second example, Foo(...d), is correct, I agree. But why do you think (...Foo(true, false),) should be rejected?

My intention with the current design was that ...ident patterns should have the same meaning as ident @ ... Why do you want that to change?

tup is already a tuple, there is no need to splat it. (I've updated the doc to specify this explicitly.)