The Manifesto model of type inheritance involves a number of concepts that in some cases, at least, you probably weren’t previously familiar with, and for that reason you might have experienced some difficulty in keeping them all straight in your head while you were reading the text. As an aide mémoire, therefore, this appendix provides a brief summary of some of the more important of those concepts. Note, however, that for ease of understanding the definitions that follow are sometimes a little rough and ready; they’re accurate as far as they go, but they’re not always quite as complete or precise as those in the body of the book, and in a few cases they’re quite considerably reworded. Also, the full implications of certain of the definitions—common subtype is a case in point—for tuple and relation types are deliberately omitted.
alpha The maximal scalar type.
binding The process of determining which version of a given operator is to be executed in response to a given invocation of the operator in question.
common subtype Type T′ is a common subtype for, or of, types T1, T2, ..., Tm if and only if, whenever a given value is of type T′, it’s also of each of types T1, T2, ..., Tm.
common supertype Type T is a common supertype for, or of, types T1, T2, ..., Tm if and only if, whenever a given value is of at least one of types T1, T2, ..., Tm, it’s also ...