+long var14 /* : Int */;
+val* var_v0 /* var v0: Array[Int] */;
+val* var15 /* : Array[Int] */;
+long var16 /* : Int */;
+short int var18 /* : Bool */;
+int cltype19;
+int idtype20;
+const char* var_class_name21;
+long var22 /* : Int */;
+val* var_v1 /* var v1: Array[Int] */;
+long var_j /* var j: Int */;
+long var_ /* var : Int */;
+short int var23 /* : Bool */;
+short int var25 /* : Bool */;
+int cltype26;
+int idtype27;
+const char* var_class_name28;
+short int var29 /* : Bool */;
+val* var30 /* : nullable Object */;
+long var31 /* : Int */;
+long var_i /* var i: Int */;
+long var_32 /* var : Int */;
+short int var33 /* : Bool */;
+short int var35 /* : Bool */;
+int cltype36;
+int idtype37;
+const char* var_class_name38;
+short int var39 /* : Bool */;
+long var41 /* : Int */;
+short int var43 /* : Bool */;
+int cltype44;
+int idtype45;
+const char* var_class_name46;
+long var47 /* : Int */;
+val* var48 /* : nullable Object */;
+long var_j49 /* var j: Int */;
+long var_50 /* var : Int */;
+short int var51 /* : Bool */;
+short int var53 /* : Bool */;
+int cltype54;
+int idtype55;
+const char* var_class_name56;
+short int var57 /* : Bool */;
+val* var59 /* : nullable Object */;
+long var60 /* : Int */;
+short int var62 /* : Bool */;
+int cltype63;
+int idtype64;
+const char* var_class_name65;
+long var66 /* : Int */;
+long var67 /* : Int */;
+long var_cost1 /* var cost1: Int */;
+long var68 /* : Int */;
+short int var70 /* : Bool */;
+int cltype71;
+int idtype72;
+const char* var_class_name73;
+long var74 /* : Int */;
+val* var75 /* : nullable Object */;
+long var76 /* : Int */;
+short int var78 /* : Bool */;
+int cltype79;
+int idtype80;
+const char* var_class_name81;
+long var82 /* : Int */;
+long var83 /* : Int */;
+long var_cost2 /* var cost2: Int */;
+val* var84 /* : nullable Object */;
+long var85 /* : Int */;
+long var_cost3 /* var cost3: Int */;
+uint32_t var86 /* : Char */;
+uint32_t var87 /* : Char */;
+short int var88 /* : Bool */;
+short int var90 /* : Bool */;
+short int var91 /* : Bool */;
+long var92 /* : Int */;
+short int var94 /* : Bool */;
+int cltype95;
+int idtype96;
+const char* var_class_name97;
+long var98 /* : Int */;
+long var99 /* : Int */;
+short int var101 /* : Bool */;
+int cltype102;
+int idtype103;
+const char* var_class_name104;
+long var105 /* : Int */;
+long var106 /* : Int */;
+long var107 /* : Int */;
+val* var108 /* : nullable Object */;
+long var109 /* : Int */;
+val* var_tmp /* var tmp: Array[Int] */;
+long var110 /* : Int */;
+val* var111 /* : nullable Object */;
+long var112 /* : Int */;
+var_other = p0;
+{
+var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Text__length]))(self); /* length on <self:Text>*/
+}
+var_slen = var1;
+{
+var2 = ((long(*)(val* self))(var_other->class->vft[COLOR_core__abstract_text__Text__length]))(var_other); /* length on <var_other:String>*/
+}
+var_olen = var2;
+{
+{ /* Inline kernel$Int$== (var_slen,0l) on <var_slen:Int> */
+var5 = var_slen == 0l;
+var3 = var5;
+goto RET_LABEL4;
+RET_LABEL4:(void)0;
+}
+}
+if (var3){
+var = var_olen;
+goto RET_LABEL;
+} else {
+}
+{
+{ /* Inline kernel$Int$== (var_olen,0l) on <var_olen:Int> */
+var8 = var_olen == 0l;
+var6 = var8;
+goto RET_LABEL7;
+RET_LABEL7:(void)0;
+}
+}
+if (var6){
+var = var_slen;
+goto RET_LABEL;
+} else {
+}
+{
+var9 = ((short int(*)(val* self, val* p0))(self->class->vft[COLOR_core__kernel__Object___61d_61d]))(self, var_other); /* == on <self:Text>*/
+}
+if (var9){
+var = 0l;
+goto RET_LABEL;
+} else {
+}
+var10 = NEW_core__Array(&type_core__Array__core__Int);
+{
+{ /* Inline kernel$Int$+ (var_olen,1l) on <var_olen:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var13 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var13)) {
+var_class_name = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var14 = var_olen + 1l;
+var11 = var14;
+goto RET_LABEL12;
+RET_LABEL12:(void)0;
+}
+}
+{
+core___core__Array___with_capacity(var10, var11); /* Direct call array$Array$with_capacity on <var10:Array[Int]>*/
+}
+var_v0 = var10;
+var15 = NEW_core__Array(&type_core__Array__core__Int);
+{
+{ /* Inline kernel$Int$+ (var_olen,1l) on <var_olen:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var18 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var18)) {
+var_class_name21 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var22 = var_olen + 1l;
+var16 = var22;
+goto RET_LABEL17;
+RET_LABEL17:(void)0;
+}
+}
+{
+core___core__Array___with_capacity(var15, var16); /* Direct call array$Array$with_capacity on <var15:Array[Int]>*/
+}
+var_v1 = var15;
+var_j = 0l;
+var_ = var_olen;
+for(;;) {
+{
+{ /* Inline kernel$Int$<= (var_j,var_) on <var_j:Int> */
+/* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
+/* <var_:Int> isa OTHER */
+var25 = 1; /* easy <var_:Int> isa OTHER*/
+if (unlikely(!var25)) {
+var_class_name28 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
+fatal_exit(1);
+}
+var29 = var_j <= var_;
+var23 = var29;
+goto RET_LABEL24;
+RET_LABEL24:(void)0;
+}
+}
+if (var23){
+} else {
+goto BREAK_label;
+}
+{
+var30 = (val*)(var_j<<2|1);
+core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_v0, var_j, var30); /* Direct call array$Array$[]= on <var_v0:Array[Int]>*/
+}
+{
+var31 = core___core__Int___Discrete__successor(var_j, 1l);
+}
+var_j = var31;
+}
+BREAK_label: (void)0;
+var_i = 0l;
+var_32 = var_slen;
+for(;;) {
+{
+{ /* Inline kernel$Int$< (var_i,var_32) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var_32:Int> isa OTHER */
+/* <var_32:Int> isa OTHER */
+var35 = 1; /* easy <var_32:Int> isa OTHER*/
+if (unlikely(!var35)) {
+var_class_name38 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
+fatal_exit(1);
+}
+var39 = var_i < var_32;
+var33 = var39;
+goto RET_LABEL34;
+RET_LABEL34:(void)0;
+}
+}
+if (var33){
+} else {
+goto BREAK_label40;
+}
+{
+{ /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var43 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var43)) {
+var_class_name46 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var47 = var_i + 1l;
+var41 = var47;
+goto RET_LABEL42;
+RET_LABEL42:(void)0;
+}
+}
+{
+var48 = (val*)(var41<<2|1);
+core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_v1, 0l, var48); /* Direct call array$Array$[]= on <var_v1:Array[Int]>*/
+}
+var_j49 = 0l;
+var_50 = var_olen;
+for(;;) {
+{
+{ /* Inline kernel$Int$< (var_j49,var_50) on <var_j49:Int> */
+/* Covariant cast for argument 0 (i) <var_50:Int> isa OTHER */
+/* <var_50:Int> isa OTHER */
+var53 = 1; /* easy <var_50:Int> isa OTHER*/
+if (unlikely(!var53)) {
+var_class_name56 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
+fatal_exit(1);
+}
+var57 = var_j49 < var_50;
+var51 = var57;
+goto RET_LABEL52;
+RET_LABEL52:(void)0;
+}
+}
+if (var51){
+} else {
+goto BREAK_label58;
+}
+{
+var59 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_v1, var_j49);
+}
+{
+{ /* Inline kernel$Int$+ (var59,1l) on <var59:nullable Object(Int)> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var62 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var62)) {
+var_class_name65 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var66 = (long)(var59)>>2;
+var67 = var66 + 1l;
+var60 = var67;
+goto RET_LABEL61;
+RET_LABEL61:(void)0;
+}
+}
+var_cost1 = var60;
+{
+{ /* Inline kernel$Int$+ (var_j49,1l) on <var_j49:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var70 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var70)) {
+var_class_name73 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var74 = var_j49 + 1l;
+var68 = var74;
+goto RET_LABEL69;
+RET_LABEL69:(void)0;
+}
+}
+{
+var75 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_v0, var68);
+}
+{
+{ /* Inline kernel$Int$+ (var75,1l) on <var75:nullable Object(Int)> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var78 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var78)) {
+var_class_name81 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var82 = (long)(var75)>>2;
+var83 = var82 + 1l;
+var76 = var83;
+goto RET_LABEL77;
+RET_LABEL77:(void)0;
+}
+}
+var_cost2 = var76;
+{
+var84 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_v0, var_j49);
+}
+var85 = (long)(var84)>>2;
+var_cost3 = var85;
+{
+var86 = ((uint32_t(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(self, var_i); /* [] on <self:Text>*/
+}
+{
+var87 = ((uint32_t(*)(val* self, long p0))(var_other->class->vft[COLOR_core__abstract_text__Text___91d_93d]))(var_other, var_j49); /* [] on <var_other:String>*/
+}
+{
+{ /* Inline kernel$Char$!= (var86,var87) on <var86:Char> */
+var90 = var86 == var87;
+var91 = !var90;
+var88 = var91;
+goto RET_LABEL89;
+RET_LABEL89:(void)0;
+}
+}
+if (var88){
+{
+{ /* Inline kernel$Int$+ (var_cost3,1l) on <var_cost3:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var94 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var94)) {
+var_class_name97 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name97);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var98 = var_cost3 + 1l;
+var92 = var98;
+goto RET_LABEL93;
+RET_LABEL93:(void)0;
+}
+}
+var_cost3 = var92;
+} else {
+}
+{
+{ /* Inline kernel$Int$+ (var_j49,1l) on <var_j49:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var101 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var101)) {
+var_class_name104 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name104);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var105 = var_j49 + 1l;
+var99 = var105;
+goto RET_LABEL100;
+RET_LABEL100:(void)0;
+}
+}
+{
+var106 = core___core__Int___Comparable__min(var_cost1, var_cost2);
+}
+{
+var107 = core___core__Int___Comparable__min(var106, var_cost3);
+}
+{
+var108 = (val*)(var107<<2|1);
+core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_v1, var99, var108); /* Direct call array$Array$[]= on <var_v1:Array[Int]>*/
+}
+{
+var109 = core___core__Int___Discrete__successor(var_j49, 1l);
+}
+var_j49 = var109;
+}
+BREAK_label58: (void)0;
+var_tmp = var_v1;
+var_v1 = var_v0;
+var_v0 = var_tmp;
+{
+var110 = core___core__Int___Discrete__successor(var_i, 1l);
+}
+var_i = var110;
+}
+BREAK_label40: (void)0;
+{
+var111 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_v0, var_olen);
+}
+var112 = (long)(var111)>>2;
+var = var112;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method abstract_text$FlatText$items for (self: FlatText): CString */
+char* core___core__FlatText___items(val* self) {
+char* var /* : CString */;
+char* var1 /* : CString */;
+var1 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatText> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method abstract_text$FlatText$length for (self: FlatText): Int */
+long core___core__FlatText___Text__length(val* self) {
+long var /* : Int */;
+long var1 /* : Int */;
+var1 = self->attrs[COLOR_core__abstract_text__FlatText___length].l; /* _length on <self:FlatText> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method abstract_text$FlatText$length= for (self: FlatText, Int) */
+void core___core__FlatText___length_61d(val* self, long p0) {
+self->attrs[COLOR_core__abstract_text__FlatText___length].l = p0; /* _length on <self:FlatText> */
+RET_LABEL:;
+}
+/* method abstract_text$FlatText$byte_length for (self: FlatText): Int */
+long core___core__FlatText___Text__byte_length(val* self) {
+long var /* : Int */;
+long var1 /* : Int */;
+var1 = self->attrs[COLOR_core__abstract_text__FlatText___byte_length].l; /* _byte_length on <self:FlatText> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method abstract_text$FlatText$byte_length= for (self: FlatText, Int) */
+void core___core__FlatText___byte_length_61d(val* self, long p0) {
+self->attrs[COLOR_core__abstract_text__FlatText___byte_length].l = p0; /* _byte_length on <self:FlatText> */
+RET_LABEL:;
+}
+/* method abstract_text$StringCharView$target for (self: StringCharView): Text */
+val* core__abstract_text___core__abstract_text__StringCharView___target(val* self) {
+val* var /* : Text */;
+val* var1 /* : Text */;
+var1 = self->attrs[COLOR_core__abstract_text__StringCharView___target].val; /* _target on <self:StringCharView> */
+if (unlikely(var1 == NULL)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
+PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_text, 1320);
+fatal_exit(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method abstract_text$StringCharView$target= for (self: StringCharView, Text) */
+void core__abstract_text___core__abstract_text__StringCharView___target_61d(val* self, val* p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+/* Covariant cast for argument 0 (target) <p0:Text> isa SELFTYPE */
+/* <p0:Text> isa SELFTYPE */
+type_struct = self->type->resolution_table->types[COLOR_core__abstract_text__StringCharView__SELFTYPE];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= p0->type->table_size) {
+var = 0;
+} else {
+var = p0->type->type_table[cltype] == idtype;
+}