--block Class D inherits C { c:Int; }; Class C inherits A { d:Int; m7():D{ --incompatible ret type C for D m1(d) }; m8():E{ --incompatible ret type C for E m1(d) }; }; class E inherits A { g:Int; }; Class A{ a:Int; b:Bool; --checking the return type m1(a:Int):Int{ { self; } }; m2(a:Int):Str{ { a<-1; true; } }; m4(a:Int):Int{ { while (4<2) loop a<-1 pool; while (a<=2) loop a<-1 pool ; while (not(true)) loop a<-1 pool; while (not(4<2)) loop a<-1 pool; } }; m5(f:Int):E{ --invalid ret type C for E { new A; new C; } }; }; Class Main{ main():Int{ 1 }; };