(module main) (fn i32_ok () -> (result i32 i32) (ok i32 i32 42)) (fn i32_err () -> (result i32 i32) (err i32 i32 7)) (fn text_ok () -> (result string i32) (ok string i32 "value")) (fn text_err () -> (result string i32) (err string i32 9)) (fn observe_i32_ok () -> bool (std.result.is_ok (i32_ok))) (fn observe_i32_err () -> bool (std.result.is_err (i32_err))) (fn unwrap_i32_ok () -> i32 (std.result.unwrap_ok (i32_ok))) (fn unwrap_i32_err () -> i32 (std.result.unwrap_err (i32_err))) (fn observe_text_ok () -> bool (std.result.is_ok (text_ok))) (fn observe_text_err () -> bool (std.result.is_err (text_err))) (fn unwrap_text_ok () -> string (std.result.unwrap_ok (text_ok))) (fn unwrap_text_err () -> i32 (std.result.unwrap_err (text_err))) (fn legacy_i32_ok () -> bool (is_ok (i32_ok))) (fn legacy_text_err () -> i32 (unwrap_err (text_err))) (test "std result i32 observers" (if (std.result.is_ok (i32_ok)) (std.result.is_err (i32_err)) false)) (test "std result i32 unwraps" (= (+ (std.result.unwrap_ok (i32_ok)) (std.result.unwrap_err (i32_err))) 49)) (test "std result string observers" (if (std.result.is_ok (text_ok)) (std.result.is_err (text_err)) false)) (test "std result string unwraps" (if (= (std.result.unwrap_ok (text_ok)) "value") (= (std.result.unwrap_err (text_err)) 9) false)) (test "legacy result helpers still work" (if (is_ok (i32_ok)) (= (unwrap_err (text_err)) 9) false)) (fn main () -> i32 (if (std.result.is_ok (i32_ok)) (std.result.unwrap_ok (i32_ok)) (std.result.unwrap_err (i32_err))))