Why Go's Generics Rules Keep Loosening
Notes from Naoki Kuroda’s GopherCon 2026 talk, “Loosening the Reins: Go Generics Get More Flexible.” The talk starts from one line in the Go 1.26 release notes: type Ordered[T Ordered[T]] interface { ... } A constraint that refers to itself. Go 1.25 rejected it as an invalid recursive type; Go 1.26 accepts it. Kuroda went through the spec history, issues, and the go/types checker to find out what changed — and the answer wasn’t “we found a clever fix.” The original rule had simply been drawn wider than the problem it was guarding against. ...