From http://www.cse.ohio-state.edu/~neelam/courses/788/lwb.pdf
A type specification contains the following information:
- The type's name
- A description of the type's value space
- For each of the type's methods:
- its name
- its signature (including signalled exceptions)
- its behavior in terms of preconditions and postconditions
Note that creators are missing. Creators are specified separately to make it easy for a type to have multiple implementations, to allow new creators to be added later, to allow subtypes to have different creators than their supertypes, and to make it more convenient to define subtypes. ... However, he absence of creators (in type definitions) means data type induction cannot be used to reason about invariant properties.