前回の記事Go言語のcomparableには3つの意味があるにおいて、Go1.19までの言語仕様のcomparableと型制約のcomparableは指す範囲が異なるということを説明しました。たとえば、any型はGo1.19言語仕様上comparableですが、comparable型制約を満たしていませんでした。 このギャップをなくすProposalがacceptされそうです。今回はその内容を説明します。 追記 2023/02/23 このProposalは採用されて、Go1.20で実装されました。この記事の内容は基本的にGo1.20の言語仕様において正しいです。一部、言語仕様書が更新される前に記述した部分があるので仕様の用語をちゃんと使えてない部分があります。 言語仕様としての理屈にそれほど関心がない読者の人は要約だけ読めば十分だと思います。 要約 unionsをふくまないinterfac