[project @ 2004-04-02 16:46:57 by simonpj]
authorsimonpj <unknown>
Fri, 2 Apr 2004 16:47:05 +0000 (16:47 +0000)
committersimonpj <unknown>
Fri, 2 Apr 2004 16:47:05 +0000 (16:47 +0000)
commit40888e1d6141c919254f93545ae0d795e20ae4bf
tree498576a0359a46008961ec28bdae7098cd7cc6a3
parentf216dd0134b3c581dde683f16a75885457e4c60b
[project @ 2004-04-02 16:46:57 by simonpj]
Extend the "newtype deriving" feature a little bit more
(at the request of Wolfgang Jeltsch)

Here's the example:
    class C a b
    instance C [a] Char
    newtype T = T Char deriving( C [a] )

Perfectly sensible, and no reason it should not work.
Fixing this required me to generalise the abstract syntax of
a 'deriving' item, hence the non-local effects.
ghc/compiler/deSugar/DsMeta.hs
ghc/compiler/hsSyn/HsDecls.lhs
ghc/compiler/main/HscStats.lhs
ghc/compiler/parser/Parser.y.pp
ghc/compiler/parser/RdrHsSyn.lhs
ghc/compiler/rename/RnSource.lhs
ghc/compiler/rename/RnTypes.lhs
ghc/compiler/typecheck/TcDeriv.lhs
ghc/compiler/typecheck/TcHsType.lhs
ghc/compiler/typecheck/TcType.lhs