CLHS: Section 7.6.5

#

## 7.6.5 Keyword Arguments in Generic Functions and Methods

When a generic function or any of its methods mentions `&key` in a lambda list, the specific set of keyword arguments accepted by the generic function varies according to the applicable methods. The set of keyword arguments accepted by the generic function for a particular call is the union of the keyword arguments accepted by all applicable methods and the keyword arguments mentioned after `&key` in the generic function definition, if any. A method that has `&rest` but not `&key` does not affect the set of acceptable keyword arguments. If the lambda list of any applicable method or of the generic function definition contains `&allow-other-keys`, all keyword arguments are accepted by the generic function.

The lambda list congruence rules require that each method accept all of the keyword arguments mentioned after `&key` in the generic function definition, by accepting them explicitly, by specifying `&allow-other-keys`, or by specifying `&rest` but not `&key`. Each method can accept additional keyword arguments of its own, in addition to the keyword arguments mentioned in the generic function definition.

If a generic function is passed a keyword argument that no applicable method accepts, an error should be signaled; see Section 3.5 (Error Checking in Function Calls).

## 7.6.5.1 Examples of Keyword Arguments in Generic Functions and Methods

Copyright 1996-2005, LispWorks Ltd. All rights reserved.