Two objects have the same type if and only if they are instances of the same named type. An object of a given type can be assigned to an object of any of its supertypes. Relationships are a kind of property defined between two mutable object types. Relationships are not objects. 9.2 attributes Attributes are a kind of property defined on a single object type.
Attributes take literals as their values.
Additional subtypes can be defined, but operations on the built-in literal types cannot be redefined. The literal types are expected to directly map to types in the programming language. If the language does not have an analog for one of the literal types, the type must be defined in a library provided as part of the language binding. Structures are records with named slots which can be filled by objects or literals of different types. Built-in collection types are set, bag, list and array.