// Vectors struct vec2: x : f32 y : f32 func add(a : vec2, b : vec2) -> vec2: return vec2(a.x + b.x, a.y + b.y) mut v = add(vec2(1.0, 2.0), vec2(3.0, 4.0)) v.x = -v.x v.y = -v.y // Factorial func factorial(n : u32) -> u32: if n == 0u: return 1u return n * factorial(n - 1u) let factorial10 = factorial(10u) // Fibonacci func fib(n : u32) -> u32: // Slow implementation with // exponentially-growing recursion tree if n == 0u | n == 1u: return n // base case return fib(n - 1u) + fib(n - 2u) let fib10 = fib(10u) func h() -> u32: return 0u func f() -> u32: return h() func g() -> u32: func h() -> u32: return 1u return f() // Should equal 0u, but equals 1u due to an error in // how the interpreter resolves functions & variables let x = g()