Swift can be tricky sometimes. For example, what does the following print?
class A: NSObject {
let x: Int
init(x: Int) {
self.x = x
}
}
func ==(left: A, right: A) -> Bool {
return left.x == right.x
}
print(A(x: 1) == A(x: 1))
print([A(x: 1)] == [A(x: 1)])