I'd also add a `type(self) == type(other)` condition for good measure.