struct Node[T] {
	data T
}

fn foo[T](n Node[T]) string {
	return '${n}'
}

fn test_generics_fn_infer_struct() {
	ret1 := foo(Node[int]{})
	println(ret1)
	assert ret1.contains('Node[int]{')
	assert ret1.contains('data: 0')

	ret2 := foo(Node[u8]{})
	println(ret2)
	assert ret2.contains('Node[u8]{')
	assert ret2.contains('data: 0')
}
