-- main.mcl -- # this can return changing functions, and could be optimized, too func funcgen($b) { if $b { func() { "hello" } } else { func() { "world" } } } $fn1 = funcgen(true) $fn2 = funcgen(false) $out1 = $fn1() $out2 = $fn2() test "${out1}" {} test "${out2}" {} -- OUTPUT -- Edge: FuncValue -> call # fn Edge: FuncValue -> call # fn Edge: call -> callSubgraphOutput # dummy Edge: call -> callSubgraphOutput # dummy Edge: call -> callSubgraphOutput # dummy Edge: call -> callSubgraphOutput # dummy Edge: callSubgraphOutput -> call # fn Edge: callSubgraphOutput -> call # fn Vertex: FuncValue Vertex: FuncValue Vertex: call Vertex: call Vertex: call Vertex: call Vertex: callSubgraphOutput Vertex: callSubgraphOutput Vertex: callSubgraphOutput Vertex: callSubgraphOutput Vertex: const: bool(false) Vertex: const: bool(true)