fn increment(value: i64) -> i64 { return value + 4; } fn choose() -> fn(i64) -> i64 { return increment; } record Carrier { callback: fn(i64) -> i64 } fn apply(action: fn(i64) -> i64, value: i64) -> i64 { return action(value); } fn start_main() -> i64 { let saved: list i64> = [choose()]; let wrapped: result i64> = success(saved[0]); let carrier = Carrier { callback: wrapped::value }; if carrier::callback not matches increment { return 1; } print(format_i64(apply(carrier::callback, 38)) + "\n"); return 0; }