Thou shalt be extensible
The database system comes with a set of predefined types. These types can be used at will by programmers to write their applications. This set of type must be extensible in the following sense: there is a means to define new types and there is no distinction in usage between system defined and user defined types. Of course, there might be a strong difference in the way system and user defined types are supported by the system, but this should be invisible to the application and to the application programmer. Recall that this type definition includes the definition of operations on the types. Note that the encapsulation requirement implies that there will be a mechanism for defining new types. This requirement strengthens that capability by saying that newly created types must have the same status as existing ones.
However, we do not require that the collection of type constructors (tuples, sets, lists, etc.) be extensible.