-- main.mcl -- class c0($b) { test "t1" {} if $b { test "t2" {} } else { test "t3" {} } $f0 = func() { if $b { "hello" } else { "goodbye" } } #$f0 = "hey" } class c1($b) { test "t4" {} if $b { test "t5" {} } else { test "t6" {} } include c0($b) as i0 $x = $i0.f0 } include c1(true) as i1 include c1(false) as i2 $name1 = $i1.x() $name2 = $i1.i0.f0() $name3 = $i2.x() $name4 = $i1.i0.f0() # I think these should work directly too. Do we want them to? $name5 = $i2.i0.f0() test "${name1}" {} test "${name2}" {} test "${name3}" {} test "${name4}" {} test "${name5}" {} -- OUTPUT -- Vertex: test[goodbye] Vertex: test[hello] Vertex: test[t1] Vertex: test[t2] Vertex: test[t3] Vertex: test[t4] Vertex: test[t5] Vertex: test[t6]