84948e9c

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.
GitHub