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


I think there used to be a HANDLES? predicate in T, but maybe it got
removed.  Check in the implementation environment.

Note that the predicate always returned true for operations that had
default methods, since all objects handle such operations (by invoking
the operation's default method).

The problem with a HANDLES? predicate (and the reason that it got
flushed, if it was) is that it necessarily makes the dispatch mechanism
a little more complicated.  Right now it's totally procedural -- you
just tell the object to deal with the operation -- but the existence of
HANDLES? implies either doing things in two stages (get the method,
then either invoke it or return a boolean) or keeping some sort of
database of the methods around so that it can be inspected without
actually invoking any method.

Also it seems sort of artificial to distinguish a default method that
signals an error from no default method.  It is nice to be able to
implement the latter as the former.

As for WHERE-DEFINED, I think it would be a good idea for it to have a
default method that returns #f.