Changes between Version 26 and Version 27 of Records/NameSpacing


Ignore:
Timestamp:
Jan 11, 2012 11:34:32 AM (2 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{{{