-- .Play -- package main import ( "fmt" ) func main() { fmt.Println("hello") } -- Generic.Play -- package main import ( "fmt" "time" ) type C1 interface { string | int } type C2 interface { M(time.Time) } type G[T C1] int func g[T C2](x T) {} type Tm int func (Tm) M(time.Time) {} func main() { var x G[string] g(Tm(3)) fmt.Println(x) }