Serokell 对 GHC 的工作:依赖类型,第 3 部分

主要观点:Serokell 认为 Haskell 的类型系统应添加依赖类型,有专门的 GHC 团队致力于此,团队包括 Vladislav Zavialov 和 Andrei Borzenkov,本文分享了近期进展。
关键信息

  • 报告涵盖四个主题:@-binders 相关、命名空间说明符、精确打印注释重构、无 pun 语法的列表和元组类型。
  • @-binders 可替代ScopedTypeVariables,用于绑定不可见类型变量,在高阶场景中也很有用,与依赖类型有联系,历经多年才进入 GHC 9.10。
  • 命名空间说明符用于解决类型构造器和数据构造器的弃用问题等。
  • 精确打印注释重构主要是内部改变,避免与其他工作冲突。
  • 无 pun 语法的列表和元组类型旨在避免构造函数名称的歧义,虽有部分问题但已取得进展。
  • GHC 9.10 包含TypeAbstractionsRequiredTypeArguments两个新特性。
  • 还提及之前关于依赖类型的更新及后续会持续关注。
    重要细节
  • @-binders 在 lambda 和函数方程中的使用示例及两种使用场景的解释。
  • 命名空间说明符在固定声明和 pragmas 中的应用示例。
  • 精确打印注释重构的讨论过程及与 AST 结构的关系。
  • 无 pun 语法的列表和元组类型的提案及实施过程中的问题。
  • GHC 9.10 中新特性的用户指南链接及早期采用者的反馈预期。
  • 之前关于依赖类型的多个更新帖子的链接。
阅读 94
0 条评论