Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the license
is included in the section entitled ``GNU Free Documentation License.''
@end defun
@defvar eieio-error-unsupported-class-tags
-If non-nil, @code{defclass} signals an error if a tag in a slot
+If non-@code{nil}, @code{defclass} signals an error if a tag in a slot
specifier is unsupported.
This option is here to support programs written with older versions of
@item my-class-name
An object of your class type.
@item (or null symbol)
- A symbol, or nil.
+ A symbol, or @code{nil}.
@end table
@item :allocation
of slots, and before the options.
@item :allow-nil-initform
-If this option is non-nil, and the @code{:initform} is @code{nil}, but
+If this option is non-@code{nil}, and the @code{:initform} is @code{nil}, but
the @code{:type} is specifies something such as @code{string} then allow
this to pass. The default is to have this option be off. This is
implemented as an alternative to unbound slots.
@item :depth-first
Search for methods in the class hierarchy in a depth first order.
@item :c3
-Searches for methods in in a linearized way that most closely matches
+Searches for methods in a linearized way that most closely matches
what CLOS does when a monotonic class structure is defined.
@end table
Calling @code{defclass} has defined two new functions. One is the
constructor @var{record}, and the other is the predicate,
-@var{record-p}.
+@var{record}-p.
@defun record object-name &rest slots
@defun set-slot-value object slot value
@anchor{set-slot-value}
-This is not a CLOS function, but is meant to mirror @code{slot-value} if
-you don't want to use the cl package's @code{setf} function. This
+This is not a CLOS function, but is the setter for @code{slot-value}
+used by the @code{setf} macro. This
function sets the value of @var{slot} from @var{object}. Unlike
@code{oset}, the symbol for @var{slot} must be quoted.
@end defun
the instance named by the given slot-names as though they were
variables. Within such a context the value of the slot can be
specified by using its slot name, as if it were a lexically bound
-variable. Both setf and setq can be used to set the value of the
+variable. Both @code{setf} and @code{setq} can be used to set the value of the
slot.
@var{spec-list} is of a form similar to @dfn{let}. For example:
@item :depth-first
Search for methods in the class hierarchy in a depth first order.
@item :c3
-Searches for methods in in a linearized way that most closely matches
-what CLOS does when CLOS when a monotonic class structure is defined.
+Searches for methods in a linearized way that most closely matches
+what CLOS does when a monotonic class structure is defined.
This is derived from the Dylan language documents by
Kim Barrett et al.: A Monotonic Superclass Linearization for Dylan
@defun class-slot-initarg class slot
For the given @var{class} return the :initarg associated with
@var{slot}. Not all slots have initargs, so the return value can be
-nil.
+@code{nil}.
@end defun
@node Base Classes
the ability to provide object names.
@end table
-Defclass also supports class options, but does not currently use values
+defclass also supports class options, but does not currently use values
of @code{:metaclass}, and @code{:default-initargs}.
@item make-instance
in @eieio{} this function accepts replacement arguments. This permits
subclasses to modify arguments as they are passed up the tree. If no
arguments are given, the expected CLOS behavior is used.
-@item setf
-If the common-lisp subsystem is loaded, the setf parameters are also
-loaded so the form @code{(setf (slot-value object slot) t)} should
-work.
@end table
CLOS supports the @code{describe} command, but @eieio{} provides