Rustプログラマーが最初に学ぶのは、オブジェクトとその参照を同時に渡すことが不可能であるということです。この制約は多くの質問を生んでおり、Rustの型システムに根本的な制限があると考えられがちですが、実際にはその考え方を変えることで新たなサポートが可能になることが示されています。本記事では、セルフボローやより多くの機能を支えるための理論的アプローチを紹介し、特に非可動型に関する支援の重要性が強調されています。Rust 1.0の登場以来、非可動型のサポートが欠けていましたが、Pin型の導入により部分的な解決策が生まれました。しかし、実際にセルフ参照型を作成する方法は依然として提供されておらず、これについて新たな視点や理論的な解決策を探ることが提案されています。この議論は、Rustの型チェックの観点から行われており、実装の難しさには触れられていません。