Ответ 1
Un-zonked type может иметь переменные типа, которые являются изменяемыми ссылками, заполненными во время унификации (и эта изменчивость в значительной степени используется средством проверки типов для повышения производительности). Zonking пересекает тип и заменяет все изменяемые ссылки типом, к которому они относятся; таким образом, результирующая структура является неизменной и не требует разыменования для интерпретации.
Обратите внимание, что эти переменные типа являются мета-переменными, т.е. они не соответствуют переменным типа, введенным полиморфизмом; скорее, они являются переменными объединения, которые должны быть заменены реальными типами. Выбор замены определяется методом проверки типа/типа, а затем фактическая замена выполняется во время zonking.
Это понятие зонирования естественным образом распространяется на другие промежуточные представления typechecker, которые содержат типы.