
On 8 Apr 2008, at 15:26, PR Stanley wrote:
I'm sure you could introduce change gradually without too much pain.
So then you only have to get the compilers to gradually understand it :-).
I personally think "deriving" is a descriptive term, now that I understand its role better.
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. But discussions of a change seems is likely just a café thing - I must go finishing mine :-).
I suppose you could consider "specialize" or "instanciate" but both those terms are very closely associated with OO and deriving an instance of a class with a type isn't quite like instantiation or even specialisation.
So then you introduce a new keyword and screwing up all existing code.
We want a single word which is equivalent to "derives from". Deriving by itself can seem a bit ambiguous at first.
What about the already used "=>"? Hans