```
MyFlags flags = ...;
flags = ~flags;
```
is exactly the reason why Negation was introduced.
In the second line ```flags``` is **not** storing an OR combination of enum constants.
While it is impossible, as long as bitwise operation on enums return enums, to prevent this, it definitely must not be something that the Flags interface allows on its own.