haskell / haskell/error-messages
Unbound variable in a pattern synonym
- Dominant language
- No language data
- Stars
- 76
- Forks
- 19
- PR merge metrics
- No merged PRs in 30d
Description
This
```haskell
{-# LANGUAGE PatternSynonyms #-}
pattern P x = ()
```
gives
```
M.hs:2:11: error: Not in scope: ‘x’
|
2 | pattern P x = ()
| ^
```
I think this is too terse and the error should give more explanation. For a newcomer, it's very natural to expect it to work, because `f x = ()` works.
For comparison,
```haskell
pattern Q = x
```
gives
```
M.hs:2:13: error:
Invalid right-hand side of bidirectional pattern synonym ‘Q’:
‘x’ is not bound by the LHS of the pattern synonym
RHS pattern: x
|
2 | pattern Q = x
| ^
```
This is better, though it could also suggest adding 'x' to the LHS, or changing it to a wildcard, or making the pattern synonym unidirectional.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.