The astute reader will have noticed by now that, although the existence of sets of ``abstract'' values have been referred to, no syntax for generating such sets have been presented. The reason is that dynamic types make it unnecessary to have such a syntax.
For example, instead of declaring Parts to be a large set of values, and P to be a variable of type set of Parts, as is done above, one would declare P to be a variable of type set of Entity, and Parts to be a constant function that returns the current value of P. Initially, P would have no elements: As new parts are added to the database, new abstract values (elements of Entity that are not yet included in any set but Entity) are added to P.
To support this, the language only has to supply a function that delivers a different, unused element of Entity every time it is called.