Open
Description
Your environment
- MacOS Monterey 12.6
- Xcode-14
- GHC-9.2.4 (also, 9.0.2, 9.4.1)
- Cabal-3.8.1.0
- HLS built from this
master
viaghcup compile hls --git-ref master --ghc 9.2.4
hlint
v3.3.6- VS Code with Haskell for VIsual Studio Code v2.2.1
haskell-linter
v0.0.6 (an extension to usehlint
in vscode)
hie.yaml
file:
cradle:
cabal:
- path: "src"
component: "lib:stepic-tests"
- path: "app/Main.hs"
component: "stepic-tests:exe:stepic-tests-exe"
- path: "app/Paths_stepic_tests.hs"
component: "stepic-tests:exe:stepic-tests-exe"
- path: "test"
component: "stepic-tests:test:stepic-tests-test"
- path: "app/MaybeDemo.hs"
component: "stepic-tests:exe:maybe-demo"
- path: "app/Paths_stepic_tests.hs"
component: "stepic-tests:exe:maybe-demo"
Steps to reproduce and Actual behavior
Open a .hs file in VS Code that contains integer literals, such as the following:
main :: IO ()
main = print $ nextPosN [1] (-1) (\x -> sum x < 7)
nextPosN :: [Int] -> Int -> ([Int] -> Bool) -> [[Int]]
nextPosN = undefined
and observe the error (warning, actually):
No instance for (Num [Int]) arising from the literal ‘1’
• In the expression: 1
In the first argument of ‘nextPosN’, namely ‘[1]’
In the second argument of ‘($)’, namely
‘nextPosN [1] (- 1) (\ x -> sum x < 7)’
Closely related to it is this (GitHub appears to stop allowing uploading screenshot (PNG) images):
Quick Fix...
Convert 1 into 0x1
Convert 1 into 0o1
Convert 1 into 1.0e0 (needs extension: NumDecimals)
Restarting HLS does not help. Restarting VS Code removes this bogus report, at least for a while.
Expected behaviour
Not to be told to convert 1
into 0x1
, to begin with. ;-)
More importantly, not to be told that there's No instance for (Num [Int]) arising from the literal '1'