Changes between Version 26 and Version 27 of Records/OverloadedRecordFields/Implementation


Ignore:
Timestamp:
Aug 6, 2013 11:04:46 AM (8 months ago)
Author:
adamgundry
Comment:

todos and queries

Legend:

Unmodified
Added
Removed
Modified
  • Records/OverloadedRecordFields/Implementation

    v26 v27  
    183183== To do == 
    184184 
    185 Test type-changing update. 
    186  
    187 Sort out GADT record updates. 
    188  
    189 Implement the syntactic sugar `r { x :: t }`. 
    190  
    191 Test the interaction between fields and qualified names. In particular, a qualified name can be used for unambiguous identification of fields (e.g. in updates) but should probably not be used as an overloaded variable. 
    192  
    193 Universally quantified fields should result in a warning being emitted and no Has instance generated. What about existentially quantified fields (naughty record selectors)? 
    194  
    195 How should deprecation work for fields? Not at all? 
    196  
    197 Consider error messages: can we give helpful feedback so users don't have to understand the details of the implementation? For example, unsolved `Accessor` or `Has` constraints could be given nicer messages. 
    198  
    199 Consider defaulting `Accessor p` to `p = (->)`, and defaulting `Has r "f" t` constraints where there is only one datatype with a field `f` in scope. 
     185* Test type-changing update. 
     186* Sort out GADT record updates. 
     187* Implement the syntactic sugar `r { x :: t }`. 
     188* Test the interaction between fields and qualified names: a qualified name can be used for unambiguous identification of fields (e.g. in updates) but should probably not be used as an overloaded variable. 
     189* Universally quantified variables in field types should result in no Has instance being generated. 
     190* Improve error messages from typechecker: 
     191  * Unsolved `Accessor p f` where `p` is something silly 
     192  * Unsolved `Has R "x" t` where `R` has a quantified variable in the type of the field "x" 
     193* Consider defaulting `Accessor p` to `p = (->)`, and defaulting `Has r "f" t` constraints where there is only one datatype with a field `f` in scope. 
     194* Sort out reporting of unused imports. 
     195 
     196== Queries == 
     197 
     198* How should dfunids/axioms and instances be propagated? 
     199* Where should automatic instances be generated for GHCi? 
     200* How should deprecation work for fields? Not at all?