hlintのversionは1.9.3なんですがわりとむかしからある問題かもしれません。
次のようなソースを書いてutf-8で保存しすると、ghcでコンパイルは通りますが、hlintすると怒られます。
module Main where
main :: IO ()
main = putStrLn "ふが"
$ hlint invalid.hs
hlint.exe: invalid.hs: hGetContents: invalid argument (invalid byte sequence)
なんだこれ!Haskellのコードはutf-8で保存すればいいんじゃなかったのか!いろいろ調べた結果--encodingオプションにutf-8を渡せばいいみたい。
$ hlint invalid.hs --encoding=utf-8
No suggestions
うまくいったけど納得いかないo(`ω´*)o