The delegate vocabulary implements run-time consultation for method dispatch.
A protocol is a collection of related generic words. An object is said to consult another object if it implements a protocol by forwarding all methods onto the other object.
Using this vocabulary, protocols can be defined and consultation can be set up without any repetitive boilerplate.
Unlike Tuple subclassing, which expresses is-a relationships by statically including the methods and slots of the superclass in all subclasses, consultation forwards generic word calls to another distinct object.