{ { function f() {} } { function f() { let y := 2 } } { function f() -> z { let y := 2 } } { function f(a) { let y := 2 } } { function f(a) { let y := a } } { function f() -> x, y, z {} } { function f(x, y, z) {} } { function f(a, b) -> x, y, z { y := a } } { function f() {} f() } { function f() -> x, y { x := 1 y := 2} let a, b := f() } { function f(a, b) -> x, y { x := b y := a } let a, b := f(2, 3) } { function rec(a) { rec(sub(a, 1)) } rec(2) } { let r := 2 function f() -> x, y { x := 1 y := 2} let a, b := f() b := r } { function f() { g() } function g() { f() } } { function f(a) -> b {} function g(a, b, c) {} function x() { g(1, 2, f(mul(2, 3))) x() } } }