名称:类型理论 描述:在类型理论基础上实现类型系统的专家技能,包括类型推断、类型检查和子类型化 类别:类型系统 允许使用的工具:
- 读取
- 写入
- 编辑
- 全局搜索
- 文本搜索
- Bash
类型理论技能
概述
在类型理论基础上实现类型系统的专家技能,包括类型推断、类型检查和子类型化。
能力
- 使用算法W实现Hindley-Milner类型推断
- 使用统一化实现基于约束的类型推断
- 设计和实现双向类型检查
- 实现结构和名义子类型化
- 处理变体(协变、逆变、不变)
- 实现行多态性和记录类型
- 设计流敏感的类型细化
- 实现类型错误消息生成
目标流程
- type-system-implementation.js
- semantic-analysis.js
- generics-polymorphism.js
- effect-system-design.js
依赖项
学术类型理论文献(TAPL、ATTAPL)
使用指南
- 算法选择:根据语言特性在HM推断和双向检查之间选择
- 约束生成:将约束生成与求解分离以实现更清晰的实现
- 错误定位:跟踪约束来源以准确定位错误
- 变体:为所有泛型位置明确记录变体规则
- 渐进类型:考虑为混合类型/无类型代码库使用渐进类型
输出模式
{
"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" }
}
}
}