Type Equivalence
If types are required to match, the question of what types are considered to be ``equivalent'' arises.
Structural equivalence requires equivalent structures (tree equivalence, as in the Lisp function equal), i.e.,
Name equivalence considers types to be equal only if the same names are used.
C uses structural equivalence except for records, for which name equivalence is used.