I just published a new blog post on type construction and cycle detection in Go. It’s deceptively complex and has some interesting nuance—give it a read!