Is ..
a prefix of the type variable (like variable types in Perl), or a rest/spread operator?
To me it'd make sense as an operator, i.e.:
fn my_func<T>((..v): (..T)) -> T
T
is a variable tuple (contains (T1, T2, T3, etc.)
), and ..
takes T
and spreads it into its components.
If ..
was used in type position, I'd expect it to capture multiple types:
HashMap<..T>
T == (K, V)