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 (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.