Answers are grounded in this paper and cite their sources.
A number of issues are explored concerning the notion that a data type is a set of values together with a set of primitive operations on those values. Among these are the need for a notation for iterating over the elements of any finite set (instead of the more narrow for i := 1 to n notation), the use of the domain of an array as a data type, the need for a simple notation for allowing types of parameters to be themselves parameters (but in a restrictive fashion), and resulting problems with conversion of values from one type to another.
No takes yet. Share an insight, caveat, or question.
Gries et al. (1977) studied this question.
Synapse has enriched 10 related papers. Consider them for comparative context: