NotUndef
Since we have the ability to use `not` as a prefix, having rules that start with not becomes a bit inflexible, verbose, and harder to understand. This commit will refactor the `NotUndef` rule by inverting its behaviour and renaming it to `Undef`.