可见类型应用与两阶段 Lambda 演算自动拆分算法
可见类型应用相关理论
在类型系统的研究中,上下文泛化引理有着重要作用。假设 $\Gamma’ \leq_b \Gamma$,有以下两个性质:
1. 如果 $\Gamma \vdash_b e \Rightarrow \sigma$,那么存在 $\sigma’ \leq_b \sigma$ 使得 $\Gamma’ \vdash_b e \Rightarrow \sigma’$。
2. 如果 $\Gamma \vdash_b e \Leftarrow \upsilon$ 并且 $\upsilon \leq_b \upsilon’$,那么 $\Gamma’ \vdash_b e \Leftarrow \upsilon’$。
可见类型应用与 GHC 的集成
System SB 为增强了可见类型应用的 GHC 版本中的类型检查算法提供了直接灵感。在 GHC 中实现该系统相当直接,不过处理导入函数的行为是最困难的部分。其他交互,如本文的作用域类型变量与 GHC 的差异,指定类型变量与类型类的工作方式等,通常不太引人关注。
GHC 近期的部分类型签名特性与可见类型应用有很好的协同作用。该特性允许在类型中使用下划线表示通配符,GHC 会推断通配符的正确替换。在可见类型应用中,用户可以将 @_ 作为可见类型参数,让 GHC 推断该参数。例如,如果 f 的类型为 $\forall a b. a \to b \to (a, b)$,那么可以写成 f @_ @[Int] True [] ,让 GHC 推断
超级会员免费看
订阅专栏 解锁全文
1186

被折叠的 条评论
为什么被折叠?



