-- main.mcl --
# this can return changing functions, and could be optimized, too
$funcgen = func($a) {
	if $a {
		func($b) {
			if $b == "hello" {
				func() {
					"true-true"
				}
			} else {
				func() {
					"true-false"
				}
			}
		}
	} else {
		func($b) {
			if $b == "hello" {
				func() {
					"false-true"
				}
			} else {
				func() {
					"false-false"
				}
			}
		}
	}
}

$fn1 = $funcgen(true)
$fn2 = $funcgen(false)

$out1 = $fn1("hello")
$out2 = $fn1("world")
$out3 = $fn2("hello")
$out4 = $fn2("world")

$name1 = $out1()
$name2 = $out2()
$name3 = $out3()
$name4 = $out4()

test "${name1}" {}
test "${name2}" {}
test "${name3}" {}
test "${name4}" {}
-- OUTPUT --
Vertex: test[true-true]
Vertex: test[true-false]
Vertex: test[false-true]
Vertex: test[false-false]
