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 |