An "abbreviating" type specifier is one that describes a subtype for which it is in principle possible to enumerate the elements, but for which in practice it is impractical to do so.
A "specializing" type specifier is one that describes a subtype by restricting the type of one or more components of the type, such as element type or complex part type.
A "predicating" type specifier is one that describes a subtype containing only those objects that satisfy a given predicate.
A "combining" type specifier is one that describes a subtype in a compositional way, using combining operations (such as "and," "or," and "not") on other types.