The second implementation has the notable constraint that ==
will always be the boolean opposite of !=
. This is probably what you want, and it makes your code easier to maintain because you only have to change one implementation to keep the two in sync.