I find it inconsistent that to define equality, I should define
Base.:(==) instead of
Base.isequal, but to define inequality, I should define
Base.isless instead of
Base.:(<). What’s the rationale for this?
In general, if I define a custom
struct and I define a custom equality / comparison operator, what are the methods that I should define to obtain a consistent behavior?