f: () -> (ri : int = 0) = { pred := :(e) e == 1; ri = 42; pred(ri); // "return;" is implicit" } g: () -> (ri : int) = { ri = 0; pred := :(e) e == 1; ri = 42; pred(ri); return; } main: ()->int = { std::cout << f() + g() << "\n"; }