program main fn parse_u32(text: string) -> (result u32 i32) call std.string.parse_u32_result : (result u32 i32) var text : string fn parsed_text(text: string) -> string call std.num.u32_to_string : string std.result.unwrap_ok : u32 call parse_u32 : (result u32 i32) var text : string fn main() -> i32 local let value : unit call parse_u32 : (result u32 i32) string "42" : string if : i32 std.result.is_ok : bool var value : (result u32 i32) if : i32 binary = : bool call std.num.u32_to_string : string std.result.unwrap_ok : u32 var value : (result u32 i32) string "42" : string int 0 : i32 int 1 : i32 std.result.unwrap_err : i32 var value : (result u32 i32) test "parse u32 zero ok" binary = : bool call parsed_text : string string "0" : string string "0" : string test "parse u32 high ok" binary = : bool call parsed_text : string string "4294967295" : string string "4294967295" : string test "parse u32 empty err" local let value : unit call parse_u32 : (result u32 i32) string "" : string if : bool std.result.is_err : bool var value : (result u32 i32) binary = : bool std.result.unwrap_err : i32 var value : (result u32 i32) int 1 : i32 bool false : bool test "parse u32 plus err" local let value : unit call parse_u32 : (result u32 i32) string "+1" : string if : bool std.result.is_err : bool var value : (result u32 i32) binary = : bool std.result.unwrap_err : i32 var value : (result u32 i32) int 1 : i32 bool false : bool test "parse u32 negative err" local let value : unit call parse_u32 : (result u32 i32) string "-1" : string if : bool std.result.is_err : bool var value : (result u32 i32) binary = : bool std.result.unwrap_err : i32 var value : (result u32 i32) int 1 : i32 bool false : bool test "parse u32 above range err" local let value : unit call parse_u32 : (result u32 i32) string "4294967296" : string if : bool std.result.is_err : bool var value : (result u32 i32) binary = : bool std.result.unwrap_err : i32 var value : (result u32 i32) int 1 : i32 bool false : bool