... language1
Historically, homomorphisms are closely connected to syntax-directed translations [1] and correspond to compositional definitions [9].
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... only2
Languages with multi-dispatch, e.g., CLOS , Cecil , or Dylan  are not in widespread use.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... respectively3
As is the case with all generic functions of figure 4.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... generic4
This time generic means (static) parametric polymorphism, whereas we imply (dynamic) inclusion polymorphism in case of generic functions.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...pretty_functions)5
It is easy to shield the client from the existence of function packages, by providing a tailored generic function that creates a standard generic function with a fixed function package (e.g., pretty_functions).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... package)6
At this point a runtime error may occur due to a missing specialized function. Some exception handling or other kinds of gracefully dealing with such a situation would be appropriate.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Thomas Kuehne
1998-07-06