Changes between Version 26 and Version 27 of Records/NameSpacing


Ignore:
Timestamp:
Jan 11, 2012 11:34:32 AM (4 years ago)
Author:
GregWeber
Comment:

compatibility

Legend:

Unmodified
Added
Removed
Modified
  • Records/NameSpacing

    v26 v27  
    160160== Compatibility with existing records ==
    161161
    162 The new record system could be enabled with `-XNAMESPACEDATA`.
    163 
    164 * Should new modules be infectious? That is, if I turn the extension on for my module and export a record, does a user that wants to import the record also have to use the extension?
    165 
    166 * Records from modules without this extension can be imported into a module using it.
    167 Ideally the old record fields would now only be accessed through a namespace. Also, we would ideally be able to strip any now useless field prefixes.
     162The new record system would be enabled with `-XNAMESPACEDATA`.
     163Records from modules without this extension by default should still pollute the global namespace, even in a module using this extension. To make old records use the new style, one should add `-XNOGLOBALRECORDFIELDS`
     164
     165Until this is a Haskell standard, we should try to avoid this being infectious. If I turn the extension on for my module and export a record, a user that wants to import the record should be able to use the old style. This would be the default if there is no `-XNAMESPACEDATA`, or should the user have to specify a different pragma and the default would be a compilation error forcing them to specify one or the other?
     166
     167Ideally, with `-XNOGLOBALRECORDFIELDS` we would also be able to strip any now useless field prefixes.
    168168
    169169{{{