struct Foo { static Func2(u: U) : U { return u; } static Func(t: T): T { foo: T = t; return Foo.Func2(foo); } } struct Program { static Main(): int { x: int = 4; y: int = Foo.Func(x); return x; } }