--new Class A{ s:D; r:Object; q:A; a():Bool{ { new Object; -- undefined type let a:C in a<- new D; r <- new Bool; q <- new SELF_TYPE; r <- new C; r <- new Main; r <- s; isvoid(new D); } }; }; Class D inherits C{ c():Bool { true }; }; Class C{ c():Bool { true }; }; Class Main{ main():Object{ 1 }; };