
Hans Aberg wrote:
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?
None. See how efficient a solution it is? ;)