4.3.4 Documenting Classes and Interfaces
| (defclass id super (intf-id ...) pre-flow ...) | 
|   | 
| super |   | = |   | super-id |  |   |   | | |   | (mixin-id super) |  
  | 
Creates documentation for a class 
id that is a subclass of
super and implements each interface 
intf-id. Each
identifier in 
super (except 
object%) and
intf-id must be documented somewhere via 
defclass or
definterface.
The decoding of the pre-flow sequence should start with
general documentation about the class, followed by constructor
definition (see defconstructor), and then field and method
definitions (see defmethod). In rendered form, the
constructor and method specification are indented to visually group
them under the class definition.
Like 
defclass, also includes a 
title declaration
with the style 
'hidden. In addition, the constructor and
methods are not left-indented.
This form is normally used to create a section to be rendered on its
own HTML. The 'hidden style is used because the definition
box serves as a title.
Like 
defclass, but for an interfaces. Naturally,
pre-flow should not generate a constructor declaration.
| (defmixin id (domain-id ...) (range-id ...) pre-flow ...) | 
Like 
defclass, but for a mixin. Any number of
domain-id classes and interfaces are specified for the
mixin’s input requires, and any number of result classes and (more
likely) interfaces are specified for the 
range-id. The
domain-ids supply inherited methods.
| (defconstructor (arg-spec ...) pre-flow ...) | 
|   | 
| arg-spec |   | = |   | (arg-id contract-expr-datum) |  |   |   | | |   | (arg-id contract-expr-datum default-expr) |  
  | 
Like 
defproc, but for a constructor declaration in the body
of 
defclass, so no return contract is specified. Also, the
new-style keyword for each 
arg-spec is implicit from
the 
arg-id.
Like 
defconstructor, but specifying by-position
initialization arguments (for use with 
make-object) instead
of by-name arguments (for use with 
new).
Like 
defconstructor, but the constructor is
annotated to indicate that additional initialization arguments are
accepted and propagated to the superclass.
| (defmethod maybe-mode (id arg-spec ...) |  |            result-contract-expr-datum |  |            pre-flow ...) |  
  | 
|   | 
 | 
The maybe-mode specifies whether the method overrides a
method from a superclass, and so on. (For these purposes, use
#:mode override when refining a method of an implemented
interface.) The extend mode is like override, but
the description of the method should describe only extensions to the
superclass implementation.
| (defmethod* maybe-mode |  |             ([(id arg-spec ...) |  |               result-contract-expr-datum] ...) |  |             pre-flow ...) |  
  | 
| (method class/intf-id method-id) | 
Creates a hyperlink to the method named by 
method-id in the
class or interface named by 
class/intf-id. The hyperlink
names the method, only; see also 
xmethod.
For-label binding information is used with class/intf-id, but
not method-id.
Like 
method, but the hyperlink shows both the method name and
the containing class/interface.
Within a 
defmethod or similar form, typesets as a
meta-variable that stands for the target of the method call. Use
(this-obj) to be more precise than prose such as “this
method’s object.”