# comparable 约束设计

> 当前状态：历史设计记录。本文不再代表 Dujie 当前的泛型约束系统。
> 当前生效的泛型设计应优先参考 泛型系统。

## 这份旧文档讨论过什么

这份旧方案曾经尝试引入一个通用约束：

- `comparable`

它希望统一承载：

- `==` / `!=`
- `<` / `<=` / `>` / `>=`
- 泛型函数上的比较能力约束
- `map` 键约束

## 为什么它已经失效

当前泛型系统已经收敛到“简单泛型系统”路线：

- 第一阶段只支持极小约束集合
- 当前唯一内建约束是 `key`
- `key` 只用于表示“可作为 `map` 键”的能力

这意味着：

- `map` 键约束不再通过 `comparable` 表达
- “可比较”与“可作键”不再混为一个能力
- 第一阶段不恢复通用 `comparable` 约束

## 保留本文的原因

保留这份文档只是为了：

- 追溯早期约束系统思路
- 解释为什么当前不采用 `comparable`
- 为未来如果要扩展约束系统提供历史背景

## 当前应看哪里

如果要讨论当前有效的泛型和约束规则，应查看：

- [泛型系统](./10.generics-system)
- [类型系统总纲](./09.type-system)
