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.