
6 Jun
2003
6 Jun
'03
5:19 a.m.
On Fri, Jun 06, 2003 at 09:14:18AM +0100, Simon Peyton-Jones wrote:
You do know that in GHC (though not Hugs) you can say
newtype Foo = MkFoo Baz deriving( Monad, MyClass, This, That )
That is, deriving works for arbitrary classes for newtypes, just using the instance for the representation type. This greatly alleviates the pain you refer to. It's documented in the GHC user manual.
I recall that you came across a glitch with the specification of this feature -- is that all sorted out now?
Mind you, it's probably no help to you because we must support Hugs and nhc here
Precisely, though Nhc is already ruled out by the multi-parameter type classes and functional dependencies used in both old and new versions of the monad libraries.