summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorsimonpj@microsoft.com <unknown>2009-07-02 09:46:57 +0000
committersimonpj@microsoft.com <unknown>2009-07-02 09:46:57 +0000
commit432b9c9322181a3644083e3c19b7e240d90659e7 (patch)
treeaffb919c8731145d0353f2ec828f11304ff40ca0 /compiler/codeGen
parent25cead299c5857b9142a82c917080a654be44b83 (diff)
downloadhaskell-432b9c9322181a3644083e3c19b7e240d90659e7.tar.gz
New syntax for GADT-style record declarations, and associated refactoring
The main purpose of this patch is to fix Trac #3306, by fleshing out the syntax for GADT-style record declraations so that you have a context in the type. The new form is data T a where MkT :: forall a. Eq a => { x,y :: !a } -> T a See discussion on the Trac ticket. The old form is still allowed, but give a deprecation warning. When we remove the old form we'll also get rid of the one reduce/reduce error in the grammar. Hurrah! While I was at it, I failed as usual to resist the temptation to do lots of refactoring. The parsing of data/type declarations is now much simpler and more uniform. Less code, less chance of errors, and more functionality. Took longer than I planned, though. ConDecl has record syntax, but it was not being used consistently, so I pushed that through the compiler.
Diffstat (limited to 'compiler/codeGen')
0 files changed, 0 insertions, 0 deletions