An abstract structure defines a set of components, the relationships between those components, and a set of constraints that hold for the structure.
Each abstract structure implies a set of operations that may be performed on the structure. The structure definition, together with that set of operations, is called an abstract data type. Tcl is composed of a layered set of abstract structures:
Additionally, there are two programmatic abstract structures: