Hasty Briefsbeta

双语

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)被引用为更好的具体化方案