我正在为GHC制作一个插件,所以我正在阅读其中一些实现的文档.
动词"to zonk"到处都是,但是我无法找到一个解释,即什么是zonk某事或者(在广义上)当一个人想要的时候.我可以找到很多关于复杂情况的说明,在这种情况下,有必要对某些东西进行分类,但是如果不知道大局是什么,我会遇到很多麻烦.
Cac*_*tus 30
un-zonked类型可以具有类型变量,这些变量是在统一期间填充的可变引用(并且类型检查器大量使用此可变性来提高性能).Zonking遍历一个类型并用它们取消引用的类型替换所有可变引用; 因此,结果结构是不可变的,不需要解除引用来解释.
请注意,这些类型变量是元变量,即它们与多态引入的类型变量不对应; 相反,它们是由真实类型取代的统一变量.替换的选择由类型检查/类型推断过程决定,然后在zonking期间进行实际替换.
这种zonking概念自然地延伸到包含类型的类型检查器的其他中间表示.