Provides interfaces for implementing abstract data types in matrix. Dictionaries,
priority queues, etc. are all considered to be abstract data types in matrix.
In general, all sets for which there is a well-defined group of different
operations, including some kind of add and remove operations, can be considered
CDTs. This is different from trees or graphs that can dynamically change size
and content.