Node:Invoking Generic Functions, Next:Redefining a Class, Previous:Adding Methods to Generic Functions, Up:Reference Manual
When a variable with a generic function definition appears as the first element of a list that is being evaluated, the Guile evaluator tries to apply the generic function to the arguments obtained by evaluating the remaining elements of the list. [ *fixme* How do I put this in a more Schemely and less Lispy way? ]
Usually a generic function contains several method definitions, with
varying degrees of formal parameter specialization (see define-method). So it is necessary to sort these
methods by specificity with respect to the supplied arguments, and then
apply the most specific method definition. Less specific methods
may be applied subsequently if a method that is being applied calls
next-method
.