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.