Type specification

For every different type of data used with a particular programming language, there is a specification somewhere that defines two important characteristics of the type:

  1. What is the set of all possible data values that can be stored in an instance of the type (we will learn some other names for instance later)?
  2. Once you have an instance of the type, what are the operations that you can perform on that instance alone, or in combination with other instances?