#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
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs