struct Response[U] {
	result U
}

fn send_1[A, B](res A, b B) string {
	msg := Response[U]{
		result: res
	}
	println(b)
	return '$msg'
}

fn send_2[A, B](res A, b B) string {
	msg := Response[A, B]{
		result: res
	}
	println(b)
	return '$msg'
}

fn main() {
	mut ret := send_1(123, 22.2)
	println(ret)

	ret = send_2(123, 22.2)
	println(ret)
}
