+long var15 /* : Int */;
+short int var17 /* : Bool */;
+int cltype18;
+int idtype19;
+const char* var_class_name20;
+long var21 /* : Int */;
+long var22 /* : Int */;
+short int var24 /* : Bool */;
+int cltype25;
+int idtype26;
+const char* var_class_name27;
+long var28 /* : Int */;
+long var29 /* : Int */;
+short int var31 /* : Bool */;
+int cltype32;
+int idtype33;
+const char* var_class_name34;
+long var35 /* : Int */;
+char* var36 /* : NativeString */;
+long var37 /* : Int */;
+short int var39 /* : Bool */;
+int cltype40;
+int idtype41;
+const char* var_class_name42;
+long var43 /* : Int */;
+char* var44 /* : NativeString */;
+char* var46 /* : NativeString */;
+char* var_ns /* var ns: NativeString */;
+long var_off /* var off: Int */;
+short int var48 /* : Bool */;
+short int var50 /* : Bool */;
+int cltype51;
+int idtype52;
+const char* var_class_name53;
+short int var54 /* : Bool */;
+val* var55 /* : nullable Object */;
+val* var57 /* : Object */;
+val* var_tmp /* var tmp: String */;
+long var58 /* : Int */;
+long var_tpl /* var tpl: Int */;
+short int var59 /* : Bool */;
+int cltype60;
+int idtype61;
+char* var62 /* : NativeString */;
+char* var64 /* : NativeString */;
+long var65 /* : Int */;
+long var67 /* : Int */;
+long var69 /* : Int */;
+short int var71 /* : Bool */;
+int cltype72;
+int idtype73;
+const char* var_class_name74;
+long var75 /* : Int */;
+val* var76 /* : Iterator[FlatText] */;
+val* var_ /* var : Iterator[FlatText] */;
+val* var77 /* : Iterator[nullable Object] */;
+val* var_78 /* var : Iterator[FlatText] */;
+short int var79 /* : Bool */;
+val* var80 /* : nullable Object */;
+val* var_j /* var j: FlatText */;
+short int var81 /* : Bool */;
+int cltype82;
+int idtype83;
+const char* var_class_name84;
+val* var_s /* var s: FlatString */;
+long var85 /* : Int */;
+long var87 /* : Int */;
+long var_slen /* var slen: Int */;
+char* var88 /* : NativeString */;
+char* var90 /* : NativeString */;
+long var91 /* : Int */;
+long var93 /* : Int */;
+long var95 /* : Int */;
+short int var97 /* : Bool */;
+int cltype98;
+int idtype99;
+const char* var_class_name100;
+long var101 /* : Int */;
+long var103 /* : Int */;
+short int var105 /* : Bool */;
+int cltype106;
+int idtype107;
+const char* var_class_name108;
+long var109 /* : Int */;
+val* var111 /* : FlatString */;
+/* <self:NativeArray[nullable Object]> isa NativeArray[String] */
+cltype = type_standard__NativeArray__standard__String.color;
+idtype = type_standard__NativeArray__standard__String.id;
+if(cltype >= self->type->table_size) {
+var1 = 0;
+} else {
+var1 = self->type->type_table[cltype] == idtype;
+}
+if (unlikely(!var1)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 2346);
+fatal_exit(1);
+}
+{
+{ /* Inline array#NativeArray#length (self) on <self:NativeArray[nullable Object](NativeArray[String])> */
+var4 = ((struct instance_standard__NativeArray*)self)->length;
+var2 = var4;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+}
+var_l = var2;
+var_na = self;
+var_i = 0l;
+var_sl = 0l;
+var_mypos = 0l;
+for(;;) {
+{
+{ /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
+/* <var_l:Int> isa OTHER */
+var7 = 1; /* easy <var_l:Int> isa OTHER*/
+if (unlikely(!var7)) {
+var_class_name = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
+fatal_exit(1);
+}
+var10 = var_i < var_l;
+var5 = var10;
+goto RET_LABEL6;
+RET_LABEL6:(void)0;
+}
+}
+if (var5){
+{
+{ /* Inline array#NativeArray#[] (var_na,var_i) on <var_na:NativeArray[String]> */
+var13 = ((struct instance_standard__NativeArray*)var_na)->values[var_i];
+var11 = var13;
+goto RET_LABEL12;
+RET_LABEL12:(void)0;
+}
+}
+{
+var14 = ((long(*)(val* self))(var11->class->vft[COLOR_standard__string__Text__length]))(var11); /* length on <var11:nullable Object(String)>*/
+}
+{
+{ /* Inline kernel#Int#+ (var_sl,var14) on <var_sl:Int> */
+/* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
+/* <var14:Int> isa OTHER */
+var17 = 1; /* easy <var14:Int> isa OTHER*/
+if (unlikely(!var17)) {
+var_class_name20 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
+fatal_exit(1);
+}
+var21 = var_sl + var14;
+var15 = var21;
+goto RET_LABEL16;
+RET_LABEL16:(void)0;
+}
+}
+var_sl = var15;
+{
+{ /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var24 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var24)) {
+var_class_name27 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
+fatal_exit(1);
+}
+var28 = var_i + 1l;
+var22 = var28;
+goto RET_LABEL23;
+RET_LABEL23:(void)0;
+}
+}
+var_i = var22;
+{
+{ /* Inline kernel#Int#+ (var_mypos,1l) on <var_mypos:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var31 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var31)) {
+var_class_name34 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
+fatal_exit(1);
+}
+var35 = var_mypos + 1l;
+var29 = var35;
+goto RET_LABEL30;
+RET_LABEL30:(void)0;
+}
+}
+var_mypos = var29;
+} else {
+goto BREAK_label;
+}
+}
+BREAK_label: (void)0;
+var36 = NULL/*special!*/;
+{
+{ /* Inline kernel#Int#+ (var_sl,1l) on <var_sl:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var39 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var39)) {
+var_class_name42 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
+fatal_exit(1);
+}
+var43 = var_sl + 1l;
+var37 = var43;
+goto RET_LABEL38;
+RET_LABEL38:(void)0;
+}
+}
+{
+{ /* Inline string#NativeString#new (var36,var37) on <var36:NativeString> */
+var46 = (char*)nit_alloc(var37);
+var44 = var46;
+goto RET_LABEL45;
+RET_LABEL45:(void)0;
+}
+}
+var_ns = var44;
+{
+{ /* Inline string#NativeString#[]= (var_ns,var_sl,'\000') on <var_ns:NativeString> */
+var_ns[var_sl]=(unsigned char)'\000';
+RET_LABEL47:(void)0;
+}
+}
+var_i = 0l;
+var_off = 0l;
+for(;;) {
+{
+{ /* Inline kernel#Int#< (var_i,var_mypos) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var_mypos:Int> isa OTHER */
+/* <var_mypos:Int> isa OTHER */
+var50 = 1; /* easy <var_mypos:Int> isa OTHER*/
+if (unlikely(!var50)) {
+var_class_name53 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
+fatal_exit(1);
+}
+var54 = var_i < var_mypos;
+var48 = var54;
+goto RET_LABEL49;
+RET_LABEL49:(void)0;
+}
+}
+if (var48){
+{
+{ /* Inline array#NativeArray#[] (var_na,var_i) on <var_na:NativeArray[String]> */
+var57 = ((struct instance_standard__NativeArray*)var_na)->values[var_i];
+var55 = var57;
+goto RET_LABEL56;
+RET_LABEL56:(void)0;
+}
+}
+var_tmp = var55;
+{
+var58 = ((long(*)(val* self))(var_tmp->class->vft[COLOR_standard__string__Text__length]))(var_tmp); /* length on <var_tmp:String>*/
+}
+var_tpl = var58;
+/* <var_tmp:String> isa FlatString */
+cltype60 = type_standard__FlatString.color;
+idtype61 = type_standard__FlatString.id;
+if(cltype60 >= var_tmp->type->table_size) {
+var59 = 0;
+} else {
+var59 = var_tmp->type->type_table[cltype60] == idtype61;
+}
+if (var59){
+{
+{ /* Inline string#FlatText#items (var_tmp) on <var_tmp:String(FlatString)> */
+var64 = var_tmp->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <var_tmp:String(FlatString)> */
+var62 = var64;
+RET_LABEL63:(void)0;
+}
+}
+{
+{ /* Inline string#FlatString#index_from (var_tmp) on <var_tmp:String(FlatString)> */
+var67 = var_tmp->attrs[COLOR_standard__string__FlatString___index_from].l; /* _index_from on <var_tmp:String(FlatString)> */
+var65 = var67;
+RET_LABEL66:(void)0;
+}
+}
+{
+{ /* Inline string#NativeString#copy_to (var62,var_ns,var_tpl,var65,var_off) on <var62:NativeString> */
+memmove(var_ns+var_off,var62+var65,var_tpl);
+RET_LABEL68:(void)0;
+}
+}
+{
+{ /* Inline kernel#Int#+ (var_off,var_tpl) on <var_off:Int> */
+/* Covariant cast for argument 0 (i) <var_tpl:Int> isa OTHER */
+/* <var_tpl:Int> isa OTHER */
+var71 = 1; /* easy <var_tpl:Int> isa OTHER*/
+if (unlikely(!var71)) {
+var_class_name74 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
+fatal_exit(1);
+}
+var75 = var_off + var_tpl;
+var69 = var75;
+goto RET_LABEL70;
+RET_LABEL70:(void)0;
+}
+}
+var_off = var69;
+} else {
+{
+var76 = ((val*(*)(val* self))(var_tmp->class->vft[COLOR_standard__string__Text__substrings]))(var_tmp); /* substrings on <var_tmp:String>*/
+}
+var_ = var76;
+{
+var77 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Iterator__iterator]))(var_); /* iterator on <var_:Iterator[FlatText]>*/
+}
+var_78 = var77;
+for(;;) {
+{
+var79 = ((short int(*)(val* self))((((long)var_78&3)?class_info[((long)var_78&3)]:var_78->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_78); /* is_ok on <var_78:Iterator[FlatText]>*/
+}
+if (var79){
+{
+var80 = ((val*(*)(val* self))((((long)var_78&3)?class_info[((long)var_78&3)]:var_78->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_78); /* item on <var_78:Iterator[FlatText]>*/
+}
+var_j = var80;
+/* <var_j:FlatText> isa FlatString */
+cltype82 = type_standard__FlatString.color;
+idtype83 = type_standard__FlatString.id;
+if(cltype82 >= var_j->type->table_size) {
+var81 = 0;
+} else {
+var81 = var_j->type->type_table[cltype82] == idtype83;
+}
+if (unlikely(!var81)) {
+var_class_name84 = var_j == NULL ? "null" : var_j->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name84);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__string, 2369);
+fatal_exit(1);
+}
+var_s = var_j;
+{
+{ /* Inline string#FlatText#length (var_s) on <var_s:FlatString> */
+var87 = var_s->attrs[COLOR_standard__string__FlatText___length].l; /* _length on <var_s:FlatString> */
+var85 = var87;
+RET_LABEL86:(void)0;
+}
+}
+var_slen = var85;
+{
+{ /* Inline string#FlatText#items (var_s) on <var_s:FlatString> */
+var90 = var_s->attrs[COLOR_standard__string__FlatText___items].str; /* _items on <var_s:FlatString> */
+var88 = var90;
+RET_LABEL89:(void)0;
+}
+}
+{
+{ /* Inline string#FlatString#index_from (var_s) on <var_s:FlatString> */
+var93 = var_s->attrs[COLOR_standard__string__FlatString___index_from].l; /* _index_from on <var_s:FlatString> */
+var91 = var93;
+RET_LABEL92:(void)0;
+}
+}
+{
+{ /* Inline string#NativeString#copy_to (var88,var_ns,var_slen,var91,var_off) on <var88:NativeString> */
+memmove(var_ns+var_off,var88+var91,var_slen);
+RET_LABEL94:(void)0;
+}
+}
+{
+{ /* Inline kernel#Int#+ (var_off,var_slen) on <var_off:Int> */
+/* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
+/* <var_slen:Int> isa OTHER */
+var97 = 1; /* easy <var_slen:Int> isa OTHER*/
+if (unlikely(!var97)) {
+var_class_name100 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name100);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
+fatal_exit(1);
+}
+var101 = var_off + var_slen;
+var95 = var101;
+goto RET_LABEL96;
+RET_LABEL96:(void)0;
+}
+}
+var_off = var95;
+{
+((void(*)(val* self))((((long)var_78&3)?class_info[((long)var_78&3)]:var_78->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_78); /* next on <var_78:Iterator[FlatText]>*/
+}
+} else {
+goto BREAK_label102;
+}
+}
+BREAK_label102: (void)0;
+{
+((void(*)(val* self))((((long)var_78&3)?class_info[((long)var_78&3)]:var_78->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_78); /* finish on <var_78:Iterator[FlatText]>*/
+}
+}
+{
+{ /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var105 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var105)) {
+var_class_name108 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name108);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
+fatal_exit(1);
+}
+var109 = var_i + 1l;
+var103 = var109;
+goto RET_LABEL104;
+RET_LABEL104:(void)0;
+}
+}
+var_i = var103;
+} else {
+goto BREAK_label110;
+}
+}
+BREAK_label110: (void)0;
+{
+var111 = standard___standard__NativeString___to_s_with_length(var_ns, var_sl);
+}
+var = var111;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method string#NativeString#new for (self: NativeString, Int): NativeString */
+char* standard___standard__NativeString___new(char* self, long p0) {
+char* var /* : NativeString */;
+char* var1 /* : NativeString */;
+var1 = (char*)nit_alloc(p0);
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method string#NativeString#[] for (self: NativeString, Int): Char */
+uint32_t standard___standard__NativeString____91d_93d(char* self, long p0) {
+uint32_t var /* : Char */;
+uint32_t var1 /* : Char */;
+var1 = (uint32_t)(unsigned char)self[p0];
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method string#NativeString#[]= for (self: NativeString, Int, Char) */
+void standard___standard__NativeString____91d_93d_61d(char* self, long p0, uint32_t p1) {
+self[p0]=(unsigned char)p1;
+RET_LABEL:;
+}
+/* method string#NativeString#copy_to for (self: NativeString, NativeString, Int, Int, Int) */
+void standard___standard__NativeString___copy_to(char* self, char* p0, long p1, long p2, long p3) {
+memmove(p0+p3,self+p2,p1);
+RET_LABEL:;
+}
+/* method string#NativeString#cstring_length for (self: NativeString): Int */
+long standard___standard__NativeString___cstring_length(char* self) {
+long var /* : Int */;
+long var_l /* var l: Int */;
+uint32_t var1 /* : Char */;
+uint32_t var3 /* : Char */;
+short int var4 /* : Bool */;
+short int var6 /* : Bool */;
+short int var7 /* : Bool */;
+long var8 /* : Int */;
+short int var10 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+long var11 /* : Int */;
+var_l = 0l;
+for(;;) {
+{
+{ /* Inline string#NativeString#[] (self,var_l) on <self:NativeString> */
+var3 = (uint32_t)(unsigned char)self[var_l];
+var1 = var3;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+}
+{
+{ /* Inline kernel#Char#!= (var1,'\000') on <var1:Char> */
+var6 = var1 == '\000';
+var7 = !var6;
+var4 = var7;
+goto RET_LABEL5;
+RET_LABEL5:(void)0;
+}
+}
+if (var4){
+{
+{ /* Inline kernel#Int#+ (var_l,1l) on <var_l:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var10 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var10)) {
+var_class_name = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
+fatal_exit(1);
+}
+var11 = var_l + 1l;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
+}
+}
+var_l = var8;
+} else {
+goto BREAK_label;
+}