Of course, I meand 'deriving', not 'defining'

/me embarsed

2009/12/3 Matthew Pocock <matthew.pocock@ncl.ac.uk>
Perhaps what you are looking for is a more powerful "defining" semantics?

newtype MyFoo = Foo defining (Foo(..)) -- all class instances that Foo has are delegated through from MyFoo