haskell / haskell/error-messages
Bare top-level expressions
- Dominant language
- No language data
- Stars
- 76
- Forks
- 19
- PR merge metrics
- No merged PRs in 30d
Description
Given this module:
```hs
sum [1,2,3,4]
```
We get this error when loading it into GHCi:
```
Main.hs:1:1: error:
Parse error: module header, import declaration
or top-level declaration expected.
|
1 | sum [1,2,3,4]
| ^^^^^^^^^^^^^
Failed, no modules loaded.
```
Perhaps we can:
1. Recognize that this is a bare top-level expression.
2. Reflect that in the error message.
3. Suggest that the user might want to bind this bare expression to a name.
Suggested error message:
```
Main.hs:1:1: error:
Parse error: module header, import declaration
or top-level declaration expected, but encountered
a bare expression instead.
Perhaps you meant to bind this expression to a name?
|
1 | sum [1,2,3,4]
| ^^^^^^^^^^^^^
Failed, no modules loaded.
```
Ideally, it would also be nice if the error message didn't mention module headers or import declarations in places where it doesn't apply, such as in this example:
```hs
import Data.List
xs = [3,5,1,2]
sort xs
```
```
Main.hs:3:1: error:
Parse error: module header, import declaration
or top-level declaration expected.
|
3 | sort xs
| ^^^^^
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.