If you want to add
multidispatch, multimethods, generic functions what have you to a language,
you need a way to specify, when declaring a method, for any parameter, not
just the first or the receiver, that this method should execute only when the
corresponding argument is of the sort specified for this method. In CLOS,
these designators are called specializers.

One way to introduce
specializers and multimethods into your language is to extend the syntax of
the language somehow. This slide illustrates how three languages that allow
multimethods, CLOS, Dylan and Cecil, did so.

(More could be said
about generic functions, multimethods, specializers, etc. here, were time to
have permitted this.)