Underlying type

The non-named type reached by recursively following a named type declaration, used by assignability and constraint rules.