
On 8 okt 2006, at 18.22, Brian Smith wrote:
On 10/6/06, Björn Bringert
wrote: John Hughes wrote: deriving (Eq Foo, Ord Foo)
instead of
deriving (Eq, Ord) for Foo
I find the former syntax clearer and more readable, actually.
John
I'll implement this syntax instead and then write up a Haskell' proposal.
I am sure that it was already argued at great length, but I think it is wrong to start the declaration with "deriving." I believe that "derive instance" fits much better into the language. I understand the desire to avoid adding new keywords but I think that something along the lines of what was done for "for" could be done here for "derive."
I agree that "derive" would be nicer, but as you say, the problem is that it would add a new keyword. Since the declaration would then start with "derive", I don't that think it could easily be made into a special identifier. A deriving declaration would look like this: derive Eq Foo which looks just like the beginning of a declaration of a function called "derive" which does some pattern matching, if derive can also be an identifier. /Björn