Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Diff of /clos.xmlf [f587e9] .. [9e7c20] Maximize Restore

  Switch to unified view

a/clos.xmlf b/clos.xmlf
1
<?xml version="1.0" encoding="utf-8"?>
1
<?xml version="1.0"?><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1//EN" "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd">
2
<!DOCTYPE book [
2
<book lang="en">
3
<!ENTITY % eclent SYSTEM "ecl.ent">
4
%eclent;
5
]>
6
<book xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
7
<chapter label="11" xml:id="CLOS">
3
<chapter label="11" id="CLOS">
8
<title>CLOS</title>
4
<title>CLOS</title>
9
<blockquote>
5
<blockquote>
10
<screen><indexterm role="fn"><primary>add-method</primary></indexterm>&#151; Generic: <function>add-method</function> <varname>generic-function</varname> <varname>method</varname></screen>
6
<screen><indexterm role="fn"><primary>add-method</primary></indexterm>&mdash; Generic: <function>add-method</function> <varname>generic-function</varname> <varname>method</varname></screen>
11
<screen><indexterm role="fn"><primary>add-method</primary></indexterm>&#151; Method: <function>add-method</function> (</screen>
7
<screen><indexterm role="fn"><primary>add-method</primary></indexterm>&mdash; Method: <function>add-method</function> (</screen>
12
</blockquote>
13
<blockquote>
8
</blockquote>
9
<blockquote>
14
<screen><indexterm role="fn"><primary>call-method</primary></indexterm>&#151; Macro: <function>call-method</function> <varname>method next-method-list</varname></screen>
10
<screen><indexterm role="fn"><primary>call-method</primary></indexterm>&mdash; Macro: <function>call-method</function> <varname>method next-method-list</varname></screen>
15
</blockquote>
16
<blockquote>
11
</blockquote>
12
<blockquote>
17
<screen><indexterm role="fn"><primary>call-next-method</primary></indexterm>&#151; Macro: <function>call-next-method</function> <varname>&amp;rest args</varname></screen>
13
<screen><indexterm role="fn"><primary>call-next-method</primary></indexterm>&mdash; Macro: <function>call-next-method</function> <varname>&amp;rest args</varname></screen>
18
</blockquote>
19
<blockquote>
14
</blockquote>
15
<blockquote>
20
<screen><indexterm role="fn"><primary>change-class</primary></indexterm>&#151; Generic: <function>change-class</function> <varname>instance</varname> <varname>new-class</varname></screen>
16
<screen><indexterm role="fn"><primary>change-class</primary></indexterm>&mdash; Generic: <function>change-class</function> <varname>instance</varname> <varname>new-class</varname></screen>
21
<screen><indexterm role="fn"><primary>change-class</primary></indexterm>&#151; Method: <function>change-class</function> (</screen>
17
<screen><indexterm role="fn"><primary>change-class</primary></indexterm>&mdash; Method: <function>change-class</function> (</screen>
22
<screen><indexterm role="fn"><primary>change-class</primary></indexterm>&#151; Method: <function>change-class</function> (</screen>
18
<screen><indexterm role="fn"><primary>change-class</primary></indexterm>&mdash; Method: <function>change-class</function> (</screen>
23
</blockquote>
24
<blockquote>
19
</blockquote>
20
<blockquote>
25
<screen><indexterm role="fn"><primary>class-name</primary></indexterm>&#151; Generic: <function>class-name</function> <varname>class</varname></screen>
21
<screen><indexterm role="fn"><primary>class-name</primary></indexterm>&mdash; Generic: <function>class-name</function> <varname>class</varname></screen>
26
<screen><indexterm role="fn"><primary>class-name</primary></indexterm>&#151; Method: <function>class-name</function> (</screen>
22
<screen><indexterm role="fn"><primary>class-name</primary></indexterm>&mdash; Method: <function>class-name</function> (</screen>
27
</blockquote>
28
<blockquote>
23
</blockquote>
24
<blockquote>
29
<screen><indexterm role="fn"><primary>(setf class-name)</primary></indexterm>&#151; Generic: <function>(setf class-name)</function> <varname>new-value</varname> <varname>class</varname></screen>
25
<screen><indexterm role="fn"><primary>(setf class-name)</primary></indexterm>&mdash; Generic: <function>(setf class-name)</function> <varname>new-value</varname> <varname>class</varname></screen>
30
<screen><indexterm role="fn"><primary>(setf class-name)</primary></indexterm>&#151; Method: <function>(setf class-name)</function> <varname>new-value (class class)</varname></screen>
26
<screen><indexterm role="fn"><primary>(setf class-name)</primary></indexterm>&mdash; Method: <function>(setf class-name)</function> <varname>new-value (class class)</varname></screen>
31
</blockquote>
32
<blockquote>
27
</blockquote>
28
<blockquote>
33
<screen><indexterm role="fn"><primary>class-of</primary></indexterm>&#151; Function: <function>class-of</function> <varname>object</varname></screen>
29
<screen><indexterm role="fn"><primary>class-of</primary></indexterm>&mdash; Function: <function>class-of</function> <varname>object</varname></screen>
34
<para>The function <literal>class-of</literal> returns the class of which the given object is an
30
<para>The function <literal>class-of</literal> returns the class of which the given object is an
35
instance.  The argument to class-of may be any Common-Lisp object.</para>
31
instance.  The argument to class-of may be any Common-Lisp object.</para>
36
</blockquote>
32
</blockquote>
37
<blockquote>
33
<blockquote>
38
<screen><indexterm role="fn"><primary>compute-applicable-methods</primary></indexterm>&#151; Function: <function>compute-applicable-methods</function> <varname>generic-function function-arguments</varname></screen>
34
<screen><indexterm role="fn"><primary>compute-applicable-methods</primary></indexterm>&mdash; Function: <function>compute-applicable-methods</function> <varname>generic-function function-arguments</varname></screen>
39
</blockquote>
40
<blockquote>
35
</blockquote>
36
<blockquote>
41
<screen><indexterm role="fn"><primary>defclass</primary></indexterm>&#151; Macro: <function>defclass</function> <varname>class-name (@{superclass-name@}*)</varname> (<varname>{</varname><varname>slot-specifier</varname><varname>}</varname><varname>*</varname>) [<varname>class-option</varname>]</screen>
37
<screen><indexterm role="fn"><primary>defclass</primary></indexterm>&mdash; Macro: <function>defclass</function> <varname>class-name (@{superclass-name@}*)</varname> (<varname>{</varname><varname>slot-specifier</varname><varname>}</varname><varname>*</varname>) [<varname>class-option</varname>]</screen>
42
<screen>
38
<screen>
43
<replaceable>class-name</replaceable> ::= <replaceable>symbol</replaceable>
39
<replaceable>class-name</replaceable> ::= <replaceable>symbol</replaceable>
44
<replaceable>superclass-name</replaceable> ::= <replaceable>symbol</replaceable>
40
<replaceable>superclass-name</replaceable> ::= <replaceable>symbol</replaceable>
45
<replaceable>slot-specifier</replaceable> ::= <replaceable>slot-name</replaceable> | (<replaceable>slot-name</replaceable> [<replaceable>slot-option</replaceable>])
41
<replaceable>slot-specifier</replaceable> ::= <replaceable>slot-name</replaceable> | (<replaceable>slot-name</replaceable> [<replaceable>slot-option</replaceable>])
46
<replaceable>slot-name</replaceable> ::= <replaceable>symbol</replaceable>
42
<replaceable>slot-name</replaceable> ::= <replaceable>symbol</replaceable>
...
...
62
| (:metaclass <replaceable>class-name</replaceable>)
58
| (:metaclass <replaceable>class-name</replaceable>)
63
<replaceable>initarg-list</replaceable> ::= {<replaceable>initarg-name</replaceable> <replaceable>default-initial-value-form</replaceable>}*
59
<replaceable>initarg-list</replaceable> ::= {<replaceable>initarg-name</replaceable> <replaceable>default-initial-value-form</replaceable>}*
64
</screen>
60
</screen>
65
</blockquote>
61
</blockquote>
66
<blockquote>
62
<blockquote>
67
<screen><indexterm role="fn"><primary>defgeneric</primary></indexterm>&#151; Macro: <function>defgeneric</function> <varname>function-name lambda-list [option | @{method-description@}*]</varname></screen>
63
<screen><indexterm role="fn"><primary>defgeneric</primary></indexterm>&mdash; Macro: <function>defgeneric</function> <varname>function-name lambda-list [option | @{method-description@}*]</varname></screen>
68
<screen>
64
<screen>
69
<replaceable>function-name</replaceable> ::= <replaceable>symbol</replaceable> | (setf <replaceable>symbol</replaceable>)
65
<replaceable>function-name</replaceable> ::= <replaceable>symbol</replaceable> | (setf <replaceable>symbol</replaceable>)
70
<replaceable>lambda-list</replaceable> ::= ({<replaceable>var</replaceable>}*
66
<replaceable>lambda-list</replaceable> ::= ({<replaceable>var</replaceable>}*
71
[&amp;optional {<replaceable>var</replaceable> | (<replaceable>var</replaceable>)}*]
67
[&amp;optional {<replaceable>var</replaceable> | (<replaceable>var</replaceable>)}*]
72
[&amp;rest <replaceable>var</replaceable>]
68
[&amp;rest <replaceable>var</replaceable>]
...
...
92
| {({<replaceable>var</replaceable> | (<replaceable>keywordvar</replaceable>)} [<replaceable>initform</replaceable> [<replaceable>supplied-p-parameter</replaceable>]])}*
88
| {({<replaceable>var</replaceable> | (<replaceable>keywordvar</replaceable>)} [<replaceable>initform</replaceable> [<replaceable>supplied-p-parameter</replaceable>]])}*
93
<replaceable>parameter-specializer-name</replaceable> ::= <replaceable>symbol</replaceable> | (eql <replaceable>eql-specializer-form</replaceable>)
89
<replaceable>parameter-specializer-name</replaceable> ::= <replaceable>symbol</replaceable> | (eql <replaceable>eql-specializer-form</replaceable>)
94
</screen>
90
</screen>
95
</blockquote>
91
</blockquote>
96
<blockquote>
92
<blockquote>
97
<screen><indexterm role="fn"><primary>define-method-combination</primary></indexterm>&#151; Macro: <function>define-method-combination</function> <varname>name [short-form-option]</varname></screen>
93
<screen><indexterm role="fn"><primary>define-method-combination</primary></indexterm>&mdash; Macro: <function>define-method-combination</function> <varname>name [short-form-option]</varname></screen>
98
<screen><indexterm role="fn"><primary>define-method-combination</primary></indexterm>&#151; Macro: <function>define-method-combination</function> <varname>name lambda-list (@{method-group-specifier@}*) [(:arguments . lambda-list)] [(:generic-function generic-fn-symbol)] [@{declaration@}* | doc-string] @{form@}*</varname></screen>
94
<screen><indexterm role="fn"><primary>define-method-combination</primary></indexterm>&mdash; Macro: <function>define-method-combination</function> <varname>name lambda-list (@{method-group-specifier@}*) [(:arguments . lambda-list)] [(:generic-function generic-fn-symbol)] [@{declaration@}* | doc-string] @{form@}*</varname></screen>
99
<screen>
95
<screen>
100
<replaceable>short-form-option</replaceable> ::= :documentation <replaceable>string</replaceable>
96
<replaceable>short-form-option</replaceable> ::= :documentation <replaceable>string</replaceable>
101
| :identity-with-one-argument <replaceable>boolean</replaceable>
97
| :identity-with-one-argument <replaceable>boolean</replaceable>
102
| :operator <replaceable>operator</replaceable>
98
| :operator <replaceable>operator</replaceable>
103
<replaceable>method-group-specifier</replaceable> ::= (<replaceable>variable</replaceable>  {<replaceable>qualifier-pattern</replaceable>}+ | <replaceable>predicate</replaceable>
99
<replaceable>method-group-specifier</replaceable> ::= (<replaceable>variable</replaceable>  {<replaceable>qualifier-pattern</replaceable>}+ | <replaceable>predicate</replaceable>
...
...
106
| :order <replaceable>order</replaceable>
102
| :order <replaceable>order</replaceable>
107
| :required <replaceable>boolean</replaceable>
103
| :required <replaceable>boolean</replaceable>
108
</screen>
104
</screen>
109
</blockquote>
105
</blockquote>
110
<blockquote>
106
<blockquote>
111
<screen><indexterm role="fn"><primary>defmethod</primary></indexterm>&#151; Macro: <function>defmethod</function> <varname>function-name @{method-qualifier@}+ specialized-lambda-list [@{declaration@}* | doc-string] @{form@}*</varname></screen>
107
<screen><indexterm role="fn"><primary>defmethod</primary></indexterm>&mdash; Macro: <function>defmethod</function> <varname>function-name @{method-qualifier@}+ specialized-lambda-list [@{declaration@}* | doc-string] @{form@}*</varname></screen>
112
<screen>
108
<screen>
113
<replaceable>function-name</replaceable> ::= <replaceable>symbol</replaceable> | (setf <replaceable>symbol</replaceable>)
109
<replaceable>function-name</replaceable> ::= <replaceable>symbol</replaceable> | (setf <replaceable>symbol</replaceable>)
114
<replaceable>method-qualifier</replaceable> ::= <replaceable>non-nil-atom</replaceable>
110
<replaceable>method-qualifier</replaceable> ::= <replaceable>non-nil-atom</replaceable>
115
<replaceable>parameter-specializer-name</replaceable> ::= <replaceable>symbol</replaceable> | (eql <replaceable>eql-specializer-form</replaceable> )
111
<replaceable>parameter-specializer-name</replaceable> ::= <replaceable>symbol</replaceable> | (eql <replaceable>eql-specializer-form</replaceable> )
116
</screen>
112
</screen>
117
</blockquote>
113
</blockquote>
118
<blockquote>
114
<blockquote>
119
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&#151; Generic: <function>documentation</function> <varname>x</varname> <varname>&amp;optional</varname> <varname>doc-type</varname></screen>
115
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&mdash; Generic: <function>documentation</function> <varname>x</varname> <varname>&amp;optional</varname> <varname>doc-type</varname></screen>
120
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&#151; Method: <function>documentation</function> (</screen>
116
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&mdash; Method: <function>documentation</function> (</screen>
121
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&#151; Method: <function>documentation</function> (</screen>
117
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&mdash; Method: <function>documentation</function> (</screen>
122
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&#151; Method: <function>documentation</function> (</screen>
118
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&mdash; Method: <function>documentation</function> (</screen>
123
<screen><indexterm role="fn"><primary>doumentation</primary></indexterm>&#151; Method: <function>doumentation</function> (</screen>
119
<screen><indexterm role="fn"><primary>doumentation</primary></indexterm>&mdash; Method: <function>doumentation</function> (</screen>
124
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&#151; Method: <function>documentation</function> (</screen>
120
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&mdash; Method: <function>documentation</function> (</screen>
125
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&#151; Method: <function>documentation</function> (</screen>
121
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&mdash; Method: <function>documentation</function> (</screen>
126
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&#151; Method: <function>documentation</function> (</screen>
122
<screen><indexterm role="fn"><primary>documentation</primary></indexterm>&mdash; Method: <function>documentation</function> (</screen>
127
</blockquote>
128
<blockquote>
123
</blockquote>
124
<blockquote>
129
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&#151; Generic: <function>(setf documentation)</function> <varname>new-value</varname> <varname>x</varname> <varname>&amp;optional</varname> <varname>doc-type</varname></screen>
125
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&mdash; Generic: <function>(setf documentation)</function> <varname>new-value</varname> <varname>x</varname> <varname>&amp;optional</varname> <varname>doc-type</varname></screen>
130
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&#151; Method: <function>(setf documentation)</function> <varname>new-value (method standard-method) @optional{} doc-type</varname></screen>
126
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&mdash; Method: <function>(setf documentation)</function> <varname>new-value (method standard-method) @optional{} doc-type</varname></screen>
131
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&#151; Method: <function>(setf documentation)</function> <varname>new-value (class standard-class) @optional{} doc-type</varname></screen>
127
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&mdash; Method: <function>(setf documentation)</function> <varname>new-value (class standard-class) @optional{} doc-type</varname></screen>
132
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&#151; Method: <function>(setf documentation)</function> <varname>new-value (method-combination method-combination)</varname></screen>
128
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&mdash; Method: <function>(setf documentation)</function> <varname>new-value (method-combination method-combination)</varname></screen>
133
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&#151; Method: <function>(setf documentation)</function> <varname>new-value (slot-description standard-slot-description) @optional{} doc-type</varname></screen>
129
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&mdash; Method: <function>(setf documentation)</function> <varname>new-value (slot-description standard-slot-description) @optional{} doc-type</varname></screen>
134
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&#151; Method: <function>(setf documentation)</function> <varname>new-value (symbol symbol) @optional{} doc-type</varname></screen>
130
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&mdash; Method: <function>(setf documentation)</function> <varname>new-value (symbol symbol) @optional{} doc-type</varname></screen>
135
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&#151; Method: <function>(setf documentation)</function> <varname>new-value (list list) @optional{} doc-type</varname></screen>
131
<screen><indexterm role="fn"><primary>(setf documentation)</primary></indexterm>&mdash; Method: <function>(setf documentation)</function> <varname>new-value (list list) @optional{} doc-type</varname></screen>
136
</blockquote>
137
<blockquote>
132
</blockquote>
133
<blockquote>
138
<screen><indexterm role="fn"><primary>ensure-generic-function</primary></indexterm>&#151; Function: <function>ensure-generic-function</function> <varname>{</varname><varname>function-name</varname> <varname>&amp;key</varname> <varname>lambda-list</varname> <varname>&amp;key</varname> <varname>:argument-precedence-order</varname> <varname>:declare</varname> <varname>:documentation</varname> <varname>:generic-function-class|ekeys</varname><varname>:method-combination :method-class :environment</varname><varname>}</varname></screen>
134
<screen><indexterm role="fn"><primary>ensure-generic-function</primary></indexterm>&mdash; Function: <function>ensure-generic-function</function> <varname>{</varname><varname>function-name</varname> <varname>&amp;key</varname> <varname>lambda-list</varname> <varname>&amp;key</varname> <varname>:argument-precedence-order</varname> <varname>:declare</varname> <varname>:documentation</varname> <varname>:generic-function-class|ekeys</varname><varname>:method-combination :method-class :environment</varname><varname>}</varname></screen>
139
<screen>
135
<screen>
140
function-name ::= symbol | (setf symbol)
136
function-name ::= symbol | (setf symbol)
141
</screen>
137
</screen>
142
</blockquote>
138
</blockquote>
143
<blockquote>
139
<blockquote>
144
<screen><indexterm role="fn"><primary>find-class</primary></indexterm>&#151; Function: <function>find-class</function> <varname>symbol @optional{} errorp environment</varname></screen>
140
<screen><indexterm role="fn"><primary>find-class</primary></indexterm>&mdash; Function: <function>find-class</function> <varname>symbol @optional{} errorp environment</varname></screen>
145
<para>The function find-class returns the class object named by the given symbol in the given environment.
141
<para>The function find-class returns the class object named by the given symbol in the given environment.
146
The first argument to find-class is a symbol.</para>
142
The first argument to find-class is a symbol.</para>
147
</blockquote>
143
</blockquote>
148
<blockquote>
144
<blockquote>
149
<screen><indexterm role="fn"><primary>find-method</primary></indexterm>&#151; Generic: <function>find-method</function> <varname>generic-function</varname> <varname>method-qualifiers</varname> <varname>specializers</varname> <varname>&amp;optional</varname> <varname>errorp</varname></screen>
145
<screen><indexterm role="fn"><primary>find-method</primary></indexterm>&mdash; Generic: <function>find-method</function> <varname>generic-function</varname> <varname>method-qualifiers</varname> <varname>specializers</varname> <varname>&amp;optional</varname> <varname>errorp</varname></screen>
150
<screen><indexterm role="fn"><primary>find-method</primary></indexterm>&#151; Method: <function>find-method</function> (</screen>                
146
<screen><indexterm role="fn"><primary>find-method</primary></indexterm>&mdash; Method: <function>find-method</function> (</screen>                
151
<para>method-qualifiers specializers  &amp;optional errorp</para>
147
<para>method-qualifiers specializers  &amp;optional errorp</para>
152
</blockquote>
148
</blockquote>
153
<blockquote>
149
<blockquote>
154
<screen><indexterm role="fn"><primary>function-keywords</primary></indexterm>&#151; Generic: <function>function-keywords</function> <varname>method</varname></screen>
150
<screen><indexterm role="fn"><primary>function-keywords</primary></indexterm>&mdash; Generic: <function>function-keywords</function> <varname>method</varname></screen>
155
<screen><indexterm role="fn"><primary>function-keywords</primary></indexterm>&#151; Method: <function>function-keywords</function> (</screen>
151
<screen><indexterm role="fn"><primary>function-keywords</primary></indexterm>&mdash; Method: <function>function-keywords</function> (</screen>
156
</blockquote>
152
</blockquote>
157
<para>The generic function function-keywords is used to return the keyword parameter specifiers for a given method.</para>
153
<para>The generic function function-keywords is used to return the keyword parameter specifiers for a given method.</para>
158
<blockquote>
154
<blockquote>
159
<screen><indexterm role="fn"><primary>generic-function</primary></indexterm>&#151; Macro: <function>generic-function</function> <varname>{</varname><varname>lambda-list</varname> <varname>\mchoice</varname><varname>option | @{method-description@}*</varname><varname>}</varname></screen>
155
<screen><indexterm role="fn"><primary>generic-function</primary></indexterm>&mdash; Macro: <function>generic-function</function> <varname>{</varname><varname>lambda-list</varname> <varname>\mchoice</varname><varname>option | @{method-description@}*</varname><varname>}</varname></screen>
160
<screen>
156
<screen>
161
option ::= (:argument-precedence-order {parameter-name}+)
157
option ::= (:argument-precedence-order {parameter-name}+)
162
| (declare {declaration}+)
158
| (declare {declaration}+)
163
| (:documentation string)
159
| (:documentation string)
164
| (:method-combination symbol {arg}*)
160
| (:method-combination symbol {arg}*)
...
...
177
descriptions are specified, an anonymous generic function with no methods is
173
descriptions are specified, an anonymous generic function with no methods is
178
created.  See defgeneric, generic-flet,
174
created.  See defgeneric, generic-flet,
179
generic-labels, defmethod.</para>
175
generic-labels, defmethod.</para>
180
</blockquote>
176
</blockquote>
181
<blockquote>
177
<blockquote>
182
<screen><indexterm role="fn"><primary>initialize-instance</primary></indexterm>&#151; Generic: <function>initialize-instance</function> <varname>instance</varname> <varname>&amp;rest</varname> <varname>initargs</varname></screen>
178
<screen><indexterm role="fn"><primary>initialize-instance</primary></indexterm>&mdash; Generic: <function>initialize-instance</function> <varname>instance</varname> <varname>&amp;rest</varname> <varname>initargs</varname></screen>
183
<screen><indexterm role="fn"><primary>initialize-instance</primary></indexterm>&#151; Method: <function>initialize-instance</function> (</screen>
179
<screen><indexterm role="fn"><primary>initialize-instance</primary></indexterm>&mdash; Method: <function>initialize-instance</function> (</screen>
184
<para>The generic function <literal>initialize-instance</literal> is called by
180
<para>The generic function <literal>initialize-instance</literal> is called by
185
<literal>make-instance</literal> to initialize a newly created instance.  The generic
181
<literal>make-instance</literal> to initialize a newly created instance.  The generic
186
function <literal>initialize-instance</literal> is called with the new instance and the
182
function <literal>initialize-instance</literal> is called with the new instance and the
187
defaulted initialization arguments.</para>
183
defaulted initialization arguments.</para>
188
</blockquote>
184
</blockquote>
189
<blockquote>
185
<blockquote>
190
<screen><indexterm role="fn"><primary>invalid-method-error</primary></indexterm>&#151; Function: <function>invalid-method-error</function> <varname>method format-string @rest{} args</varname></screen>
186
<screen><indexterm role="fn"><primary>invalid-method-error</primary></indexterm>&mdash; Function: <function>invalid-method-error</function> <varname>method format-string @rest{} args</varname></screen>
191
<para>The function <literal>invalid-method-error</literal> is used to signal an error when there
187
<para>The function <literal>invalid-method-error</literal> is used to signal an error when there
192
is an applicable method whose qualifiers are not valid for the method
188
is an applicable method whose qualifiers are not valid for the method
193
combination type.  The error message is constructed by using a format string
189
combination type.  The error message is constructed by using a format string
194
and any arguments to it.  Because an implementation may need to add additional
190
and any arguments to it.  Because an implementation may need to add additional
195
contextual information to the error message, invalid-method-error should be
191
contextual information to the error message, invalid-method-error should be
...
...
199
form.  A method combination function that imposes additional restrictions
195
form.  A method combination function that imposes additional restrictions
200
should call invalid-method-error explicitly if it encounters a method it cannot
196
should call invalid-method-error explicitly if it encounters a method it cannot
201
accept.</para>
197
accept.</para>
202
</blockquote>
198
</blockquote>
203
<blockquote>
199
<blockquote>
204
<screen><indexterm role="fn"><primary>make-instance</primary></indexterm>&#151; Generic: <function>make-instance</function> <varname>class</varname> <varname>&amp;rest</varname><varname> initargs</varname></screen>
200
<screen><indexterm role="fn"><primary>make-instance</primary></indexterm>&mdash; Generic: <function>make-instance</function> <varname>class</varname> <varname>&amp;rest</varname><varname> initargs</varname></screen>
205
<screen><indexterm role="fn"><primary>make-instance</primary></indexterm>&#151; Method: <function>make-instance</function> (</screen>
201
<screen><indexterm role="fn"><primary>make-instance</primary></indexterm>&mdash; Method: <function>make-instance</function> (</screen>
206
<screen><indexterm role="fn"><primary>make-instance</primary></indexterm>&#151; Method: <function>make-instance</function> (</screen>
202
<screen><indexterm role="fn"><primary>make-instance</primary></indexterm>&mdash; Method: <function>make-instance</function> (</screen>
207
<para>The generic function make-instance creates and returns a new instance of the
203
<para>The generic function make-instance creates and returns a new instance of the
208
given class.  The generic function make-instance may be used as described in
204
given class.  The generic function make-instance may be used as described in
209
section 1.9.  The class argument is a class object or a symbol that names a
205
section 1.9.  The class argument is a class object or a symbol that names a
210
class.  The remaining arguments form a list of alternating initialization
206
class.  The remaining arguments form a list of alternating initialization
211
argument names and values.  If the second of the above methods is selected,
207
argument names and values.  If the second of the above methods is selected,
212
that method invokes make-instance on the arguments (find-class class) and
208
that method invokes make-instance on the arguments (find-class class) and
213
initargs.  The initialization arguments are checked within make-instance (see
209
initargs.  The initialization arguments are checked within make-instance (see
214
section 1.9).  The new instance is returned.</para>
210
section 1.9).  The new instance is returned.</para>
215
</blockquote>
211
</blockquote>
216
<blockquote>
212
<blockquote>
217
<screen><indexterm role="fn"><primary>make-instances-obsolete</primary></indexterm>&#151; Generic: <function>make-instances-obsolete</function> <varname>class</varname></screen>
213
<screen><indexterm role="fn"><primary>make-instances-obsolete</primary></indexterm>&mdash; Generic: <function>make-instances-obsolete</function> <varname>class</varname></screen>
218
<screen><indexterm role="fn"><primary>make-instances-obsolete</primary></indexterm>&#151; Method: <function>make-instances-obsolete</function> (</screen>
214
<screen><indexterm role="fn"><primary>make-instances-obsolete</primary></indexterm>&mdash; Method: <function>make-instances-obsolete</function> (</screen>
219
<screen><indexterm role="fn"><primary>make-instances-obsolete</primary></indexterm>&#151; Method: <function>make-instances-obsolete</function> (</screen>
215
<screen><indexterm role="fn"><primary>make-instances-obsolete</primary></indexterm>&mdash; Method: <function>make-instances-obsolete</function> (</screen>
220
</blockquote>
221
<blockquote>
216
</blockquote>
217
<blockquote>
222
<screen><indexterm role="fn"><primary>method-combination-error</primary></indexterm>&#151; Function: <function>method-combination-error</function> <varname>format-string @rest{} args</varname></screen>
218
<screen><indexterm role="fn"><primary>method-combination-error</primary></indexterm>&mdash; Function: <function>method-combination-error</function> <varname>format-string @rest{} args</varname></screen>
223
<para>The function method-combination-error is used to signal an error in method
219
<para>The function method-combination-error is used to signal an error in method
224
combination.  The error message is constructed by using a format string and any
220
combination.  The error message is constructed by using a format string and any
225
arguments to it.  Because an implementation may need to add additional
221
arguments to it.  Because an implementation may need to add additional
226
contextual information to the error message, method-combination-error should be
222
contextual information to the error message, method-combination-error should be
227
called only within the dynamic extent of a method combination function.  The
223
called only within the dynamic extent of a method combination function.  The
228
format-string argument is a control string that can be given to format, and
224
format-string argument is a control string that can be given to format, and
229
args are any arguments required by that string.</para>
225
args are any arguments required by that string.</para>
230
</blockquote>
226
</blockquote>
231
<blockquote>
227
<blockquote>
232
<screen><indexterm role="fn"><primary>method-qualifiers</primary></indexterm>&#151; Generic: <function>method-qualifiers</function> <varname>method</varname></screen>
228
<screen><indexterm role="fn"><primary>method-qualifiers</primary></indexterm>&mdash; Generic: <function>method-qualifiers</function> <varname>method</varname></screen>
233
<screen><indexterm role="fn"><primary>method-qualifiers</primary></indexterm>&#151; Method: <function>method-qualifiers</function> (</screen>
229
<screen><indexterm role="fn"><primary>method-qualifiers</primary></indexterm>&mdash; Method: <function>method-qualifiers</function> (</screen>
234
<para>The generic function method-qualifiers returns a list of the qualifiers
230
<para>The generic function method-qualifiers returns a list of the qualifiers
235
of the given method.</para>
231
of the given method.</para>
236
</blockquote>
232
</blockquote>
237
<blockquote>
233
<blockquote>
238
<screen><indexterm role="fn"><primary>next-method-p</primary></indexterm>&#151; Function: <function>next-method-p</function> <varname></varname></screen>
234
<screen><indexterm role="fn"><primary>next-method-p</primary></indexterm>&mdash; Function: <function>next-method-p</function> <varname></varname></screen>
239
<para>The locally defined function next-method-p can be used within the body of a
235
<para>The locally defined function next-method-p can be used within the body of a
240
method defined by a method-defining form to determine whether a next method
236
method defined by a method-defining form to determine whether a next method
241
exists.</para>
237
exists.</para>
242
</blockquote>
238
</blockquote>
243
<blockquote>
239
<blockquote>
244
<screen><indexterm role="fn"><primary>no-applicable-method</primary></indexterm>&#151; Generic: <function>no-applicable-method</function> <varname>generic-function</varname> <varname>&amp;rest</varname> <varname>function-arguments</varname></screen>
240
<screen><indexterm role="fn"><primary>no-applicable-method</primary></indexterm>&mdash; Generic: <function>no-applicable-method</function> <varname>generic-function</varname> <varname>&amp;rest</varname> <varname>function-arguments</varname></screen>
245
<screen><indexterm role="fn"><primary>no-applicable-method</primary></indexterm>&#151; Method: <function>no-applicable-method</function> (</screen>
241
<screen><indexterm role="fn"><primary>no-applicable-method</primary></indexterm>&mdash; Method: <function>no-applicable-method</function> (</screen>
246
<para>The generic function no-applicable-method is called when a generic function of
242
<para>The generic function no-applicable-method is called when a generic function of
247
the class standard-generic-function is invoked and no method on that generic
243
the class standard-generic-function is invoked and no method on that generic
248
function is applicable. The default method signals an error.</para>
244
function is applicable. The default method signals an error.</para>
249
</blockquote>
245
</blockquote>
250
<blockquote>
246
<blockquote>
251
<screen><indexterm role="fn"><primary>no-next-method</primary></indexterm>&#151; Generic: <function>no-next-method</function> <varname>generic-function</varname> <varname>method</varname> <varname>&amp;rest</varname> <varname>args</varname></screen>
247
<screen><indexterm role="fn"><primary>no-next-method</primary></indexterm>&mdash; Generic: <function>no-next-method</function> <varname>generic-function</varname> <varname>method</varname> <varname>&amp;rest</varname> <varname>args</varname></screen>
252
<screen><indexterm role="fn"><primary>no-next-method</primary></indexterm>&#151; Method: <function>no-next-method</function> (</screen>
248
<screen><indexterm role="fn"><primary>no-next-method</primary></indexterm>&mdash; Method: <function>no-next-method</function> (</screen>
253
</blockquote>
254
<blockquote>
249
</blockquote>
250
<blockquote>
255
<screen><indexterm role="fn"><primary>print-object</primary></indexterm>&#151; Generic: <function>print-object</function> <varname>object</varname> <varname>stream</varname></screen>
251
<screen><indexterm role="fn"><primary>print-object</primary></indexterm>&mdash; Generic: <function>print-object</function> <varname>object</varname> <varname>stream</varname></screen>
256
<screen><indexterm role="fn"><primary>print-object</primary></indexterm>&#151; Method: <function>print-object</function> (</screen>
252
<screen><indexterm role="fn"><primary>print-object</primary></indexterm>&mdash; Method: <function>print-object</function> (</screen>
257
<para>The generic function print-object writes the printed representation of an
253
<para>The generic function print-object writes the printed representation of an
258
object to a stream.  The function print-object is called by the print system;
254
object to a stream.  The function print-object is called by the print system;
259
it should not be called by the user.</para>
255
it should not be called by the user.</para>
260
</blockquote>
256
</blockquote>
261
<blockquote>
257
<blockquote>
262
<screen><indexterm role="fn"><primary>reinitialize-instance</primary></indexterm>&#151; Generic: <function>reinitialize-instance</function> <varname>instance</varname> <varname>&amp;rest</varname> <varname>initargs</varname></screen>
258
<screen><indexterm role="fn"><primary>reinitialize-instance</primary></indexterm>&mdash; Generic: <function>reinitialize-instance</function> <varname>instance</varname> <varname>&amp;rest</varname> <varname>initargs</varname></screen>
263
<screen><indexterm role="fn"><primary>reinitialize-instance</primary></indexterm>&#151; Method: <function>reinitialize-instance</function> (</screen>
259
<screen><indexterm role="fn"><primary>reinitialize-instance</primary></indexterm>&mdash; Method: <function>reinitialize-instance</function> (</screen>
264
<para>The generic function reinitialize-instance can be used to change the
260
<para>The generic function reinitialize-instance can be used to change the
265
values of local slots according to initialization arguments.  This
261
values of local slots according to initialization arguments.  This
266
generic function is called by the Meta-Object Protocol.  It can also be
262
generic function is called by the Meta-Object Protocol.  It can also be
267
called by users.</para>
263
called by users.</para>
268
</blockquote>
264
</blockquote>
269
<blockquote>
265
<blockquote>
270
<screen><indexterm role="fn"><primary>remove-method</primary></indexterm>&#151; Generic: <function>remove-method</function> <varname>generic-function</varname> <varname>method</varname></screen>
266
<screen><indexterm role="fn"><primary>remove-method</primary></indexterm>&mdash; Generic: <function>remove-method</function> <varname>generic-function</varname> <varname>method</varname></screen>
271
<screen><indexterm role="fn"><primary>remove-method</primary></indexterm>&#151; Method: <function>remove-method</function> (</screen>
267
<screen><indexterm role="fn"><primary>remove-method</primary></indexterm>&mdash; Method: <function>remove-method</function> (</screen>
272
<para>The generic function remove-method removes a method from a generic function.
268
<para>The generic function remove-method removes a method from a generic function.
273
It destructively modifies the specified generic function and returns the
269
It destructively modifies the specified generic function and returns the
274
modified generic function as its result.</para>
270
modified generic function as its result.</para>
275
</blockquote>
271
</blockquote>
276
<blockquote>
272
<blockquote>
277
<screen><indexterm role="fn"><primary>shared-initialize</primary></indexterm>&#151; Generic: <function>shared-initialize</function> <varname>instance slot-names &amp;rest initargs</varname></screen>
273
<screen><indexterm role="fn"><primary>shared-initialize</primary></indexterm>&mdash; Generic: <function>shared-initialize</function> <varname>instance slot-names &amp;rest initargs</varname></screen>
278
<screen><indexterm role="fn"><primary>shared-initialize</primary></indexterm>&#151; Method: <function>shared-initialize</function> (</screen>
274
<screen><indexterm role="fn"><primary>shared-initialize</primary></indexterm>&mdash; Method: <function>shared-initialize</function> (</screen>
279
<para>The generic function shared-initialize is used to fill the slots of an instance
275
<para>The generic function shared-initialize is used to fill the slots of an instance
280
using initialization arguments and :initform forms.  It is called when an
276
using initialization arguments and :initform forms.  It is called when an
281
instance is created, when an instance is re-initialized, when an instance is
277
instance is created, when an instance is re-initialized, when an instance is
282
updated to conform to a redefined class, and when an instance is updated to
278
updated to conform to a redefined class, and when an instance is updated to
283
conform to a different class.  The generic function <literal>shared-initialize</literal> is
279
conform to a different class.  The generic function <literal>shared-initialize</literal> is
284
called by the system-supplied primary method for <literal>initialize-instance</literal>,
280
called by the system-supplied primary method for <literal>initialize-instance</literal>,
285
<literal>reinitialize-instance</literal>, <literal>update-instance-for-redefined-class</literal>, and
281
<literal>reinitialize-instance</literal>, <literal>update-instance-for-redefined-class</literal>, and
286
<literal>update-instance-for-different-class</literal>.</para>
282
<literal>update-instance-for-different-class</literal>.</para>
287
</blockquote>
283
</blockquote>
288
<blockquote>
284
<blockquote>
289
<screen><indexterm role="fn"><primary>slot-boundp</primary></indexterm>&#151; Function: <function>slot-boundp</function> <varname>instance slot-name</varname></screen>
285
<screen><indexterm role="fn"><primary>slot-boundp</primary></indexterm>&mdash; Function: <function>slot-boundp</function> <varname>instance slot-name</varname></screen>
290
<para>The function slot-boundp tests whether a specific slot in an instance is bound.
286
<para>The function slot-boundp tests whether a specific slot in an instance is bound.
291
The arguments are the instance and the name of the slot.</para>
287
The arguments are the instance and the name of the slot.</para>
292
</blockquote>
288
</blockquote>
293
<blockquote>
289
<blockquote>
294
<screen><indexterm role="fn"><primary>slot-exists-p</primary></indexterm>&#151; Function: <function>slot-exists-p</function> <varname>object slot-name</varname></screen>
290
<screen><indexterm role="fn"><primary>slot-exists-p</primary></indexterm>&mdash; Function: <function>slot-exists-p</function> <varname>object slot-name</varname></screen>
295
<para>The function slot-exists-p tests whether the specified object has a slot of the
291
<para>The function slot-exists-p tests whether the specified object has a slot of the
296
given name.  The object argument is any object.  The slot-name argument is a
292
given name.  The object argument is any object.  The slot-name argument is a
297
symbol.</para>
293
symbol.</para>
298
</blockquote>
294
</blockquote>
299
<blockquote>
295
<blockquote>
300
<screen><indexterm role="fn"><primary>slot-makunbound</primary></indexterm>&#151; Function: <function>slot-makunbound</function> <varname>instance slot-name</varname></screen>
296
<screen><indexterm role="fn"><primary>slot-makunbound</primary></indexterm>&mdash; Function: <function>slot-makunbound</function> <varname>instance slot-name</varname></screen>
301
<para>The function slot-makunbound restores a slot in an instance to the unbound
297
<para>The function slot-makunbound restores a slot in an instance to the unbound
302
state.  The arguments to slot-makunbound are the instance and the name of the
298
state.  The arguments to slot-makunbound are the instance and the name of the
303
slot.</para>
299
slot.</para>
304
</blockquote>
300
</blockquote>
305
<blockquote>
301
<blockquote>
306
<screen><indexterm role="fn"><primary>slot-missing</primary></indexterm>&#151; Generic: <function>slot-missing</function> <varname>class</varname> <varname>object</varname> <varname>slot-name</varname> <varname>operation</varname> <varname>&amp;optional</varname> <varname>new-value</varname></screen>
302
<screen><indexterm role="fn"><primary>slot-missing</primary></indexterm>&mdash; Generic: <function>slot-missing</function> <varname>class</varname> <varname>object</varname> <varname>slot-name</varname> <varname>operation</varname> <varname>&amp;optional</varname> <varname>new-value</varname></screen>
307
<screen><indexterm role="fn"><primary>slot-missing</primary></indexterm>&#151; Method: <function>slot-missing</function> (</screen>
303
<screen><indexterm role="fn"><primary>slot-missing</primary></indexterm>&mdash; Method: <function>slot-missing</function> (</screen>
308
<para>The generic function slot-missing is invoked when an attempt is made to access
304
<para>The generic function slot-missing is invoked when an attempt is made to access
309
a slot in an object whose metaclass is standard-class and the name of the slot
305
a slot in an object whose metaclass is standard-class and the name of the slot
310
provided is not a name of a slot in that class.  The default method signals an
306
provided is not a name of a slot in that class.  The default method signals an
311
error.</para>
307
error.</para>
312
</blockquote>
308
</blockquote>
313
<blockquote>
309
<blockquote>
314
<screen><indexterm role="fn"><primary>slot-unbound</primary></indexterm>&#151; Generic: <function>slot-unbound</function> <varname>class</varname> <varname>instance</varname> <varname>slot-name</varname></screen>
310
<screen><indexterm role="fn"><primary>slot-unbound</primary></indexterm>&mdash; Generic: <function>slot-unbound</function> <varname>class</varname> <varname>instance</varname> <varname>slot-name</varname></screen>
315
<screen><indexterm role="fn"><primary>slot-unbound</primary></indexterm>&#151; Method: <function>slot-unbound</function> (</screen>
311
<screen><indexterm role="fn"><primary>slot-unbound</primary></indexterm>&mdash; Method: <function>slot-unbound</function> (</screen>
316
<para>The generic function slot-unbound is called when an unbound slot is read in an
312
<para>The generic function slot-unbound is called when an unbound slot is read in an
317
instance whose metaclass is standard-class. The default method signals an
313
instance whose metaclass is standard-class. The default method signals an
318
error.</para>
314
error.</para>
319
</blockquote>
315
</blockquote>
320
<blockquote>
316
<blockquote>
321
<screen><indexterm role="fn"><primary>slot-value</primary></indexterm>&#151; Function: <function>slot-value</function> <varname>object slot-name</varname></screen>
317
<screen><indexterm role="fn"><primary>slot-value</primary></indexterm>&mdash; Function: <function>slot-value</function> <varname>object slot-name</varname></screen>
322
<para>The function slot-value returns the value contained in the slot slot-name of
318
<para>The function slot-value returns the value contained in the slot slot-name of
323
the given object.  If there is no slot with that name, slot-missing is called.
319
the given object.  If there is no slot with that name, slot-missing is called.
324
If the slot is unbound, slot-unbound is called.  The macro setf can be used
320
If the slot is unbound, slot-unbound is called.  The macro setf can be used
325
with slot-value to change the value of a slot.</para>
321
with slot-value to change the value of a slot.</para>
326
</blockquote>
322
</blockquote>
327
<blockquote>
323
<blockquote>
328
<screen><indexterm role="fn"><primary>update-instance-for-different-class</primary></indexterm>&#151; Generic: <function>update-instance-for-different-class</function> <varname>previous</varname> <varname>current</varname> <varname>&amp;rest</varname> <varname>initargs</varname></screen>
324
<screen><indexterm role="fn"><primary>update-instance-for-different-class</primary></indexterm>&mdash; Generic: <function>update-instance-for-different-class</function> <varname>previous</varname> <varname>current</varname> <varname>&amp;rest</varname> <varname>initargs</varname></screen>
329
<screen><indexterm role="fn"><primary>update-instance-for-different-class</primary></indexterm>&#151; Method: <function>update-instance-for-different-class</function> (</screen>
325
<screen><indexterm role="fn"><primary>update-instance-for-different-class</primary></indexterm>&mdash; Method: <function>update-instance-for-different-class</function> (</screen>
330
</blockquote>
331
<blockquote>
326
</blockquote>
327
<blockquote>
332
<screen><indexterm role="fn"><primary>update-instance-for-redefined-class</primary></indexterm>&#151; Generic: <function>update-instance-for-redefined-class</function> <varname>instance</varname> <varname>added-slots</varname> <varname>discarded-slots</varname> <varname>property-list</varname> <varname>&amp;rest</varname> <varname>initargs</varname></screen>
328
<screen><indexterm role="fn"><primary>update-instance-for-redefined-class</primary></indexterm>&mdash; Generic: <function>update-instance-for-redefined-class</function> <varname>instance</varname> <varname>added-slots</varname> <varname>discarded-slots</varname> <varname>property-list</varname> <varname>&amp;rest</varname> <varname>initargs</varname></screen>
333
<screen><indexterm role="fn"><primary>update-instance-for-redefined-class</primary></indexterm>&#151; Method: <function>update-instance-for-redefined-class</function> (</screen>
329
<screen><indexterm role="fn"><primary>update-instance-for-redefined-class</primary></indexterm>&mdash; Method: <function>update-instance-for-redefined-class</function> (</screen>
334
</blockquote>
335
<blockquote>
330
</blockquote>
331
<blockquote>
336
<screen><indexterm role="fn"><primary>with-accessors</primary></indexterm>&#151; Macro: <function>with-accessors</function> (</screen>
332
<screen><indexterm role="fn"><primary>with-accessors</primary></indexterm>&mdash; Macro: <function>with-accessors</function> (</screen>
337
<para>The macro with-accessors creates a lexical environment in which specified slots
333
<para>The macro with-accessors creates a lexical environment in which specified slots
338
are lexically available through their accessors as if they were variables.  The
334
are lexically available through their accessors as if they were variables.  The
339
macro with-accessors invokes the appropriate accessors to access the specified
335
macro with-accessors invokes the appropriate accessors to access the specified
340
slots.  Both setf and setq can be used to set the value of the slot.  The
336
slots.  Both setf and setq can be used to set the value of the slot.  The
341
result returned is that obtained by executing the forms specified by the body
337
result returned is that obtained by executing the forms specified by the body
342
argument.</para>
338
argument.</para>
343
</blockquote>
339
</blockquote>
344
<blockquote>
340
<blockquote>
345
<screen><indexterm role="fn"><primary>with-slots</primary></indexterm>&#151; Macro: <function>with-slots</function> (</screen>
341
<screen><indexterm role="fn"><primary>with-slots</primary></indexterm>&mdash; Macro: <function>with-slots</function> (</screen>
346
<screen>
342
<screen>
347
<replaceable>slot-entry</replaceable> ::= <replaceable>slot-name</replaceable> | (<replaceable>variable-name</replaceable> <replaceable>slot-name</replaceable>)
343
<replaceable>slot-entry</replaceable> ::= <replaceable>slot-name</replaceable> | (<replaceable>variable-name</replaceable> <replaceable>slot-name</replaceable>)
348
</screen>
344
</screen>
349
<para>The macro <literal>with-slots</literal> creates a lexical context for referring to
345
<para>The macro <literal>with-slots</literal> creates a lexical context for referring to
350
specified slots as though they were variables.  Within such a context the value
346
specified slots as though they were variables.  Within such a context the value