Changes between Version 21 and Version 22 of Records


Ignore:
Timestamp:
Dec 29, 2011 5:04:48 PM (4 years ago)
Author:
GregWeber
Comment:

use Frege document for design proposal

Legend:

Unmodified
Added
Removed
Modified
  • Records

    v21 v22  
    5656 Verbosity is solved in Frege by using the TDNR concept. In `data Record = Record {a::String};r = Record "A"; r.a` The final `r.a` resolves to `Record.a r`.
    5757
     58 Frege has a detailed explanation of the semantics of its record implementation, and the language is *very* similar to Haskell. Lets just start by using Frege's document as the proposal. We can start a new wiki page as discussions are needed.
     59
    5860 * '''Use the module name space mechanism'''; after all that's what it's for.  But putting each record definition in its own module is a bit heavyweight. So maybe we need local modules (just for name space control) and local import declarations.  Details are unclear. (This was proposed in 2008 in [http://www.haskell.org/pipermail/haskell-cafe/2008-August/046494.html this discussion] on the Haskell cafe mailing list and in #2551. - Yitz).
    5961
    6062 Rather than strictly re-use modules it would make more sense to have a name-spacing construct that is shared between both records and modules - hopefully this would make implementation easier. Overall this seems to be more of an implementation detail that may have a side effect of making local modules easier to implement than a concrete design proposal relating to records - GregWeber.
    6163
    62 '''Anyone who likes these designs, please fill out a detailed design, either here or on another page'''.
     64'''Anyone who likes these designs, please help fill out a more detailed design discussion, either here or on another page'''.
    6365
    6466--------------------------