argument_count proc(args Args) usize { return args.values.len } #! returns a borrowed, zero-terminated slice, valid while the supplied argument storage lives. argument proc(args Args, index usize) ?[;0]u8 { if (index >= argument_count(args)) return null pointer :: args.values[index] length := usize(0) while (pointer[length] != 0) length += 1 return pointer[..length;0] }