program main fn parse_i64(text: string) -> (result i64 i32) call std.string.parse_i64_result : (result i64 i32) var text : string fn parsed_text(text: string) -> string call std.num.i64_to_string : string std.result.unwrap_ok : i64 call parse_i64 : (result i64 i32) var text : string fn main() -> i32 local let value : unit call parse_i64 : (result i64 i32) string "-7" : string if : i32 std.result.is_ok : bool var value : (result i64 i32) if : i32 binary = : bool call std.num.i64_to_string : string std.result.unwrap_ok : i64 var value : (result i64 i32) string "-7" : string int 0 : i32 int 1 : i32 std.result.unwrap_err : i32 var value : (result i64 i32) test "parse i64 zero ok" binary = : bool call parsed_text : string string "0" : string string "0" : string test "parse i64 negative ok" binary = : bool call parsed_text : string string "-7" : string string "-7" : string test "parse i64 low ok" binary = : bool call parsed_text : string string "-9223372036854775808" : string string "-9223372036854775808" : string test "parse i64 high ok" binary = : bool call parsed_text : string string "9223372036854775807" : string string "9223372036854775807" : string test "parse i64 empty err" local let value : unit call parse_i64 : (result i64 i32) string "" : string if : bool std.result.is_err : bool var value : (result i64 i32) binary = : bool std.result.unwrap_err : i32 var value : (result i64 i32) int 1 : i32 bool false : bool test "parse i64 plus err" local let value : unit call parse_i64 : (result i64 i32) string "+1" : string if : bool std.result.is_err : bool var value : (result i64 i32) binary = : bool std.result.unwrap_err : i32 var value : (result i64 i32) int 1 : i32 bool false : bool test "parse i64 above range err" local let value : unit call parse_i64 : (result i64 i32) string "9223372036854775808" : string if : bool std.result.is_err : bool var value : (result i64 i32) binary = : bool std.result.unwrap_err : i32 var value : (result i64 i32) int 1 : i32 bool false : bool