interface AA { routine Meth( a = 0 ); routine []( index: int )=>int; routine .name()=>string; routine for( iter: tuple ); routine []( iter: tuple )=>int; } routine Test( o: AA ) { io.writeln( "Test( o : AA )", std.about(o) ); o.Meth( 123 ); io.writeln( o[1] ); io.writeln( o.name ); for(var i in o ) io.writeln(i) } class BB { routine Meth( a = 0 ){ io.writeln( a ) } routine []( index: int ){ return index } routine .name(){ return "BB" } routine for( iter: tuple ){ iter[0] = true; iter[1] = 0; } routine []( iter: tuple ){ var id = iter[1]; iter[0] = iter[1] + 1 < 5; iter[1] += 1; return id; } } class CC : BB { } Test( BB() ); Test( CC() ); for(var i in BB() ) io.writeln(i)