A dessert of ice cream with another ingredient mixed in.
An uninstantiable class that provides functionality to be inherited by a subclass.
Traits are somewhat between an interface and a mixin, as an interface contains only method signatures, while a trait includes also the full method definitions; on the other side mixins include method definitions, but they can also carry state through attributes, while traits usually don't.