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

Aug 20, 2013 4:13:49 PM (4 years 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.