types2 currently rejects the test case below with "invalid recursive type A". Swapping the order of declarations for A and B makes the error go away. ``` package p type A interface{ M(B[T]) } type B[_ A] struct{} type T struct{} func (T) M(B[T]) {} ``` /cc @findleyr @griesemer @ianlancetaylor