make `Cmp` generic in both operands of the relation