haskell / haskell/error-messages

Unbound variable in a pattern synonym

Open
#531 1 comment 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.