>>26Even in scripting languages, variables have a type and that type is Any. The objects on the heap, however, do not have a type. Types are something at the language level, not at the machine representation level. What heap objects have are runtime classification tags, much like the A, B, C etc in the following:
data Any = A Int | B String | C (Array Int) | ...
A, B and C are obviously not different types, they are tags (language-level as well as runtime-level) that distinguish values of a single type.