-- main.mcl -- import "fmt" # we should only see one copy of $s1, $s2 and $fn $s1 = "hello" $fn = func() { $s1 + " " + $s2 } $s2 = "world" test "greeting1" { anotherstr => $fn(), } test "greeting2" { anotherstr => $fn(), } test "greeting3" { anotherstr => $fn(), } -- OUTPUT -- Edge: _operator -> _operator # a Edge: _operator -> _operator # a Edge: _operator -> _operator # a Edge: const: str(" ") -> _operator # b Edge: const: str(" ") -> _operator # b Edge: const: str(" ") -> _operator # b Edge: const: str("+") -> _operator # op Edge: const: str("+") -> _operator # op Edge: const: str("+") -> _operator # op Edge: const: str("+") -> _operator # op Edge: const: str("+") -> _operator # op Edge: const: str("+") -> _operator # op Edge: const: str("hello") -> _operator # a Edge: const: str("hello") -> _operator # a Edge: const: str("hello") -> _operator # a Edge: const: str("world") -> _operator # b Edge: const: str("world") -> _operator # b Edge: const: str("world") -> _operator # b Vertex: _operator Vertex: _operator Vertex: _operator Vertex: _operator Vertex: _operator Vertex: _operator Vertex: const: str(" ") Vertex: const: str(" ") Vertex: const: str(" ") Vertex: const: str("+") Vertex: const: str("+") Vertex: const: str("+") Vertex: const: str("+") Vertex: const: str("+") Vertex: const: str("+") Vertex: const: str("greeting1") Vertex: const: str("greeting2") Vertex: const: str("greeting3") Vertex: const: str("hello") Vertex: const: str("world")