-long var2 /* : Int */;
-long var3 /* : Int */;
-/* Covariant cast for argument 0 (item) <p0:nullable Object> isa SequenceRead#0 */
-/* <p0:nullable Object> isa SequenceRead#0 */
-type_struct = self->type->resolution_table->types[COLOR_abstract_collection__SequenceRead_FT0];
-cltype = type_struct->color;
-idtype = type_struct->id;
-is_nullable = type_struct->is_nullable;
-if(p0 == NULL) {
-var1 = is_nullable;
-} else {
-if(cltype >= p0->type->table_size) {
-var1 = 0;
-} else {
-var1 = p0->type->type_table[cltype] == idtype;
-}
-}
-if (!var1) {
-var_class_name = p0 == NULL ? "null" : p0->type->name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SequenceRead#0", var_class_name);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/array.nit", 62);
-show_backtrace(1);
-}
-var_item = p0;
-var2 = 0;
-var3 = ((long (*)(val*, val*, long))(self->class->vft[COLOR_array__AbstractArrayRead__index_of_from]))(self, var_item, var2) /* index_of_from on <self:AbstractArrayRead[nullable Object]>*/;
-var = var3;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method array#AbstractArrayRead#index_of for (self: Object, nullable Object): Int */
-long VIRTUAL_array__AbstractArrayRead__index_of(val* self, val* p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = array__AbstractArrayRead__index_of(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method array#AbstractArrayRead#last_index_of for (self: AbstractArrayRead[nullable Object], nullable Object): Int */
-long array__AbstractArrayRead__last_index_of(val* self, val* p0) {
-long var /* : Int */;
-short int var1 /* : Bool */;
-int cltype;
-int idtype;
-const struct type* type_struct;
-short int is_nullable;
-const char* var_class_name;
-val* var_item /* var item: nullable Object */;
-long var2 /* : Int */;
-long var3 /* : Int */;
-long var4 /* : Int */;
-long var6 /* : Int */;
-long var7 /* : Int */;
-/* Covariant cast for argument 0 (item) <p0:nullable Object> isa AbstractArrayRead#0 */
-/* <p0:nullable Object> isa AbstractArrayRead#0 */
-type_struct = self->type->resolution_table->types[COLOR_array__AbstractArrayRead_FT0];
-cltype = type_struct->color;
-idtype = type_struct->id;
-is_nullable = type_struct->is_nullable;
-if(p0 == NULL) {
-var1 = is_nullable;
-} else {
-if(cltype >= p0->type->table_size) {
-var1 = 0;
-} else {
-var1 = p0->type->type_table[cltype] == idtype;
-}
-}
-if (!var1) {
-var_class_name = p0 == NULL ? "null" : p0->type->name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArrayRead#0", var_class_name);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/array.nit", 64);
-show_backtrace(1);
-}
-var_item = p0;
-var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:AbstractArrayRead[nullable Object]>*/;
-var3 = 1;
-{ /* Inline kernel#Int#- (var2,var3) */
-var6 = var2 - var3;
-var4 = var6;
-goto RET_LABEL5;
-RET_LABEL5:(void)0;
-}
-var7 = ((long (*)(val*, val*, long))(self->class->vft[COLOR_array__AbstractArrayRead__last_index_of_from]))(self, var_item, var4) /* last_index_of_from on <self:AbstractArrayRead[nullable Object]>*/;
-var = var7;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method array#AbstractArrayRead#last_index_of for (self: Object, nullable Object): Int */
-long VIRTUAL_array__AbstractArrayRead__last_index_of(val* self, val* p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = array__AbstractArrayRead__last_index_of(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method array#AbstractArrayRead#index_of_from for (self: AbstractArrayRead[nullable Object], nullable Object, Int): Int */
-long array__AbstractArrayRead__index_of_from(val* self, val* p0, long p1) {
-long var /* : Int */;
-short int var1 /* : Bool */;
-int cltype;
-int idtype;
-const struct type* type_struct;
-short int is_nullable;
-const char* var_class_name;
-val* var_item /* var item: nullable Object */;
-long var_pos /* var pos: Int */;
-long var_i /* var i: Int */;
-long var2 /* : Int */;
-long var_len /* var len: Int */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
-int cltype6;
-int idtype7;
-const char* var_class_name8;
-short int var9 /* : Bool */;
-val* var10 /* : nullable Object */;
-short int var11 /* : Bool */;
-long var12 /* : Int */;
-long var13 /* : Int */;
-long var15 /* : Int */;
-long var16 /* : Int */;
-long var17 /* : Int */;
-long var19 /* : Int */;
-/* Covariant cast for argument 0 (item) <p0:nullable Object> isa AbstractArrayRead#0 */
-/* <p0:nullable Object> isa AbstractArrayRead#0 */
-type_struct = self->type->resolution_table->types[COLOR_array__AbstractArrayRead_FT0];
-cltype = type_struct->color;
-idtype = type_struct->id;
-is_nullable = type_struct->is_nullable;
-if(p0 == NULL) {
-var1 = is_nullable;
-} else {
-if(cltype >= p0->type->table_size) {
-var1 = 0;
-} else {
-var1 = p0->type->type_table[cltype] == idtype;
-}
-}
-if (!var1) {
-var_class_name = p0 == NULL ? "null" : p0->type->name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArrayRead#0", var_class_name);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/array.nit", 68);
-show_backtrace(1);
-}
-var_item = p0;
-var_pos = p1;
-var_i = var_pos;
-var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:AbstractArrayRead[nullable Object]>*/;
-var_len = var2;
-for(;;) {
-{ /* Inline kernel#Int#< (var_i,var_len) */
-/* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
-/* <var_len:Int> isa OTHER */
-var5 = 1; /* easy <var_len:Int> isa OTHER*/
-if (!var5) {
-var_class_name8 = type_kernel__Int.name;
-fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
-show_backtrace(1);
-}
-var9 = var_i < var_len;
-var3 = var9;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
-}
-if (!var3) break;
-var10 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_i) /* [] on <self:AbstractArrayRead[nullable Object]>*/;
-if (var10 == NULL) {
-var11 = (var_item == NULL);
-} else {
-var11 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_kernel__Object___61d_61d]))(var10, var_item) /* == on <var10:nullable Object>*/;
-}
-if (var11){
-var = var_i;
-goto RET_LABEL;
-} else {
-}
-var12 = 1;
-{ /* Inline kernel#Int#+ (var_i,var12) */
-var15 = var_i + var12;
-var13 = var15;
-goto RET_LABEL14;
-RET_LABEL14:(void)0;
-}
-var_i = var13;
-CONTINUE_label: (void)0;
-}
-BREAK_label: (void)0;
-var16 = 1;
-{ /* Inline kernel#Int#unary - (var16) */
-var19 = -var16;
-var17 = var19;
-goto RET_LABEL18;
-RET_LABEL18:(void)0;
-}
-var = var17;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method array#AbstractArrayRead#index_of_from for (self: Object, nullable Object, Int): Int */
-long VIRTUAL_array__AbstractArrayRead__index_of_from(val* self, val* p0, long p1) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = array__AbstractArrayRead__index_of_from(self, p0, p1);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method array#AbstractArrayRead#last_index_of_from for (self: AbstractArrayRead[nullable Object], nullable Object, Int): Int */
-long array__AbstractArrayRead__last_index_of_from(val* self, val* p0, long p1) {
-long var /* : Int */;
-short int var1 /* : Bool */;
-int cltype;
-int idtype;
-const struct type* type_struct;
-short int is_nullable;
-const char* var_class_name;
-val* var_item /* var item: nullable Object */;
-long var_pos /* var pos: Int */;
-long var_i /* var i: Int */;