Hans Aberg 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.

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."

Anton

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to