Consider handling of `not` in the pattern match checker.
f :: Bool -> Int f x | x = 1 | not x = 2 [1 of 1] Compiling M ( test.hs, test.o ) test.hs:3:1: warning: [-Wincomplete-patterns] Pattern match(es) are non-exhaustive In an equation for ‘f’: Patterns not matched: False | 3 | f x | ^^^...
Clearly these cases are exhaustive.
However the pattern match checker does not recognize
not so can't infer this.
Add support for
not in the pattern match checker.