csrc: regen for 32 bits platforms and Windows
[nit.git] / c_src / core__native.sep.1.c
index 1db81e5..133888f 100644 (file)
 #include "core__native.sep.0.h"
-/* method native#Byte#u8len for (self: Byte): Int */
-long core__native___Byte___u8len(unsigned char self) {
-long var /* : Int */;
-unsigned char var1 /* : Byte */;
-unsigned char var3 /* : Byte */;
-short int var4 /* : Bool */;
-short int var6 /* : Bool */;
-unsigned char var7 /* : Byte */;
-unsigned char var9 /* : Byte */;
-short int var10 /* : Bool */;
-short int var12 /* : Bool */;
-unsigned char var13 /* : Byte */;
-unsigned char var15 /* : Byte */;
-short int var16 /* : Bool */;
-short int var18 /* : Bool */;
-unsigned char var19 /* : Byte */;
-unsigned char var21 /* : Byte */;
-short int var22 /* : Bool */;
-short int var24 /* : Bool */;
-{
-{ /* Inline math#Byte#& (self,((unsigned char)0x80)) on <self:Byte> */
-var3 = self & ((unsigned char)0x80);
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-}
-{
-{ /* Inline kernel#Byte#== (var1,((unsigned char)0x00)) on <var1:Byte> */
-var6 = var1 == ((unsigned char)0x00);
-var4 = var6;
-goto RET_LABEL5;
-RET_LABEL5:(void)0;
-}
-}
-if (var4){
-var = 1l;
-goto RET_LABEL;
-} else {
-{
-{ /* Inline math#Byte#& (self,((unsigned char)0xe0)) on <self:Byte> */
-var9 = self & ((unsigned char)0xe0);
-var7 = var9;
-goto RET_LABEL8;
-RET_LABEL8:(void)0;
-}
-}
-{
-{ /* Inline kernel#Byte#== (var7,((unsigned char)0xc0)) on <var7:Byte> */
-var12 = var7 == ((unsigned char)0xc0);
-var10 = var12;
-goto RET_LABEL11;
-RET_LABEL11:(void)0;
-}
-}
-if (var10){
-var = 2l;
-goto RET_LABEL;
-} else {
-{
-{ /* Inline math#Byte#& (self,((unsigned char)0xf0)) on <self:Byte> */
-var15 = self & ((unsigned char)0xf0);
-var13 = var15;
-goto RET_LABEL14;
-RET_LABEL14:(void)0;
-}
-}
-{
-{ /* Inline kernel#Byte#== (var13,((unsigned char)0xe0)) on <var13:Byte> */
-var18 = var13 == ((unsigned char)0xe0);
-var16 = var18;
-goto RET_LABEL17;
-RET_LABEL17:(void)0;
-}
-}
-if (var16){
-var = 3l;
-goto RET_LABEL;
-} else {
-{
-{ /* Inline math#Byte#& (self,((unsigned char)0xf8)) on <self:Byte> */
-var21 = self & ((unsigned char)0xf8);
-var19 = var21;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
-}
-}
-{
-{ /* Inline kernel#Byte#== (var19,((unsigned char)0xf0)) on <var19:Byte> */
-var24 = var19 == ((unsigned char)0xf0);
-var22 = var24;
-goto RET_LABEL23;
-RET_LABEL23:(void)0;
-}
-}
-if (var22){
-var = 4l;
-goto RET_LABEL;
-} else {
-var = 1l;
+/* method native$UInt32$code_point for (self: UInt32): Char */
+uint32_t core__native___UInt32___code_point(uint32_t self) {
+uint32_t var /* : Char */;
+uint32_t var1 /* : Char */;
+var1 = core__native___UInt32_code_point___impl(self);
+var = var1;
 goto RET_LABEL;
-}
-}
-}
-}
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#new for (self: NativeString, Int): NativeString */
-char* core___core__NativeString___new(char* self, long p0) {
-char* var /* : NativeString */;
-char* var1 /* : NativeString */;
+/* method native$CString$new for (self: CString, Int): CString */
+char* core___core__CString___new(char* self, long p0) {
+char* var /* : CString */;
+char* var1 /* : CString */;
 var1 = (char*)nit_alloc(p0);
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#[] for (self: NativeString, Int): Byte */
-unsigned char core___core__NativeString____91d_93d(char* self, long p0) {
+/* method native$CString$[] for (self: CString, Int): Byte */
+unsigned char core___core__CString____91d_93d(char* self, long p0) {
 unsigned char var /* : Byte */;
 unsigned char var1 /* : Byte */;
 var1 = (unsigned char)((int)self[p0]);
@@ -127,23 +29,23 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#[]= for (self: NativeString, Int, Byte) */
-void core___core__NativeString____91d_93d_61d(char* self, long p0, unsigned char p1) {
+/* method native$CString$[]= for (self: CString, Int, Byte) */
+void core___core__CString____91d_93d_61d(char* self, long p0, unsigned char p1) {
 self[p0]=(unsigned char)p1;
 RET_LABEL:;
 }
-/* method native#NativeString#copy_to for (self: NativeString, NativeString, Int, Int, Int) */
-void core___core__NativeString___copy_to(char* self, char* p0, long p1, long p2, long p3) {
+/* method native$CString$copy_to for (self: CString, CString, Int, Int, Int) */
+void core___core__CString___copy_to(char* self, char* p0, long p1, long p2, long p3) {
 memmove(p0+p3,self+p2,p1);
 RET_LABEL:;
 }
-/* method native#NativeString#== for (self: NativeString, nullable Object): Bool */
-short int core___core__NativeString___core__kernel__Object___61d_61d(char* self, val* p0) {
+/* method native$CString$== for (self: CString, nullable Object): Bool */
+short int core___core__CString___core__kernel__Object___61d_61d(char* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-char* var2 /* : NativeString */;
-if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__NativeString)) {
-var2 = ((struct instance_core__NativeString*)p0)->value; /* autounbox from nullable Object to NativeString */;
+char* var2 /* : CString */;
+if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__CString)) {
+var2 = ((struct instance_core__CString*)p0)->value; /* autounbox from nullable Object to CString */;
 var1 = var2 == self;
 } else var1 = 0;
 var = var1;
@@ -151,13 +53,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#== for (self: Object, nullable Object): Bool */
-short int VIRTUAL_core___core__NativeString___core__kernel__Object___61d_61d(val* self, val* p0) {
+/* method native$CString$== for (self: Object, nullable Object): Bool */
+short int VIRTUAL_core___core__CString___core__kernel__Object___61d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
-{ /* Inline native#NativeString#== (self,p0) on <self:Object(NativeString)> */
-var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__NativeString*)self)->value == ((struct instance_core__NativeString*)p0)->value);
+{ /* Inline native$CString$== (self,p0) on <self:Object(CString)> */
+var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__CString*)self)->value == ((struct instance_core__CString*)p0)->value);
 var1 = var3;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -166,14 +68,14 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#!= for (self: NativeString, nullable Object): Bool */
-short int core___core__NativeString___core__kernel__Object___33d_61d(char* self, val* p0) {
+/* method native$CString$!= for (self: CString, nullable Object): Bool */
+short int core___core__CString___core__kernel__Object___33d_61d(char* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-char* var2 /* : NativeString */;
+char* var2 /* : CString */;
 short int var3 /* : Bool */;
-if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__NativeString)) {
-var2 = ((struct instance_core__NativeString*)p0)->value; /* autounbox from nullable Object to NativeString */;
+if ((p0 != NULL) && ((((long)p0&3)?class_info[((long)p0&3)]:p0->class) == &class_core__CString)) {
+var2 = ((struct instance_core__CString*)p0)->value; /* autounbox from nullable Object to CString */;
 var1 = var2 == self;
 } else var1 = 0;
 var3 = !var1;
@@ -182,14 +84,14 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#!= for (self: Object, nullable Object): Bool */
-short int VIRTUAL_core___core__NativeString___core__kernel__Object___33d_61d(val* self, val* p0) {
+/* method native$CString$!= for (self: Object, nullable Object): Bool */
+short int VIRTUAL_core___core__CString___core__kernel__Object___33d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-{ /* Inline native#NativeString#!= (self,p0) on <self:Object(NativeString)> */
-var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__NativeString*)self)->value == ((struct instance_core__NativeString*)p0)->value);
+{ /* Inline native$CString$!= (self,p0) on <self:Object(CString)> */
+var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__CString*)self)->value == ((struct instance_core__CString*)p0)->value);
 var4 = !var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -199,8 +101,8 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#cstring_length for (self: NativeString): Int */
-long core___core__NativeString___cstring_length(char* self) {
+/* method native$CString$cstring_length for (self: CString): Int */
+long core___core__CString___cstring_length(char* self) {
 long var /* : Int */;
 long var_l /* var l: Int */;
 unsigned char var1 /* : Byte */;
@@ -217,7 +119,7 @@ long var11 /* : Int */;
 var_l = 0l;
 for(;;) {
 {
-{ /* Inline native#NativeString#[] (self,var_l) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var_l) on <self:CString> */
 var3 = (unsigned char)((int)self[var_l]);
 var1 = var3;
 goto RET_LABEL2;
@@ -225,7 +127,7 @@ RET_LABEL2:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#!= (var1,((unsigned char)0x00)) on <var1:Byte> */
+{ /* Inline kernel$Byte$!= (var1,((unsigned char)0x00)) on <var1:Byte> */
 var6 = var1 == ((unsigned char)0x00);
 var7 = !var6;
 var4 = var7;
@@ -235,14 +137,14 @@ RET_LABEL5:(void)0;
 }
 if (var4){
 {
-{ /* Inline kernel#Int#+ (var_l,1l) on <var_l:Int> */
+{ /* 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_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, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var11 = var_l + 1l;
@@ -262,18 +164,18 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#atof for (self: NativeString): Float */
-double core___core__NativeString___atof(char* self) {
+/* method native$CString$atof for (self: CString): Float */
+double core___core__CString___atof(char* self) {
 double var /* : Float */;
 double var1 /* : Float */;
-var1 = native___NativeString_atof___impl(self);
+var1 = core__native___CString_atof___impl(self);
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#char_at for (self: NativeString, Int): Char */
-uint32_t core___core__NativeString___char_at(char* self, long p0) {
+/* method native$CString$char_at for (self: CString, Int): Char */
+uint32_t core___core__CString___char_at(char* self, long p0) {
 uint32_t var /* : Char */;
 long var_pos /* var pos: Int */;
 unsigned char var1 /* : Byte */;
@@ -285,110 +187,106 @@ short int var7 /* : Bool */;
 short int var9 /* : Bool */;
 uint32_t var10 /* : Char */;
 uint32_t var12 /* : Char */;
-long var13 /* : Int */;
-long var15 /* : Int */;
-long var_b /* var b: Int */;
-long var_ret /* var ret: Int */;
-long var16 /* : Int */;
-long var18 /* : Int */;
+uint32_t var13 /* : UInt32 */;
+uint32_t var15 /* : UInt32 */;
+uint32_t var_b /* var b: UInt32 */;
+uint32_t var_ret /* var ret: UInt32 */;
+uint32_t var16 /* : UInt32 */;
+uint32_t var18 /* : UInt32 */;
 short int var19 /* : Bool */;
 short int var21 /* : Bool */;
 short int var22 /* : Bool */;
 uint32_t var23 /* : Char */;
 uint32_t var25 /* : Char */;
-long var26 /* : Int */;
-long var28 /* : Int */;
+uint32_t var26 /* : UInt32 */;
+uint32_t var28 /* : UInt32 */;
 short int var29 /* : Bool */;
 short int var31 /* : Bool */;
-long var32 /* : Int */;
-long var34 /* : Int */;
-long var35 /* : Int */;
-long var37 /* : Int */;
-long var38 /* : Int */;
-long var40 /* : Int */;
-long var41 /* : Int */;
-long var43 /* : Int */;
-long var44 /* : Int */;
-long var46 /* : Int */;
-long var47 /* : Int */;
-long var49 /* : Int */;
+uint32_t var32 /* : UInt32 */;
+uint32_t var34 /* : UInt32 */;
+uint32_t var35 /* : UInt32 */;
+uint32_t var37 /* : UInt32 */;
+uint32_t var38 /* : UInt32 */;
+uint32_t var40 /* : UInt32 */;
+uint32_t var41 /* : UInt32 */;
+uint32_t var43 /* : UInt32 */;
+uint32_t var44 /* : UInt32 */;
+uint32_t var46 /* : UInt32 */;
+uint32_t var47 /* : UInt32 */;
+uint32_t var49 /* : UInt32 */;
 uint32_t var50 /* : Char */;
 uint32_t var52 /* : Char */;
-long var53 /* : Int */;
-long var55 /* : Int */;
+uint32_t var53 /* : UInt32 */;
+uint32_t var55 /* : UInt32 */;
 short int var56 /* : Bool */;
 short int var58 /* : Bool */;
 short int var59 /* : Bool */;
 uint32_t var60 /* : Char */;
 uint32_t var62 /* : Char */;
-long var63 /* : Int */;
-long var65 /* : Int */;
+uint32_t var63 /* : UInt32 */;
+uint32_t var65 /* : UInt32 */;
 short int var66 /* : Bool */;
 short int var68 /* : Bool */;
-long var69 /* : Int */;
-long var71 /* : Int */;
-long var72 /* : Int */;
-long var74 /* : Int */;
-long var75 /* : Int */;
-long var77 /* : Int */;
-long var78 /* : Int */;
-long var80 /* : Int */;
-long var81 /* : Int */;
-long var83 /* : Int */;
-long var84 /* : Int */;
-long var86 /* : Int */;
-long var87 /* : Int */;
-long var89 /* : Int */;
-long var90 /* : Int */;
-long var92 /* : Int */;
-long var93 /* : Int */;
-long var95 /* : Int */;
+uint32_t var69 /* : UInt32 */;
+uint32_t var71 /* : UInt32 */;
+uint32_t var72 /* : UInt32 */;
+uint32_t var74 /* : UInt32 */;
+uint32_t var75 /* : UInt32 */;
+uint32_t var77 /* : UInt32 */;
+uint32_t var78 /* : UInt32 */;
+uint32_t var80 /* : UInt32 */;
+uint32_t var81 /* : UInt32 */;
+uint32_t var83 /* : UInt32 */;
+uint32_t var84 /* : UInt32 */;
+uint32_t var86 /* : UInt32 */;
+uint32_t var87 /* : UInt32 */;
+uint32_t var89 /* : UInt32 */;
+uint32_t var90 /* : UInt32 */;
+uint32_t var92 /* : UInt32 */;
+uint32_t var93 /* : UInt32 */;
+uint32_t var95 /* : UInt32 */;
 uint32_t var96 /* : Char */;
 uint32_t var98 /* : Char */;
-long var99 /* : Int */;
-long var101 /* : Int */;
+uint32_t var99 /* : UInt32 */;
+uint32_t var101 /* : UInt32 */;
 short int var102 /* : Bool */;
 short int var104 /* : Bool */;
 short int var105 /* : Bool */;
 uint32_t var106 /* : Char */;
 uint32_t var108 /* : Char */;
-long var109 /* : Int */;
-long var111 /* : Int */;
+uint32_t var109 /* : UInt32 */;
+uint32_t var111 /* : UInt32 */;
 short int var112 /* : Bool */;
 short int var114 /* : Bool */;
-long var115 /* : Int */;
-long var116 /* : Int */;
-long var118 /* : Int */;
-long var119 /* : Int */;
-long var121 /* : Int */;
-long var122 /* : Int */;
-long var124 /* : Int */;
-long var125 /* : Int */;
-long var126 /* : Int */;
-long var128 /* : Int */;
-long var129 /* : Int */;
-long var131 /* : Int */;
-long var132 /* : Int */;
-long var134 /* : Int */;
-long var135 /* : Int */;
-long var136 /* : Int */;
-long var138 /* : Int */;
-long var139 /* : Int */;
-long var141 /* : Int */;
-long var142 /* : Int */;
-long var144 /* : Int */;
-long var145 /* : Int */;
-long var146 /* : Int */;
-long var148 /* : Int */;
-long var149 /* : Int */;
-long var151 /* : Int */;
-uint32_t var152 /* : Char */;
-uint32_t var154 /* : Char */;
-uint32_t var155 /* : Char */;
-uint32_t var157 /* : Char */;
+uint32_t var115 /* : UInt32 */;
+uint32_t var117 /* : UInt32 */;
+uint32_t var118 /* : UInt32 */;
+uint32_t var120 /* : UInt32 */;
+uint32_t var121 /* : UInt32 */;
+uint32_t var123 /* : UInt32 */;
+uint32_t var124 /* : UInt32 */;
+uint32_t var126 /* : UInt32 */;
+uint32_t var127 /* : UInt32 */;
+uint32_t var129 /* : UInt32 */;
+uint32_t var130 /* : UInt32 */;
+uint32_t var132 /* : UInt32 */;
+uint32_t var133 /* : UInt32 */;
+uint32_t var135 /* : UInt32 */;
+uint32_t var136 /* : UInt32 */;
+uint32_t var138 /* : UInt32 */;
+uint32_t var139 /* : UInt32 */;
+uint32_t var141 /* : UInt32 */;
+uint32_t var142 /* : UInt32 */;
+uint32_t var144 /* : UInt32 */;
+uint32_t var145 /* : UInt32 */;
+uint32_t var147 /* : UInt32 */;
+uint32_t var148 /* : Char */;
+uint32_t var150 /* : Char */;
+uint32_t var151 /* : Char */;
+uint32_t var153 /* : Char */;
 var_pos = p0;
 {
-{ /* Inline native#NativeString#[] (self,var_pos) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var_pos) on <self:CString> */
 var3 = (unsigned char)((int)self[var_pos]);
 var1 = var3;
 goto RET_LABEL2;
@@ -397,7 +295,7 @@ RET_LABEL2:(void)0;
 }
 var_c = var1;
 {
-{ /* Inline math#Byte#& (var_c,((unsigned char)0x80)) on <var_c:Byte> */
+{ /* Inline math$Byte$& (var_c,((unsigned char)0x80)) on <var_c:Byte> */
 var6 = var_c & ((unsigned char)0x80);
 var4 = var6;
 goto RET_LABEL5;
@@ -405,7 +303,7 @@ RET_LABEL5:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var4,((unsigned char)0x00)) on <var4:Byte> */
+{ /* Inline kernel$Byte$== (var4,((unsigned char)0x00)) on <var4:Byte> */
 var9 = var4 == ((unsigned char)0x00);
 var7 = var9;
 goto RET_LABEL8;
@@ -414,7 +312,7 @@ RET_LABEL8:(void)0;
 }
 if (var7){
 {
-{ /* Inline kernel#Byte#ascii (var_c) on <var_c:Byte> */
+{ /* Inline kernel$Byte$ascii (var_c) on <var_c:Byte> */
 var12 = (uint32_t)var_c;
 var10 = var12;
 goto RET_LABEL11;
@@ -426,26 +324,26 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline native#NativeString#fetch_4_hchars (self,var_pos) on <self:NativeString> */
-var15 = (long)be32toh(*((uint32_t*)(self + var_pos)));
+{ /* Inline native$CString$fetch_4_hchars (self,var_pos) on <self:CString> */
+var15 = (uint32_t)be32toh(*((uint32_t*)(self + var_pos)));
 var13 = var15;
 goto RET_LABEL14;
 RET_LABEL14:(void)0;
 }
 }
 var_b = var13;
-var_ret = 0l;
+var_ret = UINT32_C(0);
 {
-{ /* Inline math#Int#& (var_b,12582912l) on <var_b:Int> */
-var18 = var_b & 12582912l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(12582912)) on <var_b:UInt32> */
+var18 = var_b & UINT32_C(12582912);
 var16 = var18;
 goto RET_LABEL17;
 RET_LABEL17:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#!= (var16,8388608l) on <var16:Int> */
-var21 = var16 == 8388608l;
+{ /* Inline fixed_ints$UInt32$!= (var16,UINT32_C(8388608)) on <var16:UInt32> */
+var21 = var16 == UINT32_C(8388608);
 var22 = !var21;
 var19 = var22;
 goto RET_LABEL20;
@@ -454,7 +352,7 @@ RET_LABEL20:(void)0;
 }
 if (var19){
 {
-{ /* Inline kernel#Int#code_point (65533l) on <65533l:Int> */
+{ /* Inline kernel$Int$code_point (65533l) on <65533l:Int> */
 var25 = (uint32_t)65533l;
 var23 = var25;
 goto RET_LABEL24;
@@ -466,16 +364,16 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline math#Int#& (var_b,3758096384l) on <var_b:Int> */
-var28 = var_b & 3758096384l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(3758096384)) on <var_b:UInt32> */
+var28 = var_b & UINT32_C(3758096384);
 var26 = var28;
 goto RET_LABEL27;
 RET_LABEL27:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#== (var26,3221225472l) on <var26:Int> */
-var31 = var26 == 3221225472l;
+{ /* Inline fixed_ints$UInt32$== (var26,UINT32_C(3221225472)) on <var26:UInt32> */
+var31 = var26 == UINT32_C(3221225472);
 var29 = var31;
 goto RET_LABEL30;
 RET_LABEL30:(void)0;
@@ -483,15 +381,15 @@ RET_LABEL30:(void)0;
 }
 if (var29){
 {
-{ /* Inline math#Int#& (var_b,520093696l) on <var_b:Int> */
-var34 = var_b & 520093696l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(520093696)) on <var_b:UInt32> */
+var34 = var_b & UINT32_C(520093696);
 var32 = var34;
 goto RET_LABEL33;
 RET_LABEL33:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#>> (var32,18l) on <var32:Int> */
+{ /* Inline fixed_ints$UInt32$>> (var32,18l) on <var32:UInt32> */
 var37 = var32 >> 18l;
 var35 = var37;
 goto RET_LABEL36;
@@ -499,7 +397,7 @@ RET_LABEL36:(void)0;
 }
 }
 {
-{ /* Inline math#Int#| (var_ret,var35) on <var_ret:Int> */
+{ /* Inline fixed_ints$UInt32$| (var_ret,var35) on <var_ret:UInt32> */
 var40 = var_ret | var35;
 var38 = var40;
 goto RET_LABEL39;
@@ -508,15 +406,15 @@ RET_LABEL39:(void)0;
 }
 var_ret = var38;
 {
-{ /* Inline math#Int#& (var_b,4128768l) on <var_b:Int> */
-var43 = var_b & 4128768l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4128768)) on <var_b:UInt32> */
+var43 = var_b & UINT32_C(4128768);
 var41 = var43;
 goto RET_LABEL42;
 RET_LABEL42:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#>> (var41,16l) on <var41:Int> */
+{ /* Inline fixed_ints$UInt32$>> (var41,16l) on <var41:UInt32> */
 var46 = var41 >> 16l;
 var44 = var46;
 goto RET_LABEL45;
@@ -524,7 +422,7 @@ RET_LABEL45:(void)0;
 }
 }
 {
-{ /* Inline math#Int#| (var_ret,var44) on <var_ret:Int> */
+{ /* Inline fixed_ints$UInt32$| (var_ret,var44) on <var_ret:UInt32> */
 var49 = var_ret | var44;
 var47 = var49;
 goto RET_LABEL48;
@@ -533,8 +431,8 @@ RET_LABEL48:(void)0;
 }
 var_ret = var47;
 {
-{ /* Inline kernel#Int#code_point (var_ret) on <var_ret:Int> */
-var52 = (uint32_t)var_ret;
+{ /* Inline native$UInt32$code_point (var_ret) on <var_ret:UInt32> */
+var52 = core__native___UInt32_code_point___impl(var_ret);
 var50 = var52;
 goto RET_LABEL51;
 RET_LABEL51:(void)0;
@@ -545,16 +443,16 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline math#Int#& (var_b,49152l) on <var_b:Int> */
-var55 = var_b & 49152l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(49152)) on <var_b:UInt32> */
+var55 = var_b & UINT32_C(49152);
 var53 = var55;
 goto RET_LABEL54;
 RET_LABEL54:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#== (var53,32768l) on <var53:Int> */
-var58 = var53 == 32768l;
+{ /* Inline fixed_ints$UInt32$== (var53,UINT32_C(32768)) on <var53:UInt32> */
+var58 = var53 == UINT32_C(32768);
 var56 = var58;
 goto RET_LABEL57;
 RET_LABEL57:(void)0;
@@ -563,7 +461,7 @@ RET_LABEL57:(void)0;
 var59 = !var56;
 if (var59){
 {
-{ /* Inline kernel#Int#code_point (65533l) on <65533l:Int> */
+{ /* Inline kernel$Int$code_point (65533l) on <65533l:Int> */
 var62 = (uint32_t)65533l;
 var60 = var62;
 goto RET_LABEL61;
@@ -575,16 +473,16 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline math#Int#& (var_b,4026531840l) on <var_b:Int> */
-var65 = var_b & 4026531840l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4026531840)) on <var_b:UInt32> */
+var65 = var_b & UINT32_C(4026531840);
 var63 = var65;
 goto RET_LABEL64;
 RET_LABEL64:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#== (var63,3758096384l) on <var63:Int> */
-var68 = var63 == 3758096384l;
+{ /* Inline fixed_ints$UInt32$== (var63,UINT32_C(3758096384)) on <var63:UInt32> */
+var68 = var63 == UINT32_C(3758096384);
 var66 = var68;
 goto RET_LABEL67;
 RET_LABEL67:(void)0;
@@ -592,15 +490,15 @@ RET_LABEL67:(void)0;
 }
 if (var66){
 {
-{ /* Inline math#Int#& (var_b,251658240l) on <var_b:Int> */
-var71 = var_b & 251658240l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(251658240)) on <var_b:UInt32> */
+var71 = var_b & UINT32_C(251658240);
 var69 = var71;
 goto RET_LABEL70;
 RET_LABEL70:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#>> (var69,12l) on <var69:Int> */
+{ /* Inline fixed_ints$UInt32$>> (var69,12l) on <var69:UInt32> */
 var74 = var69 >> 12l;
 var72 = var74;
 goto RET_LABEL73;
@@ -608,7 +506,7 @@ RET_LABEL73:(void)0;
 }
 }
 {
-{ /* Inline math#Int#| (var_ret,var72) on <var_ret:Int> */
+{ /* Inline fixed_ints$UInt32$| (var_ret,var72) on <var_ret:UInt32> */
 var77 = var_ret | var72;
 var75 = var77;
 goto RET_LABEL76;
@@ -617,15 +515,15 @@ RET_LABEL76:(void)0;
 }
 var_ret = var75;
 {
-{ /* Inline math#Int#& (var_b,4128768l) on <var_b:Int> */
-var80 = var_b & 4128768l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4128768)) on <var_b:UInt32> */
+var80 = var_b & UINT32_C(4128768);
 var78 = var80;
 goto RET_LABEL79;
 RET_LABEL79:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#>> (var78,10l) on <var78:Int> */
+{ /* Inline fixed_ints$UInt32$>> (var78,10l) on <var78:UInt32> */
 var83 = var78 >> 10l;
 var81 = var83;
 goto RET_LABEL82;
@@ -633,7 +531,7 @@ RET_LABEL82:(void)0;
 }
 }
 {
-{ /* Inline math#Int#| (var_ret,var81) on <var_ret:Int> */
+{ /* Inline fixed_ints$UInt32$| (var_ret,var81) on <var_ret:UInt32> */
 var86 = var_ret | var81;
 var84 = var86;
 goto RET_LABEL85;
@@ -642,15 +540,15 @@ RET_LABEL85:(void)0;
 }
 var_ret = var84;
 {
-{ /* Inline math#Int#& (var_b,16128l) on <var_b:Int> */
-var89 = var_b & 16128l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(16128)) on <var_b:UInt32> */
+var89 = var_b & UINT32_C(16128);
 var87 = var89;
 goto RET_LABEL88;
 RET_LABEL88:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#>> (var87,8l) on <var87:Int> */
+{ /* Inline fixed_ints$UInt32$>> (var87,8l) on <var87:UInt32> */
 var92 = var87 >> 8l;
 var90 = var92;
 goto RET_LABEL91;
@@ -658,7 +556,7 @@ RET_LABEL91:(void)0;
 }
 }
 {
-{ /* Inline math#Int#| (var_ret,var90) on <var_ret:Int> */
+{ /* Inline fixed_ints$UInt32$| (var_ret,var90) on <var_ret:UInt32> */
 var95 = var_ret | var90;
 var93 = var95;
 goto RET_LABEL94;
@@ -667,8 +565,8 @@ RET_LABEL94:(void)0;
 }
 var_ret = var93;
 {
-{ /* Inline kernel#Int#code_point (var_ret) on <var_ret:Int> */
-var98 = (uint32_t)var_ret;
+{ /* Inline native$UInt32$code_point (var_ret) on <var_ret:UInt32> */
+var98 = core__native___UInt32_code_point___impl(var_ret);
 var96 = var98;
 goto RET_LABEL97;
 RET_LABEL97:(void)0;
@@ -679,16 +577,16 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline math#Int#& (var_b,192l) on <var_b:Int> */
-var101 = var_b & 192l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(192)) on <var_b:UInt32> */
+var101 = var_b & UINT32_C(192);
 var99 = var101;
 goto RET_LABEL100;
 RET_LABEL100:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#== (var99,128l) on <var99:Int> */
-var104 = var99 == 128l;
+{ /* Inline fixed_ints$UInt32$== (var99,UINT32_C(128)) on <var99:UInt32> */
+var104 = var99 == UINT32_C(128);
 var102 = var104;
 goto RET_LABEL103;
 RET_LABEL103:(void)0;
@@ -697,7 +595,7 @@ RET_LABEL103:(void)0;
 var105 = !var102;
 if (var105){
 {
-{ /* Inline kernel#Int#code_point (65533l) on <65533l:Int> */
+{ /* Inline kernel$Int$code_point (65533l) on <65533l:Int> */
 var108 = (uint32_t)65533l;
 var106 = var108;
 goto RET_LABEL107;
@@ -709,16 +607,16 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline math#Int#& (var_b,4160749568l) on <var_b:Int> */
-var111 = var_b & 4160749568l;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4160749568)) on <var_b:UInt32> */
+var111 = var_b & UINT32_C(4160749568);
 var109 = var111;
 goto RET_LABEL110;
 RET_LABEL110:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#== (var109,4026531840l) on <var109:Int> */
-var114 = var109 == 4026531840l;
+{ /* Inline fixed_ints$UInt32$== (var109,UINT32_C(4026531840)) on <var109:UInt32> */
+var114 = var109 == UINT32_C(4026531840);
 var112 = var114;
 goto RET_LABEL113;
 RET_LABEL113:(void)0;
@@ -726,150 +624,138 @@ RET_LABEL113:(void)0;
 }
 if (var112){
 {
-var115 = core___core__Int___Numeric__to_i(var_b);
-}
-{
-{ /* Inline math#Int#& (var115,117440512l) on <var115:Int> */
-var118 = var115 & 117440512l;
-var116 = var118;
-goto RET_LABEL117;
-RET_LABEL117:(void)0;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(117440512)) on <var_b:UInt32> */
+var117 = var_b & UINT32_C(117440512);
+var115 = var117;
+goto RET_LABEL116;
+RET_LABEL116:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#>> (var116,6l) on <var116:Int> */
-var121 = var116 >> 6l;
-var119 = var121;
-goto RET_LABEL120;
-RET_LABEL120:(void)0;
+{ /* Inline fixed_ints$UInt32$>> (var115,6l) on <var115:UInt32> */
+var120 = var115 >> 6l;
+var118 = var120;
+goto RET_LABEL119;
+RET_LABEL119:(void)0;
 }
 }
 {
-{ /* Inline math#Int#| (var_ret,var119) on <var_ret:Int> */
-var124 = var_ret | var119;
-var122 = var124;
-goto RET_LABEL123;
-RET_LABEL123:(void)0;
+{ /* Inline fixed_ints$UInt32$| (var_ret,var118) on <var_ret:UInt32> */
+var123 = var_ret | var118;
+var121 = var123;
+goto RET_LABEL122;
+RET_LABEL122:(void)0;
 }
 }
-var_ret = var122;
+var_ret = var121;
 {
-var125 = core___core__Int___Numeric__to_i(var_b);
-}
-{
-{ /* Inline math#Int#& (var125,4128768l) on <var125:Int> */
-var128 = var125 & 4128768l;
-var126 = var128;
-goto RET_LABEL127;
-RET_LABEL127:(void)0;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(4128768)) on <var_b:UInt32> */
+var126 = var_b & UINT32_C(4128768);
+var124 = var126;
+goto RET_LABEL125;
+RET_LABEL125:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#>> (var126,4l) on <var126:Int> */
-var131 = var126 >> 4l;
-var129 = var131;
-goto RET_LABEL130;
-RET_LABEL130:(void)0;
+{ /* Inline fixed_ints$UInt32$>> (var124,4l) on <var124:UInt32> */
+var129 = var124 >> 4l;
+var127 = var129;
+goto RET_LABEL128;
+RET_LABEL128:(void)0;
 }
 }
 {
-{ /* Inline math#Int#| (var_ret,var129) on <var_ret:Int> */
-var134 = var_ret | var129;
-var132 = var134;
-goto RET_LABEL133;
-RET_LABEL133:(void)0;
+{ /* Inline fixed_ints$UInt32$| (var_ret,var127) on <var_ret:UInt32> */
+var132 = var_ret | var127;
+var130 = var132;
+goto RET_LABEL131;
+RET_LABEL131:(void)0;
 }
 }
-var_ret = var132;
+var_ret = var130;
 {
-var135 = core___core__Int___Numeric__to_i(var_b);
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(16128)) on <var_b:UInt32> */
+var135 = var_b & UINT32_C(16128);
+var133 = var135;
+goto RET_LABEL134;
+RET_LABEL134:(void)0;
+}
 }
 {
-{ /* Inline math#Int#& (var135,16128l) on <var135:Int> */
-var138 = var135 & 16128l;
+{ /* Inline fixed_ints$UInt32$>> (var133,2l) on <var133:UInt32> */
+var138 = var133 >> 2l;
 var136 = var138;
 goto RET_LABEL137;
 RET_LABEL137:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#>> (var136,2l) on <var136:Int> */
-var141 = var136 >> 2l;
+{ /* Inline fixed_ints$UInt32$| (var_ret,var136) on <var_ret:UInt32> */
+var141 = var_ret | var136;
 var139 = var141;
 goto RET_LABEL140;
 RET_LABEL140:(void)0;
 }
 }
+var_ret = var139;
 {
-{ /* Inline math#Int#| (var_ret,var139) on <var_ret:Int> */
-var144 = var_ret | var139;
+{ /* Inline fixed_ints$UInt32$& (var_b,UINT32_C(63)) on <var_b:UInt32> */
+var144 = var_b & UINT32_C(63);
 var142 = var144;
 goto RET_LABEL143;
 RET_LABEL143:(void)0;
 }
 }
-var_ret = var142;
-{
-var145 = core___core__Int___Numeric__to_i(var_b);
-}
-{
-{ /* Inline math#Int#& (var145,63l) on <var145:Int> */
-var148 = var145 & 63l;
-var146 = var148;
-goto RET_LABEL147;
-RET_LABEL147:(void)0;
-}
-}
 {
-{ /* Inline math#Int#| (var_ret,var146) on <var_ret:Int> */
-var151 = var_ret | var146;
-var149 = var151;
-goto RET_LABEL150;
-RET_LABEL150:(void)0;
+{ /* Inline fixed_ints$UInt32$| (var_ret,var142) on <var_ret:UInt32> */
+var147 = var_ret | var142;
+var145 = var147;
+goto RET_LABEL146;
+RET_LABEL146:(void)0;
 }
 }
-var_ret = var149;
+var_ret = var145;
 {
-{ /* Inline kernel#Int#code_point (var_ret) on <var_ret:Int> */
-var154 = (uint32_t)var_ret;
-var152 = var154;
-goto RET_LABEL153;
-RET_LABEL153:(void)0;
+{ /* Inline native$UInt32$code_point (var_ret) on <var_ret:UInt32> */
+var150 = core__native___UInt32_code_point___impl(var_ret);
+var148 = var150;
+goto RET_LABEL149;
+RET_LABEL149:(void)0;
 }
 }
-var = var152;
+var = var148;
 goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline kernel#Int#code_point (65533l) on <65533l:Int> */
-var157 = (uint32_t)65533l;
-var155 = var157;
-goto RET_LABEL156;
-RET_LABEL156:(void)0;
+{ /* Inline kernel$Int$code_point (65533l) on <65533l:Int> */
+var153 = (uint32_t)65533l;
+var151 = var153;
+goto RET_LABEL152;
+RET_LABEL152:(void)0;
 }
 }
-var = var155;
+var = var151;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#char_to_byte_index for (self: NativeString, Int): Int */
-long core___core__NativeString___char_to_byte_index(char* self, long p0) {
+/* method native$CString$char_to_byte_index for (self: CString, Int): Int */
+long core___core__CString___char_to_byte_index(char* self, long p0) {
 long var /* : Int */;
 long var_n /* var n: Int */;
 long var1 /* : Int */;
 var_n = p0;
 {
-var1 = core___core__NativeString___char_to_byte_index_cached(self, var_n, 0l, 0l);
+var1 = core___core__CString___char_to_byte_index_cached(self, var_n, 0l, 0l);
 }
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#length_of_char_at for (self: NativeString, Int): Int */
-long core___core__NativeString___length_of_char_at(char* self, long p0) {
+/* method native$CString$length_of_char_at for (self: CString, Int): Int */
+long core___core__CString___length_of_char_at(char* self, long p0) {
 long var /* : Int */;
 long var_pos /* var pos: Int */;
 unsigned char var1 /* : Byte */;
@@ -977,7 +863,7 @@ short int var129 /* : Bool */;
 short int var131 /* : Bool */;
 var_pos = p0;
 {
-{ /* Inline native#NativeString#[] (self,var_pos) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var_pos) on <self:CString> */
 var3 = (unsigned char)((int)self[var_pos]);
 var1 = var3;
 goto RET_LABEL2;
@@ -986,7 +872,7 @@ RET_LABEL2:(void)0;
 }
 var_c = var1;
 {
-{ /* Inline math#Byte#& (var_c,((unsigned char)0x80)) on <var_c:Byte> */
+{ /* Inline math$Byte$& (var_c,((unsigned char)0x80)) on <var_c:Byte> */
 var6 = var_c & ((unsigned char)0x80);
 var4 = var6;
 goto RET_LABEL5;
@@ -994,7 +880,7 @@ RET_LABEL5:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var4,((unsigned char)0x00)) on <var4:Byte> */
+{ /* Inline kernel$Byte$== (var4,((unsigned char)0x00)) on <var4:Byte> */
 var9 = var4 == ((unsigned char)0x00);
 var7 = var9;
 goto RET_LABEL8;
@@ -1006,7 +892,7 @@ var = 1l;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline math#Byte#& (var_c,((unsigned char)0xe0)) on <var_c:Byte> */
+{ /* Inline math$Byte$& (var_c,((unsigned char)0xe0)) on <var_c:Byte> */
 var13 = var_c & ((unsigned char)0xe0);
 var11 = var13;
 goto RET_LABEL12;
@@ -1014,7 +900,7 @@ RET_LABEL12:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var11,((unsigned char)0xc0)) on <var11:Byte> */
+{ /* Inline kernel$Byte$== (var11,((unsigned char)0xc0)) on <var11:Byte> */
 var16 = var11 == ((unsigned char)0xc0);
 var14 = var16;
 goto RET_LABEL15;
@@ -1024,14 +910,14 @@ RET_LABEL15:(void)0;
 var_ = var14;
 if (var14){
 {
-{ /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
+{ /* Inline kernel$Int$+ (var_pos,1l) on <var_pos:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var19 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var19)) {
 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, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var20 = var_pos + 1l;
@@ -1041,7 +927,7 @@ RET_LABEL18:(void)0;
 }
 }
 {
-{ /* Inline native#NativeString#[] (self,var17) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var17) on <self:CString> */
 var23 = (unsigned char)((int)self[var17]);
 var21 = var23;
 goto RET_LABEL22;
@@ -1049,7 +935,7 @@ RET_LABEL22:(void)0;
 }
 }
 {
-{ /* Inline math#Byte#& (var21,((unsigned char)0xc0)) on <var21:Byte> */
+{ /* Inline math$Byte$& (var21,((unsigned char)0xc0)) on <var21:Byte> */
 var26 = var21 & ((unsigned char)0xc0);
 var24 = var26;
 goto RET_LABEL25;
@@ -1057,7 +943,7 @@ RET_LABEL25:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var24,((unsigned char)0x80)) on <var24:Byte> */
+{ /* Inline kernel$Byte$== (var24,((unsigned char)0x80)) on <var24:Byte> */
 var29 = var24 == ((unsigned char)0x80);
 var27 = var29;
 goto RET_LABEL28;
@@ -1073,7 +959,7 @@ var = 2l;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline math#Byte#& (var_c,((unsigned char)0xf0)) on <var_c:Byte> */
+{ /* Inline math$Byte$& (var_c,((unsigned char)0xf0)) on <var_c:Byte> */
 var34 = var_c & ((unsigned char)0xf0);
 var32 = var34;
 goto RET_LABEL33;
@@ -1081,7 +967,7 @@ RET_LABEL33:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var32,((unsigned char)0xe0)) on <var32:Byte> */
+{ /* Inline kernel$Byte$== (var32,((unsigned char)0xe0)) on <var32:Byte> */
 var37 = var32 == ((unsigned char)0xe0);
 var35 = var37;
 goto RET_LABEL36;
@@ -1091,14 +977,14 @@ RET_LABEL36:(void)0;
 var_38 = var35;
 if (var35){
 {
-{ /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
+{ /* Inline kernel$Int$+ (var_pos,1l) on <var_pos:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var41 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var41)) {
 var_class_name44 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var45 = var_pos + 1l;
@@ -1108,7 +994,7 @@ RET_LABEL40:(void)0;
 }
 }
 {
-{ /* Inline native#NativeString#[] (self,var39) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var39) on <self:CString> */
 var48 = (unsigned char)((int)self[var39]);
 var46 = var48;
 goto RET_LABEL47;
@@ -1116,7 +1002,7 @@ RET_LABEL47:(void)0;
 }
 }
 {
-{ /* Inline math#Byte#& (var46,((unsigned char)0xc0)) on <var46:Byte> */
+{ /* Inline math$Byte$& (var46,((unsigned char)0xc0)) on <var46:Byte> */
 var51 = var46 & ((unsigned char)0xc0);
 var49 = var51;
 goto RET_LABEL50;
@@ -1124,7 +1010,7 @@ RET_LABEL50:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var49,((unsigned char)0x80)) on <var49:Byte> */
+{ /* Inline kernel$Byte$== (var49,((unsigned char)0x80)) on <var49:Byte> */
 var54 = var49 == ((unsigned char)0x80);
 var52 = var54;
 goto RET_LABEL53;
@@ -1138,14 +1024,14 @@ var31 = var_38;
 var_55 = var31;
 if (var31){
 {
-{ /* Inline kernel#Int#+ (var_pos,2l) on <var_pos:Int> */
+{ /* Inline kernel$Int$+ (var_pos,2l) on <var_pos:Int> */
 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
 /* <2l:Int> isa OTHER */
 var58 = 1; /* easy <2l:Int> isa OTHER*/
 if (unlikely(!var58)) {
 var_class_name61 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name61);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var62 = var_pos + 2l;
@@ -1155,7 +1041,7 @@ RET_LABEL57:(void)0;
 }
 }
 {
-{ /* Inline native#NativeString#[] (self,var56) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var56) on <self:CString> */
 var65 = (unsigned char)((int)self[var56]);
 var63 = var65;
 goto RET_LABEL64;
@@ -1163,7 +1049,7 @@ RET_LABEL64:(void)0;
 }
 }
 {
-{ /* Inline math#Byte#& (var63,((unsigned char)0xc0)) on <var63:Byte> */
+{ /* Inline math$Byte$& (var63,((unsigned char)0xc0)) on <var63:Byte> */
 var68 = var63 & ((unsigned char)0xc0);
 var66 = var68;
 goto RET_LABEL67;
@@ -1171,7 +1057,7 @@ RET_LABEL67:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var66,((unsigned char)0x80)) on <var66:Byte> */
+{ /* Inline kernel$Byte$== (var66,((unsigned char)0x80)) on <var66:Byte> */
 var71 = var66 == ((unsigned char)0x80);
 var69 = var71;
 goto RET_LABEL70;
@@ -1187,7 +1073,7 @@ var = 3l;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline math#Byte#& (var_c,((unsigned char)0xf8)) on <var_c:Byte> */
+{ /* Inline math$Byte$& (var_c,((unsigned char)0xf8)) on <var_c:Byte> */
 var77 = var_c & ((unsigned char)0xf8);
 var75 = var77;
 goto RET_LABEL76;
@@ -1195,7 +1081,7 @@ RET_LABEL76:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var75,((unsigned char)0xf0)) on <var75:Byte> */
+{ /* Inline kernel$Byte$== (var75,((unsigned char)0xf0)) on <var75:Byte> */
 var80 = var75 == ((unsigned char)0xf0);
 var78 = var80;
 goto RET_LABEL79;
@@ -1205,14 +1091,14 @@ RET_LABEL79:(void)0;
 var_81 = var78;
 if (var78){
 {
-{ /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
+{ /* Inline kernel$Int$+ (var_pos,1l) on <var_pos:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var84 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var84)) {
 var_class_name87 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name87);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var88 = var_pos + 1l;
@@ -1222,7 +1108,7 @@ RET_LABEL83:(void)0;
 }
 }
 {
-{ /* Inline native#NativeString#[] (self,var82) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var82) on <self:CString> */
 var91 = (unsigned char)((int)self[var82]);
 var89 = var91;
 goto RET_LABEL90;
@@ -1230,7 +1116,7 @@ RET_LABEL90:(void)0;
 }
 }
 {
-{ /* Inline math#Byte#& (var89,((unsigned char)0xc0)) on <var89:Byte> */
+{ /* Inline math$Byte$& (var89,((unsigned char)0xc0)) on <var89:Byte> */
 var94 = var89 & ((unsigned char)0xc0);
 var92 = var94;
 goto RET_LABEL93;
@@ -1238,7 +1124,7 @@ RET_LABEL93:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var92,((unsigned char)0x80)) on <var92:Byte> */
+{ /* Inline kernel$Byte$== (var92,((unsigned char)0x80)) on <var92:Byte> */
 var97 = var92 == ((unsigned char)0x80);
 var95 = var97;
 goto RET_LABEL96;
@@ -1252,14 +1138,14 @@ var74 = var_81;
 var_98 = var74;
 if (var74){
 {
-{ /* Inline kernel#Int#+ (var_pos,2l) on <var_pos:Int> */
+{ /* Inline kernel$Int$+ (var_pos,2l) on <var_pos:Int> */
 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
 /* <2l:Int> isa OTHER */
 var101 = 1; /* easy <2l: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, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var105 = var_pos + 2l;
@@ -1269,7 +1155,7 @@ RET_LABEL100:(void)0;
 }
 }
 {
-{ /* Inline native#NativeString#[] (self,var99) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var99) on <self:CString> */
 var108 = (unsigned char)((int)self[var99]);
 var106 = var108;
 goto RET_LABEL107;
@@ -1277,7 +1163,7 @@ RET_LABEL107:(void)0;
 }
 }
 {
-{ /* Inline math#Byte#& (var106,((unsigned char)0xc0)) on <var106:Byte> */
+{ /* Inline math$Byte$& (var106,((unsigned char)0xc0)) on <var106:Byte> */
 var111 = var106 & ((unsigned char)0xc0);
 var109 = var111;
 goto RET_LABEL110;
@@ -1285,7 +1171,7 @@ RET_LABEL110:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var109,((unsigned char)0x80)) on <var109:Byte> */
+{ /* Inline kernel$Byte$== (var109,((unsigned char)0x80)) on <var109:Byte> */
 var114 = var109 == ((unsigned char)0x80);
 var112 = var114;
 goto RET_LABEL113;
@@ -1299,14 +1185,14 @@ var73 = var_98;
 var_115 = var73;
 if (var73){
 {
-{ /* Inline kernel#Int#+ (var_pos,3l) on <var_pos:Int> */
+{ /* Inline kernel$Int$+ (var_pos,3l) on <var_pos:Int> */
 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
 /* <3l:Int> isa OTHER */
 var118 = 1; /* easy <3l:Int> isa OTHER*/
 if (unlikely(!var118)) {
 var_class_name121 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name121);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var122 = var_pos + 3l;
@@ -1316,7 +1202,7 @@ RET_LABEL117:(void)0;
 }
 }
 {
-{ /* Inline native#NativeString#[] (self,var116) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var116) on <self:CString> */
 var125 = (unsigned char)((int)self[var116]);
 var123 = var125;
 goto RET_LABEL124;
@@ -1324,7 +1210,7 @@ RET_LABEL124:(void)0;
 }
 }
 {
-{ /* Inline math#Byte#& (var123,((unsigned char)0xc0)) on <var123:Byte> */
+{ /* Inline math$Byte$& (var123,((unsigned char)0xc0)) on <var123:Byte> */
 var128 = var123 & ((unsigned char)0xc0);
 var126 = var128;
 goto RET_LABEL127;
@@ -1332,7 +1218,7 @@ RET_LABEL127:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var126,((unsigned char)0x80)) on <var126:Byte> */
+{ /* Inline kernel$Byte$== (var126,((unsigned char)0x80)) on <var126:Byte> */
 var131 = var126 == ((unsigned char)0x80);
 var129 = var131;
 goto RET_LABEL130;
@@ -1356,8 +1242,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#char_to_byte_index_cached for (self: NativeString, Int, Int, Int): Int */
-long core___core__NativeString___char_to_byte_index_cached(char* self, long p0, long p1, long p2) {
+/* method native$CString$char_to_byte_index_cached for (self: CString, Int, Int, Int): Int */
+long core___core__CString___char_to_byte_index_cached(char* self, long p0, long p1, long p2) {
 long var /* : Int */;
 long var_n /* var n: Int */;
 long var_char_from /* var char_from: Int */;
@@ -1383,11 +1269,11 @@ int cltype15;
 int idtype16;
 const char* var_class_name17;
 short int var18 /* : Bool */;
-long var19 /* : Int */;
-long var21 /* : Int */;
-long var_i /* var i: Int */;
-long var22 /* : Int */;
-long var24 /* : Int */;
+uint32_t var19 /* : UInt32 */;
+uint32_t var21 /* : UInt32 */;
+uint32_t var_i /* var i: UInt32 */;
+uint32_t var22 /* : UInt32 */;
+uint32_t var24 /* : UInt32 */;
 short int var25 /* : Bool */;
 short int var27 /* : Bool */;
 short int var28 /* : Bool */;
@@ -1450,11 +1336,11 @@ int cltype96;
 int idtype97;
 const char* var_class_name98;
 long var99 /* : Int */;
-long var100 /* : Int */;
-long var102 /* : Int */;
-long var_i103 /* var i: Int */;
-long var104 /* : Int */;
-long var106 /* : Int */;
+uint32_t var100 /* : UInt32 */;
+uint32_t var102 /* : UInt32 */;
+uint32_t var_i103 /* var i: UInt32 */;
+uint32_t var104 /* : UInt32 */;
+uint32_t var106 /* : UInt32 */;
 short int var107 /* : Bool */;
 short int var109 /* : Bool */;
 short int var110 /* : Bool */;
@@ -1503,14 +1389,14 @@ var_byte_from = p2;
 var_ns_i = var_byte_from;
 var_my_i = var_char_from;
 {
-{ /* Inline kernel#Int#- (var_n,var_my_i) on <var_n:Int> */
+{ /* Inline kernel$Int$- (var_n,var_my_i) on <var_n:Int> */
 /* Covariant cast for argument 0 (i) <var_my_i:Int> isa OTHER */
 /* <var_my_i:Int> isa OTHER */
 var3 = 1; /* easy <var_my_i:Int> isa OTHER*/
 if (unlikely(!var3)) {
 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, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var4 = var_n - var_my_i;
@@ -1522,14 +1408,14 @@ RET_LABEL2:(void)0;
 var_dist = var1;
 for(;;) {
 {
-{ /* Inline kernel#Int#> (var_dist,0l) on <var_dist:Int> */
+{ /* Inline kernel$Int$> (var_dist,0l) on <var_dist:Int> */
 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
 /* <0l:Int> isa OTHER */
 var7 = 1; /* easy <0l:Int> isa OTHER*/
 if (unlikely(!var7)) {
 var_class_name10 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
 fatal_exit(1);
 }
 var11 = var_dist > 0l;
@@ -1541,14 +1427,14 @@ RET_LABEL6:(void)0;
 if (var5){
 for(;;) {
 {
-{ /* Inline kernel#Int#>= (var_dist,4l) on <var_dist:Int> */
+{ /* Inline kernel$Int$>= (var_dist,4l) on <var_dist:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var14 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var14)) {
 var_class_name17 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var18 = var_dist >= 4l;
@@ -1559,8 +1445,8 @@ RET_LABEL13:(void)0;
 }
 if (var12){
 {
-{ /* Inline native#NativeString#fetch_4_chars (self,var_ns_i) on <self:NativeString> */
-var21 = (long)*((uint32_t*)(self + var_ns_i));
+{ /* Inline native$CString$fetch_4_chars (self,var_ns_i) on <self:CString> */
+var21 = *((uint32_t*)(self + var_ns_i));
 var19 = var21;
 goto RET_LABEL20;
 RET_LABEL20:(void)0;
@@ -1568,16 +1454,16 @@ RET_LABEL20:(void)0;
 }
 var_i = var19;
 {
-{ /* Inline math#Int#& (var_i,2155905152l) on <var_i:Int> */
-var24 = var_i & 2155905152l;
+{ /* Inline fixed_ints$UInt32$& (var_i,UINT32_C(2155905152)) on <var_i:UInt32> */
+var24 = var_i & UINT32_C(2155905152);
 var22 = var24;
 goto RET_LABEL23;
 RET_LABEL23:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#!= (var22,0l) on <var22:Int> */
-var27 = var22 == 0l;
+{ /* Inline fixed_ints$UInt32$!= (var22,UINT32_C(0)) on <var22:UInt32> */
+var27 = var22 == UINT32_C(0);
 var28 = !var27;
 var25 = var28;
 goto RET_LABEL26;
@@ -1589,14 +1475,14 @@ goto BREAK_label;
 } else {
 }
 {
-{ /* Inline kernel#Int#+ (var_ns_i,4l) on <var_ns_i:Int> */
+{ /* Inline kernel$Int$+ (var_ns_i,4l) on <var_ns_i:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var31 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var31)) {
 var_class_name34 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var35 = var_ns_i + 4l;
@@ -1607,14 +1493,14 @@ RET_LABEL30:(void)0;
 }
 var_ns_i = var29;
 {
-{ /* Inline kernel#Int#+ (var_my_i,4l) on <var_my_i:Int> */
+{ /* Inline kernel$Int$+ (var_my_i,4l) on <var_my_i:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var38 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var38)) {
 var_class_name41 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var42 = var_my_i + 4l;
@@ -1625,14 +1511,14 @@ RET_LABEL37:(void)0;
 }
 var_my_i = var36;
 {
-{ /* Inline kernel#Int#- (var_dist,4l) on <var_dist:Int> */
+{ /* Inline kernel$Int$- (var_dist,4l) on <var_dist:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var45 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var45)) {
 var_class_name48 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var49 = var_dist - 4l;
@@ -1648,7 +1534,7 @@ goto BREAK_label;
 }
 BREAK_label: (void)0;
 {
-{ /* Inline kernel#Int#== (var_dist,0l) on <var_dist:Int> */
+{ /* Inline kernel$Int$== (var_dist,0l) on <var_dist:Int> */
 var52 = var_dist == 0l;
 var50 = var52;
 goto RET_LABEL51;
@@ -1660,17 +1546,17 @@ goto BREAK_label53;
 } else {
 }
 {
-var54 = core___core__NativeString___length_of_char_at(self, var_ns_i);
+var54 = core___core__CString___length_of_char_at(self, var_ns_i);
 }
 {
-{ /* Inline kernel#Int#+ (var_ns_i,var54) on <var_ns_i:Int> */
+{ /* Inline kernel$Int$+ (var_ns_i,var54) on <var_ns_i:Int> */
 /* Covariant cast for argument 0 (i) <var54:Int> isa OTHER */
 /* <var54:Int> isa OTHER */
 var57 = 1; /* easy <var54:Int> isa OTHER*/
 if (unlikely(!var57)) {
 var_class_name60 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var61 = var_ns_i + var54;
@@ -1681,14 +1567,14 @@ RET_LABEL56:(void)0;
 }
 var_ns_i = var55;
 {
-{ /* Inline kernel#Int#+ (var_my_i,1l) on <var_my_i:Int> */
+{ /* Inline kernel$Int$+ (var_my_i,1l) on <var_my_i:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var64 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var64)) {
 var_class_name67 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var68 = var_my_i + 1l;
@@ -1699,14 +1585,14 @@ RET_LABEL63:(void)0;
 }
 var_my_i = var62;
 {
-{ /* Inline kernel#Int#- (var_dist,1l) on <var_dist:Int> */
+{ /* Inline kernel$Int$- (var_dist,1l) on <var_dist:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var71 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var71)) {
 var_class_name74 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name74);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var75 = var_dist - 1l;
@@ -1723,14 +1609,14 @@ goto BREAK_label53;
 BREAK_label53: (void)0;
 for(;;) {
 {
-{ /* Inline kernel#Int#< (var_dist,0l) on <var_dist:Int> */
+{ /* Inline kernel$Int$< (var_dist,0l) on <var_dist:Int> */
 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
 /* <0l:Int> isa OTHER */
 var78 = 1; /* easy <0l: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);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var82 = var_dist < 0l;
@@ -1742,7 +1628,7 @@ RET_LABEL77:(void)0;
 if (var76){
 for(;;) {
 {
-{ /* Inline kernel#Int#unary - (4l) on <4l:Int> */
+{ /* Inline kernel$Int$unary - (4l) on <4l:Int> */
 var85 = -4l;
 var83 = var85;
 goto RET_LABEL84;
@@ -1750,14 +1636,14 @@ RET_LABEL84:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#<= (var_dist,var83) on <var_dist:Int> */
+{ /* Inline kernel$Int$<= (var_dist,var83) on <var_dist:Int> */
 /* Covariant cast for argument 0 (i) <var83:Int> isa OTHER */
 /* <var83:Int> isa OTHER */
 var88 = 1; /* easy <var83:Int> isa OTHER*/
 if (unlikely(!var88)) {
 var_class_name91 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name91);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
 fatal_exit(1);
 }
 var92 = var_dist <= var83;
@@ -1768,14 +1654,14 @@ RET_LABEL87:(void)0;
 }
 if (var86){
 {
-{ /* Inline kernel#Int#- (var_ns_i,4l) on <var_ns_i:Int> */
+{ /* Inline kernel$Int$- (var_ns_i,4l) on <var_ns_i:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var95 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var95)) {
 var_class_name98 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name98);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var99 = var_ns_i - 4l;
@@ -1785,8 +1671,8 @@ RET_LABEL94:(void)0;
 }
 }
 {
-{ /* Inline native#NativeString#fetch_4_chars (self,var93) on <self:NativeString> */
-var102 = (long)*((uint32_t*)(self + var93));
+{ /* Inline native$CString$fetch_4_chars (self,var93) on <self:CString> */
+var102 = *((uint32_t*)(self + var93));
 var100 = var102;
 goto RET_LABEL101;
 RET_LABEL101:(void)0;
@@ -1794,16 +1680,16 @@ RET_LABEL101:(void)0;
 }
 var_i103 = var100;
 {
-{ /* Inline math#Int#& (var_i103,2155905152l) on <var_i103:Int> */
-var106 = var_i103 & 2155905152l;
+{ /* Inline fixed_ints$UInt32$& (var_i103,UINT32_C(2155905152)) on <var_i103:UInt32> */
+var106 = var_i103 & UINT32_C(2155905152);
 var104 = var106;
 goto RET_LABEL105;
 RET_LABEL105:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#!= (var104,0l) on <var104:Int> */
-var109 = var104 == 0l;
+{ /* Inline fixed_ints$UInt32$!= (var104,UINT32_C(0)) on <var104:UInt32> */
+var109 = var104 == UINT32_C(0);
 var110 = !var109;
 var107 = var110;
 goto RET_LABEL108;
@@ -1815,14 +1701,14 @@ goto BREAK_label111;
 } else {
 }
 {
-{ /* Inline kernel#Int#- (var_ns_i,4l) on <var_ns_i:Int> */
+{ /* Inline kernel$Int$- (var_ns_i,4l) on <var_ns_i:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var114 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var114)) {
 var_class_name117 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name117);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var118 = var_ns_i - 4l;
@@ -1833,14 +1719,14 @@ RET_LABEL113:(void)0;
 }
 var_ns_i = var112;
 {
-{ /* Inline kernel#Int#- (var_my_i,4l) on <var_my_i:Int> */
+{ /* Inline kernel$Int$- (var_my_i,4l) on <var_my_i:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var121 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var121)) {
 var_class_name124 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name124);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var125 = var_my_i - 4l;
@@ -1851,14 +1737,14 @@ RET_LABEL120:(void)0;
 }
 var_my_i = var119;
 {
-{ /* Inline kernel#Int#+ (var_dist,4l) on <var_dist:Int> */
+{ /* Inline kernel$Int$+ (var_dist,4l) on <var_dist:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var128 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var128)) {
 var_class_name131 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name131);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var132 = var_dist + 4l;
@@ -1874,7 +1760,7 @@ goto BREAK_label111;
 }
 BREAK_label111: (void)0;
 {
-{ /* Inline kernel#Int#== (var_dist,0l) on <var_dist:Int> */
+{ /* Inline kernel$Int$== (var_dist,0l) on <var_dist:Int> */
 var135 = var_dist == 0l;
 var133 = var135;
 goto RET_LABEL134;
@@ -1886,14 +1772,14 @@ goto BREAK_label136;
 } else {
 }
 {
-{ /* Inline kernel#Int#- (var_ns_i,1l) on <var_ns_i:Int> */
+{ /* Inline kernel$Int$- (var_ns_i,1l) on <var_ns_i:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var139 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var139)) {
 var_class_name142 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name142);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var143 = var_ns_i - 1l;
@@ -1903,18 +1789,18 @@ RET_LABEL138:(void)0;
 }
 }
 {
-var144 = core___core__NativeString___find_beginning_of_char_at(self, var137);
+var144 = core___core__CString___find_beginning_of_char_at(self, var137);
 }
 var_ns_i = var144;
 {
-{ /* Inline kernel#Int#- (var_my_i,1l) on <var_my_i:Int> */
+{ /* Inline kernel$Int$- (var_my_i,1l) on <var_my_i:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var147 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var147)) {
 var_class_name150 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name150);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var151 = var_my_i - 1l;
@@ -1925,14 +1811,14 @@ RET_LABEL146:(void)0;
 }
 var_my_i = var145;
 {
-{ /* Inline kernel#Int#+ (var_dist,1l) on <var_dist:Int> */
+{ /* Inline kernel$Int$+ (var_dist,1l) on <var_dist:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var154 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var154)) {
 var_class_name157 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name157);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var158 = var_dist + 1l;
@@ -1952,8 +1838,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#find_beginning_of_char_at for (self: NativeString, Int): Int */
-long core___core__NativeString___find_beginning_of_char_at(char* self, long p0) {
+/* method native$CString$find_beginning_of_char_at for (self: CString, Int): Int */
+long core___core__CString___find_beginning_of_char_at(char* self, long p0) {
 long var /* : Int */;
 long var_pos /* var pos: Int */;
 long var_endpos /* var endpos: Int */;
@@ -1999,7 +1885,7 @@ short int var44 /* : Bool */;
 var_pos = p0;
 var_endpos = var_pos;
 {
-{ /* Inline native#NativeString#[] (self,var_pos) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var_pos) on <self:CString> */
 var3 = (unsigned char)((int)self[var_pos]);
 var1 = var3;
 goto RET_LABEL2;
@@ -2008,7 +1894,7 @@ RET_LABEL2:(void)0;
 }
 var_c = var1;
 {
-{ /* Inline math#Byte#& (var_c,((unsigned char)0x80)) on <var_c:Byte> */
+{ /* Inline math$Byte$& (var_c,((unsigned char)0x80)) on <var_c:Byte> */
 var6 = var_c & ((unsigned char)0x80);
 var4 = var6;
 goto RET_LABEL5;
@@ -2016,7 +1902,7 @@ RET_LABEL5:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var4,((unsigned char)0x00)) on <var4:Byte> */
+{ /* Inline kernel$Byte$== (var4,((unsigned char)0x00)) on <var4:Byte> */
 var9 = var4 == ((unsigned char)0x00);
 var7 = var9;
 goto RET_LABEL8;
@@ -2030,7 +1916,7 @@ goto RET_LABEL;
 }
 for(;;) {
 {
-{ /* Inline math#Byte#& (var_c,((unsigned char)0xc0)) on <var_c:Byte> */
+{ /* Inline math$Byte$& (var_c,((unsigned char)0xc0)) on <var_c:Byte> */
 var12 = var_c & ((unsigned char)0xc0);
 var10 = var12;
 goto RET_LABEL11;
@@ -2038,7 +1924,7 @@ RET_LABEL11:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#== (var10,((unsigned char)0x80)) on <var10:Byte> */
+{ /* Inline kernel$Byte$== (var10,((unsigned char)0x80)) on <var10:Byte> */
 var15 = var10 == ((unsigned char)0x80);
 var13 = var15;
 goto RET_LABEL14;
@@ -2047,14 +1933,14 @@ RET_LABEL14:(void)0;
 }
 if (var13){
 {
-{ /* Inline kernel#Int#- (var_pos,1l) on <var_pos:Int> */
+{ /* Inline kernel$Int$- (var_pos,1l) on <var_pos: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_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, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var19 = var_pos - 1l;
@@ -2065,7 +1951,7 @@ RET_LABEL17:(void)0;
 }
 var_pos = var16;
 {
-{ /* Inline native#NativeString#[] (self,var_pos) on <self:NativeString> */
+{ /* Inline native$CString$[] (self,var_pos) on <self:CString> */
 var22 = (unsigned char)((int)self[var_pos]);
 var20 = var22;
 goto RET_LABEL21;
@@ -2080,17 +1966,17 @@ goto BREAK_label;
 BREAK_label: (void)0;
 var_stpos = var_pos;
 {
-var23 = core___core__NativeString___length_of_char_at(self, var_stpos);
+var23 = core___core__CString___length_of_char_at(self, var_stpos);
 }
 {
-{ /* Inline kernel#Int#- (var_endpos,var_stpos) on <var_endpos:Int> */
+{ /* Inline kernel$Int$- (var_endpos,var_stpos) on <var_endpos:Int> */
 /* Covariant cast for argument 0 (i) <var_stpos:Int> isa OTHER */
 /* <var_stpos:Int> isa OTHER */
 var26 = 1; /* easy <var_stpos:Int> isa OTHER*/
 if (unlikely(!var26)) {
 var_class_name29 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var30 = var_endpos - var_stpos;
@@ -2100,14 +1986,14 @@ RET_LABEL25:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#+ (var24,1l) on <var24:Int> */
+{ /* Inline kernel$Int$+ (var24,1l) on <var24:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var33 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var33)) {
 var_class_name36 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var37 = var24 + 1l;
@@ -2117,14 +2003,14 @@ RET_LABEL32:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#>= (var23,var31) on <var23:Int> */
+{ /* Inline kernel$Int$>= (var23,var31) on <var23:Int> */
 /* Covariant cast for argument 0 (i) <var31:Int> isa OTHER */
 /* <var31:Int> isa OTHER */
 var40 = 1; /* easy <var31:Int> isa OTHER*/
 if (unlikely(!var40)) {
 var_class_name43 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var44 = var23 >= var31;
@@ -2143,11 +2029,11 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#utf8_length for (self: NativeString, Int, Int): Int */
-long core___core__NativeString___utf8_length(char* self, long p0, long p1) {
+/* method native$CString$utf8_length for (self: CString, Int, Int): Int */
+long core___core__CString___utf8_length(char* self, long p0, long p1) {
 long var /* : Int */;
 long var_from /* var from: Int */;
-long var_bytelen /* var bytelen: Int */;
+long var_byte_length /* var byte_length: Int */;
 long var_st /* var st: Int */;
 long var_ln /* var ln: Int */;
 short int var1 /* : Bool */;
@@ -2162,11 +2048,11 @@ int cltype8;
 int idtype9;
 const char* var_class_name10;
 short int var11 /* : Bool */;
-long var12 /* : Int */;
-long var14 /* : Int */;
-long var_i /* var i: Int */;
-long var15 /* : Int */;
-long var17 /* : Int */;
+uint32_t var12 /* : UInt32 */;
+uint32_t var14 /* : UInt32 */;
+uint32_t var_i /* var i: UInt32 */;
+uint32_t var15 /* : UInt32 */;
+uint32_t var17 /* : UInt32 */;
 short int var18 /* : Bool */;
 short int var20 /* : Bool */;
 short int var21 /* : Bool */;
@@ -2211,22 +2097,22 @@ int idtype66;
 const char* var_class_name67;
 long var68 /* : Int */;
 var_from = p0;
-var_bytelen = p1;
+var_byte_length = p1;
 var_st = var_from;
 var_ln = 0l;
 for(;;) {
 {
-{ /* Inline kernel#Int#> (var_bytelen,0l) on <var_bytelen:Int> */
+{ /* Inline kernel$Int$> (var_byte_length,0l) on <var_byte_length:Int> */
 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
 /* <0l:Int> isa OTHER */
 var3 = 1; /* easy <0l:Int> isa OTHER*/
 if (unlikely(!var3)) {
 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, 730);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
 fatal_exit(1);
 }
-var4 = var_bytelen > 0l;
+var4 = var_byte_length > 0l;
 var1 = var4;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -2235,17 +2121,17 @@ RET_LABEL2:(void)0;
 if (var1){
 for(;;) {
 {
-{ /* Inline kernel#Int#>= (var_bytelen,4l) on <var_bytelen:Int> */
+{ /* Inline kernel$Int$>= (var_byte_length,4l) on <var_byte_length:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var7 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var7)) {
 var_class_name10 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
-var11 = var_bytelen >= 4l;
+var11 = var_byte_length >= 4l;
 var5 = var11;
 goto RET_LABEL6;
 RET_LABEL6:(void)0;
@@ -2253,8 +2139,8 @@ RET_LABEL6:(void)0;
 }
 if (var5){
 {
-{ /* Inline native#NativeString#fetch_4_chars (self,var_st) on <self:NativeString> */
-var14 = (long)*((uint32_t*)(self + var_st));
+{ /* Inline native$CString$fetch_4_chars (self,var_st) on <self:CString> */
+var14 = *((uint32_t*)(self + var_st));
 var12 = var14;
 goto RET_LABEL13;
 RET_LABEL13:(void)0;
@@ -2262,16 +2148,16 @@ RET_LABEL13:(void)0;
 }
 var_i = var12;
 {
-{ /* Inline math#Int#& (var_i,2155905152l) on <var_i:Int> */
-var17 = var_i & 2155905152l;
+{ /* Inline fixed_ints$UInt32$& (var_i,UINT32_C(2155905152)) on <var_i:UInt32> */
+var17 = var_i & UINT32_C(2155905152);
 var15 = var17;
 goto RET_LABEL16;
 RET_LABEL16:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#!= (var15,0l) on <var15:Int> */
-var20 = var15 == 0l;
+{ /* Inline fixed_ints$UInt32$!= (var15,UINT32_C(0)) on <var15:UInt32> */
+var20 = var15 == UINT32_C(0);
 var21 = !var20;
 var18 = var21;
 goto RET_LABEL19;
@@ -2283,32 +2169,32 @@ goto BREAK_label;
 } else {
 }
 {
-{ /* Inline kernel#Int#- (var_bytelen,4l) on <var_bytelen:Int> */
+{ /* Inline kernel$Int$- (var_byte_length,4l) on <var_byte_length:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var24 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var24)) {
 var_class_name27 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
-var28 = var_bytelen - 4l;
+var28 = var_byte_length - 4l;
 var22 = var28;
 goto RET_LABEL23;
 RET_LABEL23:(void)0;
 }
 }
-var_bytelen = var22;
+var_byte_length = var22;
 {
-{ /* Inline kernel#Int#+ (var_st,4l) on <var_st:Int> */
+{ /* Inline kernel$Int$+ (var_st,4l) on <var_st:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var31 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var31)) {
 var_class_name34 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var35 = var_st + 4l;
@@ -2319,14 +2205,14 @@ RET_LABEL30:(void)0;
 }
 var_st = var29;
 {
-{ /* Inline kernel#Int#+ (var_ln,4l) on <var_ln:Int> */
+{ /* Inline kernel$Int$+ (var_ln,4l) on <var_ln:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var38 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var38)) {
 var_class_name41 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var42 = var_ln + 4l;
@@ -2342,8 +2228,8 @@ goto BREAK_label;
 }
 BREAK_label: (void)0;
 {
-{ /* Inline kernel#Int#== (var_bytelen,0l) on <var_bytelen:Int> */
-var45 = var_bytelen == 0l;
+{ /* Inline kernel$Int$== (var_byte_length,0l) on <var_byte_length:Int> */
+var45 = var_byte_length == 0l;
 var43 = var45;
 goto RET_LABEL44;
 RET_LABEL44:(void)0;
@@ -2354,18 +2240,18 @@ goto BREAK_label46;
 } else {
 }
 {
-var47 = core___core__NativeString___length_of_char_at(self, var_st);
+var47 = core___core__CString___length_of_char_at(self, var_st);
 }
 var_cln = var47;
 {
-{ /* Inline kernel#Int#+ (var_st,var_cln) on <var_st:Int> */
+{ /* Inline kernel$Int$+ (var_st,var_cln) on <var_st:Int> */
 /* Covariant cast for argument 0 (i) <var_cln:Int> isa OTHER */
 /* <var_cln:Int> isa OTHER */
 var50 = 1; /* easy <var_cln:Int> isa OTHER*/
 if (unlikely(!var50)) {
 var_class_name53 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var54 = var_st + var_cln;
@@ -2376,14 +2262,14 @@ RET_LABEL49:(void)0;
 }
 var_st = var48;
 {
-{ /* Inline kernel#Int#+ (var_ln,1l) on <var_ln:Int> */
+{ /* Inline kernel$Int$+ (var_ln,1l) on <var_ln:Int> */
 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
 /* <1l:Int> isa OTHER */
 var57 = 1; /* easy <1l:Int> isa OTHER*/
 if (unlikely(!var57)) {
 var_class_name60 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var61 = var_ln + 1l;
@@ -2394,23 +2280,23 @@ RET_LABEL56:(void)0;
 }
 var_ln = var55;
 {
-{ /* Inline kernel#Int#- (var_bytelen,var_cln) on <var_bytelen:Int> */
+{ /* Inline kernel$Int$- (var_byte_length,var_cln) on <var_byte_length:Int> */
 /* Covariant cast for argument 0 (i) <var_cln:Int> isa OTHER */
 /* <var_cln:Int> isa OTHER */
 var64 = 1; /* easy <var_cln:Int> isa OTHER*/
 if (unlikely(!var64)) {
 var_class_name67 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
-var68 = var_bytelen - var_cln;
+var68 = var_byte_length - var_cln;
 var62 = var68;
 goto RET_LABEL63;
 RET_LABEL63:(void)0;
 }
 }
-var_bytelen = var62;
+var_byte_length = var62;
 } else {
 goto BREAK_label46;
 }
@@ -2421,41 +2307,21 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#fetch_4_chars for (self: NativeString, Int): Int */
-long core___core__NativeString___fetch_95d4_chars(char* self, long p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = (long)*((uint32_t*)(self + p0));
+/* method native$CString$fetch_4_chars for (self: CString, Int): UInt32 */
+uint32_t core___core__CString___fetch_95d4_chars(char* self, long p0) {
+uint32_t var /* : UInt32 */;
+uint32_t var1 /* : UInt32 */;
+var1 = *((uint32_t*)(self + p0));
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method native#NativeString#fetch_4_hchars for (self: NativeString, Int): Int */
-long core___core__NativeString___fetch_95d4_hchars(char* self, long p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = (long)be32toh(*((uint32_t*)(self + p0)));
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method native#NativeString#fetch_4_ffi for (self: NativeString, Int): Int */
-long core___core__NativeString___fetch_95d4_ffi(char* self, long p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = native___NativeString_fetch_4_ffi___impl(self, p0);
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method native#NativeString#fetch_4h_ffi for (self: NativeString, Int): Int */
-long core___core__NativeString___fetch_95d4h_ffi(char* self, long p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = native___NativeString_fetch_4h_ffi___impl(self, p0);
+/* method native$CString$fetch_4_hchars for (self: CString, Int): UInt32 */
+uint32_t core___core__CString___fetch_95d4_hchars(char* self, long p0) {
+uint32_t var /* : UInt32 */;
+uint32_t var1 /* : UInt32 */;
+var1 = (uint32_t)be32toh(*((uint32_t*)(self + p0)));
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;