what about moving the record system to an addendum?

Samuel Bronson naesten at gmail.com
Mon Jul 6 17:30:34 EDT 2009


According to <http://hackage.haskell.org/trac/haskell-prime/wiki/Status>,
ticket #99 was rejected, but the tickets own page,
<http://hackage.haskell.org/trac/haskell-prime/ticket/99>, says
"probably yes". Which is it?

I was about to propose this myself, but decided to check the trac just
in case it had already been proposed, Haskell being so popular with
smart people and all, and was at first rather disappointed and ready
to write an angry rant to the list, then rather confused when I
noticed the ticket's page said almost the exact opposite of the Status
page.

In particular, I want records to be considered an extension to
Haskell', to be implemented only by compilers that care, and even then
only allowed with a LANGUAGE pragma like this:

   {-# LANGUAGE TraditionalRecordSyntax #-}

For pre-Haskell' compilers, we would want something like:

   {-# LANGUAGE NoTraditionalRecordSyntax #-}

which would mean extending the LANGUAGE pragma to support turning
extensions off by adding/removing a No from the front of it.

Hmm, is it really the case that nobody has proposed LANGUAGE pragmas for
Haskell'? I don't see them listed on the Status page.

I guess the work involved here is basically:

(a) Go through Haskell 98, find all the parts that talk specifically
about record syntax, and write up the list of such places. 

(b) Implement this in GHC:
  <http://hackage.haskell.org/trac/ghc/ticket/3356>

(c) Add support for negating extension names by adding/removing No in
front of extension names to Cabal:
  <http://hackage.haskell.org/trac/hackage/ticket/567>

(d) Add {-# LANGUAGE #-} to Haskell'

What do you folks think?


More information about the Libraries mailing list