Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / core__kernel.sep.1.c
index 46f68ae..ab92c9a 100644 (file)
@@ -1,5 +1,5 @@
 #include "core__kernel.sep.0.h"
-/* method kernel#Object#object_id for (self: Object): Int */
+/* method kernel$Object$object_id for (self: Object): Int */
 long core___core__Object___object_id(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -9,17 +9,17 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#is_same_instance for (self: Object, nullable Object): Bool */
+/* method kernel$Object$is_same_instance for (self: Object, nullable Object): Bool */
 short int core___core__Object___is_same_instance(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-var1 = self == p0 || (p0 != NULL && (!((long)self&3)) && (!((long)p0&3)) && self->class == p0->class && ((self->class->box_kind == 3 && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_core__NativeString*)self)->value == ((struct instance_core__NativeString*)p0)->value) || (self->class->box_kind == 7 && ((struct instance_core__Pointer*)self)->value == ((struct instance_core__Pointer*)p0)->value) || (self->class->box_kind == 8 && ((struct instance_core__Int8*)self)->value == ((struct instance_core__Int8*)p0)->value) || (self->class->box_kind == 9 && ((struct instance_core__Int16*)self)->value == ((struct instance_core__Int16*)p0)->value) || (self->class->box_kind == 10 && ((struct instance_core__UInt16*)self)->value == ((struct instance_core__UInt16*)p0)->value) || (self->class->box_kind == 11 && ((struct instance_core__Int32*)self)->value == ((struct instance_core__Int32*)p0)->value) || (self->class->box_kind == 12 && ((struct instance_core__UInt32*)self)->value == ((struct instance_core__UInt32*)p0)->value)));
+var1 = self == p0 || (p0 != NULL && (!((long)self&3)) && (!((long)p0&3)) && self->class == p0->class && ((self->class->box_kind == 3 && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_core__CString*)self)->value == ((struct instance_core__CString*)p0)->value) || (self->class->box_kind == 7 && ((struct instance_core__Pointer*)self)->value == ((struct instance_core__Pointer*)p0)->value) || (self->class->box_kind == 8 && ((struct instance_core__Int8*)self)->value == ((struct instance_core__Int8*)p0)->value) || (self->class->box_kind == 9 && ((struct instance_core__Int16*)self)->value == ((struct instance_core__Int16*)p0)->value) || (self->class->box_kind == 10 && ((struct instance_core__UInt16*)self)->value == ((struct instance_core__UInt16*)p0)->value) || (self->class->box_kind == 11 && ((struct instance_core__Int32*)self)->value == ((struct instance_core__Int32*)p0)->value) || (self->class->box_kind == 12 && ((struct instance_core__UInt32*)self)->value == ((struct instance_core__UInt32*)p0)->value)));
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#== for (self: Object, nullable Object): Bool */
+/* method kernel$Object$== for (self: Object, nullable Object): Bool */
 short int core___core__Object____61d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 val* var_other /* var other: nullable Object */;
@@ -27,8 +27,8 @@ short int var1 /* : Bool */;
 short int var3 /* : Bool */;
 var_other = p0;
 {
-{ /* Inline kernel#Object#is_same_instance (self,var_other) on <self:Object> */
-var3 = self == var_other || (var_other != NULL && (!((long)self&3)) && (!((long)var_other&3)) && self->class == var_other->class && ((self->class->box_kind == 3 && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_core__NativeString*)self)->value == ((struct instance_core__NativeString*)var_other)->value) || (self->class->box_kind == 7 && ((struct instance_core__Pointer*)self)->value == ((struct instance_core__Pointer*)var_other)->value) || (self->class->box_kind == 8 && ((struct instance_core__Int8*)self)->value == ((struct instance_core__Int8*)var_other)->value) || (self->class->box_kind == 9 && ((struct instance_core__Int16*)self)->value == ((struct instance_core__Int16*)var_other)->value) || (self->class->box_kind == 10 && ((struct instance_core__UInt16*)self)->value == ((struct instance_core__UInt16*)var_other)->value) || (self->class->box_kind == 11 && ((struct instance_core__Int32*)self)->value == ((struct instance_core__Int32*)var_other)->value) || (self->class->box_kind == 12 && ((struct instance_core__UInt32*)self)->value == ((struct instance_core__UInt32*)var_other)->value)));
+{ /* Inline kernel$Object$is_same_instance (self,var_other) on <self:Object> */
+var3 = self == var_other || (var_other != NULL && (!((long)self&3)) && (!((long)var_other&3)) && self->class == var_other->class && ((self->class->box_kind == 3 && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_core__CString*)self)->value == ((struct instance_core__CString*)var_other)->value) || (self->class->box_kind == 7 && ((struct instance_core__Pointer*)self)->value == ((struct instance_core__Pointer*)var_other)->value) || (self->class->box_kind == 8 && ((struct instance_core__Int8*)self)->value == ((struct instance_core__Int8*)var_other)->value) || (self->class->box_kind == 9 && ((struct instance_core__Int16*)self)->value == ((struct instance_core__Int16*)var_other)->value) || (self->class->box_kind == 10 && ((struct instance_core__UInt16*)self)->value == ((struct instance_core__UInt16*)var_other)->value) || (self->class->box_kind == 11 && ((struct instance_core__Int32*)self)->value == ((struct instance_core__Int32*)var_other)->value) || (self->class->box_kind == 12 && ((struct instance_core__UInt32*)self)->value == ((struct instance_core__UInt32*)var_other)->value)));
 var1 = var3;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -39,7 +39,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#!= for (self: Object, nullable Object): Bool */
+/* method kernel$Object$!= for (self: Object, nullable Object): Bool */
 short int core___core__Object____33d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 val* var_other /* var other: nullable Object */;
@@ -55,7 +55,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#hash for (self: Object): Int */
+/* method kernel$Object$hash for (self: Object): Int */
 long core___core__Object___hash(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -67,7 +67,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#sys for (self: Object): Sys */
+/* method kernel$Object$sys for (self: Object): Sys */
 val* core___core__Object___sys(val* self) {
 val* var /* : Sys */;
 val* var1 /* : Sys */;
@@ -77,36 +77,49 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#init for (self: Object) */
+/* method kernel$Object$init for (self: Object) */
 void core___core__Object___init(val* self) {
 RET_LABEL:;
 }
-/* method kernel#Sys#run for (self: Sys) */
+/* method kernel$Sys$run for (self: Sys) */
 void core___core__Sys___run(val* self) {
 {
-nitc__abstract_compiler___core__Sys___main(self); /* Direct call abstract_compiler#Sys#main on <self:Sys>*/
+nitc__abstract_compiler___core__Sys___main(self); /* Direct call abstract_compiler$Sys$main on <self:Sys>*/
 }
 RET_LABEL:;
 }
-/* method kernel#Sys#errno for (self: Sys): Int */
+/* method kernel$Sys$errno for (self: Sys): Int */
 long core___core__Sys___errno(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 struct nitni_instance* var_for_c_0;
 var_for_c_0 = nit_alloc(sizeof(struct nitni_instance));
 var_for_c_0->value = self;
-var1 = kernel___Sys_errno___impl(var_for_c_0);
+var1 = core__kernel___Sys_errno___impl(var_for_c_0);
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Sys#exit for (self: Sys, Int) */
+/* method kernel$Sys$exit for (self: Sys, Int) */
 void core___core__Sys___exit(val* self, long p0) {
-exit(p0);
+exit((int)p0);
 RET_LABEL:;
 }
-/* method kernel#Comparable#<= for (self: Comparable, Comparable): Bool */
+/* method kernel$Sys$is_windows for (self: Sys): Bool */
+short int core___core__Sys___is_windows(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+struct nitni_instance* var_for_c_0;
+var_for_c_0 = nit_alloc(sizeof(struct nitni_instance));
+var_for_c_0->value = self;
+var1 = core__kernel___Sys_is_windows___impl(var_for_c_0);
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method kernel$Comparable$<= for (self: Comparable, Comparable): Bool */
 short int core___core__Comparable____60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -143,7 +156,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Comparable#>= for (self: Comparable, Comparable): Bool */
+/* method kernel$Comparable$>= for (self: Comparable, Comparable): Bool */
 short int core___core__Comparable____62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -180,7 +193,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Comparable#> for (self: Comparable, Comparable): Bool */
+/* method kernel$Comparable$> for (self: Comparable, Comparable): Bool */
 short int core___core__Comparable____62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -215,7 +228,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Comparable#<=> for (self: Comparable, Comparable): Int */
+/* method kernel$Comparable$<=> for (self: Comparable, Comparable): Int */
 long core___core__Comparable____60d_61d_62d(val* self, val* p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -250,7 +263,7 @@ var2 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)sel
 }
 if (var2){
 {
-{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */
+{ /* Inline kernel$Int$unary - (1l) on <1l:Int> */
 var5 = -1l;
 var3 = var5;
 goto RET_LABEL4;
@@ -274,7 +287,127 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#object_id for (self: Bool): Int */
+/* method kernel$Comparable$max for (self: Comparable, Comparable): Comparable */
+val* core___core__Comparable___max(val* self, val* p0) {
+val* var /* : Comparable */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+val* var_other /* var other: Comparable */;
+short int var2 /* : Bool */;
+short int var3 /* : Bool */;
+int cltype4;
+int idtype5;
+const struct type* type_struct6;
+const char* var_class_name7;
+/* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
+/* <p0:Comparable> isa OTHER */
+type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
+var1 = 0;
+} else {
+var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
+}
+if (unlikely(!var1)) {
+var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 352);
+fatal_exit(1);
+}
+var_other = p0;
+{
+var2 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__kernel__Comparable___60d]))(self, var_other); /* < on <self:Comparable>*/
+}
+if (var2){
+var = var_other;
+goto RET_LABEL;
+} else {
+/* <self:Comparable> isa OTHER */
+type_struct6 = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
+cltype4 = type_struct6->color;
+idtype5 = type_struct6->id;
+if(cltype4 >= (((long)self&3)?type_info[((long)self&3)]:self->type)->table_size) {
+var3 = 0;
+} else {
+var3 = (((long)self&3)?type_info[((long)self&3)]:self->type)->type_table[cltype4] == idtype5;
+}
+if (unlikely(!var3)) {
+var_class_name7 = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 358);
+fatal_exit(1);
+}
+var = self;
+goto RET_LABEL;
+}
+RET_LABEL:;
+return var;
+}
+/* method kernel$Comparable$min for (self: Comparable, Comparable): Comparable */
+val* core___core__Comparable___min(val* self, val* p0) {
+val* var /* : Comparable */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+val* var_c /* var c: Comparable */;
+short int var2 /* : Bool */;
+short int var3 /* : Bool */;
+int cltype4;
+int idtype5;
+const struct type* type_struct6;
+const char* var_class_name7;
+/* Covariant cast for argument 0 (c) <p0:Comparable> isa OTHER */
+/* <p0:Comparable> isa OTHER */
+type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
+var1 = 0;
+} else {
+var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
+}
+if (unlikely(!var1)) {
+var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 362);
+fatal_exit(1);
+}
+var_c = p0;
+{
+var2 = ((short int(*)(val* self, val* p0))((((long)var_c&3)?class_info[((long)var_c&3)]:var_c->class)->vft[COLOR_core__kernel__Comparable___60d]))(var_c, self); /* < on <var_c:Comparable>*/
+}
+if (var2){
+var = var_c;
+goto RET_LABEL;
+} else {
+/* <self:Comparable> isa OTHER */
+type_struct6 = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
+cltype4 = type_struct6->color;
+idtype5 = type_struct6->id;
+if(cltype4 >= (((long)self&3)?type_info[((long)self&3)]:self->type)->table_size) {
+var3 = 0;
+} else {
+var3 = (((long)self&3)?type_info[((long)self&3)]:self->type)->type_table[cltype4] == idtype5;
+}
+if (unlikely(!var3)) {
+var_class_name7 = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 368);
+fatal_exit(1);
+}
+var = self;
+goto RET_LABEL;
+}
+RET_LABEL:;
+return var;
+}
+/* method kernel$Bool$object_id for (self: Bool): Int */
 long core___core__Bool___Object__object_id(short int self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -284,13 +417,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#object_id for (self: Object): Int */
+/* method kernel$Bool$object_id for (self: Object): Int */
 long VIRTUAL_core___core__Bool___Object__object_id(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 short int var3 /* : Bool */;
 long var4 /* : Int */;
-{ /* Inline kernel#Bool#object_id (self) on <self:Object(Bool)> */
+{ /* Inline kernel$Bool$object_id (self) on <self:Object(Bool)> */
 var3 = (short int)((long)(self)>>2);
 var4 = (long)var3;
 var1 = var4;
@@ -301,7 +434,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#== for (self: Bool, nullable Object): Bool */
+/* method kernel$Bool$== for (self: Bool, nullable Object): Bool */
 short int core___core__Bool___Object___61d_61d(short int self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -315,12 +448,12 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#== for (self: Object, nullable Object): Bool */
+/* method kernel$Bool$== for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Bool___Object___61d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
-{ /* Inline kernel#Bool#== (self,p0) on <self:Object(Bool)> */
+{ /* Inline kernel$Bool$== (self,p0) on <self:Object(Bool)> */
 var3 = self == p0;
 var1 = var3;
 goto RET_LABEL2;
@@ -330,7 +463,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#!= for (self: Bool, nullable Object): Bool */
+/* method kernel$Bool$!= for (self: Bool, nullable Object): Bool */
 short int core___core__Bool___Object___33d_61d(short int self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -346,13 +479,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#!= for (self: Object, nullable Object): Bool */
+/* method kernel$Bool$!= for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Bool___Object___33d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-{ /* Inline kernel#Bool#!= (self,p0) on <self:Object(Bool)> */
+{ /* Inline kernel$Bool$!= (self,p0) on <self:Object(Bool)> */
 var3 = self == p0;
 var4 = !var3;
 var1 = var4;
@@ -363,7 +496,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#hash for (self: Bool): Int */
+/* method kernel$Bool$hash for (self: Bool): Int */
 long core___core__Bool___Object__hash(short int self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -375,7 +508,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#hash for (self: Object): Int */
+/* method kernel$Bool$hash for (self: Object): Int */
 long VIRTUAL_core___core__Bool___Object__hash(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -386,7 +519,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#to_i for (self: Bool): Int */
+/* method kernel$Bool$to_i for (self: Bool): Int */
 long core___core__Bool___to_i(short int self) {
 long var /* : Int */;
 if (self){
@@ -399,7 +532,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#object_id for (self: Float): Int */
+/* method kernel$Float$object_id for (self: Float): Int */
 long core___core__Float___Object__object_id(double self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -409,13 +542,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#object_id for (self: Object): Int */
+/* method kernel$Float$object_id for (self: Object): Int */
 long VIRTUAL_core___core__Float___Object__object_id(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 double var3 /* : Float */;
 long var4 /* : Int */;
-{ /* Inline kernel#Float#object_id (self) on <self:Object(Float)> */
+{ /* Inline kernel$Float$object_id (self) on <self:Object(Float)> */
 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Object to Float */;
 var4 = (double)var3;
 var1 = var4;
@@ -426,7 +559,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#== for (self: Float, nullable Object): Bool */
+/* method kernel$Float$== for (self: Float, nullable Object): Bool */
 short int core___core__Float___Object___61d_61d(double self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -440,12 +573,12 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#== for (self: Object, nullable Object): Bool */
+/* method kernel$Float$== for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Float___Object___61d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
-{ /* Inline kernel#Float#== (self,p0) on <self:Object(Float)> */
+{ /* Inline kernel$Float$== (self,p0) on <self:Object(Float)> */
 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value);
 var1 = var3;
 goto RET_LABEL2;
@@ -455,7 +588,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#!= for (self: Float, nullable Object): Bool */
+/* method kernel$Float$!= for (self: Float, nullable Object): Bool */
 short int core___core__Float___Object___33d_61d(double self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -471,13 +604,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#!= for (self: Object, nullable Object): Bool */
+/* method kernel$Float$!= for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Float___Object___33d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-{ /* Inline kernel#Float#!= (self,p0) on <self:Object(Float)> */
+{ /* Inline kernel$Float$!= (self,p0) on <self:Object(Float)> */
 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Float*)self)->value == ((struct instance_core__Float*)p0)->value);
 var4 = !var3;
 var1 = var4;
@@ -488,7 +621,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#<= for (self: Float, Float): Bool */
+/* method kernel$Float$<= for (self: Float, Float): Bool */
 short int core___core__Float___Comparable___60d_61d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -511,7 +644,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#<= for (self: Comparable, Comparable): Bool */
+/* method kernel$Float$<= for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Float___Comparable___60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -523,7 +656,7 @@ const char* var_class_name;
 double var4 /* : Float */;
 double var5 /* : Float */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Float#<= (self,p0) on <self:Comparable(Float)> */
+{ /* Inline kernel$Float$<= (self,p0) on <self:Comparable(Float)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -551,7 +684,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#< for (self: Float, Float): Bool */
+/* method kernel$Float$< for (self: Float, Float): Bool */
 short int core___core__Float___Comparable___60d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -574,7 +707,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#< for (self: Comparable, Comparable): Bool */
+/* method kernel$Float$< for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Float___Comparable___60d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -586,7 +719,7 @@ const char* var_class_name;
 double var4 /* : Float */;
 double var5 /* : Float */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Float#< (self,p0) on <self:Comparable(Float)> */
+{ /* Inline kernel$Float$< (self,p0) on <self:Comparable(Float)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -614,7 +747,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#>= for (self: Float, Float): Bool */
+/* method kernel$Float$>= for (self: Float, Float): Bool */
 short int core___core__Float___Comparable___62d_61d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -637,7 +770,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#>= for (self: Comparable, Comparable): Bool */
+/* method kernel$Float$>= for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Float___Comparable___62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -649,7 +782,7 @@ const char* var_class_name;
 double var4 /* : Float */;
 double var5 /* : Float */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Float#>= (self,p0) on <self:Comparable(Float)> */
+{ /* Inline kernel$Float$>= (self,p0) on <self:Comparable(Float)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -677,7 +810,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#> for (self: Float, Float): Bool */
+/* method kernel$Float$> for (self: Float, Float): Bool */
 short int core___core__Float___Comparable___62d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -700,7 +833,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#> for (self: Comparable, Comparable): Bool */
+/* method kernel$Float$> for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Float___Comparable___62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -712,7 +845,7 @@ const char* var_class_name;
 double var4 /* : Float */;
 double var5 /* : Float */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Float#> (self,p0) on <self:Comparable(Float)> */
+{ /* Inline kernel$Float$> (self,p0) on <self:Comparable(Float)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -740,7 +873,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#+ for (self: Float, Float): Float */
+/* method kernel$Float$+ for (self: Float, Float): Float */
 double core___core__Float___Numeric___43d(double self, double p0) {
 double var /* : Float */;
 short int var1 /* : Bool */;
@@ -763,7 +896,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#+ for (self: Numeric, Numeric): Numeric */
+/* method kernel$Float$+ for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Float___Numeric___43d(val* self, val* p0) {
 val* var /* : Numeric */;
 double var1 /* : Float */;
@@ -776,7 +909,7 @@ double var4 /* : Float */;
 double var5 /* : Float */;
 double var6 /* : Float */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Float#+ (self,p0) on <self:Numeric(Float)> */
+{ /* Inline kernel$Float$+ (self,p0) on <self:Numeric(Float)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -805,7 +938,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#unary - for (self: Float): Float */
+/* method kernel$Float$unary - for (self: Float): Float */
 double core___core__Float___Numeric__unary_32d_45d(double self) {
 double var /* : Float */;
 double var1 /* : Float */;
@@ -815,14 +948,14 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#unary - for (self: Numeric): Numeric */
+/* method kernel$Float$unary - for (self: Numeric): Numeric */
 val* VIRTUAL_core___core__Float___Numeric__unary_32d_45d(val* self) {
 val* var /* : Numeric */;
 double var1 /* : Float */;
 double var3 /* : Float */;
 double var4 /* : Float */;
 val* var5 /* : Numeric */;
-{ /* Inline kernel#Float#unary - (self) on <self:Numeric(Float)> */
+{ /* Inline kernel$Float$unary - (self) on <self:Numeric(Float)> */
 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
 var4 = -var3;
 var1 = var4;
@@ -834,7 +967,7 @@ var = var5;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#- for (self: Float, Float): Float */
+/* method kernel$Float$- for (self: Float, Float): Float */
 double core___core__Float___Numeric___45d(double self, double p0) {
 double var /* : Float */;
 short int var1 /* : Bool */;
@@ -857,7 +990,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#- for (self: Numeric, Numeric): Numeric */
+/* method kernel$Float$- for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Float___Numeric___45d(val* self, val* p0) {
 val* var /* : Numeric */;
 double var1 /* : Float */;
@@ -870,7 +1003,7 @@ double var4 /* : Float */;
 double var5 /* : Float */;
 double var6 /* : Float */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Float#- (self,p0) on <self:Numeric(Float)> */
+{ /* Inline kernel$Float$- (self,p0) on <self:Numeric(Float)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -899,7 +1032,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#* for (self: Float, Float): Float */
+/* method kernel$Float$* for (self: Float, Float): Float */
 double core___core__Float___Numeric___42d(double self, double p0) {
 double var /* : Float */;
 short int var1 /* : Bool */;
@@ -922,7 +1055,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#* for (self: Numeric, Numeric): Numeric */
+/* method kernel$Float$* for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Float___Numeric___42d(val* self, val* p0) {
 val* var /* : Numeric */;
 double var1 /* : Float */;
@@ -935,7 +1068,7 @@ double var4 /* : Float */;
 double var5 /* : Float */;
 double var6 /* : Float */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Float#* (self,p0) on <self:Numeric(Float)> */
+{ /* Inline kernel$Float$* (self,p0) on <self:Numeric(Float)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -964,7 +1097,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#/ for (self: Float, Float): Float */
+/* method kernel$Float$/ for (self: Float, Float): Float */
 double core___core__Float___Numeric___47d(double self, double p0) {
 double var /* : Float */;
 short int var1 /* : Bool */;
@@ -987,7 +1120,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#/ for (self: Numeric, Numeric): Numeric */
+/* method kernel$Float$/ for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Float___Numeric___47d(val* self, val* p0) {
 val* var /* : Numeric */;
 double var1 /* : Float */;
@@ -1000,7 +1133,7 @@ double var4 /* : Float */;
 double var5 /* : Float */;
 double var6 /* : Float */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Float#/ (self,p0) on <self:Numeric(Float)> */
+{ /* Inline kernel$Float$/ (self,p0) on <self:Numeric(Float)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -1029,7 +1162,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#to_i for (self: Float): Int */
+/* method kernel$Float$to_i for (self: Float): Int */
 long core___core__Float___Numeric__to_i(double self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -1039,13 +1172,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#to_i for (self: Numeric): Int */
+/* method kernel$Float$to_i for (self: Numeric): Int */
 long VIRTUAL_core___core__Float___Numeric__to_i(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 double var3 /* : Float */;
 long var4 /* : Int */;
-{ /* Inline kernel#Float#to_i (self) on <self:Numeric(Float)> */
+{ /* Inline kernel$Float$to_i (self) on <self:Numeric(Float)> */
 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
 var4 = (long)var3;
 var1 = var4;
@@ -1056,7 +1189,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#to_f for (self: Float): Float */
+/* method kernel$Float$to_f for (self: Float): Float */
 double core___core__Float___Numeric__to_f(double self) {
 double var /* : Float */;
 var = self;
@@ -1064,7 +1197,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#to_f for (self: Numeric): Float */
+/* method kernel$Float$to_f for (self: Numeric): Float */
 double VIRTUAL_core___core__Float___Numeric__to_f(val* self) {
 double var /* : Float */;
 double var1 /* : Float */;
@@ -1075,7 +1208,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#to_b for (self: Float): Byte */
+/* method kernel$Float$to_b for (self: Float): Byte */
 unsigned char core___core__Float___Numeric__to_b(double self) {
 unsigned char var /* : Byte */;
 unsigned char var1 /* : Byte */;
@@ -1085,13 +1218,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#to_b for (self: Numeric): Byte */
+/* method kernel$Float$to_b for (self: Numeric): Byte */
 unsigned char VIRTUAL_core___core__Float___Numeric__to_b(val* self) {
 unsigned char var /* : Byte */;
 unsigned char var1 /* : Byte */;
 double var3 /* : Float */;
 unsigned char var4 /* : Byte */;
-{ /* Inline kernel#Float#to_b (self) on <self:Numeric(Float)> */
+{ /* Inline kernel$Float$to_b (self) on <self:Numeric(Float)> */
 var3 = ((struct instance_core__Float*)self)->value; /* autounbox from Numeric to Float */;
 var4 = (unsigned char)var3;
 var1 = var4;
@@ -1102,7 +1235,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#<=> for (self: Float, Float): Int */
+/* method kernel$Float$<=> for (self: Float, Float): Int */
 long core___core__Float___Comparable___60d_61d_62d(double self, double p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -1135,7 +1268,7 @@ fatal_exit(1);
 }
 var_other = p0;
 {
-{ /* Inline kernel#Float#< (self,var_other) on <self:Float> */
+{ /* Inline kernel$Float$< (self,var_other) on <self:Float> */
 /* Covariant cast for argument 0 (i) <var_other:Float> isa OTHER */
 /* <var_other:Float> isa OTHER */
 var4 = 1; /* easy <var_other:Float> isa OTHER*/
@@ -1153,7 +1286,7 @@ RET_LABEL3:(void)0;
 }
 if (var2){
 {
-{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */
+{ /* Inline kernel$Int$unary - (1l) on <1l:Int> */
 var11 = -1l;
 var9 = var11;
 goto RET_LABEL10;
@@ -1164,7 +1297,7 @@ var = var9;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline kernel#Float#< (var_other,self) on <var_other:Float> */
+{ /* Inline kernel$Float$< (var_other,self) on <var_other:Float> */
 /* Covariant cast for argument 0 (i) <self:Float> isa OTHER */
 /* <self:Float> isa OTHER */
 var14 = 1; /* easy <self:Float> isa OTHER*/
@@ -1191,7 +1324,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#<=> for (self: Comparable, Comparable): Int */
+/* method kernel$Float$<=> for (self: Comparable, Comparable): Int */
 long VIRTUAL_core___core__Float___Comparable___60d_61d_62d(val* self, val* p0) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -1204,7 +1337,139 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#successor for (self: Byte, Int): Byte */
+/* method kernel$Float$max for (self: Float, Float): Float */
+double core___core__Float___Comparable__max(double self, double p0) {
+double var /* : Float */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+double var_other /* var other: Float */;
+short int var2 /* : Bool */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+const char* var_class_name7;
+short int var8 /* : Bool */;
+/* Covariant cast for argument 0 (other) <p0:Float> isa OTHER */
+/* <p0:Float> isa OTHER */
+var1 = 1; /* easy <p0:Float> isa OTHER*/
+if (unlikely(!var1)) {
+var_class_name = type_core__Float.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 582);
+fatal_exit(1);
+}
+var_other = p0;
+{
+{ /* Inline kernel$Float$< (self,var_other) on <self:Float> */
+/* Covariant cast for argument 0 (i) <var_other:Float> isa OTHER */
+/* <var_other:Float> isa OTHER */
+var4 = 1; /* easy <var_other:Float> isa OTHER*/
+if (unlikely(!var4)) {
+var_class_name7 = type_core__Float.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
+fatal_exit(1);
+}
+var8 = self < var_other;
+var2 = var8;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+}
+if (var2){
+var = var_other;
+goto RET_LABEL;
+} else {
+var = self;
+goto RET_LABEL;
+}
+RET_LABEL:;
+return var;
+}
+/* method kernel$Float$max for (self: Comparable, Comparable): Comparable */
+val* VIRTUAL_core___core__Float___Comparable__max(val* self, val* p0) {
+val* var /* : Comparable */;
+double var1 /* : Float */;
+double var2 /* : Float */;
+double var3 /* : Float */;
+val* var4 /* : Comparable */;
+var2 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
+var3 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var1 = core___core__Float___Comparable__max(var2, var3);
+var4 = BOX_core__Float(var1); /* autobox from Float to Comparable */
+var = var4;
+RET_LABEL:;
+return var;
+}
+/* method kernel$Float$min for (self: Float, Float): Float */
+double core___core__Float___Comparable__min(double self, double p0) {
+double var /* : Float */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+double var_c /* var c: Float */;
+short int var2 /* : Bool */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+const char* var_class_name7;
+short int var8 /* : Bool */;
+/* Covariant cast for argument 0 (c) <p0:Float> isa OTHER */
+/* <p0:Float> isa OTHER */
+var1 = 1; /* easy <p0:Float> isa OTHER*/
+if (unlikely(!var1)) {
+var_class_name = type_core__Float.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 591);
+fatal_exit(1);
+}
+var_c = p0;
+{
+{ /* Inline kernel$Float$< (var_c,self) on <var_c:Float> */
+/* Covariant cast for argument 0 (i) <self:Float> isa OTHER */
+/* <self:Float> isa OTHER */
+var4 = 1; /* easy <self:Float> isa OTHER*/
+if (unlikely(!var4)) {
+var_class_name7 = type_core__Float.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 530);
+fatal_exit(1);
+}
+var8 = var_c < self;
+var2 = var8;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+}
+if (var2){
+var = var_c;
+goto RET_LABEL;
+} else {
+var = self;
+goto RET_LABEL;
+}
+RET_LABEL:;
+return var;
+}
+/* method kernel$Float$min for (self: Comparable, Comparable): Comparable */
+val* VIRTUAL_core___core__Float___Comparable__min(val* self, val* p0) {
+val* var /* : Comparable */;
+double var1 /* : Float */;
+double var2 /* : Float */;
+double var3 /* : Float */;
+val* var4 /* : Comparable */;
+var2 = ((struct instance_core__Float*)self)->value; /* autounbox from Comparable to Float */;
+var3 = ((struct instance_core__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var1 = core___core__Float___Comparable__min(var2, var3);
+var4 = BOX_core__Float(var1); /* autobox from Float to Comparable */
+var = var4;
+RET_LABEL:;
+return var;
+}
+/* method kernel$Byte$successor for (self: Byte, Int): Byte */
 unsigned char core___core__Byte___Discrete__successor(unsigned char self, long p0) {
 unsigned char var /* : Byte */;
 long var_i /* var i: Int */;
@@ -1218,7 +1483,7 @@ const char* var_class_name;
 unsigned char var7 /* : Byte */;
 var_i = p0;
 {
-{ /* Inline kernel#Int#to_b (var_i) on <var_i:Int> */
+{ /* Inline kernel$Int$to_b (var_i) on <var_i:Int> */
 var3 = (unsigned char)var_i;
 var1 = var3;
 goto RET_LABEL2;
@@ -1226,7 +1491,7 @@ RET_LABEL2:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#+ (self,var1) on <self:Byte> */
+{ /* Inline kernel$Byte$+ (self,var1) on <self:Byte> */
 /* Covariant cast for argument 0 (i) <var1:Byte> isa OTHER */
 /* <var1:Byte> isa OTHER */
 var6 = 1; /* easy <var1:Byte> isa OTHER*/
@@ -1247,7 +1512,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#successor for (self: Discrete, Int): Discrete */
+/* method kernel$Byte$successor for (self: Discrete, Int): Discrete */
 val* VIRTUAL_core___core__Byte___Discrete__successor(val* self, long p0) {
 val* var /* : Discrete */;
 unsigned char var1 /* : Byte */;
@@ -1260,7 +1525,7 @@ var = var3;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#object_id for (self: Byte): Int */
+/* method kernel$Byte$object_id for (self: Byte): Int */
 long core___core__Byte___Object__object_id(unsigned char self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -1270,13 +1535,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#object_id for (self: Object): Int */
+/* method kernel$Byte$object_id for (self: Object): Int */
 long VIRTUAL_core___core__Byte___Object__object_id(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 unsigned char var3 /* : Byte */;
 long var4 /* : Int */;
-{ /* Inline kernel#Byte#object_id (self) on <self:Object(Byte)> */
+{ /* Inline kernel$Byte$object_id (self) on <self:Object(Byte)> */
 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Object to Byte */;
 var4 = (long)var3;
 var1 = var4;
@@ -1287,13 +1552,13 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#hash for (self: Byte): Int */
+/* method kernel$Byte$hash for (self: Byte): Int */
 long core___core__Byte___Object__hash(unsigned char self) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var3 /* : Int */;
 {
-{ /* Inline kernel#Byte#to_i (self) on <self:Byte> */
+{ /* Inline kernel$Byte$to_i (self) on <self:Byte> */
 var3 = (long)self;
 var1 = var3;
 goto RET_LABEL2;
@@ -1305,7 +1570,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#hash for (self: Object): Int */
+/* method kernel$Byte$hash for (self: Object): Int */
 long VIRTUAL_core___core__Byte___Object__hash(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -1316,7 +1581,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#== for (self: Byte, nullable Object): Bool */
+/* method kernel$Byte$== for (self: Byte, nullable Object): Bool */
 short int core___core__Byte___Object___61d_61d(unsigned char self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1330,12 +1595,12 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#== for (self: Object, nullable Object): Bool */
+/* method kernel$Byte$== for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Byte___Object___61d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
-{ /* Inline kernel#Byte#== (self,p0) on <self:Object(Byte)> */
+{ /* Inline kernel$Byte$== (self,p0) on <self:Object(Byte)> */
 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value);
 var1 = var3;
 goto RET_LABEL2;
@@ -1345,7 +1610,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#!= for (self: Byte, nullable Object): Bool */
+/* method kernel$Byte$!= for (self: Byte, nullable Object): Bool */
 short int core___core__Byte___Object___33d_61d(unsigned char self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1361,13 +1626,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#!= for (self: Object, nullable Object): Bool */
+/* method kernel$Byte$!= for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Byte___Object___33d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-{ /* Inline kernel#Byte#!= (self,p0) on <self:Object(Byte)> */
+{ /* Inline kernel$Byte$!= (self,p0) on <self:Object(Byte)> */
 var3 = self == p0 || (p0 != NULL && (!((long)p0&3)) && self->class == p0->class && ((struct instance_core__Byte*)self)->value == ((struct instance_core__Byte*)p0)->value);
 var4 = !var3;
 var1 = var4;
@@ -1378,7 +1643,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#<= for (self: Byte, Byte): Bool */
+/* method kernel$Byte$<= for (self: Byte, Byte): Bool */
 short int core___core__Byte___Comparable___60d_61d(unsigned char self, unsigned char p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1401,7 +1666,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#<= for (self: Comparable, Comparable): Bool */
+/* method kernel$Byte$<= for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Byte___Comparable___60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1413,7 +1678,7 @@ const char* var_class_name;
 unsigned char var4 /* : Byte */;
 unsigned char var5 /* : Byte */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Byte#<= (self,p0) on <self:Comparable(Byte)> */
+{ /* Inline kernel$Byte$<= (self,p0) on <self:Comparable(Byte)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -1441,7 +1706,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#< for (self: Byte, Byte): Bool */
+/* method kernel$Byte$< for (self: Byte, Byte): Bool */
 short int core___core__Byte___Comparable___60d(unsigned char self, unsigned char p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1464,7 +1729,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#< for (self: Comparable, Comparable): Bool */
+/* method kernel$Byte$< for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Byte___Comparable___60d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1476,7 +1741,7 @@ const char* var_class_name;
 unsigned char var4 /* : Byte */;
 unsigned char var5 /* : Byte */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Byte#< (self,p0) on <self:Comparable(Byte)> */
+{ /* Inline kernel$Byte$< (self,p0) on <self:Comparable(Byte)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -1504,7 +1769,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#>= for (self: Byte, Byte): Bool */
+/* method kernel$Byte$>= for (self: Byte, Byte): Bool */
 short int core___core__Byte___Comparable___62d_61d(unsigned char self, unsigned char p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1527,7 +1792,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#>= for (self: Comparable, Comparable): Bool */
+/* method kernel$Byte$>= for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Byte___Comparable___62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1539,7 +1804,7 @@ const char* var_class_name;
 unsigned char var4 /* : Byte */;
 unsigned char var5 /* : Byte */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Byte#>= (self,p0) on <self:Comparable(Byte)> */
+{ /* Inline kernel$Byte$>= (self,p0) on <self:Comparable(Byte)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -1567,7 +1832,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#> for (self: Byte, Byte): Bool */
+/* method kernel$Byte$> for (self: Byte, Byte): Bool */
 short int core___core__Byte___Comparable___62d(unsigned char self, unsigned char p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1590,7 +1855,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#> for (self: Comparable, Comparable): Bool */
+/* method kernel$Byte$> for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Byte___Comparable___62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -1602,7 +1867,7 @@ const char* var_class_name;
 unsigned char var4 /* : Byte */;
 unsigned char var5 /* : Byte */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Byte#> (self,p0) on <self:Comparable(Byte)> */
+{ /* Inline kernel$Byte$> (self,p0) on <self:Comparable(Byte)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -1630,7 +1895,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#+ for (self: Byte, Byte): Byte */
+/* method kernel$Byte$+ for (self: Byte, Byte): Byte */
 unsigned char core___core__Byte___Numeric___43d(unsigned char self, unsigned char p0) {
 unsigned char var /* : Byte */;
 short int var1 /* : Bool */;
@@ -1653,7 +1918,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#+ for (self: Numeric, Numeric): Numeric */
+/* method kernel$Byte$+ for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Byte___Numeric___43d(val* self, val* p0) {
 val* var /* : Numeric */;
 unsigned char var1 /* : Byte */;
@@ -1666,7 +1931,7 @@ unsigned char var4 /* : Byte */;
 unsigned char var5 /* : Byte */;
 unsigned char var6 /* : Byte */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Byte#+ (self,p0) on <self:Numeric(Byte)> */
+{ /* Inline kernel$Byte$+ (self,p0) on <self:Numeric(Byte)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -1695,7 +1960,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#unary - for (self: Byte): Byte */
+/* method kernel$Byte$unary - for (self: Byte): Byte */
 unsigned char core___core__Byte___Numeric__unary_32d_45d(unsigned char self) {
 unsigned char var /* : Byte */;
 unsigned char var1 /* : Byte */;
@@ -1705,14 +1970,14 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#unary - for (self: Numeric): Numeric */
+/* method kernel$Byte$unary - for (self: Numeric): Numeric */
 val* VIRTUAL_core___core__Byte___Numeric__unary_32d_45d(val* self) {
 val* var /* : Numeric */;
 unsigned char var1 /* : Byte */;
 unsigned char var3 /* : Byte */;
 unsigned char var4 /* : Byte */;
 val* var5 /* : Numeric */;
-{ /* Inline kernel#Byte#unary - (self) on <self:Numeric(Byte)> */
+{ /* Inline kernel$Byte$unary - (self) on <self:Numeric(Byte)> */
 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
 var4 = -var3;
 var1 = var4;
@@ -1724,7 +1989,7 @@ var = var5;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#- for (self: Byte, Byte): Byte */
+/* method kernel$Byte$- for (self: Byte, Byte): Byte */
 unsigned char core___core__Byte___Numeric___45d(unsigned char self, unsigned char p0) {
 unsigned char var /* : Byte */;
 short int var1 /* : Bool */;
@@ -1747,7 +2012,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#- for (self: Numeric, Numeric): Numeric */
+/* method kernel$Byte$- for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Byte___Numeric___45d(val* self, val* p0) {
 val* var /* : Numeric */;
 unsigned char var1 /* : Byte */;
@@ -1760,7 +2025,7 @@ unsigned char var4 /* : Byte */;
 unsigned char var5 /* : Byte */;
 unsigned char var6 /* : Byte */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Byte#- (self,p0) on <self:Numeric(Byte)> */
+{ /* Inline kernel$Byte$- (self,p0) on <self:Numeric(Byte)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -1789,7 +2054,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#* for (self: Byte, Byte): Byte */
+/* method kernel$Byte$* for (self: Byte, Byte): Byte */
 unsigned char core___core__Byte___Numeric___42d(unsigned char self, unsigned char p0) {
 unsigned char var /* : Byte */;
 short int var1 /* : Bool */;
@@ -1812,7 +2077,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#* for (self: Numeric, Numeric): Numeric */
+/* method kernel$Byte$* for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Byte___Numeric___42d(val* self, val* p0) {
 val* var /* : Numeric */;
 unsigned char var1 /* : Byte */;
@@ -1825,7 +2090,7 @@ unsigned char var4 /* : Byte */;
 unsigned char var5 /* : Byte */;
 unsigned char var6 /* : Byte */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Byte#* (self,p0) on <self:Numeric(Byte)> */
+{ /* Inline kernel$Byte$* (self,p0) on <self:Numeric(Byte)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -1854,7 +2119,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#/ for (self: Byte, Byte): Byte */
+/* method kernel$Byte$/ for (self: Byte, Byte): Byte */
 unsigned char core___core__Byte___Numeric___47d(unsigned char self, unsigned char p0) {
 unsigned char var /* : Byte */;
 short int var1 /* : Bool */;
@@ -1877,7 +2142,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#/ for (self: Numeric, Numeric): Numeric */
+/* method kernel$Byte$/ for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Byte___Numeric___47d(val* self, val* p0) {
 val* var /* : Numeric */;
 unsigned char var1 /* : Byte */;
@@ -1890,7 +2155,7 @@ unsigned char var4 /* : Byte */;
 unsigned char var5 /* : Byte */;
 unsigned char var6 /* : Byte */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Byte#/ (self,p0) on <self:Numeric(Byte)> */
+{ /* Inline kernel$Byte$/ (self,p0) on <self:Numeric(Byte)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -1919,7 +2184,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#>> for (self: Byte, Int): Byte */
+/* method kernel$Byte$>> for (self: Byte, Int): Byte */
 unsigned char core___core__Byte____62d_62d(unsigned char self, long p0) {
 unsigned char var /* : Byte */;
 unsigned char var1 /* : Byte */;
@@ -1929,17 +2194,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#rsh for (self: Byte, Int): Byte */
-unsigned char core___core__Byte___rsh(unsigned char self, long p0) {
-unsigned char var /* : Byte */;
-unsigned char var1 /* : Byte */;
-var1 = kernel___Byte_rsh___impl(self, p0);
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method kernel#Byte#ascii for (self: Byte): Char */
+/* method kernel$Byte$ascii for (self: Byte): Char */
 uint32_t core___core__Byte___ascii(unsigned char self) {
 uint32_t var /* : Char */;
 uint32_t var1 /* : Char */;
@@ -1949,17 +2204,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#ffi_ascii for (self: Byte): Char */
-uint32_t core___core__Byte___ffi_ascii(unsigned char self) {
-uint32_t var /* : Char */;
-uint32_t var1 /* : Char */;
-var1 = kernel___Byte_ffi_ascii___impl(self);
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method kernel#Byte#to_i for (self: Byte): Int */
+/* method kernel$Byte$to_i for (self: Byte): Int */
 long core___core__Byte___Numeric__to_i(unsigned char self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -1969,13 +2214,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#to_i for (self: Numeric): Int */
+/* method kernel$Byte$to_i for (self: Numeric): Int */
 long VIRTUAL_core___core__Byte___Numeric__to_i(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 unsigned char var3 /* : Byte */;
 long var4 /* : Int */;
-{ /* Inline kernel#Byte#to_i (self) on <self:Numeric(Byte)> */
+{ /* Inline kernel$Byte$to_i (self) on <self:Numeric(Byte)> */
 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
 var4 = (long)var3;
 var1 = var4;
@@ -1986,7 +2231,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#to_f for (self: Byte): Float */
+/* method kernel$Byte$to_f for (self: Byte): Float */
 double core___core__Byte___Numeric__to_f(unsigned char self) {
 double var /* : Float */;
 double var1 /* : Float */;
@@ -1996,13 +2241,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#to_f for (self: Numeric): Float */
+/* method kernel$Byte$to_f for (self: Numeric): Float */
 double VIRTUAL_core___core__Byte___Numeric__to_f(val* self) {
 double var /* : Float */;
 double var1 /* : Float */;
 unsigned char var3 /* : Byte */;
 double var4 /* : Float */;
-{ /* Inline kernel#Byte#to_f (self) on <self:Numeric(Byte)> */
+{ /* Inline kernel$Byte$to_f (self) on <self:Numeric(Byte)> */
 var3 = ((struct instance_core__Byte*)self)->value; /* autounbox from Numeric to Byte */;
 var4 = (double)var3;
 var1 = var4;
@@ -2013,7 +2258,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#to_b for (self: Byte): Byte */
+/* method kernel$Byte$to_b for (self: Byte): Byte */
 unsigned char core___core__Byte___Numeric__to_b(unsigned char self) {
 unsigned char var /* : Byte */;
 var = self;
@@ -2021,7 +2266,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#to_b for (self: Numeric): Byte */
+/* method kernel$Byte$to_b for (self: Numeric): Byte */
 unsigned char VIRTUAL_core___core__Byte___Numeric__to_b(val* self) {
 unsigned char var /* : Byte */;
 unsigned char var1 /* : Byte */;
@@ -2032,7 +2277,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#distance for (self: Byte, Byte): Int */
+/* method kernel$Byte$distance for (self: Byte, Byte): Int */
 long core___core__Byte___Discrete__distance(unsigned char self, unsigned char p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -2054,12 +2299,12 @@ var1 = 1; /* easy <p0:Byte> isa OTHER*/
 if (unlikely(!var1)) {
 var_class_name = type_core__Byte.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 669);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 663);
 fatal_exit(1);
 }
 var_i = p0;
 {
-{ /* Inline kernel#Byte#- (self,var_i) on <self:Byte> */
+{ /* Inline kernel$Byte$- (self,var_i) on <self:Byte> */
 /* Covariant cast for argument 0 (i) <var_i:Byte> isa OTHER */
 /* <var_i:Byte> isa OTHER */
 var4 = 1; /* easy <var_i:Byte> isa OTHER*/
@@ -2076,7 +2321,7 @@ RET_LABEL3:(void)0;
 }
 }
 {
-{ /* Inline kernel#Byte#to_i (var2) on <var2:Byte> */
+{ /* Inline kernel$Byte$to_i (var2) on <var2:Byte> */
 var11 = (long)var2;
 var9 = var11;
 goto RET_LABEL10;
@@ -2088,7 +2333,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#distance for (self: Discrete, Discrete): Int */
+/* method kernel$Byte$distance for (self: Discrete, Discrete): Int */
 long VIRTUAL_core___core__Byte___Discrete__distance(val* self, val* p0) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -2101,7 +2346,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#<=> for (self: Byte, Byte): Int */
+/* method kernel$Byte$<=> for (self: Byte, Byte): Int */
 long core___core__Byte___Comparable___60d_61d_62d(unsigned char self, unsigned char p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -2129,12 +2374,12 @@ var1 = 1; /* easy <p0:Byte> isa OTHER*/
 if (unlikely(!var1)) {
 var_class_name = type_core__Byte.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 671);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 665);
 fatal_exit(1);
 }
 var_other = p0;
 {
-{ /* Inline kernel#Byte#< (self,var_other) on <self:Byte> */
+{ /* Inline kernel$Byte$< (self,var_other) on <self:Byte> */
 /* Covariant cast for argument 0 (i) <var_other:Byte> isa OTHER */
 /* <var_other:Byte> isa OTHER */
 var4 = 1; /* easy <var_other:Byte> isa OTHER*/
@@ -2152,7 +2397,7 @@ RET_LABEL3:(void)0;
 }
 if (var2){
 {
-{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */
+{ /* Inline kernel$Int$unary - (1l) on <1l:Int> */
 var11 = -1l;
 var9 = var11;
 goto RET_LABEL10;
@@ -2163,47 +2408,179 @@ var = var9;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline kernel#Byte#< (var_other,self) on <var_other:Byte> */
+{ /* Inline kernel$Byte$< (var_other,self) on <var_other:Byte> */
+/* Covariant cast for argument 0 (i) <self:Byte> isa OTHER */
+/* <self:Byte> isa OTHER */
+var14 = 1; /* easy <self:Byte> isa OTHER*/
+if (unlikely(!var14)) {
+var_class_name17 = type_core__Byte.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
+fatal_exit(1);
+}
+var18 = var_other < self;
+var12 = var18;
+goto RET_LABEL13;
+RET_LABEL13:(void)0;
+}
+}
+if (var12){
+var = 1l;
+goto RET_LABEL;
+} else {
+var = 0l;
+goto RET_LABEL;
+}
+}
+RET_LABEL:;
+return var;
+}
+/* method kernel$Byte$<=> for (self: Comparable, Comparable): Int */
+long VIRTUAL_core___core__Byte___Comparable___60d_61d_62d(val* self, val* p0) {
+long var /* : Int */;
+long var1 /* : Int */;
+unsigned char var2 /* : Byte */;
+unsigned char var3 /* : Byte */;
+var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
+var3 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
+var1 = core___core__Byte___Comparable___60d_61d_62d(var2, var3);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method kernel$Byte$max for (self: Byte, Byte): Byte */
+unsigned char core___core__Byte___Comparable__max(unsigned char self, unsigned char p0) {
+unsigned char var /* : Byte */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+unsigned char var_other /* var other: Byte */;
+short int var2 /* : Bool */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+const char* var_class_name7;
+short int var8 /* : Bool */;
+/* Covariant cast for argument 0 (other) <p0:Byte> isa OTHER */
+/* <p0:Byte> isa OTHER */
+var1 = 1; /* easy <p0:Byte> isa OTHER*/
+if (unlikely(!var1)) {
+var_class_name = type_core__Byte.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 685);
+fatal_exit(1);
+}
+var_other = p0;
+{
+{ /* Inline kernel$Byte$< (self,var_other) on <self:Byte> */
+/* Covariant cast for argument 0 (i) <var_other:Byte> isa OTHER */
+/* <var_other:Byte> isa OTHER */
+var4 = 1; /* easy <var_other:Byte> isa OTHER*/
+if (unlikely(!var4)) {
+var_class_name7 = type_core__Byte.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
+fatal_exit(1);
+}
+var8 = self < var_other;
+var2 = var8;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+}
+if (var2){
+var = var_other;
+goto RET_LABEL;
+} else {
+var = self;
+goto RET_LABEL;
+}
+RET_LABEL:;
+return var;
+}
+/* method kernel$Byte$max for (self: Comparable, Comparable): Comparable */
+val* VIRTUAL_core___core__Byte___Comparable__max(val* self, val* p0) {
+val* var /* : Comparable */;
+unsigned char var1 /* : Byte */;
+unsigned char var2 /* : Byte */;
+unsigned char var3 /* : Byte */;
+val* var4 /* : Comparable */;
+var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
+var3 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
+var1 = core___core__Byte___Comparable__max(var2, var3);
+var4 = BOX_core__Byte(var1); /* autobox from Byte to Comparable */
+var = var4;
+RET_LABEL:;
+return var;
+}
+/* method kernel$Byte$min for (self: Byte, Byte): Byte */
+unsigned char core___core__Byte___Comparable__min(unsigned char self, unsigned char p0) {
+unsigned char var /* : Byte */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+unsigned char var_c /* var c: Byte */;
+short int var2 /* : Bool */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+const char* var_class_name7;
+short int var8 /* : Bool */;
+/* Covariant cast for argument 0 (c) <p0:Byte> isa OTHER */
+/* <p0:Byte> isa OTHER */
+var1 = 1; /* easy <p0:Byte> isa OTHER*/
+if (unlikely(!var1)) {
+var_class_name = type_core__Byte.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 694);
+fatal_exit(1);
+}
+var_c = p0;
+{
+{ /* Inline kernel$Byte$< (var_c,self) on <var_c:Byte> */
 /* Covariant cast for argument 0 (i) <self:Byte> isa OTHER */
 /* <self:Byte> isa OTHER */
-var14 = 1; /* easy <self:Byte> isa OTHER*/
-if (unlikely(!var14)) {
-var_class_name17 = type_core__Byte.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
+var4 = 1; /* easy <self:Byte> isa OTHER*/
+if (unlikely(!var4)) {
+var_class_name7 = type_core__Byte.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 619);
 fatal_exit(1);
 }
-var18 = var_other < self;
-var12 = var18;
-goto RET_LABEL13;
-RET_LABEL13:(void)0;
+var8 = var_c < self;
+var2 = var8;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
 }
 }
-if (var12){
-var = 1l;
+if (var2){
+var = var_c;
 goto RET_LABEL;
 } else {
-var = 0l;
+var = self;
 goto RET_LABEL;
 }
-}
 RET_LABEL:;
 return var;
 }
-/* method kernel#Byte#<=> for (self: Comparable, Comparable): Int */
-long VIRTUAL_core___core__Byte___Comparable___60d_61d_62d(val* self, val* p0) {
-long var /* : Int */;
-long var1 /* : Int */;
+/* method kernel$Byte$min for (self: Comparable, Comparable): Comparable */
+val* VIRTUAL_core___core__Byte___Comparable__min(val* self, val* p0) {
+val* var /* : Comparable */;
+unsigned char var1 /* : Byte */;
 unsigned char var2 /* : Byte */;
 unsigned char var3 /* : Byte */;
+val* var4 /* : Comparable */;
 var2 = ((struct instance_core__Byte*)self)->value; /* autounbox from Comparable to Byte */;
 var3 = ((struct instance_core__Byte*)p0)->value; /* autounbox from Comparable to Byte */;
-var1 = core___core__Byte___Comparable___60d_61d_62d(var2, var3);
-var = var1;
+var1 = core___core__Byte___Comparable__min(var2, var3);
+var4 = BOX_core__Byte(var1); /* autobox from Byte to Comparable */
+var = var4;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#successor for (self: Int, Int): Int */
+/* method kernel$Int$successor for (self: Int, Int): Int */
 long core___core__Int___Discrete__successor(long self, long p0) {
 long var /* : Int */;
 long var_i /* var i: Int */;
@@ -2215,14 +2592,14 @@ const char* var_class_name;
 long var4 /* : Int */;
 var_i = p0;
 {
-{ /* Inline kernel#Int#+ (self,var_i) on <self:Int> */
+{ /* Inline kernel$Int$+ (self,var_i) on <self:Int> */
 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
 /* <var_i:Int> isa OTHER */
 var3 = 1; /* easy <var_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, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var4 = self + var_i;
@@ -2236,7 +2613,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#successor for (self: Discrete, Int): Discrete */
+/* method kernel$Int$successor for (self: Discrete, Int): Discrete */
 val* VIRTUAL_core___core__Int___Discrete__successor(val* self, long p0) {
 val* var /* : Discrete */;
 long var1 /* : Int */;
@@ -2249,7 +2626,7 @@ var = var3;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#object_id for (self: Int): Int */
+/* method kernel$Int$object_id for (self: Int): Int */
 long core___core__Int___Object__object_id(long self) {
 long var /* : Int */;
 var = self;
@@ -2257,12 +2634,12 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#object_id for (self: Object): Int */
+/* method kernel$Int$object_id for (self: Object): Int */
 long VIRTUAL_core___core__Int___Object__object_id(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var3 /* : Int */;
-{ /* Inline kernel#Int#object_id (self) on <self:Object(Int)> */
+{ /* Inline kernel$Int$object_id (self) on <self:Object(Int)> */
 var3 = (long)(self)>>2;
 var1 = var3;
 goto RET_LABEL2;
@@ -2272,7 +2649,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#hash for (self: Int): Int */
+/* method kernel$Int$hash for (self: Int): Int */
 long core___core__Int___Object__hash(long self) {
 long var /* : Int */;
 var = self;
@@ -2280,7 +2657,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#hash for (self: Object): Int */
+/* method kernel$Int$hash for (self: Object): Int */
 long VIRTUAL_core___core__Int___Object__hash(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -2291,7 +2668,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#== for (self: Int, nullable Object): Bool */
+/* method kernel$Int$== for (self: Int, nullable Object): Bool */
 short int core___core__Int___Object___61d_61d(long self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2305,12 +2682,12 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#== for (self: Object, nullable Object): Bool */
+/* method kernel$Int$== for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Int___Object___61d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
-{ /* Inline kernel#Int#== (self,p0) on <self:Object(Int)> */
+{ /* Inline kernel$Int$== (self,p0) on <self:Object(Int)> */
 var3 = self == p0;
 var1 = var3;
 goto RET_LABEL2;
@@ -2320,7 +2697,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#!= for (self: Int, nullable Object): Bool */
+/* method kernel$Int$!= for (self: Int, nullable Object): Bool */
 short int core___core__Int___Object___33d_61d(long self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2336,13 +2713,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#!= for (self: Object, nullable Object): Bool */
+/* method kernel$Int$!= for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Int___Object___33d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-{ /* Inline kernel#Int#!= (self,p0) on <self:Object(Int)> */
+{ /* Inline kernel$Int$!= (self,p0) on <self:Object(Int)> */
 var3 = self == p0;
 var4 = !var3;
 var1 = var4;
@@ -2353,7 +2730,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#<= for (self: Int, Int): Bool */
+/* method kernel$Int$<= for (self: Int, Int): Bool */
 short int core___core__Int___Comparable___60d_61d(long self, long p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2367,7 +2744,7 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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, 727);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
 fatal_exit(1);
 }
 var2 = self <= p0;
@@ -2376,7 +2753,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#<= for (self: Comparable, Comparable): Bool */
+/* method kernel$Int$<= for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Int___Comparable___60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2388,7 +2765,7 @@ const char* var_class_name;
 long var4 /* : Int */;
 long var5 /* : Int */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Int#<= (self,p0) on <self:Comparable(Int)> */
+{ /* Inline kernel$Int$<= (self,p0) on <self:Comparable(Int)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -2402,7 +2779,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
 fatal_exit(1);
 }
 var4 = (long)(self)>>2;
@@ -2416,7 +2793,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#< for (self: Int, Int): Bool */
+/* method kernel$Int$< for (self: Int, Int): Bool */
 short int core___core__Int___Comparable___60d(long self, long p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2430,7 +2807,7 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var2 = self < p0;
@@ -2439,7 +2816,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#< for (self: Comparable, Comparable): Bool */
+/* method kernel$Int$< for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Int___Comparable___60d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2451,7 +2828,7 @@ const char* var_class_name;
 long var4 /* : Int */;
 long var5 /* : Int */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Int#< (self,p0) on <self:Comparable(Int)> */
+{ /* Inline kernel$Int$< (self,p0) on <self:Comparable(Int)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -2465,7 +2842,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var4 = (long)(self)>>2;
@@ -2479,7 +2856,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#>= for (self: Int, Int): Bool */
+/* method kernel$Int$>= for (self: Int, Int): Bool */
 short int core___core__Int___Comparable___62d_61d(long self, long p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2493,7 +2870,7 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var2 = self >= p0;
@@ -2502,7 +2879,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#>= for (self: Comparable, Comparable): Bool */
+/* method kernel$Int$>= for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Int___Comparable___62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2514,7 +2891,7 @@ const char* var_class_name;
 long var4 /* : Int */;
 long var5 /* : Int */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Int#>= (self,p0) on <self:Comparable(Int)> */
+{ /* Inline kernel$Int$>= (self,p0) on <self:Comparable(Int)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -2528,7 +2905,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var4 = (long)(self)>>2;
@@ -2542,7 +2919,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#> for (self: Int, Int): Bool */
+/* method kernel$Int$> for (self: Int, Int): Bool */
 short int core___core__Int___Comparable___62d(long self, long p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2556,7 +2933,7 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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);
 }
 var2 = self > p0;
@@ -2565,7 +2942,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#> for (self: Comparable, Comparable): Bool */
+/* method kernel$Int$> for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Int___Comparable___62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -2577,7 +2954,7 @@ const char* var_class_name;
 long var4 /* : Int */;
 long var5 /* : Int */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Int#> (self,p0) on <self:Comparable(Int)> */
+{ /* Inline kernel$Int$> (self,p0) on <self:Comparable(Int)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -2591,7 +2968,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->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 = (long)(self)>>2;
@@ -2605,7 +2982,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#+ for (self: Int, Int): Int */
+/* method kernel$Int$+ for (self: Int, Int): Int */
 long core___core__Int___Numeric___43d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -2619,7 +2996,7 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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);
 }
 var2 = self + p0;
@@ -2628,7 +3005,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#+ for (self: Numeric, Numeric): Numeric */
+/* method kernel$Int$+ for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Int___Numeric___43d(val* self, val* p0) {
 val* var /* : Numeric */;
 long var1 /* : Int */;
@@ -2641,7 +3018,7 @@ long var4 /* : Int */;
 long var5 /* : Int */;
 long var6 /* : Int */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Int#+ (self,p0) on <self:Numeric(Int)> */
+{ /* Inline kernel$Int$+ (self,p0) on <self:Numeric(Int)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -2655,7 +3032,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->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);
 }
 var4 = (long)(self)>>2;
@@ -2670,7 +3047,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#unary - for (self: Int): Int */
+/* method kernel$Int$unary - for (self: Int): Int */
 long core___core__Int___Numeric__unary_32d_45d(long self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -2680,14 +3057,14 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#unary - for (self: Numeric): Numeric */
+/* method kernel$Int$unary - for (self: Numeric): Numeric */
 val* VIRTUAL_core___core__Int___Numeric__unary_32d_45d(val* self) {
 val* var /* : Numeric */;
 long var1 /* : Int */;
 long var3 /* : Int */;
 long var4 /* : Int */;
 val* var5 /* : Numeric */;
-{ /* Inline kernel#Int#unary - (self) on <self:Numeric(Int)> */
+{ /* Inline kernel$Int$unary - (self) on <self:Numeric(Int)> */
 var3 = (long)(self)>>2;
 var4 = -var3;
 var1 = var4;
@@ -2699,7 +3076,7 @@ var = var5;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#- for (self: Int, Int): Int */
+/* method kernel$Int$- for (self: Int, Int): Int */
 long core___core__Int___Numeric___45d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -2713,7 +3090,7 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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);
 }
 var2 = self - p0;
@@ -2722,7 +3099,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#- for (self: Numeric, Numeric): Numeric */
+/* method kernel$Int$- for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Int___Numeric___45d(val* self, val* p0) {
 val* var /* : Numeric */;
 long var1 /* : Int */;
@@ -2735,7 +3112,7 @@ long var4 /* : Int */;
 long var5 /* : Int */;
 long var6 /* : Int */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Int#- (self,p0) on <self:Numeric(Int)> */
+{ /* Inline kernel$Int$- (self,p0) on <self:Numeric(Int)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -2749,7 +3126,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->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 = (long)(self)>>2;
@@ -2764,7 +3141,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#* for (self: Int, Int): Int */
+/* method kernel$Int$* for (self: Int, Int): Int */
 long core___core__Int___Numeric___42d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -2778,7 +3155,7 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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, 735);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
 fatal_exit(1);
 }
 var2 = self * p0;
@@ -2787,7 +3164,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#* for (self: Numeric, Numeric): Numeric */
+/* method kernel$Int$* for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Int___Numeric___42d(val* self, val* p0) {
 val* var /* : Numeric */;
 long var1 /* : Int */;
@@ -2800,7 +3177,7 @@ long var4 /* : Int */;
 long var5 /* : Int */;
 long var6 /* : Int */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Int#* (self,p0) on <self:Numeric(Int)> */
+{ /* Inline kernel$Int$* (self,p0) on <self:Numeric(Int)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -2814,7 +3191,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 735);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
 fatal_exit(1);
 }
 var4 = (long)(self)>>2;
@@ -2829,7 +3206,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#/ for (self: Int, Int): Int */
+/* method kernel$Int$/ for (self: Int, Int): Int */
 long core___core__Int___Numeric___47d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -2843,7 +3220,7 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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, 736);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
 fatal_exit(1);
 }
 var2 = self / p0;
@@ -2852,7 +3229,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#/ for (self: Numeric, Numeric): Numeric */
+/* method kernel$Int$/ for (self: Numeric, Numeric): Numeric */
 val* VIRTUAL_core___core__Int___Numeric___47d(val* self, val* p0) {
 val* var /* : Numeric */;
 long var1 /* : Int */;
@@ -2865,7 +3242,7 @@ long var4 /* : Int */;
 long var5 /* : Int */;
 long var6 /* : Int */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Int#/ (self,p0) on <self:Numeric(Int)> */
+{ /* Inline kernel$Int$/ (self,p0) on <self:Numeric(Int)> */
 /* Covariant cast for argument 0 (i) <p0:Numeric> isa OTHER */
 /* <p0:Numeric> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -2879,7 +3256,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 736);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
 fatal_exit(1);
 }
 var4 = (long)(self)>>2;
@@ -2894,7 +3271,7 @@ var = var7;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#% for (self: Int, Int): Int */
+/* method kernel$Int$% for (self: Int, Int): Int */
 long core___core__Int____37d(long self, long p0) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -2904,7 +3281,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#<< for (self: Int, Int): Int */
+/* method kernel$Int$<< for (self: Int, Int): Int */
 long core___core__Int____60d_60d(long self, long p0) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -2914,17 +3291,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#lsh for (self: Int, Int): Int */
-long core___core__Int___lsh(long self, long p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = kernel___Int_lsh___impl(self, p0);
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method kernel#Int#>> for (self: Int, Int): Int */
+/* method kernel$Int$>> for (self: Int, Int): Int */
 long core___core__Int____62d_62d(long self, long p0) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -2934,17 +3301,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#rsh for (self: Int, Int): Int */
-long core___core__Int___rsh(long self, long p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = kernel___Int_rsh___impl(self, p0);
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method kernel#Int#to_i for (self: Int): Int */
+/* method kernel$Int$to_i for (self: Int): Int */
 long core___core__Int___Numeric__to_i(long self) {
 long var /* : Int */;
 var = self;
@@ -2952,7 +3309,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#to_i for (self: Numeric): Int */
+/* method kernel$Int$to_i for (self: Numeric): Int */
 long VIRTUAL_core___core__Int___Numeric__to_i(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -2963,7 +3320,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#to_f for (self: Int): Float */
+/* method kernel$Int$to_f for (self: Int): Float */
 double core___core__Int___Numeric__to_f(long self) {
 double var /* : Float */;
 double var1 /* : Float */;
@@ -2973,13 +3330,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#to_f for (self: Numeric): Float */
+/* method kernel$Int$to_f for (self: Numeric): Float */
 double VIRTUAL_core___core__Int___Numeric__to_f(val* self) {
 double var /* : Float */;
 double var1 /* : Float */;
 long var3 /* : Int */;
 double var4 /* : Float */;
-{ /* Inline kernel#Int#to_f (self) on <self:Numeric(Int)> */
+{ /* Inline kernel$Int$to_f (self) on <self:Numeric(Int)> */
 var3 = (long)(self)>>2;
 var4 = (double)var3;
 var1 = var4;
@@ -2990,7 +3347,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#to_b for (self: Int): Byte */
+/* method kernel$Int$to_b for (self: Int): Byte */
 unsigned char core___core__Int___Numeric__to_b(long self) {
 unsigned char var /* : Byte */;
 unsigned char var1 /* : Byte */;
@@ -3000,13 +3357,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#to_b for (self: Numeric): Byte */
+/* method kernel$Int$to_b for (self: Numeric): Byte */
 unsigned char VIRTUAL_core___core__Int___Numeric__to_b(val* self) {
 unsigned char var /* : Byte */;
 unsigned char var1 /* : Byte */;
 long var3 /* : Int */;
 unsigned char var4 /* : Byte */;
-{ /* Inline kernel#Int#to_b (self) on <self:Numeric(Int)> */
+{ /* Inline kernel$Int$to_b (self) on <self:Numeric(Int)> */
 var3 = (long)(self)>>2;
 var4 = (unsigned char)var3;
 var1 = var4;
@@ -3017,7 +3374,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#distance for (self: Int, Int): Int */
+/* method kernel$Int$distance for (self: Int, Int): Int */
 long core___core__Int___Discrete__distance(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -3046,19 +3403,19 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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, 767);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 760);
 fatal_exit(1);
 }
 var_i = p0;
 {
-{ /* Inline kernel#Int#- (self,var_i) on <self:Int> */
+{ /* Inline kernel$Int$- (self,var_i) on <self:Int> */
 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
 /* <var_i:Int> isa OTHER */
 var4 = 1; /* easy <var_i:Int> isa OTHER*/
 if (unlikely(!var4)) {
 var_class_name7 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var8 = self - var_i;
@@ -3069,14 +3426,14 @@ RET_LABEL3:(void)0;
 }
 var_d = var2;
 {
-{ /* Inline kernel#Int#>= (var_d,0l) on <var_d:Int> */
+{ /* Inline kernel$Int$>= (var_d,0l) on <var_d:Int> */
 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
 /* <0l:Int> isa OTHER */
 var11 = 1; /* easy <0l:Int> isa OTHER*/
 if (unlikely(!var11)) {
 var_class_name14 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var15 = var_d >= 0l;
@@ -3090,7 +3447,7 @@ var = var_d;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline kernel#Int#unary - (var_d) on <var_d:Int> */
+{ /* Inline kernel$Int$unary - (var_d) on <var_d:Int> */
 var18 = -var_d;
 var16 = var18;
 goto RET_LABEL17;
@@ -3103,7 +3460,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#distance for (self: Discrete, Discrete): Int */
+/* method kernel$Int$distance for (self: Discrete, Discrete): Int */
 long VIRTUAL_core___core__Int___Discrete__distance(val* self, val* p0) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -3116,7 +3473,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#<=> for (self: Int, Int): Int */
+/* method kernel$Int$<=> for (self: Int, Int): Int */
 long core___core__Int___Comparable___60d_61d_62d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -3144,19 +3501,19 @@ var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
 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, 777);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 770);
 fatal_exit(1);
 }
 var_other = p0;
 {
-{ /* Inline kernel#Int#< (self,var_other) on <self:Int> */
+{ /* Inline kernel$Int$< (self,var_other) on <self:Int> */
 /* Covariant cast for argument 0 (i) <var_other:Int> isa OTHER */
 /* <var_other:Int> isa OTHER */
 var4 = 1; /* easy <var_other:Int> isa OTHER*/
 if (unlikely(!var4)) {
 var_class_name7 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var8 = self < var_other;
@@ -3167,7 +3524,7 @@ RET_LABEL3:(void)0;
 }
 if (var2){
 {
-{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */
+{ /* Inline kernel$Int$unary - (1l) on <1l:Int> */
 var11 = -1l;
 var9 = var11;
 goto RET_LABEL10;
@@ -3178,14 +3535,14 @@ var = var9;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline kernel#Int#< (var_other,self) on <var_other:Int> */
+{ /* Inline kernel$Int$< (var_other,self) on <var_other:Int> */
 /* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
 /* <self:Int> isa OTHER */
 var14 = 1; /* easy <self: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, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var18 = var_other < self;
@@ -3205,7 +3562,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#<=> for (self: Comparable, Comparable): Int */
+/* method kernel$Int$<=> for (self: Comparable, Comparable): Int */
 long VIRTUAL_core___core__Int___Comparable___60d_61d_62d(val* self, val* p0) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -3218,27 +3575,149 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#code_point for (self: Int): Char */
-uint32_t core___core__Int___code_point(long self) {
-uint32_t var /* : Char */;
-uint32_t var1 /* : Char */;
-var1 = (uint32_t)self;
-var = var1;
+/* method kernel$Int$max for (self: Int, Int): Int */
+long core___core__Int___Comparable__max(long self, long p0) {
+long var /* : Int */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+long var_other /* var other: Int */;
+short int var2 /* : Bool */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+const char* var_class_name7;
+short int var8 /* : Bool */;
+/* Covariant cast for argument 0 (other) <p0:Int> isa OTHER */
+/* <p0:Int> isa OTHER */
+var1 = 1; /* easy <p0:Int> isa OTHER*/
+if (unlikely(!var1)) {
+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, 790);
+fatal_exit(1);
+}
+var_other = p0;
+{
+{ /* Inline kernel$Int$< (self,var_other) on <self:Int> */
+/* Covariant cast for argument 0 (i) <var_other:Int> isa OTHER */
+/* <var_other:Int> isa OTHER */
+var4 = 1; /* easy <var_other:Int> isa OTHER*/
+if (unlikely(!var4)) {
+var_class_name7 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
+fatal_exit(1);
+}
+var8 = self < var_other;
+var2 = var8;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+}
+if (var2){
+var = var_other;
+goto RET_LABEL;
+} else {
+var = self;
+goto RET_LABEL;
+}
+RET_LABEL:;
+return var;
+}
+/* method kernel$Int$max for (self: Comparable, Comparable): Comparable */
+val* VIRTUAL_core___core__Int___Comparable__max(val* self, val* p0) {
+val* var /* : Comparable */;
+long var1 /* : Int */;
+long var2 /* : Int */;
+long var3 /* : Int */;
+val* var4 /* : Comparable */;
+var2 = (long)(self)>>2;
+var3 = (long)(p0)>>2;
+var1 = core___core__Int___Comparable__max(var2, var3);
+var4 = (val*)(var1<<2|1);
+var = var4;
+RET_LABEL:;
+return var;
+}
+/* method kernel$Int$min for (self: Int, Int): Int */
+long core___core__Int___Comparable__min(long self, long p0) {
+long var /* : Int */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+long var_c /* var c: Int */;
+short int var2 /* : Bool */;
+short int var4 /* : Bool */;
+int cltype5;
+int idtype6;
+const char* var_class_name7;
+short int var8 /* : Bool */;
+/* Covariant cast for argument 0 (c) <p0:Int> isa OTHER */
+/* <p0:Int> isa OTHER */
+var1 = 1; /* easy <p0:Int> isa OTHER*/
+if (unlikely(!var1)) {
+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, 799);
+fatal_exit(1);
+}
+var_c = p0;
+{
+{ /* Inline kernel$Int$< (var_c,self) on <var_c:Int> */
+/* Covariant cast for argument 0 (i) <self:Int> isa OTHER */
+/* <self:Int> isa OTHER */
+var4 = 1; /* easy <self:Int> isa OTHER*/
+if (unlikely(!var4)) {
+var_class_name7 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
+fatal_exit(1);
+}
+var8 = var_c < self;
+var2 = var8;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+}
+if (var2){
+var = var_c;
+goto RET_LABEL;
+} else {
+var = self;
 goto RET_LABEL;
+}
+RET_LABEL:;
+return var;
+}
+/* method kernel$Int$min for (self: Comparable, Comparable): Comparable */
+val* VIRTUAL_core___core__Int___Comparable__min(val* self, val* p0) {
+val* var /* : Comparable */;
+long var1 /* : Int */;
+long var2 /* : Int */;
+long var3 /* : Int */;
+val* var4 /* : Comparable */;
+var2 = (long)(self)>>2;
+var3 = (long)(p0)>>2;
+var1 = core___core__Int___Comparable__min(var2, var3);
+var4 = (val*)(var1<<2|1);
+var = var4;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#cp for (self: Int): Char */
-uint32_t core___core__Int___cp(long self) {
+/* method kernel$Int$code_point for (self: Int): Char */
+uint32_t core___core__Int___code_point(long self) {
 uint32_t var /* : Char */;
 uint32_t var1 /* : Char */;
-var1 = kernel___Int_cp___impl(self);
+var1 = (uint32_t)self;
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#digit_count for (self: Int, Int): Int */
+/* method kernel$Int$digit_count for (self: Int, Int): Int */
 long core___core__Int___digit_count(long self, long p0) {
 long var /* : Int */;
 long var_b /* var b: Int */;
@@ -3277,7 +3756,7 @@ const char* var_class_name34;
 long var35 /* : Int */;
 var_b = p0;
 {
-{ /* Inline kernel#Int#== (var_b,10l) on <var_b:Int> */
+{ /* Inline kernel$Int$== (var_b,10l) on <var_b:Int> */
 var3 = var_b == 10l;
 var1 = var3;
 goto RET_LABEL2;
@@ -3293,14 +3772,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline kernel#Int#< (self,0l) on <self:Int> */
+{ /* Inline kernel$Int$< (self,0l) on <self: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_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);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var8 = self < 0l;
@@ -3312,7 +3791,7 @@ RET_LABEL6:(void)0;
 if (var5){
 var_d = 1l;
 {
-{ /* Inline kernel#Int#unary - (self) on <self:Int> */
+{ /* Inline kernel$Int$unary - (self) on <self:Int> */
 var11 = -self;
 var9 = var11;
 goto RET_LABEL10;
@@ -3322,7 +3801,7 @@ RET_LABEL10:(void)0;
 var_n = var9;
 } else {
 {
-{ /* Inline kernel#Int#== (self,0l) on <self:Int> */
+{ /* Inline kernel$Int$== (self,0l) on <self:Int> */
 var14 = self == 0l;
 var12 = var14;
 goto RET_LABEL13;
@@ -3339,14 +3818,14 @@ var_n = self;
 }
 for(;;) {
 {
-{ /* Inline kernel#Int#> (var_n,0l) on <var_n:Int> */
+{ /* Inline kernel$Int$> (var_n,0l) on <var_n:Int> */
 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
 /* <0l:Int> isa OTHER */
 var17 = 1; /* easy <0l:Int> isa OTHER*/
 if (unlikely(!var17)) {
 var_class_name20 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
 fatal_exit(1);
 }
 var21 = var_n > 0l;
@@ -3357,14 +3836,14 @@ RET_LABEL16:(void)0;
 }
 if (var15){
 {
-{ /* Inline kernel#Int#+ (var_d,1l) on <var_d:Int> */
+{ /* Inline kernel$Int$+ (var_d,1l) on <var_d: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_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, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var28 = var_d + 1l;
@@ -3375,14 +3854,14 @@ RET_LABEL23:(void)0;
 }
 var_d = var22;
 {
-{ /* Inline kernel#Int#/ (var_n,var_b) on <var_n:Int> */
+{ /* Inline kernel$Int$/ (var_n,var_b) on <var_n:Int> */
 /* Covariant cast for argument 0 (i) <var_b:Int> isa OTHER */
 /* <var_b:Int> isa OTHER */
 var31 = 1; /* easy <var_b: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, 736);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
 fatal_exit(1);
 }
 var35 = var_n / var_b;
@@ -3402,7 +3881,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#digit_count_base_10 for (self: Int): Int */
+/* method kernel$Int$digit_count_base_10 for (self: Int): Int */
 long core___core__Int___digit_count_base_95d10(long self) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -3470,14 +3949,14 @@ int idtype68;
 const char* var_class_name69;
 long var70 /* : Int */;
 {
-{ /* Inline kernel#Int#< (self,0l) on <self:Int> */
+{ /* Inline kernel$Int$< (self,0l) on <self: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, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var4 = self < 0l;
@@ -3489,7 +3968,7 @@ RET_LABEL2:(void)0;
 if (var1){
 var_result = 2l;
 {
-{ /* Inline kernel#Int#unary - (self) on <self:Int> */
+{ /* Inline kernel$Int$unary - (self) on <self:Int> */
 var7 = -self;
 var5 = var7;
 goto RET_LABEL6;
@@ -3503,14 +3982,14 @@ var_val = self;
 }
 for(;;) {
 {
-{ /* Inline kernel#Int#< (var_val,10l) on <var_val:Int> */
+{ /* Inline kernel$Int$< (var_val,10l) on <var_val:Int> */
 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
 /* <10l:Int> isa OTHER */
 var10 = 1; /* easy <10l:Int> isa OTHER*/
 if (unlikely(!var10)) {
 var_class_name13 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var14 = var_val < 10l;
@@ -3525,14 +4004,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline kernel#Int#< (var_val,100l) on <var_val:Int> */
+{ /* Inline kernel$Int$< (var_val,100l) on <var_val:Int> */
 /* Covariant cast for argument 0 (i) <100l:Int> isa OTHER */
 /* <100l:Int> isa OTHER */
 var17 = 1; /* easy <100l:Int> isa OTHER*/
 if (unlikely(!var17)) {
 var_class_name20 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var21 = var_val < 100l;
@@ -3543,14 +4022,14 @@ RET_LABEL16:(void)0;
 }
 if (var15){
 {
-{ /* Inline kernel#Int#+ (var_result,1l) on <var_result:Int> */
+{ /* Inline kernel$Int$+ (var_result,1l) on <var_result: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_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, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var28 = var_result + 1l;
@@ -3564,14 +4043,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline kernel#Int#< (var_val,1000l) on <var_val:Int> */
+{ /* Inline kernel$Int$< (var_val,1000l) on <var_val:Int> */
 /* Covariant cast for argument 0 (i) <1000l:Int> isa OTHER */
 /* <1000l:Int> isa OTHER */
 var31 = 1; /* easy <1000l: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, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var35 = var_val < 1000l;
@@ -3582,14 +4061,14 @@ RET_LABEL30:(void)0;
 }
 if (var29){
 {
-{ /* Inline kernel#Int#+ (var_result,2l) on <var_result:Int> */
+{ /* Inline kernel$Int$+ (var_result,2l) on <var_result:Int> */
 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
 /* <2l:Int> isa OTHER */
 var38 = 1; /* easy <2l: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_result + 2l;
@@ -3603,14 +4082,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline kernel#Int#< (var_val,10000l) on <var_val:Int> */
+{ /* Inline kernel$Int$< (var_val,10000l) on <var_val:Int> */
 /* Covariant cast for argument 0 (i) <10000l:Int> isa OTHER */
 /* <10000l:Int> isa OTHER */
 var45 = 1; /* easy <10000l: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, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var49 = var_val < 10000l;
@@ -3621,14 +4100,14 @@ RET_LABEL44:(void)0;
 }
 if (var43){
 {
-{ /* Inline kernel#Int#+ (var_result,3l) on <var_result:Int> */
+{ /* Inline kernel$Int$+ (var_result,3l) on <var_result:Int> */
 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
 /* <3l:Int> isa OTHER */
 var52 = 1; /* easy <3l:Int> isa OTHER*/
 if (unlikely(!var52)) {
 var_class_name55 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var56 = var_result + 3l;
@@ -3642,14 +4121,14 @@ goto RET_LABEL;
 } else {
 }
 {
-{ /* Inline kernel#Int#/ (var_val,10000l) on <var_val:Int> */
+{ /* Inline kernel$Int$/ (var_val,10000l) on <var_val:Int> */
 /* Covariant cast for argument 0 (i) <10000l:Int> isa OTHER */
 /* <10000l:Int> isa OTHER */
 var59 = 1; /* easy <10000l:Int> isa OTHER*/
 if (unlikely(!var59)) {
 var_class_name62 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 736);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 733);
 fatal_exit(1);
 }
 var63 = var_val / 10000l;
@@ -3660,14 +4139,14 @@ RET_LABEL58:(void)0;
 }
 var_val = var57;
 {
-{ /* Inline kernel#Int#+ (var_result,4l) on <var_result:Int> */
+{ /* Inline kernel$Int$+ (var_result,4l) on <var_result:Int> */
 /* Covariant cast for argument 0 (i) <4l:Int> isa OTHER */
 /* <4l:Int> isa OTHER */
 var66 = 1; /* easy <4l:Int> isa OTHER*/
 if (unlikely(!var66)) {
 var_class_name69 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name69);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var70 = var_result + 4l;
@@ -3681,7 +4160,7 @@ var_result = var64;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#to_c for (self: Int): Char */
+/* method kernel$Int$to_c for (self: Int): Char */
 uint32_t core___core__Int___to_c(long self) {
 uint32_t var /* : Char */;
 short int var1 /* : Bool */;
@@ -3731,14 +4210,14 @@ long var49 /* : Int */;
 uint32_t var50 /* : Char */;
 uint32_t var52 /* : Char */;
 {
-{ /* Inline kernel#Int#>= (self,0l) on <self:Int> */
+{ /* Inline kernel$Int$>= (self,0l) on <self:Int> */
 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
 /* <0l:Int> isa OTHER */
 var4 = 1; /* easy <0l:Int> isa OTHER*/
 if (unlikely(!var4)) {
 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, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var5 = self >= 0l;
@@ -3750,14 +4229,14 @@ RET_LABEL3:(void)0;
 var_ = var2;
 if (var2){
 {
-{ /* Inline kernel#Int#<= (self,36l) on <self:Int> */
+{ /* Inline kernel$Int$<= (self,36l) on <self:Int> */
 /* Covariant cast for argument 0 (i) <36l:Int> isa OTHER */
 /* <36l:Int> isa OTHER */
 var8 = 1; /* easy <36l:Int> isa OTHER*/
 if (unlikely(!var8)) {
 var_class_name11 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
 fatal_exit(1);
 }
 var12 = self <= 36l;
@@ -3771,19 +4250,22 @@ var1 = var6;
 var1 = var_;
 }
 if (unlikely(!var1)) {
+if(catchStack.cursor >= 0){
+longjmp(catchStack.envs[catchStack.cursor], 1);
+}
 PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 880);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 871);
 fatal_exit(1);
 }
 {
-{ /* Inline kernel#Int#< (self,10l) on <self:Int> */
+{ /* Inline kernel$Int$< (self,10l) on <self:Int> */
 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
 /* <10l:Int> isa OTHER */
 var15 = 1; /* easy <10l:Int> isa OTHER*/
 if (unlikely(!var15)) {
 var_class_name18 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
 fatal_exit(1);
 }
 var19 = self < 10l;
@@ -3794,7 +4276,7 @@ RET_LABEL14:(void)0;
 }
 if (var13){
 {
-{ /* Inline kernel#Char#code_point ('0') on <'0':Char> */
+{ /* Inline kernel$Char$code_point ('0') on <'0':Char> */
 var22 = (long)'0';
 var20 = var22;
 goto RET_LABEL21;
@@ -3802,14 +4284,14 @@ RET_LABEL21:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#+ (self,var20) on <self:Int> */
+{ /* Inline kernel$Int$+ (self,var20) on <self:Int> */
 /* Covariant cast for argument 0 (i) <var20:Int> isa OTHER */
 /* <var20:Int> isa OTHER */
 var25 = 1; /* easy <var20: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, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var29 = self + var20;
@@ -3819,7 +4301,7 @@ RET_LABEL24:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#code_point (var23) on <var23:Int> */
+{ /* Inline kernel$Int$code_point (var23) on <var23:Int> */
 var32 = (uint32_t)var23;
 var30 = var32;
 goto RET_LABEL31;
@@ -3830,14 +4312,14 @@ var = var30;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline kernel#Int#- (self,10l) on <self:Int> */
+{ /* Inline kernel$Int$- (self,10l) on <self:Int> */
 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
 /* <10l:Int> isa OTHER */
 var35 = 1; /* easy <10l: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, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var39 = self - 10l;
@@ -3847,7 +4329,7 @@ RET_LABEL34:(void)0;
 }
 }
 {
-{ /* Inline kernel#Char#code_point ('a') on <'a':Char> */
+{ /* Inline kernel$Char$code_point ('a') on <'a':Char> */
 var42 = (long)'a';
 var40 = var42;
 goto RET_LABEL41;
@@ -3855,14 +4337,14 @@ RET_LABEL41:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#+ (var33,var40) on <var33:Int> */
+{ /* Inline kernel$Int$+ (var33,var40) on <var33:Int> */
 /* Covariant cast for argument 0 (i) <var40:Int> isa OTHER */
 /* <var40:Int> isa OTHER */
 var45 = 1; /* easy <var40: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, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var49 = var33 + var40;
@@ -3872,7 +4354,7 @@ RET_LABEL44:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#code_point (var43) on <var43:Int> */
+{ /* Inline kernel$Int$code_point (var43) on <var43:Int> */
 var52 = (uint32_t)var43;
 var50 = var52;
 goto RET_LABEL51;
@@ -3885,7 +4367,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#abs for (self: Int): Int */
+/* method kernel$Int$abs for (self: Int): Int */
 long core___core__Int___abs(long self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -3898,14 +4380,14 @@ short int var5 /* : Bool */;
 long var6 /* : Int */;
 long var8 /* : Int */;
 {
-{ /* Inline kernel#Int#>= (self,0l) on <self:Int> */
+{ /* Inline kernel$Int$>= (self,0l) on <self:Int> */
 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
 /* <0l:Int> isa OTHER */
 var4 = 1; /* easy <0l:Int> isa OTHER*/
 if (unlikely(!var4)) {
 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, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var5 = self >= 0l;
@@ -3918,7 +4400,7 @@ if (var2){
 var1 = self;
 } else {
 {
-{ /* Inline kernel#Int#unary - (self) on <self:Int> */
+{ /* Inline kernel$Int$unary - (self) on <self:Int> */
 var8 = -self;
 var6 = var8;
 goto RET_LABEL7;
@@ -3932,7 +4414,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#object_id for (self: Char): Int */
+/* method kernel$Char$object_id for (self: Char): Int */
 long core___core__Char___Object__object_id(uint32_t self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -3942,13 +4424,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#object_id for (self: Object): Int */
+/* method kernel$Char$object_id for (self: Object): Int */
 long VIRTUAL_core___core__Char___Object__object_id(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 uint32_t var3 /* : Char */;
 long var4 /* : Int */;
-{ /* Inline kernel#Char#object_id (self) on <self:Object(Char)> */
+{ /* Inline kernel$Char$object_id (self) on <self:Object(Char)> */
 var3 = (uint32_t)((long)(self)>>2);
 var4 = (long)var3;
 var1 = var4;
@@ -3959,13 +4441,13 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#hash for (self: Char): Int */
+/* method kernel$Char$hash for (self: Char): Int */
 long core___core__Char___Object__hash(uint32_t self) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var3 /* : Int */;
 {
-{ /* Inline kernel#Char#code_point (self) on <self:Char> */
+{ /* Inline kernel$Char$code_point (self) on <self:Char> */
 var3 = (long)self;
 var1 = var3;
 goto RET_LABEL2;
@@ -3977,7 +4459,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#hash for (self: Object): Int */
+/* method kernel$Char$hash for (self: Object): Int */
 long VIRTUAL_core___core__Char___Object__hash(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -3988,7 +4470,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#== for (self: Char, nullable Object): Bool */
+/* method kernel$Char$== for (self: Char, nullable Object): Bool */
 short int core___core__Char___Object___61d_61d(uint32_t self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4002,12 +4484,12 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#== for (self: Object, nullable Object): Bool */
+/* method kernel$Char$== for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Char___Object___61d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
-{ /* Inline kernel#Char#== (self,p0) on <self:Object(Char)> */
+{ /* Inline kernel$Char$== (self,p0) on <self:Object(Char)> */
 var3 = self == p0;
 var1 = var3;
 goto RET_LABEL2;
@@ -4017,7 +4499,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#!= for (self: Char, nullable Object): Bool */
+/* method kernel$Char$!= for (self: Char, nullable Object): Bool */
 short int core___core__Char___Object___33d_61d(uint32_t self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4033,13 +4515,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#!= for (self: Object, nullable Object): Bool */
+/* method kernel$Char$!= for (self: Object, nullable Object): Bool */
 short int VIRTUAL_core___core__Char___Object___33d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
 short int var4 /* : Bool */;
-{ /* Inline kernel#Char#!= (self,p0) on <self:Object(Char)> */
+{ /* Inline kernel$Char$!= (self,p0) on <self:Object(Char)> */
 var3 = self == p0;
 var4 = !var3;
 var1 = var4;
@@ -4050,7 +4532,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#<= for (self: Char, Char): Bool */
+/* method kernel$Char$<= for (self: Char, Char): Bool */
 short int core___core__Char___Comparable___60d_61d(uint32_t self, uint32_t p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4064,7 +4546,7 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
 var_class_name = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
 fatal_exit(1);
 }
 var2 = self <= p0;
@@ -4073,7 +4555,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#<= for (self: Comparable, Comparable): Bool */
+/* method kernel$Char$<= for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Char___Comparable___60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4085,7 +4567,7 @@ const char* var_class_name;
 uint32_t var4 /* : Char */;
 uint32_t var5 /* : Char */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Char#<= (self,p0) on <self:Comparable(Char)> */
+{ /* Inline kernel$Char$<= (self,p0) on <self:Comparable(Char)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -4099,7 +4581,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
 fatal_exit(1);
 }
 var4 = (uint32_t)((long)(self)>>2);
@@ -4113,7 +4595,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#< for (self: Char, Char): Bool */
+/* method kernel$Char$< for (self: Char, Char): Bool */
 short int core___core__Char___Comparable___60d(uint32_t self, uint32_t p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4127,7 +4609,7 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
 var_class_name = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 923);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 914);
 fatal_exit(1);
 }
 var2 = self < p0;
@@ -4136,7 +4618,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#< for (self: Comparable, Comparable): Bool */
+/* method kernel$Char$< for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Char___Comparable___60d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4148,7 +4630,7 @@ const char* var_class_name;
 uint32_t var4 /* : Char */;
 uint32_t var5 /* : Char */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Char#< (self,p0) on <self:Comparable(Char)> */
+{ /* Inline kernel$Char$< (self,p0) on <self:Comparable(Char)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -4162,7 +4644,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 923);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 914);
 fatal_exit(1);
 }
 var4 = (uint32_t)((long)(self)>>2);
@@ -4176,7 +4658,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#>= for (self: Char, Char): Bool */
+/* method kernel$Char$>= for (self: Char, Char): Bool */
 short int core___core__Char___Comparable___62d_61d(uint32_t self, uint32_t p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4190,7 +4672,7 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
 var_class_name = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
 fatal_exit(1);
 }
 var2 = self >= p0;
@@ -4199,7 +4681,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#>= for (self: Comparable, Comparable): Bool */
+/* method kernel$Char$>= for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Char___Comparable___62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4211,7 +4693,7 @@ const char* var_class_name;
 uint32_t var4 /* : Char */;
 uint32_t var5 /* : Char */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Char#>= (self,p0) on <self:Comparable(Char)> */
+{ /* Inline kernel$Char$>= (self,p0) on <self:Comparable(Char)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -4225,7 +4707,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
 fatal_exit(1);
 }
 var4 = (uint32_t)((long)(self)>>2);
@@ -4239,7 +4721,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#> for (self: Char, Char): Bool */
+/* method kernel$Char$> for (self: Char, Char): Bool */
 short int core___core__Char___Comparable___62d(uint32_t self, uint32_t p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4253,7 +4735,7 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
 var_class_name = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 925);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 916);
 fatal_exit(1);
 }
 var2 = self > p0;
@@ -4262,7 +4744,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#> for (self: Comparable, Comparable): Bool */
+/* method kernel$Char$> for (self: Comparable, Comparable): Bool */
 short int VIRTUAL_core___core__Char___Comparable___62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4274,7 +4756,7 @@ const char* var_class_name;
 uint32_t var4 /* : Char */;
 uint32_t var5 /* : Char */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Char#> (self,p0) on <self:Comparable(Char)> */
+{ /* Inline kernel$Char$> (self,p0) on <self:Comparable(Char)> */
 /* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__kernel__Comparable__OTHER];
@@ -4288,7 +4770,7 @@ var3 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 925);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 916);
 fatal_exit(1);
 }
 var4 = (uint32_t)((long)(self)>>2);
@@ -4302,7 +4784,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#successor for (self: Char, Int): Char */
+/* method kernel$Char$successor for (self: Char, Int): Char */
 uint32_t core___core__Char___Discrete__successor(uint32_t self, long p0) {
 uint32_t var /* : Char */;
 uint32_t var1 /* : Char */;
@@ -4312,14 +4794,14 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#successor for (self: Discrete, Int): Discrete */
+/* method kernel$Char$successor for (self: Discrete, Int): Discrete */
 val* VIRTUAL_core___core__Char___Discrete__successor(val* self, long p0) {
 val* var /* : Discrete */;
 uint32_t var1 /* : Char */;
 uint32_t var3 /* : Char */;
 uint32_t var4 /* : Char */;
 val* var5 /* : Discrete */;
-{ /* Inline kernel#Char#successor (self,p0) on <self:Discrete(Char)> */
+{ /* Inline kernel$Char$successor (self,p0) on <self:Discrete(Char)> */
 var3 = (uint32_t)((long)(self)>>2);
 var4 = var3 + p0;
 var1 = var4;
@@ -4331,7 +4813,7 @@ var = var5;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#distance for (self: Char, Char): Int */
+/* method kernel$Char$distance for (self: Char, Char): Int */
 long core___core__Char___Discrete__distance(uint32_t self, uint32_t p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -4364,12 +4846,12 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
 var_class_name = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 930);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 921);
 fatal_exit(1);
 }
 var_c = p0;
 {
-{ /* Inline kernel#Char#code_point (self) on <self:Char> */
+{ /* Inline kernel$Char$code_point (self) on <self:Char> */
 var4 = (long)self;
 var2 = var4;
 goto RET_LABEL3;
@@ -4377,7 +4859,7 @@ RET_LABEL3:(void)0;
 }
 }
 {
-{ /* Inline kernel#Char#code_point (var_c) on <var_c:Char> */
+{ /* Inline kernel$Char$code_point (var_c) on <var_c:Char> */
 var7 = (long)var_c;
 var5 = var7;
 goto RET_LABEL6;
@@ -4385,14 +4867,14 @@ RET_LABEL6:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#- (var2,var5) on <var2:Int> */
+{ /* Inline kernel$Int$- (var2,var5) on <var2:Int> */
 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
 /* <var5:Int> isa OTHER */
 var10 = 1; /* easy <var5:Int> isa OTHER*/
 if (unlikely(!var10)) {
 var_class_name13 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var14 = var2 - var5;
@@ -4403,14 +4885,14 @@ RET_LABEL9:(void)0;
 }
 var_d = var8;
 {
-{ /* Inline kernel#Int#>= (var_d,0l) on <var_d:Int> */
+{ /* Inline kernel$Int$>= (var_d,0l) on <var_d:Int> */
 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
 /* <0l:Int> isa OTHER */
 var17 = 1; /* easy <0l:Int> isa OTHER*/
 if (unlikely(!var17)) {
 var_class_name20 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 729);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
 fatal_exit(1);
 }
 var21 = var_d >= 0l;
@@ -4424,7 +4906,7 @@ var = var_d;
 goto RET_LABEL;
 } else {
 {
-{ /* Inline kernel#Int#unary - (var_d) on <var_d:Int> */
+{ /* Inline kernel$Int$unary - (var_d) on <var_d:Int> */
 var24 = -var_d;
 var22 = var24;
 goto RET_LABEL23;
@@ -4437,7 +4919,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#distance for (self: Discrete, Discrete): Int */
+/* method kernel$Char$distance for (self: Discrete, Discrete): Int */
 long VIRTUAL_core___core__Char___Discrete__distance(val* self, val* p0) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -4450,7 +4932,7 @@ var = var1;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#to_i for (self: Char): Int */
+/* method kernel$Char$to_i for (self: Char): Int */
 long core___core__Char___to_i(uint32_t self) {
 long var /* : Int */;
 short int var1 /* : Bool */;
@@ -4486,7 +4968,7 @@ int idtype36;
 const char* var_class_name37;
 long var38 /* : Int */;
 {
-{ /* Inline kernel#Char#== (self,'-') on <self:Char> */
+{ /* Inline kernel$Char$== (self,'-') on <self:Char> */
 var3 = self == '-';
 var1 = var3;
 goto RET_LABEL2;
@@ -4495,7 +4977,7 @@ RET_LABEL2:(void)0;
 }
 if (var1){
 {
-{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */
+{ /* Inline kernel$Int$unary - (1l) on <1l:Int> */
 var6 = -1l;
 var4 = var6;
 goto RET_LABEL5;
@@ -4510,7 +4992,7 @@ var7 = core___core__Char___is_digit(self);
 }
 if (var7){
 {
-{ /* Inline kernel#Char#code_point (self) on <self:Char> */
+{ /* Inline kernel$Char$code_point (self) on <self:Char> */
 var10 = (long)self;
 var8 = var10;
 goto RET_LABEL9;
@@ -4518,7 +5000,7 @@ RET_LABEL9:(void)0;
 }
 }
 {
-{ /* Inline kernel#Char#code_point ('0') on <'0':Char> */
+{ /* Inline kernel$Char$code_point ('0') on <'0':Char> */
 var13 = (long)'0';
 var11 = var13;
 goto RET_LABEL12;
@@ -4526,14 +5008,14 @@ RET_LABEL12:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#- (var8,var11) on <var8:Int> */
+{ /* Inline kernel$Int$- (var8,var11) on <var8:Int> */
 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
 /* <var11:Int> isa OTHER */
 var16 = 1; /* easy <var11:Int> isa OTHER*/
 if (unlikely(!var16)) {
 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);
 }
 var17 = var8 - var11;
@@ -4549,7 +5031,7 @@ goto RET_LABEL;
 var18 = core___core__Char___to_lower(self);
 }
 {
-{ /* Inline kernel#Char#code_point (var18) on <var18:Char> */
+{ /* Inline kernel$Char$code_point (var18) on <var18:Char> */
 var21 = (long)var18;
 var19 = var21;
 goto RET_LABEL20;
@@ -4557,7 +5039,7 @@ RET_LABEL20:(void)0;
 }
 }
 {
-{ /* Inline kernel#Char#code_point ('a') on <'a':Char> */
+{ /* Inline kernel$Char$code_point ('a') on <'a':Char> */
 var24 = (long)'a';
 var22 = var24;
 goto RET_LABEL23;
@@ -4565,14 +5047,14 @@ RET_LABEL23:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#- (var19,var22) on <var19:Int> */
+{ /* Inline kernel$Int$- (var19,var22) on <var19:Int> */
 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
 /* <var22:Int> isa OTHER */
 var27 = 1; /* easy <var22:Int> isa OTHER*/
 if (unlikely(!var27)) {
 var_class_name30 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
 fatal_exit(1);
 }
 var31 = var19 - var22;
@@ -4582,14 +5064,14 @@ RET_LABEL26:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#+ (var25,10l) on <var25:Int> */
+{ /* Inline kernel$Int$+ (var25,10l) on <var25:Int> */
 /* Covariant cast for argument 0 (i) <10l:Int> isa OTHER */
 /* <10l:Int> isa OTHER */
 var34 = 1; /* easy <10l:Int> isa OTHER*/
 if (unlikely(!var34)) {
 var_class_name37 = type_core__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
 fatal_exit(1);
 }
 var38 = var25 + 10l;
@@ -4605,7 +5087,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#ascii for (self: Char): Byte */
+/* method kernel$Char$ascii for (self: Char): Byte */
 unsigned char core___core__Char___ascii(uint32_t self) {
 unsigned char var /* : Byte */;
 long var1 /* : Int */;
@@ -4613,7 +5095,7 @@ long var3 /* : Int */;
 unsigned char var4 /* : Byte */;
 unsigned char var6 /* : Byte */;
 {
-{ /* Inline kernel#Char#code_point (self) on <self:Char> */
+{ /* Inline kernel$Char$code_point (self) on <self:Char> */
 var3 = (long)self;
 var1 = var3;
 goto RET_LABEL2;
@@ -4621,7 +5103,7 @@ RET_LABEL2:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#to_b (var1) on <var1:Int> */
+{ /* Inline kernel$Int$to_b (var1) on <var1:Int> */
 var6 = (unsigned char)var1;
 var4 = var6;
 goto RET_LABEL5;
@@ -4633,7 +5115,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#code_point for (self: Char): Int */
+/* method kernel$Char$code_point for (self: Char): Int */
 long core___core__Char___code_point(uint32_t self) {
 long var /* : Int */;
 long var1 /* : Int */;
@@ -4643,17 +5125,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#cp for (self: Char): Int */
-long core___core__Char___cp(uint32_t self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = kernel___Char_cp___impl(self);
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method kernel#Char#to_lower for (self: Char): Char */
+/* method kernel$Char$to_lower for (self: Char): Char */
 uint32_t core___core__Char___to_lower(uint32_t self) {
 uint32_t var /* : Char */;
 short int var1 /* : Bool */;
@@ -4673,7 +5145,7 @@ var1 = core___core__Char___is_upper(self);
 }
 if (var1){
 {
-{ /* Inline kernel#Char#code_point (self) on <self:Char> */
+{ /* Inline kernel$Char$code_point (self) on <self:Char> */
 var4 = (long)self;
 var2 = var4;
 goto RET_LABEL3;
@@ -4684,14 +5156,14 @@ RET_LABEL3:(void)0;
 var5 = core___core__Char___Discrete__distance('a', 'A');
 }
 {
-{ /* Inline kernel#Int#+ (var2,var5) on <var2:Int> */
+{ /* Inline kernel$Int$+ (var2,var5) on <var2:Int> */
 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
 /* <var5:Int> isa OTHER */
 var8 = 1; /* easy <var5:Int> isa OTHER*/
 if (unlikely(!var8)) {
 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);
 }
 var9 = var2 + var5;
@@ -4701,7 +5173,7 @@ RET_LABEL7:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#code_point (var6) on <var6:Int> */
+{ /* Inline kernel$Int$code_point (var6) on <var6:Int> */
 var12 = (uint32_t)var6;
 var10 = var12;
 goto RET_LABEL11;
@@ -4717,7 +5189,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#to_upper for (self: Char): Char */
+/* method kernel$Char$to_upper for (self: Char): Char */
 uint32_t core___core__Char___to_upper(uint32_t self) {
 uint32_t var /* : Char */;
 short int var1 /* : Bool */;
@@ -4737,7 +5209,7 @@ var1 = core___core__Char___is_lower(self);
 }
 if (var1){
 {
-{ /* Inline kernel#Char#code_point (self) on <self:Char> */
+{ /* Inline kernel$Char$code_point (self) on <self:Char> */
 var4 = (long)self;
 var2 = var4;
 goto RET_LABEL3;
@@ -4748,14 +5220,14 @@ RET_LABEL3:(void)0;
 var5 = core___core__Char___Discrete__distance('a', 'A');
 }
 {
-{ /* Inline kernel#Int#- (var2,var5) on <var2:Int> */
+{ /* Inline kernel$Int$- (var2,var5) on <var2:Int> */
 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
 /* <var5:Int> isa OTHER */
 var8 = 1; /* easy <var5:Int> isa OTHER*/
 if (unlikely(!var8)) {
 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);
 }
 var9 = var2 - var5;
@@ -4765,7 +5237,7 @@ RET_LABEL7:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#code_point (var6) on <var6:Int> */
+{ /* Inline kernel$Int$code_point (var6) on <var6:Int> */
 var12 = (uint32_t)var6;
 var10 = var12;
 goto RET_LABEL11;
@@ -4781,7 +5253,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#is_digit for (self: Char): Bool */
+/* method kernel$Char$is_digit for (self: Char): Bool */
 short int core___core__Char___is_digit(uint32_t self) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4799,14 +5271,14 @@ int idtype10;
 const char* var_class_name11;
 short int var12 /* : Bool */;
 {
-{ /* Inline kernel#Char#>= (self,'0') on <self:Char> */
+{ /* Inline kernel$Char$>= (self,'0') on <self:Char> */
 /* Covariant cast for argument 0 (i) <'0':Char> isa OTHER */
 /* <'0':Char> isa OTHER */
 var4 = 1; /* easy <'0':Char> isa OTHER*/
 if (unlikely(!var4)) {
 var_class_name = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
 fatal_exit(1);
 }
 var5 = self >= '0';
@@ -4818,14 +5290,14 @@ RET_LABEL3:(void)0;
 var_ = var2;
 if (var2){
 {
-{ /* Inline kernel#Char#<= (self,'9') on <self:Char> */
+{ /* Inline kernel$Char$<= (self,'9') on <self:Char> */
 /* Covariant cast for argument 0 (i) <'9':Char> isa OTHER */
 /* <'9':Char> isa OTHER */
 var8 = 1; /* easy <'9':Char> isa OTHER*/
 if (unlikely(!var8)) {
 var_class_name11 = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
 fatal_exit(1);
 }
 var12 = self <= '9';
@@ -4843,7 +5315,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#is_lower for (self: Char): Bool */
+/* method kernel$Char$is_lower for (self: Char): Bool */
 short int core___core__Char___is_lower(uint32_t self) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4861,14 +5333,14 @@ int idtype10;
 const char* var_class_name11;
 short int var12 /* : Bool */;
 {
-{ /* Inline kernel#Char#>= (self,'a') on <self:Char> */
+{ /* Inline kernel$Char$>= (self,'a') on <self:Char> */
 /* Covariant cast for argument 0 (i) <'a':Char> isa OTHER */
 /* <'a':Char> isa OTHER */
 var4 = 1; /* easy <'a':Char> isa OTHER*/
 if (unlikely(!var4)) {
 var_class_name = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
 fatal_exit(1);
 }
 var5 = self >= 'a';
@@ -4880,14 +5352,14 @@ RET_LABEL3:(void)0;
 var_ = var2;
 if (var2){
 {
-{ /* Inline kernel#Char#<= (self,'z') on <self:Char> */
+{ /* Inline kernel$Char$<= (self,'z') on <self:Char> */
 /* Covariant cast for argument 0 (i) <'z':Char> isa OTHER */
 /* <'z':Char> isa OTHER */
 var8 = 1; /* easy <'z':Char> isa OTHER*/
 if (unlikely(!var8)) {
 var_class_name11 = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
 fatal_exit(1);
 }
 var12 = self <= 'z';
@@ -4905,7 +5377,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#is_upper for (self: Char): Bool */
+/* method kernel$Char$is_upper for (self: Char): Bool */
 short int core___core__Char___is_upper(uint32_t self) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
@@ -4923,14 +5395,14 @@ int idtype10;
 const char* var_class_name11;
 short int var12 /* : Bool */;
 {
-{ /* Inline kernel#Char#>= (self,'A') on <self:Char> */
+{ /* Inline kernel$Char$>= (self,'A') on <self:Char> */
 /* Covariant cast for argument 0 (i) <'A':Char> isa OTHER */
 /* <'A':Char> isa OTHER */
 var4 = 1; /* easy <'A':Char> isa OTHER*/
 if (unlikely(!var4)) {
 var_class_name = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 924);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 915);
 fatal_exit(1);
 }
 var5 = self >= 'A';
@@ -4942,14 +5414,14 @@ RET_LABEL3:(void)0;
 var_ = var2;
 if (var2){
 {
-{ /* Inline kernel#Char#<= (self,'Z') on <self:Char> */
+{ /* Inline kernel$Char$<= (self,'Z') on <self:Char> */
 /* Covariant cast for argument 0 (i) <'Z':Char> isa OTHER */
 /* <'Z':Char> isa OTHER */
 var8 = 1; /* easy <'Z':Char> isa OTHER*/
 if (unlikely(!var8)) {
 var_class_name11 = type_core__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 922);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 913);
 fatal_exit(1);
 }
 var12 = self <= 'Z';
@@ -4967,7 +5439,7 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#is_whitespace for (self: Char): Bool */
+/* method kernel$Char$is_whitespace for (self: Char): Bool */
 short int core___core__Char___is_whitespace(uint32_t self) {
 short int var /* : Bool */;
 long var1 /* : Int */;
@@ -4984,7 +5456,7 @@ short int var_ /* var : Bool */;
 short int var9 /* : Bool */;
 short int var11 /* : Bool */;
 {
-{ /* Inline kernel#Char#code_point (self) on <self:Char> */
+{ /* Inline kernel$Char$code_point (self) on <self:Char> */
 var3 = (long)self;
 var1 = var3;
 goto RET_LABEL2;
@@ -4993,14 +5465,14 @@ RET_LABEL2:(void)0;
 }
 var_i = var1;
 {
-{ /* Inline kernel#Int#<= (var_i,32l) on <var_i:Int> */
+{ /* Inline kernel$Int$<= (var_i,32l) on <var_i:Int> */
 /* Covariant cast for argument 0 (i) <32l:Int> isa OTHER */
 /* <32l:Int> isa OTHER */
 var7 = 1; /* easy <32l:Int> isa OTHER*/
 if (unlikely(!var7)) {
 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, 727);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
 fatal_exit(1);
 }
 var8 = var_i <= 32l;
@@ -5014,7 +5486,7 @@ if (var5){
 var4 = var_;
 } else {
 {
-{ /* Inline kernel#Int#== (var_i,127l) on <var_i:Int> */
+{ /* Inline kernel$Int$== (var_i,127l) on <var_i:Int> */
 var11 = var_i == 127l;
 var9 = var11;
 goto RET_LABEL10;
@@ -5028,22 +5500,95 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Pointer#address_is_null for (self: Pointer): Bool */
+/* method kernel$Pointer$address_is_null for (self: Pointer): Bool */
 short int core___core__Pointer___address_is_null(val* self) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 void* var2 /* : Pointer for extern */;
 var2 = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
-var1 = kernel___Pointer_address_is_null___impl(var2);
+var1 = core__kernel___Pointer_address_is_null___impl(var2);
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Pointer#free for (self: Pointer) */
+/* method kernel$Pointer$free for (self: Pointer) */
 void core___core__Pointer___free(val* self) {
 void* var /* : Pointer for extern */;
 var = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
-kernel___Pointer_free___impl(var);
+core__kernel___Pointer_free___impl(var);
+RET_LABEL:;
+}
+/* method kernel$Pointer$hash for (self: Pointer): Int */
+long core___core__Pointer___Object__hash(val* self) {
+long var /* : Int */;
+long var1 /* : Int */;
+void* var2 /* : Pointer for extern */;
+var2 = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
+var1 = core__kernel___Pointer_hash___impl(var2);
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method kernel$Pointer$== for (self: Pointer, nullable Object): Bool */
+short int core___core__Pointer___Object___61d_61d(val* self, val* p0) {
+short int var /* : Bool */;
+val* var_o /* var o: nullable Object */;
+short int var1 /* : Bool */;
+short int var2 /* : Bool */;
+int cltype;
+int idtype;
+short int var_ /* var : Bool */;
+short int var3 /* : Bool */;
+short int var5 /* : Bool */;
+void* var6 /* : Pointer for extern */;
+void* var7 /* : Pointer for extern */;
+var_o = p0;
+/* <var_o:nullable Object> isa Pointer */
+cltype = type_core__Pointer.color;
+idtype = type_core__Pointer.id;
+if(var_o == NULL) {
+var2 = 0;
+} else {
+if(cltype >= (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->table_size) {
+var2 = 0;
+} else {
+var2 = (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->type_table[cltype] == idtype;
+}
+}
+var_ = var2;
+if (var2){
+{
+{ /* Inline kernel$Pointer$native_equals (self,var_o) on <self:Pointer> */
+var6 = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
+var7 = ((struct instance_core__Pointer*)var_o)->value; /* unboxing nullable Object */
+var5 = core__kernel___Pointer_native_equals___impl(var6, var7);
+var3 = var5;
+goto RET_LABEL4;
+RET_LABEL4:(void)0;
+}
+}
+var1 = var3;
+} else {
+var1 = var_;
+}
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method kernel$Pointer$native_equals for (self: Pointer, Pointer): Bool */
+short int core___core__Pointer___native_equals(val* self, val* p0) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+void* var2 /* : Pointer for extern */;
+void* var3 /* : Pointer for extern */;
+var2 = ((struct instance_core__Pointer*)self)->value; /* unboxing Pointer */
+var3 = ((struct instance_core__Pointer*)p0)->value; /* unboxing Pointer */
+var1 = core__kernel___Pointer_native_equals___impl(var2, var3);
+var = var1;
+goto RET_LABEL;
 RET_LABEL:;
+return var;
 }