struct Foo { static Func2(u: U) : U { return u; } static Func(t: T): T { foo: T = t; return Foo.Func2(foo); } } struct MemoryBlock { start: MemoryAddress; capacity: uint; AddressOf(count: uint): MemoryAddress { return start + (count * @sizeof()); } } struct Program { static Main(): int { x: int = 4; y: int = Foo.Func(x); block: MemoryBlock; block.capacity = y; block.start = @malloc(y * @sizeof()); z: MemoryAddress = block.AddressOf(2); Console.PrintLine("%p", block.start); Console.PrintLine("%p", z); @free(block.start); return 0; } }