nim compiler mistakes `!(a == b)` for `!a == b` and fails to compile · Issue #12184 · nim-lang/Nim

Overriding equal function causes incorrect behaviour. Nim compiler translates !(a == b) into !a == b and fails to compile. Example type CSet {.importcpp: "std::set", header: "<set>".} [T] = object ...</set>