Opened 6 months ago

Last modified 6 months ago

#13109 new bug

CUSK improvements

Reported by: simonpj Owned by: goldfire
Priority: normal Milestone:
Component: Compiler Version: 8.0.1
Keywords: TypeInType Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:

Description

Inspired by looking at RnTypes.bindLHsTyVarBndr, and driven by #11592, 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

Change History (1)

comment:1 Changed 6 months ago by simonpj

Keywords: TypeInType added
Owner: set to goldfire
Note: See TracTickets for help on using tickets.