-- 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")
