On 8 Apr 2008, at 16:32, Anton van Straaten wrote:
There are two processes here: deriving, i.e., inheriting an interface; and instantiating, i.e., producing running code. Haskell denotes derivation by "=>". And "data <a> deriving (b_1, ..., b_k)" is really a short for
  data <a>
  instance b_1 where <compiler implementation>
  ...
  instance b_k where <compiler implementation>
So "instance" seems the word that should have been used.

How about making "deriving x" an expression which means:

  instance x where <compiler implementation>

This innovative solution will minimize changes to the Haskell compiler, documentation, and programmer's brains.

So what is the difference from the current state? They way you have written it, one can say
  data A ...

  deriving Eq A
Is that what you want?

Seriously, there's only so much connotational meaning you can pack into or extract from a keyword. Ultimately, programming language keywords follow the rule given by Humpty Dumpty:

"When _I_ use a word, it means just what I choose it to mean -- neither more nor less."

That is why computer languages are what they are. Think of C "static".

  Hans



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to