Changes between Version 50 and Version 51 of Records/OverloadedRecordFields/Implementation


Ignore:
Timestamp:
Aug 23, 2013 2:54:15 PM (19 months ago)
Author:
adamgundry
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Records/OverloadedRecordFields/Implementation

    v50 v51  
    257257 
    258258 
    259 == Outstanding bugs == 
    260  
    261 * typechecker/should_fail/tcfail102 (changed error message)  
    262  
    263  
    264 == To do == 
    265  
    266 * With fundep in class, we don't need it in the instance. 
    267 * Always mangle selector names (for simplicity)? 
     259== Mangling selector names == 
     260 
     261We could mangle selector names (using `$sel_foo_T` instead of `foo`) even when the extension is disabled, but we decided not to because the selectors really should be in scope with their original names, and doing otherwise leads to: 
    268262  * Trouble with import/export 
    269263  * Trouble with deriving instances in GHC.Generics (makes up un-renamed syntax using field `RdrName`s) 
    270   * Sort out impedance mismatch with boot files 
    271 * Minimise contents of `AvailInfo` (preferably just a list of field `OccName`s?): use `newGlobalBinder` or `lookupOrig` to lookup cached mangled names for selectors and pieces 
     264  * Boot files that export record selectors not working 
     265 
     266 
     267== Outstanding bugs == 
     268 
     269* typechecker/should_fail/tcfail102 (changed error message)  
     270 
     271 
     272== To do == 
     273 
     274* With fundep in class, we don't need it in the instance. 
     275* Minimise contents of `AvailInfo` (to a list of `AvailFields Name`, where `data AvailFields name = NonOverloaded [name] | Overloaded [OccName]`). Use `lookupOrig` to lookup cached mangled names for selectors and pieces (get a `Module` from the `TyCon` `Name`). 
     276* When there is only one thing in scope, don't do make it polymorphic (but document trade-offs). 
     277* Forbid ambiguous qualified overloaded fields. 
     278* Add `HsVarOut RdrName id` instead of `HsSingleRecFld` (or perhaps rename `HsVar` to `HsVarIn`); also useful to recall how the user referred to something. 
     279* Could resolve Has constraints in the solver, like newtype coercions and SingI, rather than the instance malarkey. 
    272280 
    273281* Sort out reporting of unused imports.