Provides "abilities". Those classes are best used via inheritance. They give extra functionality to a class.
The currently available abilities are:
COMPARABLE for objects that can be compared between
themselves;HASHABLE for objects that want to interact with the
Garbage Collector when they are about to be collected;HASHABLE for objects that provide a hash-code
(e.g. useful for hashed dictionaries and sets);OBSERVABLE for objects that can notify observers when
their state changes (that's the Observer Design Pattern);STORABLE for objects that want to be put on an external
medium, to be retrieved again later;TRAVERSABLE for objects that provide traversal
facilities;VISITABLE for objects that can be visited using the
Visitor Design Pattern.