| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | package mainimport "fmt"type Inf interface {	Set(int)}type A struct {	num int}func (a *A) Set(data int) {	a.num = data}type B struct {	num int}func (b *B) Set(data int) {	b.num = data}type C interface {	*A | *B	Inf}type D[T C] struct {	data T}func main() {	d := D[*B]{		data: &B{},	}	d.data.Set(10)	fmt.Println(d.data.num)}
 |