A model of C types.
Here we define the semantic notion of type,
which is related to, but distinct from,
the syntactic notion of type name [C:6.7.7].
Specifically, different type names may denote the same type,
if they use syntactically different but equivalent type specifier sequences
(e.g.