For built-in error checking, hdevtools is the best I have found. This is the background server that GHC runs on to speed up program analysis.
It is actually very simple to install: you need one Haskell package:
cabal install hdevtools
and two Emacs packages, both through Mx list-packages : flycheck and flycheck-hdevtools .
After installing it, you just need to enable it with something like Mx global-flycheck-mode (which you can also place in .emacs .) You can go to the next error with Cx ` . You probably also want to change the facets of the errors and warnings you can do with the Mx customize-group flycheck-faces .
Unfortunately, Emacs mode contains only errors and warnings (including hlint); it does not provide an identifier type choice which, in my opinion, is supported by hdevtools . It also sometimes gives me random parsing errors when running into Unicode names or some extensions; however, if I just ignore them, everything else works. I should probably write a bug report or something else.
Tikhon jelvis
source share