Huh. I’d’ve thought the syntax would be more like:
let x = (&str, i32, i32)::2(1);
match x {
<x>::0(s) => ...,
<x>::1(i) => ...,
<x>::2(j) => ...,
}
But okay… (this would be the opposite of a tuple - while a tuple’s attribute operates on values (t.0, t.1, etc), a summer’s attribute operates on types (T::0, T::1, etc))
(alternatively it wouldn’t support repeated types at all and construction and matching would be trivial)