record Wrapper[T] { value : T; } foo(i, x) { if (i == 0) return 10; else return foo(i, Wrapper(x)); } main() { foo(10, 20); }