type storage = (int, int); let main = (n : (int, storage)) : (list (operation), storage) => { let x : (int, int) = { let x : int = 7; (x + n[0], n[1][0] + n[1][1]); }; ([]: list (operation), x); }; let f0 = (a: string) => true let f1 = (a: string) => true let f2 = (a: string) => true let letin_nesting = (_: unit) => { let s = "test"; let p0 = f0(s); assert(p0); let p1 = f1(s); assert(p1); let p2 = f2(s); assert(p2); s } let letin_nesting2 = (x: int) => { let y = 2; let z = 3; x + y + z }