fn get_name[A, B](a A, b B) string { return '${a}, ${b}' } struct Foo {} fn (f Foo) get_name[A, B](a A, b B) string { return '${a}, ${b}' } fn main() { ret1 := get_name[int](11, 22) println(ret1) ret2 := get_name[int, int, string](11, 22, 'hello') println(ret2) foo := Foo{} ret3 := foo.get_name[int](11, 22) println(ret3) ret4 := foo.get_name[int, int, string](11, 22, 'hello') println(ret4) }