Classes can have multiple superclasses, a list of slots (member variables in C++/Java parlance) and a special metaclass. Slots can be allocated by class (all instances of a class share the slot) or by instance. Each slot has a name and the value of a slot can be accessed by that name using the function codice_5. Additionally special generic functions can be defined to write or read values of slots. Each slot in a CLOS class must have a unique name.