类型理论专家 TypeTheory

类型理论专家技能专注于编程语言类型系统的设计与实现,核心能力包括Hindley-Milner类型推断、双向类型检查、子类型化处理、泛型变体规则等。该技能用于构建健壮的类型检查器、实现高级类型系统特性、生成精准的类型错误信息,并支持渐进类型等现代类型系统设计。关键词:类型理论、类型推断、类型检查、子类型化、Hindley-Milner、算法W、双向检查、泛型编程、类型系统实现、编程语言设计。

架构设计 0 次安装 0 次浏览 更新于 2/25/2026

名称:类型理论 描述:在类型理论基础上实现类型系统的专家技能,包括类型推断、类型检查和子类型化 类别:类型系统 允许使用的工具:

  • 读取
  • 写入
  • 编辑
  • 全局搜索
  • 文本搜索
  • Bash

类型理论技能

概述

在类型理论基础上实现类型系统的专家技能,包括类型推断、类型检查和子类型化。

能力

  • 使用算法W实现Hindley-Milner类型推断
  • 使用统一化实现基于约束的类型推断
  • 设计和实现双向类型检查
  • 实现结构和名义子类型化
  • 处理变体(协变、逆变、不变)
  • 实现行多态性和记录类型
  • 设计流敏感的类型细化
  • 实现类型错误消息生成

目标流程

  • type-system-implementation.js
  • semantic-analysis.js
  • generics-polymorphism.js
  • effect-system-design.js

依赖项

学术类型理论文献(TAPL、ATTAPL)

使用指南

  1. 算法选择:根据语言特性在HM推断和双向检查之间选择
  2. 约束生成:将约束生成与求解分离以实现更清晰的实现
  3. 错误定位:跟踪约束来源以准确定位错误
  4. 变体:为所有泛型位置明确记录变体规则
  5. 渐进类型:考虑为混合类型/无类型代码库使用渐进类型

输出模式

{
  "type": "object",
  "properties": {
    "inferenceAlgorithm": {
      "type": "string",
      "enum": ["hindley-milner", "bidirectional", "constraint-based", "flow-sensitive"]
    },
    "subtypingKind": {
      "type": "string",
      "enum": ["structural", "nominal", "mixed"]
    },
    "features": {
      "type": "array",
      "items": { "type": "string" }
    },
    "generatedFiles": {
      "type": "array",
      "items": { "type": "string" }
    }
  }
}