A generic word is composed of zero or more methods together with a method combination. A method specializes on a class; when a generic word is executed, the method combination chooses the most appropriate method and calls its definition.
A generic word behaves roughly like a long series of class predicate conditionals in a cond form, however methods can be defined in independent source files, reducing coupling and increasing extensibility. The method combination determines which object the generic word will dispatch on; this could be the top of the stack, or some other value.
Generic words which dispatch on the object at the top of the stack:
Generic words specialize behavior based on the class of an object; sometimes behavior needs to be specialized on the object's structure; this is known as pattern matching and is implemented in the match vocabulary.