あまり実用的な内容ではありませんが、以前からトレイト整合性(trait coherence)周りの話を調べてみようと思いつつ先延ばしにしていたので、これを機に書いてみたいと思います。文中に「実装」という単語が頻繁に出てきて混乱するかもしれませんが、Rustコード中という文脈で出てくる場合はimpl宣言のことです。 トレイト整合性はTRPLや言語リファレンスでは触れられていません。しかし、このトレイト整合性を保つために実装されているE210などに遭遇したことのある方はそれなりに居るのではないでしょうか。また、現在unstableな機能として実装されている特殊化もこのトレイト整合性に関わるものです。 トレイト整合性とは トレイト整合性とは、ある型に対して実装されたあるトレイトは、ただ1つの実装を持つという性質です。例えば、簡単な例だとi32という型はEq,Ord,Add<i32>,Add<&i