Slate's collection hierarchy makes use of composing multiple behaviors (via inheritance) to provide a collection system that can be reasoned about with greater certainty, and that can be extended more easily than other object-oriented languages' collection types.
Figure 1 shows the overview of the collection types, and how their inheritance is patterned.
All collections support a minimal set of methods, including support for basic internal iteration and testing. The following are representative core methods, and are by no means the limit of collection features: