@PepijnKramer, had a typo on the == oper was comparing lhs to itself. Fixed.
But what do you mean "!= is not the negation of =="? Why the operator< cannot contain != ? Does it SWO yes or no? Any of the Irreflexive, Transitive, Equivalence and Asymmetric properties?