OK, why doesn't `Equals` just go `x.Equals(y)` then?