Square brackets ("[" and "]") indicate optional elements. A vertical bar ("|") indicates an alternative. Thing* means zero or more occurrence of thing, thing+ means one or more occurrence. "{" and "}" are used for grouping.
(DEFCLASS class-name (superclass-name*)
(slot-description*))
(slot-name slot-option*)
function-name
expression
keyword-symbol
(MAKE-INSTANCE class {initarg value}*)
(DEFMETHOD generic-function-name [qualifier] specialized-lambda-list
form*)
where
As in:
<cl> (FIND-CLASS 'teacher)
#<STANDARD-CLASS TEACHER {90374C5}>
As in:
<cl> (class-name (find-class 'teacher))
TEACHER
[This is called (CLOS::CLASS-PRECEDENCE-LIST class)
in CLISP.]
[This is called (PCL:CLASS-PRECEDENCE-LIST class)
in CMUCL.]
As in (CMUCL):
* (pcl:class-precedence-list (find-class 'teacher))
(#<Standard-Class TEACHER {902FF6D}> #<Standard-Class PERSON {9010ADD}>
#<Standard-Class STANDARD-OBJECT {56753B5}>
#<Slot-Class PCL::SLOT-OBJECT {567545D}> #<Built-In-Class INSTANCE {567BDDD}>
#<Built-In-Class T {567B68D}>)
[This is called (CLOS::CLASS-DIRECT-SUPERCLASSES
class) in CLISP.]
[This is called (PCL:CLASS-DIRECT-SUPERCLASSES
class) in CMU.]
As in (CMUCL):
* (pcl:class-direct-superclasses (find-class 'teacher))
(#<Standard-Class PERSON {9010ADD}>)
[This isn't available in CLISP.]
[This is called (PCL:CLASS-DIRECT-SUBCLASSES
class) in CMU.]
As in:
* (pcl:class-direct-subclasses (find-class 'teacher))
(#<Standard-Class MATHS-TEACHER {9040E9D}>)