An operation
operates
on a type T if it yields a value of type
T, if it has
an operand whose expected type (see
8.6) is
T, or if it has an access parameter or access result type (see
6.1) designating
T.
A
predefined operator, or other language-defined operation such as assignment
or a membership test, that operates on a type, is called a
predefined
operation of the type.
The
primitive operations
of a type are the predefined operations of the type, plus any user-defined
primitive subprograms.