package test 
		
	native testFail(string msg)
	native testSuccess()


	module A 
		int x
	
		function setX(int x) 
			this.x = x
		
		
		function getX() returns int
			return x
		
	
	
	module B 
		use A
	
	
	module C 
		use A
	
	
	
	class D 
		use B
		use C

		override function setX(int x)
			B.setX(x)
		
		override function getX() returns int 
			return B.getX()
		
		
			
	
	
	
	init 
		D d = new D()
		
		d.setX(4)
		
		if d.getX() != 4 
			testFail("foo fail")
		
			
		testSuccess()
	
endpackage
