How about the following, which is currently allowed, and will continue to be allowed even after tuple shuffling is deprected, and is caused by the ==
operator that accepts any two tuples with matching element types and ignores their labels:
func test() {
let ten = 10
let rq = (remainder: 3, quotient: 1)
let qr = ten.quotientAndRemainder(dividingBy: 3)
print(qr == rq) // true <--- What? So 3 * 1 + 3 == 10 ... !?
print(type(of: rq) == type(of: qr)) // false
}
test()
IMHO it shouldn't even be OK to, without explicit intent, check two values of different types for equality like this.