struct Foo {
	a string
	b ?string
	c int
	d ?int
	e struct {
		i ?int
	}
}

fn run[T](val T) {
	$for field in T.fields {
		dump(val.$(field.name))
	}
	println('ok')
}

fn test_main() {
	foo := Foo{'c', 'd', 1, 0, struct {100}}
	run(foo)
}
