On 16 November 2010 18:40, Russ Abbott <russ.abbott@gmail.com> wrote:
why isn't

instance Show Test

interpreted to mean

data Test = Test deriving (Show)

-- RussĀ 

One of them is declaring an instance, the other is asking the compiler derive an instance declaration for you. I don't know why the empty one is interpreted to be an instance deriving. Maybe because in such a case there would be no way to declare an empty instance?

In addition, there is yet another similar syntax. See stand-alone deriving.

Ozgur