negate requires !