By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Say it without the negations A reader parses "nothing X is Y" slower than "only X is Y", and stacked negations worse still. The prose had a lot of both. CommentBareTodo's why ran three deep: a TODO nothing points at is a note nobody is holding, and nothing brings it back up. HsNoFilePath scoped one negation over a three-way disjunction: it does not say file or directory, absolute or relative, or path at all. Say the positive thing instead. The nothing-but exception form became only: only the Main that gathers the specs reads a test file, only a library can be imported, a test file binds only spec. Where the negation was carrying real content it stayed, as a single contrast one clause deep: a path is a Path, not a FilePath. HsNoCustomShowRead is the one this started from. It now says what a written Show does, rather than what nothing does about it, and its unless became a plain either-or. The report layer got the same pass: a suppression sits on its own rather than not being attached to anything, and an unknown rule id asks the reader to check the spelling rather than explaining what turning off a name nothing answers to leaves running. Goldens reset.
| Time to Start | Worker time | Duration | Time to finish | Idle | |
|---|---|---|---|---|---|
| Config | 1m45s | 0s | 0s | 1m46s | 1m45s |
| Eval | 1m47s | 13s | 13s | 2m00s | 0s |
| Build | 1m59s | 0s | - | - | 0s |
| Suite | 1m45s | 14s | - | - | 1h17m22s |