Proposal for stand-alone deriving declarations?

Michael Shulman viritrilbia at gmail.com
Fri Oct 6 11:39:39 EDT 2006


On 10/6/06, John Hughes <rjmh at cs.chalmers.se> wrote:
> deriving (Eq Foo, Ord Foo)
>
> instead of
>
> deriving (Eq, Ord) for Foo

So what does

newtype Foo a = Foo a
newtype Bar b = Bar b
class C a b
deriving (C (Foo a) (Bar b))

mean?  I could see it meaning any or all of the following:

instance (C (Foo a) b) => (C (Foo a) (Bar b))
instance (C a (Bar b)) => (C (Foo a) (Bar b))
instance (C a b) => (C (Foo a) (Bar b))

Perhaps I am misunderstanding?

Mike


More information about the Haskell-prime mailing list