that's some serious overloading of the equality operator. It allows an object of one type to be equal to an object of another type, which doesn't seem right.