Created Started Cancelled
By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Say each of the three things once A diagnostic prints the finding message, then the rule text under the marker, then the rule why as a note. Every rule was answering the same question in all three: the message told the reader what to do instead, which is what the marker already says, and the why then said it a third time at length. A reader stopped by an Eq finding read "derive it instead", "Eq is derived", and a paragraph arguing for deriving. Give each field one job. The finding message names what was found here, and only that. Where the rule knows which one it found, it says so: Eq User rather than an Eq instance, the binding's own name rather than a binding, the package the generator is in rather than a package. That is what varies between two findings of one rule, and it is what a reader scanning a list of them needs. The rule text is the standard, in the one line the marker has room for. The rule why is the argument for the rule, so it stays general to the rule and stops when it has made it. The exceptions that were worth keeping stayed: toFilePath at the edge, and a Show that ignores the value. Goldens reset.