Redeclaration of named tuple members

It's a little inconsistent, but one could view it as automatic synthesis of == for the two different tuple types. Again, illustrating with structs, because it's easier.

extension S {
   func ==(lhs: S, rhs: T) { return lhs.x == rhs.x && lhs.y == rhs.y }
}

extension T {
   func ==(lhs: T, rhs: S) { return lhs.x == rhs.x && lhs.y == rhs.y }
}

It's inconsistent, in that we don't do it for any types except tuples. (And I am not advocating we start! :upside_down_face:)