Description
I'm not sure where exactly the right place to discuss this is, how there should be a consensus, or whether this has already been deliberated on before, but I'd like to toss an opinion out there: hlint is more hindrance than a help.
At present the workaround I have for myself is to add an .hlint.yaml
file to every project with the following contents:
[ { "ignore": { "within": '**.*' } } ]
But my concern arises because we're about to teach a beginner workshop where, for the first time, we expect the majority of students to be following along with vscode and haskell-language-server installed. Haskell already offers a tremendous source of distractions from the small carefully-chosen set of core ideas we can try to get across in a few hours, without hlint interjecting its suggestions and bringing up things like eta reduction, tuple sections, etc. while people are still working on understanding types and basic syntax.
For myself, I also find the blue squiggles and additions to the Problems tab in vscode to be superfluous distractions from work. I don't really understand what the intended target audience is for the information that hlint provides, or why this information would need to be omnipresent while we code.
hlint itself acknowledges that...
Some of the hints are subjective [...] occasionally don't always make sense.
But the experience of using vscode and haskell-language-server is that the hints are presented in the absence of this explanation. The messages appear under the "problems" tab as read as imperative commands like "Use fewer brackets". To anyone who doesn't already know better, they appear confident and authoritative in this context.