unhelpful parse error message: Unexpected do block in function application
Not a bug, as ghc correctly rejects an invalid program. But I have the impression that the error message is getting less precise (for reason and location) from 8.4 to 8.6:
foo = do let x = case y of Nothing -> True bar
- 6.3 says
P.hs:1:7: error: Unexpected do block in function application: do let x = ... You could write it with parentheses Or perhaps you meant to enable BlockArguments? | 1 | foo = do | ^^...
I am not seeing what application ghc thinks of.
- 4.4 had the more useful
P.hs:3:5: error: parse error on input ‘Nothing’ | 3 | Nothing -> True | ^^^^^^^
More useful, since in the actual code, from which I distilled the above, there were a dozen lines between the locations that were reported by 8.6.3 and 8.4.4.