It's impossible for Rust to have sane HKT
3 days ago
- #Rust
- #Lifetimes
- #HKT
- Rust将生命周期区域具体化为类型,通过子类型化和变异性进行生存期检查
- 数据结构中的生命周期参数使类型抽象和变异性分析复杂化
- 对泛型类型(HKT)的抽象在Rust中因生命周期具体化而存在根本性问题
- 将生命周期作为一等类型会混淆技术命题与业务逻辑,导致抽象困难
- 试图绕过traits中的生命周期参数会导致复杂且丑陋的解决方案
- 生命周期具体化从根本上阻碍了Rust实现高阶类型(HKT)
- 可变种类理论上能解决问题,但会使Rust类型系统不可判定且过度复杂
- 泛型关联类型(GATs)未能完全解决生命周期抽象问题
- Rust设计存在深层范畴错误:将生命周期与业务逻辑类型混为一谈
- Scala 3的捕获检查(Capture Checking)被引用为更好的具体化方案