Changes between Version 46 and Version 47 of Records/OverloadedRecordFields/Implementation

Aug 20, 2013 4:13:49 PM (23 months ago)

much to do


  • Records/OverloadedRecordFields/Implementation

    v46 v47  
    273273== To do == 
     275* Put `(r ~ SetResult r f (GetResult r f))` in superclasses of `Upd`, not `Has`.  And Note to explain what it is doing 
     276* Add Note to explain why `GetR` and `SetR` are not associated types (NB: it’d be possible for associated types to have type parameters that are an *instance of* the class header.  Feature request!) 
     277* With fundep in class, I think we don’t need it in the instance.  Check this. 
     278* Generate dfuns unconditionally; *use* them when `OverloadedFields` is on.  Make sure `GHC.Records` is compiled before any base module that has a record field.  (Maybe move `TypeLits.Symbol` to an earlier module eg `GHC.Base`.) 
     279* Add axioms to `tcg_type_env` but not `tcg_fam_inst_env` 
     280* Always mangle selector names (for simplicity) 
     281  * Sort out impedance mismatch with boot files, if easy or enough people care 
     282  * Check import/export behaviour 
     283* Minimise contents of `AvailInfo` (preferably just a list of field `OccName`s): use `newGlobalBinder` to lookup cached mangled names for selectors and pieces 
     285* Sort out reporting of unused imports. 
     286* Make instances available to GHCi. 
     288* Consider syntactic sugar for `Upd` constraints. 
    275289* Improve unsolved `Accessor p f` error message where `p` is something silly? 
    276290* 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. 
    277 * Sort out reporting of unused imports. 
    278 * Review propagation of dfunids/axioms and instances; consider `-XOverloadedRecordFieldInstances` as a separate extension. 
    279 * How should instances be made available to GHCi? 
    280292* Document the extension, including new warnings.