-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/collection/list.nit", 81);
-exit(1);
-}
-var16 = 0;
-{ /* Inline kernel#Int#>= (var_to,var16) */
-/* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
-/* <var16:Int> isa OTHER */
-var19 = 1; /* easy <var16:Int> isa OTHER*/
-if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
-exit(1);
-}
-var22 = var_to >= var16;
-var17 = var22;
-goto RET_LABEL18;
-RET_LABEL18:(void)0;
-}
-var_23 = var17;
-if (var17){
-var24 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:List[nullable Object]>*/;
-{ /* Inline kernel#Int#< (var_to,var24) */
-/* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
-/* <var24:Int> isa OTHER */
-var27 = 1; /* easy <var24:Int> isa OTHER*/
-if (!var27) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
-exit(1);
-}
-var30 = var_to < var24;
-var25 = var30;
-goto RET_LABEL26;
-RET_LABEL26:(void)0;
-}
-var15 = var25;
-} else {
-var15 = var_23;
-}
-var_31 = var15;
-if (var15){
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/list.nit", 81);
+show_backtrace(1);
+}
+var17 = 0;
+{ /* Inline kernel#Int#>= (var_to,var17) */
+/* Covariant cast for argument 0 (i) <var17:Int> isa OTHER */
+/* <var17:Int> isa OTHER */
+var20 = 1; /* easy <var17:Int> isa OTHER*/
+if (!var20) {
+var_class_name23 = type_kernel__Int.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name23);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
+show_backtrace(1);
+}
+var24 = var_to >= var17;
+var18 = var24;
+goto RET_LABEL19;
+RET_LABEL19:(void)0;
+}
+var_25 = var18;
+if (var18){
+var26 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:List[nullable Object]>*/;
+{ /* Inline kernel#Int#< (var_to,var26) */
+/* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
+/* <var26:Int> isa OTHER */
+var29 = 1; /* easy <var26:Int> isa OTHER*/
+if (!var29) {
+var_class_name32 = type_kernel__Int.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
+show_backtrace(1);
+}
+var33 = var_to < var26;
+var27 = var33;
+goto RET_LABEL28;
+RET_LABEL28:(void)0;
+}
+var16 = var27;
+} else {
+var16 = var_25;
+}
+var_34 = var16;
+if (var16){