program main fn empty_values() -> (vec i32) call std.vec.i32.empty : (vec i32) fn pair(base: i32) -> (vec i32) local let values : unit call std.vec.i32.empty : (vec i32) local let first : unit call std.vec.i32.append : (vec i32) var values : (vec i32) var base : i32 call std.vec.i32.append : (vec i32) var first : (vec i32) binary + : i32 var base : i32 int 1 : i32 fn echo(values: (vec i32)) -> (vec i32) var values : (vec i32) fn length(values: (vec i32)) -> i32 call std.vec.i32.len : i32 var values : (vec i32) fn at(values: (vec i32), i: i32) -> i32 call std.vec.i32.index : i32 var values : (vec i32) var i : i32 fn call_return_len() -> i32 call std.vec.i32.len : i32 call echo : (vec i32) call pair : (vec i32) int 20 : i32 fn original_len_after_append() -> i32 local let values : unit call std.vec.i32.empty : (vec i32) local let appended : unit call std.vec.i32.append : (vec i32) var values : (vec i32) int 1 : i32 call std.vec.i32.len : i32 var values : (vec i32) fn main() -> i32 call std.io.print_i32 : unit call call_return_len : i32 call at : i32 call pair : (vec i32) int 40 : i32 int 1 : i32 test "vec i32 empty length" binary = : bool call std.vec.i32.len : i32 call empty_values : (vec i32) int 0 : i32 test "vec i32 append length" binary = : bool call length : i32 call pair : (vec i32) int 40 : i32 int 2 : i32 test "vec i32 index" binary = : bool call at : i32 call pair : (vec i32) int 40 : i32 int 1 : i32 int 41 : i32 test "vec i32 append is immutable" binary = : bool call original_len_after_append : i32 int 0 : i32 test "vec i32 equality" binary = : bool call pair : (vec i32) int 5 : i32 call std.vec.i32.append : (vec i32) call std.vec.i32.append : (vec i32) call std.vec.i32.empty : (vec i32) int 5 : i32 int 6 : i32