Consider handling of `not` in the pattern match checker.
Motivation
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.
Proposal
Add support for not
in the pattern match checker.