PmCheck: Use ConLikeSet to model negative info

In #17911, Simon recognised many warnings stemming from over-long list
unions while coverage checking Cabal's `LicenseId` module.

This patch introduces a new `PmAltConSet` type which uses a `UniqDSet`
instead of an association list for `ConLike`s. For `PmLit`s, it will
still use an assocation list, though, because a similar map data
structure would entail a lot of busy work.

Fixes #17911.
36 jobs for master in 299 minutes and 12 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Lint
passed #286397
lint
lint-linters

00:00:13

passed #286400
lint
lint-submods-branch

00:00:29

passed #286398
lint
lint-testsuite

00:00:15

passed #286399
lint
typecheck-testsuite

00:00:14

 
  Quick Build
passed #286401
x86_64-linux
hadrian-ghc-in-ghci

00:15:16

 
  Build
passed #286402
x86_64-linux
validate-x86_64-linux-deb9-hadrian

01:21:34

 
  Full Build
failed #286407
aarch64-linux allowed to fail
nightly-aarch64-linux-deb9

03:01:16

passed #286409
armv7-linux
nightly-armv7-linux-deb9

03:20:37

passed #286411
x86_64-linux
nightly-i386-linux-deb9

01:29:05

failed #286426
new-x86_64-windows test allowed to fail
nightly-i386-windows

failed #286422
new-x86_64-windows test allowed to fail
nightly-i386-windows-hadrian

failed #286404
x86_64-freebsd allowed to fail
nightly-x86_64-freebsd

00:17:58

failed #286419
x86_64-linux allowed to fail
nightly-x86_64-linux-alpine

03:20:46

passed #286418
x86_64-linux
nightly-x86_64-linux-deb10

01:53:37

passed #286412
x86_64-linux
nightly-x86_64-linux-deb9

00:56:38

failed #286416
x86_64-linux
nightly-x86_64-linux-deb9-integer-simple

01:49:35

failed #286414
x86_64-linux
nightly-x86_64-linux-deb9-llvm

00:47:15

failed #286424
new-x86_64-windows test allowed to fail
nightly-x86_64-windows

failed #286406
aarch64-linux allowed to fail
validate-aarch64-linux-deb9

03:01:24

passed #286408
armv7-linux
validate-armv7-linux-deb9

03:21:02

passed #286410
x86_64-linux
validate-i386-linux-deb9

01:28:48

failed #286425
new-x86_64-windows test allowed to fail
validate-i386-windows

passed #286405
x86_64-darwin
validate-x86_64-darwin

01:08:46

passed #286413
x86_64-linux
validate-x86_64-linux-deb9-debug

02:18:32

passed #286417
x86_64-linux
validate-x86_64-linux-deb9-dwarf

01:32:16

passed #286415
x86_64-linux
validate-x86_64-linux-deb9-integer-simple

01:09:15

passed #286403
x86_64-linux
validate-x86_64-linux-deb9-unreg-hadrian

02:20:52

passed #286420
x86_64-linux
validate-x86_64-linux-fedora27

00:43:31

failed #286423
new-x86_64-windows test allowed to fail
validate-x86_64-windows

failed #286421
new-x86_64-windows test allowed to fail
validate-x86_64-windows-hadrian

 
  Cleanup
passed #286427
x86_64-darwin
cleanup-darwin

00:00:26

 
  Packaging
skipped #286428
x86_64-linux allowed to fail
doc-tarball
 
  Testing
skipped #286429
x86_64-linux allowed to fail manual
hackage
skipped #286430
x86_64-linux
nightly-hackage
skipped #286431
x86_64-linux
perf-nofib
 
  Deploy
skipped #286432
x86_64-linux allowed to fail
pages
 
Name Stage Failure
failed
nightly-x86_64-linux-deb9-integer-simple Full Build
Uploading artifacts...
./ghc-x86_64-deb9-linux.tar.xz: found 1 matching files
junit.xml: found 1 matching files

performance-metrics.tsv: found 1 matching files

Uploading artifacts to coordinator... ok
id=286416 responseStatus=201 Created token=us9z49Xw
Uploading artifacts...
junit.xml: found 1 matching files

Uploading artifacts to coordinator... ok
id=286416 responseStatus=201 Created token=us9z49Xw
ERROR: Job failed: exit code 1
failed
nightly-aarch64-linux-deb9 Full Build
Uploading artifacts...
ghc-aarch64-linux-deb9.tar.xz: found 1 matching files
junit.xml: found 1 matching files

performance-metrics.tsv: found 1 matching files

Uploading artifacts to coordinator... ok
id=286407 responseStatus=201 Created token=hj86S_iV
Uploading artifacts...
junit.xml: found 1 matching files

Uploading artifacts to coordinator... ok
id=286407 responseStatus=201 Created token=hj86S_iV
ERROR: Job failed: exit code 1
failed
validate-aarch64-linux-deb9 Full Build
Uploading artifacts...
ghc-aarch64-linux-deb9.tar.xz: found 1 matching files
junit.xml: found 1 matching files

performance-metrics.tsv: found 1 matching files

Uploading artifacts to coordinator... ok
id=286406 responseStatus=201 Created token=5oxxpxD4
Uploading artifacts...
junit.xml: found 1 matching files

Uploading artifacts to coordinator... ok
id=286406 responseStatus=201 Created token=5oxxpxD4
ERROR: Job failed: exit code 1
failed
nightly-x86_64-freebsd Full Build
WARNING: ghc-x86_64-portbld-freebsd.tar.xz: no matching files 
WARNING: junit.xml: no matching files
WARNING: performance-metrics.tsv: no matching files
ERROR: No files to upload
Uploading artifacts...
Runtime platform
arch=amd64 os=freebsd pid=91859 revision=58272c27 version=12.7.0
WARNING: junit.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit status 1
failed
validate-x86_64-windows Full Build There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
nightly-x86_64-windows Full Build There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
nightly-i386-windows Full Build There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
nightly-x86_64-linux-alpine Full Build
Running rm -Rf _build...
Uploading artifacts...
ghc.tar.xz: found 1 matching files
junit.xml: found 1 matching files

Uploading artifacts to coordinator... ok
id=286419 responseStatus=201 Created token=SdiUpiG9
Uploading artifacts...
junit.xml: found 1 matching files

Uploading artifacts to coordinator... ok
id=286419 responseStatus=201 Created token=SdiUpiG9
ERROR: Job failed: exit code 1
failed
nightly-x86_64-linux-deb9-llvm Full Build
Uploading artifacts...
WARNING: ./ghc-x86_64-deb9-linux.tar.xz: no matching files
WARNING: junit.xml: no matching files
WARNING: performance-metrics.tsv: no matching files
ERROR: No files to upload
Uploading artifacts...
WARNING: junit.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
failed
validate-x86_64-windows-hadrian Full Build There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
nightly-i386-windows-hadrian Full Build There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
validate-i386-windows Full Build There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log