Introduce negative patterns for literals (addresses #11303)
Introduce negative patterns for literals (addresses #11303)

Introduce negative patterns for literals. In addition to storing term
constraints for literals (checked at the end by the term oracle), also
check eagerly, using negative patterns. This means generation of smaller
sets (covered, uncovered, and divergent), instead of generating big sets
and pruning afterwards.

Test Plan: validate

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D1716

GHC Trac Issues: #11303

tjakway/ghcjvm,vikraman/ghc,olsner/ghc,sgillespie/ghc,ezyang/ghc,vTurbine/ghc,mcschroeder/ghc,GaloisInc/halvm-ghc,vikraman/ghc,nushio3/ghc,GaloisInc/halvm-ghc,snoyberg/ghc,oldmanmike/ghc,ezyang/ghc,tjakway/ghcjvm,olsner/ghc,sdiehl/ghc,oldmanmike/ghc,shlevy/ghc,nushio3/ghc,olsner/ghc,sdiehl/ghc,nushio3/ghc,vTurbine/ghc,gridaphobe/ghc,mettekou/ghc,shlevy/ghc,tjakway/ghcjvm,GaloisInc/halvm-ghc,gridaphobe/ghc,oldmanmike/ghc,tjakway/ghcjvm,mcschroeder/ghc,sgillespie/ghc,nushio3/ghc,vikraman/ghc,vikraman/ghc,mcschroeder/ghc,vTurbine/ghc,vTurbine/ghc,nushio3/ghc,sgillespie/ghc,snoyberg/ghc,vikraman/ghc,sdiehl/ghc,mettekou/ghc,gridaphobe/ghc,ezyang/ghc,snoyberg/ghc,mcschroeder/ghc,tjakway/ghcjvm,ezyang/ghc,olsner/ghc,vikraman/ghc,snoyberg/ghc,gridaphobe/ghc,sdiehl/ghc,gridaphobe/ghc,sdiehl/ghc,mcschroeder/ghc,nushio3/ghc,sdiehl/ghc,mettekou/ghc,shlevy/ghc,olsner/ghc,oldmanmike/ghc,olsner/ghc,vTurbine/ghc,oldmanmike/ghc,shlevy/ghc,snoyberg/ghc,shlevy/ghc,shlevy/ghc,GaloisInc/halvm-ghc,GaloisInc/halvm-ghc,gridaphobe/ghc,nushio3/ghc,shlevy/ghc,mettekou/ghc,mettekou/ghc,GaloisInc/halvm-ghc,sdiehl/ghc,vikraman/ghc,tjakway/ghcjvm,vTurbine/ghc,mettekou/ghc,oldmanmike/ghc,mcschroeder/ghc,ezyang/ghc,sgillespie/ghc,mettekou/ghc,GaloisInc/halvm-ghc,oldmanmike/ghc,ezyang/ghc,sgillespie/ghc,ezyang/ghc,snoyberg/ghc,tjakway/ghcjvm,sgillespie/ghc,sgillespie/ghc,snoyberg/ghc,olsner/ghc,gridaphobe/ghc,vTurbine/ghc,mcschroeder/ghc