### 3.1 Slot Descriptors

Slots are represented by slot descriptors, which are data structures providing information about the slots, such as their name. Slot descriptors are stored inside of classes, and may be retrieved from there and subsequently inspected.

Procedure: class-slots class ¶

  Returns a list of the slot descriptors for class. This contains all slots for class, both direct slots and inherited slots. The returned value must not be modified.

Procedure: class-slot class name error? ¶

  Returns the slot descriptor for the slot named name in class. If there is no such slot: if error? is `#f`, returns `#f`, otherwise signals an error of type `condition-type:no-such-slot`.

Procedure: slot-descriptor? object ¶

  Returns `#t` if object is a slot descriptor, otherwise returns `#f`.

Procedure: slot-name slot ¶

  Returns the name of slot.

Procedure: slot-class slot ¶

  Returns the class of slot. This is the class with which slot is associated. This is not necessarily the class that defines slot; it could also be a subclass of that class. If the slot was returned from `class-slots` or `class-slot`, then this class is the argument passed to that procedure.

Procedure: slot-properties slot ¶

  Returns an alist of the properties of slot. This list must not be modified.

Procedure: slot-property slot name default ¶

  If slot has a property named name, it is returned; otherwise default is returned.

Procedure: slot-initial-value? slot ¶

  Returns `#t` if slot has an initial value, and `#f` otherwise. The initial value is specified by the `initial-value` slot property when a class is made.

Procedure: slot-initial-value slot ¶

  Returns the initial value for slot, if it has one; otherwise it returns an unspecified value. The initial value is specified by the `initial-value` slot property when a class is made.

Procedure: slot-initializer slot ¶

  Returns the initializer for slot; the initializer is specified by the `initializer` slot property when a class is made. This is a procedure of no arguments that is called to produce an initial value for slot. The result may also be `#f` meaning that the slot has no initializer.