package main func main() {} // Foo first, valid program. // Bar first, invalid program. type Foo[B Bar] struct { bar B } type Bar interface { foo() Foo[Bar] }