The mixin class lets you optionally add a set of instance and class methods to one or more other classes using inheritance. You use mixins, therefore, to extend the scope of a class beyond the usual lines of inheritance defined by the hierarchy. Think of it as widening a class's inheritance to accept methods from a sibling or cousin, as well as a parent. When a class inherits from more than just its parent superclass, we call this multiple inheritance.
You can add mixin methods to a class by using the INHERIT option on the ::CLASS directive. The class to be inherited must be a mixin class. During class creation and multiple inheritance, subclasses inherit both class and instance methods from their superclasses.
A mixin's first non-mixin superclass is its base class. Any subclass of a mixin's base class can directly or indirectly inherit a mixin; other classes cannot.
To create a new mixin class, use the ::CLASS directive with the MIXINCLASS option. A mixin class is also an object class and so can create its own instances.