[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

add-method when method exists

In the current version of the spec, if add-method is used to add a
method to a generic function and there is already a method with the same
specializers and qualifiers and error is signaled.  I think thats a bad
idea, I think it should just remove the old method and add the new one.
Note that it should NOT call remove-method to remove the old one.

The reason is that very often you want to replace an existing method
with a new method.  Take the following example:

(defmethod foo :before ((x object)) 'before)

(defmethod foo ((x object)) 'primary)

If I want to redefine the second method, I want to replace it with the
new method, I don't want to first remove the old method because if I do,
the generic function will be in an illegal state (it will have no
primary method).