(class ..clauses)
  clauses: zero or more forms
  returns a class

Defines a class.

When the class form is evaluated, a new class is defined, allocated and returned.

This can be an expensive operation, so it shouldn't be performed in a loop. Use let-class for a locally-scoped class definition.

The class is described by a name clause and/or a mixin clause, followed by zero or more of the other class clauses.

#n may appear in place of a class clause, in which case it's silently ignored.

When splice appears in place of a class clause, it's processed as it would be during macro expansion.

class performs an "auto-gensym" pass over its arguments, similar to backquote. This can be useful for defining private fields, private methods, and so on.

See also: defclass