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)
}
