//ww:run-exit 107 package main; fn ai(x: i32) i32 = { return x + 1; }; fn bi(x: i32) i32 = { return x + 100; }; fn indi(f: *fn(x: i32) i32, x: i32) i32 = { return (*f)(x); }; export fn main() i32 = { let pick: i32 = 1; let v: (*fn(x: i32) i32 | void) = &ai; if (pick != 0) { v = &bi; }; let r: i32 = match (v) { case void => yield 99: i32; case let f: *fn(x: i32) i32 => yield indi(f, 7); }; return r; };