pub fn map2( opt_a: Option, opt_b: Option, f: fn(a, b) -> result, ) -> Option { when opt_a is { None -> None Some(a) -> when opt_b is { None -> None Some(b) -> Some(f(a, b)) } } } test map2_3() { map2(Some(14), Some(42), fn(a, b) { (a, b) }) == Some((14, 42)) }