-- main.mcl --
$x = "i am x" # i am top-level

class c2() {
	$z = "i am y and " + $x

	# Since $x is pulled in from top-level automatically, we don't allow the
	# re-definition by shadowing of the same variable.
	$x = $x # not allowed
	#$x = $x + "wow" # allowed?
}

include c2 as f1

test "${f1.z}" {}
test "${f1.x}" {} # tricky
test "${f1.newx}" {}
-- OUTPUT --
# err: errSetScope: recursive reference while setting scope: not a dag
