#5972: option to suppress (Monomorphic) record selector functions
------------------------------+---------------------------------------------
 Reporter:  AntC              |          Owner:                  
     Type:  feature request   |         Status:  new             
 Priority:  normal            |      Component:  Compiler        
  Version:                    |       Keywords:  records         
       Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
  Failure:  None/Unknown      |       Testcase:                  
Blockedby:                    |       Blocking:                  
  Related:                    |  
------------------------------+---------------------------------------------
 This proposal is a modest step towards freeing up the record fieldname
 namespace, without in any way pre-judging how the 'narrow namespace issue'
 might get addressed.


 There is to be a compiler flag (suggestion) -XNoMonoRecordFields. (Default
 value ‑XMonoRecordFields, to give H98 behaviour.)

 -XNoMonoRecordFields suppresses creating the field selector function from
 the field name in a record-style data declaration.


 Suppressing the function frees up the namespace, to be able to experiment
 with various record/field approaches -- including the 'cottage industry'
 of Template Haskell solutions.


 In particular, this means we can declare more than one record type within
 a module using the same field name.


 For background, details, use cases, see:
 
http://hackage.haskell.org/trac/ghc/wiki/Records/DeclaredOverloadedRecordFields/NoMonoRecordFields

 (Contrast ticket #3356 {-# LANGUAGE NoTraditionalRecordSyntax #-}, which
 suppresses far too much (IMHO).)

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5972>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to