A definition of data type I've seen is along the lines of "a set of values and a set of operations".
What exactly does an operation in this set comprise?
For instance, might an operation be considered as:
an identifier (e.g. integers have an operation, +)
an identifier with signature (e.g. + operates on two integers and results in an integer)
an identifier with signature and established behaviour (e.g. 1 + 2 = 3)
an identifier with signature and behaviour, together with some underlying implementation
or some other concept?