haskell / haskell/haskell-language-server

Filling type holes can create incomplete signatures due to type variables from context

Open
#711 0 comments 0 reactions 0 assignees View on GitHub
component: ghcide status: needs info type: bug
Dominant language
Haskell
Stars
3k
Forks
455
Avg merge
2d 19h
Merged PRs (30d)
11

Description

I have for example the following situation:
```
Found type wildcard ‘_’ standing for ‘R.Dynamic t [Task] -> m ()’
Where: ‘t’, ‘m’ are rigid type variables bound by the type signature for: ...
```
It‘s not an import bug right now, but when `t` and `m` are not declared with `forall t m` and `ScopedTypeVariables` the inserted signature for the type hole will probably fail because it's lacking all constraints for `t` and `m`.

I am not sure what the correct solution is:
* One could possibly look for the right constraints in the code and insert them.
* Another (slightly crazy) possibility would be to offer to refactor used variables to explicit scoped type variables.

As I said this is not urgent and I see that a fix might be hard. Nonetheless I thought having the problem noted somewhere might help.

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.