renamed xNot -> xNegate, because xIs needs a complementary function