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


Ignore:
Timestamp:
Aug 23, 2013 2:54:15 PM (2 years 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.