1 // Copyright 2021 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package p 6 7 type Fooer[t any] interface { 8 foo(Barer[t]) 9 } 10 type Barer[t any] interface { 11 bar(Bazer[t]) 12 } 13 type Bazer[t any] interface { 14 Fooer[t] 15 baz(t) 16 } 17 18 type Int int 19 20 func (n Int) baz(int) {} 21 func (n Int) foo(b Barer[int]) { b.bar(n) } 22 23 type F[t any] interface { f(G[t]) } 24 type G[t any] interface { g(H[t]) } 25 type H[t any] interface { F[t] } 26 27 type T struct{} 28 func (n T) f(b G[T]) { b.g(n) } 29