There is a detailed and customizable protocol involved in the process of invoking a generic function — i.e., in the process of deciding which of the generic function’s methods are applicable to the current arguments, and which one of those to apply. Here is a summary diagram of the generic functions involved.
apply-generic
(generic)
no-method
(generic)
compute-applicable-methods
(generic)
sort-applicable-methods
(generic)
method-more-specific?
(generic)
apply-methods
(generic)
apply-method
(generic)
no-next-method
(generic)
no-applicable-method
We do not yet have full documentation for these. Please refer to the code (oop/goops.scm) for details.