A structured type set is defined as a collection of distinct component types. Each component of a set contains a value of appropriate type.

The type notation allows the components to be listed in any arbitrary order. Each component is preceded by an identifier, which can be regarded as the name of component:

`TypA ::= SET {`

`p BOOLEAN,`

`q INTEGER,`

`r BIT STRING`

`}`

Note that components are separated by commas.

The value notation for a set type consists of the list of all components with assigned values also separated by commas:

`valA TypA ::= {`

`p TRUE,`

`r '83f'H,`

`q -7`

`}`

Note, that the components are not in the same order as was defined in type.

The most useful subtyping mechanizm for sets is inner subtyping.