HN🔥 46
💬 6
Rustcを限界まで追い詰める!HKT(高階型)をエミュレートする禁断のテクニック
g0xA52A2A
4日前
Rustには標準で実装されていないHKT(Higher-Kinded Types:高階型)を、型システムのトリックを駆使してエミュレートし、Rustコンパイラ(rustc)に極限の負荷をかける試みについての投稿です。ジェネリクスのさらに先、型システムの深淵に触れたいエンジニア必見の、コンパイラを「拷問」するような高度な手法が紹介されています。
これ、めちゃくちゃすごかった。自分のプログラミング言語理論や数学の知識があっという間に追い越されちゃったけど。
先月、RFC8366の実装でgeneric_const_exprsを試そうとした時にコンパイラの限界にぶち当たって笑っちゃったよ。重いconst評価とトレイト解決のせいで、M2 Proですらお手上げだった。
かなり実験的なクレートで、こういう型マッピングをいじってみてる。型をmap、filter、reduceできるのはめちゃくちゃ強力なんだけど、エルゴノミックな構文にするのが難しいんだよね。