-- main.mcl -- $x = "i am x" # i am top-level class c2() { $y = "i am y and " + $x #$x = $x # might be allowed, i don't _really_ care, but i prefer not # We need to be able to re-define our new $x that shadows the parent $x, # but it should be able to incorporate the parent (top-level) $x into # the new value that this new $x here becomes. # XXX: not supported for now: could not set scope: not a dag # Sam suggested the RHS $x should have a special keyword to make it # refer to the parent scope. I suggested when $x is also on the LHS, # then this magic keyword should be implied. And only possible in the # case for variables on the RHS that are the same var as on the LHS. #$x = $x + " and this is shadowed" # this is important } include c2 as f1 test $x {} test $f1.y {} # the really tricky case # XXX: not supported for now: could not set scope: not a dag #test $f1.x {} -- OUTPUT -- Vertex: test[i am x] Vertex: test[i am y and i am x]