Original-Via: uk.ac.nsf; Sun, 10 Nov 91 16:03:39 GMT
Original-Sender: [EMAIL PROTECTED]

   From: [EMAIL PROTECTED]

   | From: john peterson <[EMAIL PROTECTED]>
   | I'll still stick with my opinion on this one, though.  Here's more
   | reasons:
   |   a) This represents a potentially large number of new instances which
   |      may be implicitly inserted into the program.

But the same large number will result once the explicit declaration is made.

   |   b) I feel it's more likely that a missing superclass would be the
   |      result of a programmer error than an intent to omit the superclass.

Probably true.

   |   c) We have made a stylistic commitment to explicitly listing the
   |      classes generated by a `deriving' clause; why should this
   |      situation be different?

   I think reason (c) is the best one.  I might not agree with necessity
   to list all derived instances in a @deriving@ clause, but since we
   have made that decision, we should be consistent here.

Too bad this is not consistent with the stylistic decision that
methods may optionally be omitted.  As John points out:

   | ... the only decent counter argument I have seen to this is as
   | follows: if a new superclass is added to a class, prior instance
   | declarations need not be altered to include the new superclass.  In
   | the same manner, if a new method is added to a class, existing
   | instance declarations need not be altered to include the new method.

Although the argument is not entirely convincing, I'm happy to go
along with John and Joe on this.

-Paul


Reply via email to