Van Snyder wrote:
> Of course, one can provide a binding with an entirely new name, and
> attach it to the same generic as the one to which the private (and
> deferred) bindings are attached.
This is not right for the particular example given here. What is needed
is not to ADD an entirely new procedure to the generic interface, but
rather REPLACE (i.e. OVERRIDE) the existing one.
> Generic resolution works because
> corresponding arguments will necessarily have different types
No, one is CLASS(AbstractVisitor) and the other is
CLASS(AbstractPrinter), which are TKR compatible and thus are not
distinguishable in our generic resolution scheme (unless we change it to
be preference-based as Kurt had proposed 5 years ago).
Best,
Aleks
|