CUSK improvements
Inspired by looking at RnTypes.bindLHsTyVarBndr, and driven by #11592 (closed), Richard and I decided to make some improvements to the treatment of CUSKs.
Here's a scrappy Skype dump as a memory-jogger; it is a memory-jogger, not a full description. Richard has notes too
Richard Eisenberg: data F (x :: B a)
data G (x :: C b)
You have written a complete user-suppled kind signature,
but the following variable is undetermined: a0 :: A
Perhaps add a kind signature.
Inferred kinds of user-written variables:
b :: B a0
x :: C b
SPJ claim: CUSKs should be handled INDIVIDUALLY and in isoloation, just like term-level type signatures
SPJ claim: get rid of the "after the ::" side condition for data types (last bullet of HsDecls Note about CUSKs
All of this should mean (SPJ claims) no need for dep_vars returns by bindHsQTyVar, bindLHsTyVarBnrds etc
ToDo: clarify comments etc in bindLHStyVarBndr
Related to D2914
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.0.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |