GHC来源对“zonk”意味着什么?

时间:2015-08-08 02:31:58

标签: haskell ghc

我正在为GHC制作一个插件,所以我正在阅读其中一些实现的文档。

动词“to zonk”到处都是,但是我无法找到一个解释,即什么是zonk某事或(在广义上)当一个人想要的时候。我可以找到很多关于复杂情况的说明,在这种情况下,有必要对某些东西进行分类,但是如果不知道大局是什么,我会遇到很多麻烦。

1 个答案:

答案 0 :(得分:29)

un-zonked类型可以具有类型变量,这些变量是在统一期间填充的可变引用(并且类型检查器大量使用此可变性来提高性能)。 Zonking遍历一个类型并用它们取消引用的类型替换所有可变引用;因此,结果结构是不可变的,不需要解除引用来解释。

请注意,这些类型变量是 meta - 变量,即它们与多态引入的类型变量不对应;相反,它们是由真实类型取代的统一变量。替换的选择取决于类型检查/类型推断过程,然后在zonking期间进行实际替换。

这种zonking概念自然地延伸到了包含类型的类型检查器的其他中间表示。