c_src: regenerate
[nit.git] / c_src / standard__kernel.sep.1.c
similarity index 61%
rename from c_src/kernel.sep.1.c
rename to c_src/standard__kernel.sep.1.c
index 088d523..92ee991 100644 (file)
@@ -1,6 +1,6 @@
-#include "kernel.sep.0.h"
+#include "standard__kernel.sep.0.h"
 /* method kernel#Object#object_id for (self: Object): Int */
-long kernel__Object__object_id(val* self) {
+long standard___standard__Object___object_id(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 var1 = (long)self;
@@ -9,48 +9,18 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#object_id for (self: Object): Int */
-long VIRTUAL_kernel__Object__object_id(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-long var3 /* : Int */;
-{ /* Inline kernel#Object#object_id (self) on <self:Object> */
-var3 = (long)self;
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Object#is_same_instance for (self: Object, nullable Object): Bool */
-short int kernel__Object__is_same_instance(val* self, val* p0) {
+short int standard___standard__Object___is_same_instance(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-var1 = self == p0 || (p0 != NULL && self->class == p0->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)p0)->value)));
+var1 = self == p0 || (p0 != NULL && self->class == p0->class && ((self->class->box_kind == 1 && ((struct instance_standard__Int*)self)->value == ((struct instance_standard__Int*)p0)->value) || (self->class->box_kind == 2 && ((struct instance_standard__Bool*)self)->value == ((struct instance_standard__Bool*)p0)->value) || (self->class->box_kind == 3 && ((struct instance_standard__Char*)self)->value == ((struct instance_standard__Char*)p0)->value) || (self->class->box_kind == 4 && ((struct instance_standard__Float*)self)->value == ((struct instance_standard__Float*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_standard__NativeString*)self)->value == ((struct instance_standard__NativeString*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_standard__Pointer*)self)->value == ((struct instance_standard__Pointer*)p0)->value)));
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#is_same_instance for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Object__is_same_instance(val* self, val* p0) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-short int var3 /* : Bool */;
-{ /* Inline kernel#Object#is_same_instance (self,p0) on <self:Object> */
-var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)p0)->value)));
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Object#== for (self: Object, nullable Object): Bool */
-short int kernel__Object___61d_61d(val* self, val* p0) {
+short int standard___standard__Object____61d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var1 /* : Bool */;
@@ -58,7 +28,7 @@ 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 && self->class == var_other->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)var_other)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)var_other)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)var_other)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)var_other)->value)));
+var3 = self == var_other || (var_other != NULL && self->class == var_other->class && ((self->class->box_kind == 1 && ((struct instance_standard__Int*)self)->value == ((struct instance_standard__Int*)var_other)->value) || (self->class->box_kind == 2 && ((struct instance_standard__Bool*)self)->value == ((struct instance_standard__Bool*)var_other)->value) || (self->class->box_kind == 3 && ((struct instance_standard__Char*)self)->value == ((struct instance_standard__Char*)var_other)->value) || (self->class->box_kind == 4 && ((struct instance_standard__Float*)self)->value == ((struct instance_standard__Float*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_standard__NativeString*)self)->value == ((struct instance_standard__NativeString*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_standard__Pointer*)self)->value == ((struct instance_standard__Pointer*)var_other)->value)));
 var1 = var3;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -69,74 +39,24 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#== for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Object___61d_61d(val* self, val* p0) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
-{ /* Inline kernel#Object#== (self,p0) on <self:Object> */
-var_other = p0;
-{
-{ /* Inline kernel#Object#is_same_instance (self,var_other) on <self:Object> */
-var5 = self == var_other || (var_other != NULL && self->class == var_other->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)var_other)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)var_other)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)var_other)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)var_other)->value)));
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
-}
-}
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Object#!= for (self: Object, nullable Object): Bool */
-short int kernel__Object___33d_61d(val* self, val* p0) {
+short int standard___standard__Object____33d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 val* var_other /* var other: nullable Object */;
 short int var1 /* : Bool */;
 short int var2 /* : Bool */;
-short int var3 /* : Bool */;
 var_other = p0;
 {
-var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object___61d_61d]))(self, var_other) /* == on <self:Object>*/;
-var1 = var2;
+var1 = ((short int (*)(val* self, val* p0))(self->class->vft[COLOR_standard__kernel__Object___61d_61d]))(self, var_other) /* == on <self:Object>*/;
 }
-var3 = !var1;
-var = var3;
+var2 = !var1;
+var = var2;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#!= for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Object___33d_61d(val* self, val* p0) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-short int var5 /* : Bool */;
-{ /* Inline kernel#Object#!= (self,p0) on <self:Object> */
-var_other = p0;
-{
-var4 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object___61d_61d]))(self, var_other) /* == on <self:Object>*/;
-var3 = var4;
-}
-var5 = !var3;
-var1 = var5;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Object#hash for (self: Object): Int */
-long kernel__Object__hash(val* self) {
+long standard___standard__Object___hash(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var2 /* : Int */;
@@ -147,7 +67,7 @@ int idtype;
 const char* var_class_name;
 long var6 /* : Int */;
 {
-var1 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on <self:Object>*/;
+var1 = ((long (*)(val* self))(self->class->vft[COLOR_standard__kernel__Object__object_id]))(self) /* object_id on <self:Object>*/;
 }
 var2 = 8;
 {
@@ -156,9 +76,9 @@ var2 = 8;
 /* <var2:Int> isa OTHER */
 var5 = 1; /* easy <var2:Int> isa OTHER*/
 if (unlikely(!var5)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 418);
 show_backtrace(1);
 }
 var6 = var1 / var2;
@@ -172,30 +92,13 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#hash for (self: Object): Int */
-long VIRTUAL_kernel__Object__hash(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = kernel__Object__hash(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method kernel#Object#exit for (self: Object, Int) */
-void kernel__Object__exit(val* self, long p0) {
-exit(p0);
-RET_LABEL:;
-}
 /* method kernel#Object#exit for (self: Object, Int) */
-void VIRTUAL_kernel__Object__exit(val* self, long p0) {
-{ /* Inline kernel#Object#exit (self,p0) on <self:Object> */
+void standard___standard__Object___exit(val* self, long p0) {
 exit(p0);
-RET_LABEL1:(void)0;
-}
 RET_LABEL:;
 }
 /* method kernel#Object#sys for (self: Object): Sys */
-val* kernel__Object__sys(val* self) {
+val* standard___standard__Object___sys(val* self) {
 val* var /* : Sys */;
 val* var1 /* : Sys */;
 var1 = glob_sys;
@@ -204,46 +107,19 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Object#sys for (self: Object): Sys */
-val* VIRTUAL_kernel__Object__sys(val* self) {
-val* var /* : Sys */;
-val* var1 /* : Sys */;
-val* var3 /* : Sys */;
-{ /* Inline kernel#Object#sys (self) on <self:Object> */
-var3 = glob_sys;
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Object#init for (self: Object) */
-void kernel__Object__init(val* self) {
-RET_LABEL:;
-}
-/* method kernel#Object#init for (self: Object) */
-void VIRTUAL_kernel__Object__init(val* self) {
-{ /* Inline kernel#Object#init (self) on <self:Object> */
-RET_LABEL1:(void)0;
-}
+void standard___standard__Object___init(val* self) {
 RET_LABEL:;
 }
 /* method kernel#Sys#run for (self: Sys) */
-void kernel__Sys__run(val* self) {
+void standard___standard__Sys___run(val* self) {
 {
-abstract_compiler__Sys__main(self); /* Direct call abstract_compiler#Sys#main on <self:Sys>*/
-}
-RET_LABEL:;
+nit__abstract_compiler___standard__Sys___main(self); /* Direct call abstract_compiler#Sys#main on <self:Sys>*/
 }
-/* method kernel#Sys#run for (self: Object) */
-void VIRTUAL_kernel__Sys__run(val* self) {
-kernel__Sys__run(self); /* Direct call kernel#Sys#run on <self:Object(Sys)>*/
 RET_LABEL:;
 }
 /* method kernel#Sys#errno for (self: Sys): Int */
-long kernel__Sys__errno(val* self) {
+long standard___standard__Sys___errno(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 struct nitni_instance* var_for_c_0;
@@ -255,26 +131,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Sys#errno for (self: Object): Int */
-long VIRTUAL_kernel__Sys__errno(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-long var3 /* : Int */;
-{ /* Inline kernel#Sys#errno (self) on <self:Object(Sys)> */
-struct nitni_instance* var_for_c_0;
-var_for_c_0 = nit_alloc(sizeof(struct nitni_instance));
-var_for_c_0->value = self;
-var3 = kernel___Sys_errno___impl(var_for_c_0);
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Comparable#<= for (self: Comparable, Comparable): Bool */
-short int kernel__Comparable___60d_61d(val* self, val* p0) {
+short int standard___standard__Comparable____60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -286,7 +144,7 @@ short int var2 /* : Bool */;
 short int var3 /* : Bool */;
 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
-type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -297,12 +155,12 @@ var1 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var1)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 117);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 139);
 show_backtrace(1);
 }
 var_other = p0;
 {
-var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
+var2 = ((short int (*)(val* self, val* p0))(var_other->class->vft[COLOR_standard__kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
 }
 var3 = !var2;
 var = var3;
@@ -310,17 +168,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Comparable#<= for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Comparable___60d_61d(val* self, val* p0) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = kernel__Comparable___60d_61d(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Comparable#>= for (self: Comparable, Comparable): Bool */
-short int kernel__Comparable___62d_61d(val* self, val* p0) {
+short int standard___standard__Comparable____62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -332,7 +181,7 @@ short int var2 /* : Bool */;
 short int var3 /* : Bool */;
 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
-type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -343,12 +192,12 @@ var1 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var1)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 121);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 143);
 show_backtrace(1);
 }
 var_other = p0;
 {
-var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
+var2 = ((short int (*)(val* self, val* p0))(self->class->vft[COLOR_standard__kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
 }
 var3 = !var2;
 var = var3;
@@ -356,17 +205,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Comparable#>= for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Comparable___62d_61d(val* self, val* p0) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = kernel__Comparable___62d_61d(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Comparable#> for (self: Comparable, Comparable): Bool */
-short int kernel__Comparable___62d(val* self, val* p0) {
+short int standard___standard__Comparable____62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -377,7 +217,7 @@ val* var_other /* var other: Comparable */;
 short int var2 /* : Bool */;
 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
-type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -388,29 +228,20 @@ var1 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var1)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 125);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 147);
 show_backtrace(1);
 }
 var_other = p0;
 {
-var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
+var2 = ((short int (*)(val* self, val* p0))(var_other->class->vft[COLOR_standard__kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
 }
 var = var2;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Comparable#> for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Comparable___62d(val* self, val* p0) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = kernel__Comparable___62d(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Comparable#<=> for (self: Comparable, Comparable): Int */
-long kernel__Comparable___60d_61d_62d(val* self, val* p0) {
+long standard___standard__Comparable____60d_61d_62d(val* self, val* p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
 int cltype;
@@ -427,7 +258,7 @@ long var8 /* : Int */;
 long var9 /* : Int */;
 /* Covariant cast for argument 0 (other) <p0:Comparable> isa OTHER */
 /* <p0:Comparable> isa OTHER */
-type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -438,12 +269,12 @@ var1 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var1)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 128);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 150);
 show_backtrace(1);
 }
 var_other = p0;
 {
-var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
+var2 = ((short int (*)(val* self, val* p0))(self->class->vft[COLOR_standard__kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
 }
 if (var2){
 var3 = 1;
@@ -459,7 +290,7 @@ var = var4;
 goto RET_LABEL;
 } else {
 {
-var7 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
+var7 = ((short int (*)(val* self, val* p0))(var_other->class->vft[COLOR_standard__kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
 }
 if (var7){
 var8 = 1;
@@ -474,17 +305,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Comparable#<=> for (self: Object, Comparable): Int */
-long VIRTUAL_kernel__Comparable___60d_61d_62d(val* self, val* p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = kernel__Comparable___60d_61d_62d(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Bool#object_id for (self: Bool): Int */
-long kernel__Bool__object_id(short int self) {
+long standard___standard__Bool___Object__object_id(short int self) {
 long var /* : Int */;
 long var1 /* : Int */;
 var1 = (long)self;
@@ -494,13 +316,13 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Bool#object_id for (self: Object): Int */
-long VIRTUAL_kernel__Bool__object_id(val* self) {
+long VIRTUAL_standard___standard__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)> */
-var3 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
+var3 = ((struct instance_standard__Bool*)self)->value; /* autounbox from Object to Bool */;
 var4 = (long)var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -511,13 +333,13 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Bool#== for (self: Bool, nullable Object): Bool */
-short int kernel__Bool___61d_61d(short int self, val* p0) {
+short int standard___standard__Bool___Object___61d_61d(short int self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var2 /* : Bool */;
-var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool);
+var1 = (p0 != NULL) && (p0->class == &class_standard__Bool);
 if (var1) {
-var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */;
+var2 = ((struct instance_standard__Bool*)p0)->value; /* autounbox from nullable Object to Bool */;
 var1 = (var2 == self);
 }
 var = var1;
@@ -526,12 +348,12 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Bool#== for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Bool___61d_61d(val* self, val* p0) {
+short int VIRTUAL_standard___standard__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)> */
-var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value);
+var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_standard__Bool*)self)->value == ((struct instance_standard__Bool*)p0)->value);
 var1 = var3;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -541,14 +363,14 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Bool#!= for (self: Bool, nullable Object): Bool */
-short int kernel__Bool___33d_61d(short int self, val* p0) {
+short int standard___standard__Bool___Object___33d_61d(short int self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var2 /* : Bool */;
 short int var3 /* : Bool */;
-var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool);
+var1 = (p0 != NULL) && (p0->class == &class_standard__Bool);
 if (var1) {
-var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */;
+var2 = ((struct instance_standard__Bool*)p0)->value; /* autounbox from nullable Object to Bool */;
 var1 = (var2 == self);
 }
 var3 = !var1;
@@ -558,13 +380,13 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Bool#!= for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Bool___33d_61d(val* self, val* p0) {
+short int VIRTUAL_standard___standard__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)> */
-var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value);
+var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_standard__Bool*)self)->value == ((struct instance_standard__Bool*)p0)->value);
 var4 = !var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -575,11 +397,11 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Bool#hash for (self: Bool): Int */
-long kernel__Bool__hash(short int self) {
+long standard___standard__Bool___Object__hash(short int self) {
 long var /* : Int */;
 long var1 /* : Int */;
 {
-var1 = kernel__Bool__to_i(self);
+var1 = standard___standard__Bool___to_i(self);
 }
 var = var1;
 goto RET_LABEL;
@@ -587,18 +409,18 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Bool#hash for (self: Object): Int */
-long VIRTUAL_kernel__Bool__hash(val* self) {
+long VIRTUAL_standard___standard__Bool___Object__hash(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 short int var2 /* : Bool */;
-var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
-var1 = kernel__Bool__hash(var2);
+var2 = ((struct instance_standard__Bool*)self)->value; /* autounbox from Object to Bool */;
+var1 = standard___standard__Bool___Object__hash(var2);
 var = var1;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Bool#to_i for (self: Bool): Int */
-long kernel__Bool__to_i(short int self) {
+long standard___standard__Bool___to_i(short int self) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var2 /* : Int */;
@@ -614,19 +436,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Bool#to_i for (self: Object): Int */
-long VIRTUAL_kernel__Bool__to_i(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-short int var2 /* : Bool */;
-var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
-var1 = kernel__Bool__to_i(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Float#object_id for (self: Float): Int */
-long kernel__Float__object_id(double self) {
+long standard___standard__Float___Object__object_id(double self) {
 long var /* : Int */;
 long var1 /* : Int */;
 var1 = (double)self;
@@ -636,13 +447,13 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#object_id for (self: Object): Int */
-long VIRTUAL_kernel__Float__object_id(val* self) {
+long VIRTUAL_standard___standard__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)> */
-var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
+var3 = ((struct instance_standard__Float*)self)->value; /* autounbox from Object to Float */;
 var4 = (double)var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -653,13 +464,13 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#== for (self: Float, nullable Object): Bool */
-short int kernel__Float___61d_61d(double self, val* p0) {
+short int standard___standard__Float___Object___61d_61d(double self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 double var2 /* : Float */;
-var1 = (p0 != NULL) && (p0->class == &class_kernel__Float);
+var1 = (p0 != NULL) && (p0->class == &class_standard__Float);
 if (var1) {
-var2 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from nullable Object to Float */;
+var2 = ((struct instance_standard__Float*)p0)->value; /* autounbox from nullable Object to Float */;
 var1 = (var2 == self);
 }
 var = var1;
@@ -668,12 +479,12 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#== for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Float___61d_61d(val* self, val* p0) {
+short int VIRTUAL_standard___standard__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)> */
-var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value);
+var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_standard__Float*)self)->value == ((struct instance_standard__Float*)p0)->value);
 var1 = var3;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -683,14 +494,14 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#!= for (self: Float, nullable Object): Bool */
-short int kernel__Float___33d_61d(double self, val* p0) {
+short int standard___standard__Float___Object___33d_61d(double self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 double var2 /* : Float */;
 short int var3 /* : Bool */;
-var1 = (p0 != NULL) && (p0->class == &class_kernel__Float);
+var1 = (p0 != NULL) && (p0->class == &class_standard__Float);
 if (var1) {
-var2 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from nullable Object to Float */;
+var2 = ((struct instance_standard__Float*)p0)->value; /* autounbox from nullable Object to Float */;
 var1 = (var2 == self);
 }
 var3 = !var1;
@@ -700,13 +511,13 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#!= for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Float___33d_61d(val* self, val* p0) {
+short int VIRTUAL_standard___standard__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)> */
-var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value);
+var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_standard__Float*)self)->value == ((struct instance_standard__Float*)p0)->value);
 var4 = !var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -717,7 +528,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#<= for (self: Float, Float): Bool */
-short int kernel__Float___60d_61d(double self, double p0) {
+short int standard___standard__Float___Comparable___60d_61d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -728,9 +539,9 @@ short int var2 /* : Bool */;
 /* <p0:Float> isa OTHER */
 var1 = 1; /* easy <p0:Float> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Float.name;
+var_class_name = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 297);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 321);
 show_backtrace(1);
 }
 var2 = self <= p0;
@@ -739,8 +550,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#<= for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Float___60d_61d(val* self, val* p0) {
+/* method kernel#Float#<= for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Float___Comparable___60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -751,10 +562,10 @@ const char* var_class_name;
 double var4 /* : Float */;
 double var5 /* : Float */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Float#<= (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -765,11 +576,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 297);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 321);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var4 = ((struct instance_standard__Float*)self)->value; /* autounbox from Comparable to Float */;
+var5 = ((struct instance_standard__Float*)p0)->value; /* autounbox from Comparable to Float */;
 var6 = var4 <= var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -780,7 +591,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#< for (self: Float, Float): Bool */
-short int kernel__Float___60d(double self, double p0) {
+short int standard___standard__Float___Comparable___60d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -791,9 +602,9 @@ short int var2 /* : Bool */;
 /* <p0:Float> isa OTHER */
 var1 = 1; /* easy <p0:Float> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Float.name;
+var_class_name = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 298);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 322);
 show_backtrace(1);
 }
 var2 = self < p0;
@@ -802,8 +613,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#< for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Float___60d(val* self, val* p0) {
+/* method kernel#Float#< for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Float___Comparable___60d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -814,10 +625,10 @@ const char* var_class_name;
 double var4 /* : Float */;
 double var5 /* : Float */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Float#< (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -828,11 +639,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 298);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 322);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var4 = ((struct instance_standard__Float*)self)->value; /* autounbox from Comparable to Float */;
+var5 = ((struct instance_standard__Float*)p0)->value; /* autounbox from Comparable to Float */;
 var6 = var4 < var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -843,7 +654,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#>= for (self: Float, Float): Bool */
-short int kernel__Float___62d_61d(double self, double p0) {
+short int standard___standard__Float___Comparable___62d_61d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -854,9 +665,9 @@ short int var2 /* : Bool */;
 /* <p0:Float> isa OTHER */
 var1 = 1; /* easy <p0:Float> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Float.name;
+var_class_name = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 299);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 323);
 show_backtrace(1);
 }
 var2 = self >= p0;
@@ -865,8 +676,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#>= for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Float___62d_61d(val* self, val* p0) {
+/* method kernel#Float#>= for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Float___Comparable___62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -877,10 +688,10 @@ const char* var_class_name;
 double var4 /* : Float */;
 double var5 /* : Float */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Float#>= (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -891,11 +702,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 299);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 323);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var4 = ((struct instance_standard__Float*)self)->value; /* autounbox from Comparable to Float */;
+var5 = ((struct instance_standard__Float*)p0)->value; /* autounbox from Comparable to Float */;
 var6 = var4 >= var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -906,7 +717,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#> for (self: Float, Float): Bool */
-short int kernel__Float___62d(double self, double p0) {
+short int standard___standard__Float___Comparable___62d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -917,9 +728,9 @@ short int var2 /* : Bool */;
 /* <p0:Float> isa OTHER */
 var1 = 1; /* easy <p0:Float> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Float.name;
+var_class_name = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 300);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 324);
 show_backtrace(1);
 }
 var2 = self > p0;
@@ -928,8 +739,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#> for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Float___62d(val* self, val* p0) {
+/* method kernel#Float#> for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Float___Comparable___62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -940,10 +751,10 @@ const char* var_class_name;
 double var4 /* : Float */;
 double var5 /* : Float */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Float#> (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -954,11 +765,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 300);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 324);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var4 = ((struct instance_standard__Float*)self)->value; /* autounbox from Comparable to Float */;
+var5 = ((struct instance_standard__Float*)p0)->value; /* autounbox from Comparable to Float */;
 var6 = var4 > var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -969,7 +780,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#+ for (self: Float, Float): Float */
-double kernel__Float___43d(double self, double p0) {
+double standard___standard__Float___Numeric___43d(double self, double p0) {
 double var /* : Float */;
 short int var1 /* : Bool */;
 int cltype;
@@ -980,9 +791,9 @@ double var2 /* : Float */;
 /* <p0:Float> isa OTHER */
 var1 = 1; /* easy <p0:Float> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Float.name;
+var_class_name = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 302);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 326);
 show_backtrace(1);
 }
 var2 = self + p0;
@@ -991,8 +802,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#+ for (self: Object, Numeric): Numeric */
-val* VIRTUAL_kernel__Float___43d(val* self, val* p0) {
+/* method kernel#Float#+ for (self: Numeric, Numeric): Numeric */
+val* VIRTUAL_standard___standard__Float___Numeric___43d(val* self, val* p0) {
 val* var /* : Numeric */;
 double var1 /* : Float */;
 short int var3 /* : Bool */;
@@ -1004,10 +815,10 @@ double var4 /* : Float */;
 double var5 /* : Float */;
 double var6 /* : Float */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Float#+ (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1018,23 +829,23 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 302);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 326);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Numeric to Float */;
+var4 = ((struct instance_standard__Float*)self)->value; /* autounbox from Numeric to Float */;
+var5 = ((struct instance_standard__Float*)p0)->value; /* autounbox from Numeric to Float */;
 var6 = var4 + var5;
 var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var7 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */
+var7 = BOX_standard__Float(var1); /* autobox from Float to Numeric */
 var = var7;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Float#unary - for (self: Float): Float */
-double kernel__Float__unary_32d_45d(double self) {
+double standard___standard__Float___Numeric__unary_32d_45d(double self) {
 double var /* : Float */;
 double var1 /* : Float */;
 var1 = -self;
@@ -1043,27 +854,27 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#unary - for (self: Object): Numeric */
-val* VIRTUAL_kernel__Float__unary_32d_45d(val* self) {
+/* method kernel#Float#unary - for (self: Numeric): Numeric */
+val* VIRTUAL_standard___standard__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:Object(Float)> */
-var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
+{ /* Inline kernel#Float#unary - (self) on <self:Numeric(Float)> */
+var3 = ((struct instance_standard__Float*)self)->value; /* autounbox from Numeric to Float */;
 var4 = -var3;
 var1 = var4;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var5 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */
+var5 = BOX_standard__Float(var1); /* autobox from Float to Numeric */
 var = var5;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Float#- for (self: Float, Float): Float */
-double kernel__Float___45d(double self, double p0) {
+double standard___standard__Float___Numeric___45d(double self, double p0) {
 double var /* : Float */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1074,9 +885,9 @@ double var2 /* : Float */;
 /* <p0:Float> isa OTHER */
 var1 = 1; /* easy <p0:Float> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Float.name;
+var_class_name = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 304);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 328);
 show_backtrace(1);
 }
 var2 = self - p0;
@@ -1085,8 +896,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#- for (self: Object, Numeric): Numeric */
-val* VIRTUAL_kernel__Float___45d(val* self, val* p0) {
+/* method kernel#Float#- for (self: Numeric, Numeric): Numeric */
+val* VIRTUAL_standard___standard__Float___Numeric___45d(val* self, val* p0) {
 val* var /* : Numeric */;
 double var1 /* : Float */;
 short int var3 /* : Bool */;
@@ -1098,10 +909,10 @@ double var4 /* : Float */;
 double var5 /* : Float */;
 double var6 /* : Float */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Float#- (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1112,23 +923,23 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 304);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 328);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Numeric to Float */;
+var4 = ((struct instance_standard__Float*)self)->value; /* autounbox from Numeric to Float */;
+var5 = ((struct instance_standard__Float*)p0)->value; /* autounbox from Numeric to Float */;
 var6 = var4 - var5;
 var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var7 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */
+var7 = BOX_standard__Float(var1); /* autobox from Float to Numeric */
 var = var7;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Float#* for (self: Float, Float): Float */
-double kernel__Float___42d(double self, double p0) {
+double standard___standard__Float___Numeric___42d(double self, double p0) {
 double var /* : Float */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1139,9 +950,9 @@ double var2 /* : Float */;
 /* <p0:Float> isa OTHER */
 var1 = 1; /* easy <p0:Float> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Float.name;
+var_class_name = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 305);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 329);
 show_backtrace(1);
 }
 var2 = self * p0;
@@ -1150,8 +961,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#* for (self: Object, Numeric): Numeric */
-val* VIRTUAL_kernel__Float___42d(val* self, val* p0) {
+/* method kernel#Float#* for (self: Numeric, Numeric): Numeric */
+val* VIRTUAL_standard___standard__Float___Numeric___42d(val* self, val* p0) {
 val* var /* : Numeric */;
 double var1 /* : Float */;
 short int var3 /* : Bool */;
@@ -1163,10 +974,10 @@ double var4 /* : Float */;
 double var5 /* : Float */;
 double var6 /* : Float */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Float#* (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1177,23 +988,23 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 305);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 329);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Numeric to Float */;
+var4 = ((struct instance_standard__Float*)self)->value; /* autounbox from Numeric to Float */;
+var5 = ((struct instance_standard__Float*)p0)->value; /* autounbox from Numeric to Float */;
 var6 = var4 * var5;
 var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var7 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */
+var7 = BOX_standard__Float(var1); /* autobox from Float to Numeric */
 var = var7;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Float#/ for (self: Float, Float): Float */
-double kernel__Float___47d(double self, double p0) {
+double standard___standard__Float___Numeric___47d(double self, double p0) {
 double var /* : Float */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1204,9 +1015,9 @@ double var2 /* : Float */;
 /* <p0:Float> isa OTHER */
 var1 = 1; /* easy <p0:Float> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Float.name;
+var_class_name = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 306);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 330);
 show_backtrace(1);
 }
 var2 = self / p0;
@@ -1215,8 +1026,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#/ for (self: Object, Numeric): Numeric */
-val* VIRTUAL_kernel__Float___47d(val* self, val* p0) {
+/* method kernel#Float#/ for (self: Numeric, Numeric): Numeric */
+val* VIRTUAL_standard___standard__Float___Numeric___47d(val* self, val* p0) {
 val* var /* : Numeric */;
 double var1 /* : Float */;
 short int var3 /* : Bool */;
@@ -1228,10 +1039,10 @@ double var4 /* : Float */;
 double var5 /* : Float */;
 double var6 /* : Float */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Float#/ (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1242,23 +1053,23 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 306);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 330);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Numeric to Float */;
+var4 = ((struct instance_standard__Float*)self)->value; /* autounbox from Numeric to Float */;
+var5 = ((struct instance_standard__Float*)p0)->value; /* autounbox from Numeric to Float */;
 var6 = var4 / var5;
 var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var7 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */
+var7 = BOX_standard__Float(var1); /* autobox from Float to Numeric */
 var = var7;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Float#to_i for (self: Float): Int */
-long kernel__Float__to_i(double self) {
+long standard___standard__Float___Numeric__to_i(double self) {
 long var /* : Int */;
 long var1 /* : Int */;
 var1 = (long)self;
@@ -1267,14 +1078,14 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#to_i for (self: Object): Int */
-long VIRTUAL_kernel__Float__to_i(val* self) {
+/* method kernel#Float#to_i for (self: Numeric): Int */
+long VIRTUAL_standard___standard__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:Object(Float)> */
-var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
+{ /* Inline kernel#Float#to_i (self) on <self:Numeric(Float)> */
+var3 = ((struct instance_standard__Float*)self)->value; /* autounbox from Numeric to Float */;
 var4 = (long)var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -1285,26 +1096,26 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Float#to_f for (self: Float): Float */
-double kernel__Float__to_f(double self) {
+double standard___standard__Float___Numeric__to_f(double self) {
 double var /* : Float */;
 var = self;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#to_f for (self: Object): Float */
-double VIRTUAL_kernel__Float__to_f(val* self) {
+/* method kernel#Float#to_f for (self: Numeric): Float */
+double VIRTUAL_standard___standard__Float___Numeric__to_f(val* self) {
 double var /* : Float */;
 double var1 /* : Float */;
 double var2 /* : Float */;
-var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var1 = kernel__Float__to_f(var2);
+var2 = ((struct instance_standard__Float*)self)->value; /* autounbox from Numeric to Float */;
+var1 = standard___standard__Float___Numeric__to_f(var2);
 var = var1;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Float#<=> for (self: Float, Float): Int */
-long kernel__Float___60d_61d_62d(double self, double p0) {
+long standard___standard__Float___Comparable___60d_61d_62d(double self, double p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1332,9 +1143,9 @@ long var21 /* : Int */;
 /* <p0:Float> isa OTHER */
 var1 = 1; /* easy <p0:Float> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Float.name;
+var_class_name = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 314);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 338);
 show_backtrace(1);
 }
 var_other = p0;
@@ -1344,9 +1155,9 @@ var_other = p0;
 /* <var_other:Float> isa OTHER */
 var4 = 1; /* easy <var_other:Float> isa OTHER*/
 if (unlikely(!var4)) {
-var_class_name7 = type_kernel__Float.name;
+var_class_name7 = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 298);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 322);
 show_backtrace(1);
 }
 var8 = self < var_other;
@@ -1374,9 +1185,9 @@ goto RET_LABEL;
 /* <self:Float> isa OTHER */
 var15 = 1; /* easy <self:Float> isa OTHER*/
 if (unlikely(!var15)) {
-var_class_name18 = type_kernel__Float.name;
+var_class_name18 = type_standard__Float.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 298);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 322);
 show_backtrace(1);
 }
 var19 = var_other < self;
@@ -1398,21 +1209,21 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#<=> for (self: Object, Comparable): Int */
-long VIRTUAL_kernel__Float___60d_61d_62d(val* self, val* p0) {
+/* method kernel#Float#<=> for (self: Comparable, Comparable): Int */
+long VIRTUAL_standard___standard__Float___Comparable___60d_61d_62d(val* self, val* p0) {
 long var /* : Int */;
 long var1 /* : Int */;
 double var2 /* : Float */;
 double var3 /* : Float */;
-var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var3 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
-var1 = kernel__Float___60d_61d_62d(var2, var3);
+var2 = ((struct instance_standard__Float*)self)->value; /* autounbox from Comparable to Float */;
+var3 = ((struct instance_standard__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var1 = standard___standard__Float___Comparable___60d_61d_62d(var2, var3);
 var = var1;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#successor for (self: Int, Int): Int */
-long kernel__Int__successor(long self, long p0) {
+long standard___standard__Int___Discrete__successor(long self, long p0) {
 long var /* : Int */;
 long var_i /* var i: Int */;
 long var1 /* : Int */;
@@ -1428,9 +1239,9 @@ var_i = p0;
 /* <var_i:Int> isa OTHER */
 var3 = 1; /* easy <var_i:Int> isa OTHER*/
 if (unlikely(!var3)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
 var4 = self + var_i;
@@ -1444,21 +1255,21 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#successor for (self: Object, Int): Discrete */
-val* VIRTUAL_kernel__Int__successor(val* self, long p0) {
+/* method kernel#Int#successor for (self: Discrete, Int): Discrete */
+val* VIRTUAL_standard___standard__Int___Discrete__successor(val* self, long p0) {
 val* var /* : Discrete */;
 long var1 /* : Int */;
 long var2 /* : Int */;
 val* var3 /* : Discrete */;
-var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var1 = kernel__Int__successor(var2, p0);
-var3 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
+var2 = ((struct instance_standard__Int*)self)->value; /* autounbox from Discrete to Int */;
+var1 = standard___standard__Int___Discrete__successor(var2, p0);
+var3 = BOX_standard__Int(var1); /* autobox from Int to Discrete */
 var = var3;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#object_id for (self: Int): Int */
-long kernel__Int__object_id(long self) {
+long standard___standard__Int___Object__object_id(long self) {
 long var /* : Int */;
 var = self;
 goto RET_LABEL;
@@ -1466,12 +1277,12 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#object_id for (self: Object): Int */
-long VIRTUAL_kernel__Int__object_id(val* self) {
+long VIRTUAL_standard___standard__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)> */
-var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
+var3 = ((struct instance_standard__Int*)self)->value; /* autounbox from Object to Int */;
 var1 = var3;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -1481,7 +1292,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#hash for (self: Int): Int */
-long kernel__Int__hash(long self) {
+long standard___standard__Int___Object__hash(long self) {
 long var /* : Int */;
 var = self;
 goto RET_LABEL;
@@ -1489,24 +1300,24 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#hash for (self: Object): Int */
-long VIRTUAL_kernel__Int__hash(val* self) {
+long VIRTUAL_standard___standard__Int___Object__hash(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var2 /* : Int */;
-var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var1 = kernel__Int__hash(var2);
+var2 = ((struct instance_standard__Int*)self)->value; /* autounbox from Object to Int */;
+var1 = standard___standard__Int___Object__hash(var2);
 var = var1;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#== for (self: Int, nullable Object): Bool */
-short int kernel__Int___61d_61d(long self, val* p0) {
+short int standard___standard__Int___Object___61d_61d(long self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 long var2 /* : Int */;
-var1 = (p0 != NULL) && (p0->class == &class_kernel__Int);
+var1 = (p0 != NULL) && (p0->class == &class_standard__Int);
 if (var1) {
-var2 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from nullable Object to Int */;
+var2 = ((struct instance_standard__Int*)p0)->value; /* autounbox from nullable Object to Int */;
 var1 = (var2 == self);
 }
 var = var1;
@@ -1515,12 +1326,12 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#== for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Int___61d_61d(val* self, val* p0) {
+short int VIRTUAL_standard___standard__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)> */
-var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value);
+var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_standard__Int*)self)->value == ((struct instance_standard__Int*)p0)->value);
 var1 = var3;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -1530,14 +1341,14 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#!= for (self: Int, nullable Object): Bool */
-short int kernel__Int___33d_61d(long self, val* p0) {
+short int standard___standard__Int___Object___33d_61d(long self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 long var2 /* : Int */;
 short int var3 /* : Bool */;
-var1 = (p0 != NULL) && (p0->class == &class_kernel__Int);
+var1 = (p0 != NULL) && (p0->class == &class_standard__Int);
 if (var1) {
-var2 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from nullable Object to Int */;
+var2 = ((struct instance_standard__Int*)p0)->value; /* autounbox from nullable Object to Int */;
 var1 = (var2 == self);
 }
 var3 = !var1;
@@ -1547,13 +1358,13 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#!= for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Int___33d_61d(val* self, val* p0) {
+short int VIRTUAL_standard___standard__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)> */
-var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value);
+var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_standard__Int*)self)->value == ((struct instance_standard__Int*)p0)->value);
 var4 = !var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -1564,7 +1375,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#<= for (self: Int, Int): Bool */
-short int kernel__Int___60d_61d(long self, long p0) {
+short int standard___standard__Int___Comparable___60d_61d(long self, long p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1575,9 +1386,9 @@ short int var2 /* : Bool */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
 show_backtrace(1);
 }
 var2 = self <= p0;
@@ -1586,8 +1397,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#<= for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Int___60d_61d(val* self, val* p0) {
+/* method kernel#Int#<= for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Int___Comparable___60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -1598,10 +1409,10 @@ const char* var_class_name;
 long var4 /* : Int */;
 long var5 /* : Int */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Int#<= (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1612,11 +1423,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
+var4 = ((struct instance_standard__Int*)self)->value; /* autounbox from Comparable to Int */;
+var5 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Comparable to Int */;
 var6 = var4 <= var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -1627,7 +1438,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#< for (self: Int, Int): Bool */
-short int kernel__Int___60d(long self, long p0) {
+short int standard___standard__Int___Comparable___60d(long self, long p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1638,9 +1449,9 @@ short int var2 /* : Bool */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
 var2 = self < p0;
@@ -1649,8 +1460,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#< for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Int___60d(val* self, val* p0) {
+/* method kernel#Int#< for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Int___Comparable___60d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -1661,10 +1472,10 @@ const char* var_class_name;
 long var4 /* : Int */;
 long var5 /* : Int */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Int#< (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1675,11 +1486,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
+var4 = ((struct instance_standard__Int*)self)->value; /* autounbox from Comparable to Int */;
+var5 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Comparable to Int */;
 var6 = var4 < var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -1690,7 +1501,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#>= for (self: Int, Int): Bool */
-short int kernel__Int___62d_61d(long self, long p0) {
+short int standard___standard__Int___Comparable___62d_61d(long self, long p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1701,9 +1512,9 @@ short int var2 /* : Bool */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
 show_backtrace(1);
 }
 var2 = self >= p0;
@@ -1712,8 +1523,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#>= for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Int___62d_61d(val* self, val* p0) {
+/* method kernel#Int#>= for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Int___Comparable___62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -1724,10 +1535,10 @@ const char* var_class_name;
 long var4 /* : Int */;
 long var5 /* : Int */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Int#>= (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1738,11 +1549,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
+var4 = ((struct instance_standard__Int*)self)->value; /* autounbox from Comparable to Int */;
+var5 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Comparable to Int */;
 var6 = var4 >= var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -1753,7 +1564,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#> for (self: Int, Int): Bool */
-short int kernel__Int___62d(long self, long p0) {
+short int standard___standard__Int___Comparable___62d(long self, long p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1764,9 +1575,9 @@ short int var2 /* : Bool */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
 show_backtrace(1);
 }
 var2 = self > p0;
@@ -1775,8 +1586,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#> for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Int___62d(val* self, val* p0) {
+/* method kernel#Int#> for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Int___Comparable___62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -1787,10 +1598,10 @@ const char* var_class_name;
 long var4 /* : Int */;
 long var5 /* : Int */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Int#> (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1801,11 +1612,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
+var4 = ((struct instance_standard__Int*)self)->value; /* autounbox from Comparable to Int */;
+var5 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Comparable to Int */;
 var6 = var4 > var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -1816,7 +1627,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#+ for (self: Int, Int): Int */
-long kernel__Int___43d(long self, long p0) {
+long standard___standard__Int___Numeric___43d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1827,9 +1638,9 @@ long var2 /* : Int */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
 var2 = self + p0;
@@ -1838,8 +1649,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#+ for (self: Object, Numeric): Numeric */
-val* VIRTUAL_kernel__Int___43d(val* self, val* p0) {
+/* method kernel#Int#+ for (self: Numeric, Numeric): Numeric */
+val* VIRTUAL_standard___standard__Int___Numeric___43d(val* self, val* p0) {
 val* var /* : Numeric */;
 long var1 /* : Int */;
 short int var3 /* : Bool */;
@@ -1851,10 +1662,10 @@ long var4 /* : Int */;
 long var5 /* : Int */;
 long var6 /* : Int */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Int#+ (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1865,23 +1676,23 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Numeric to Int */;
+var4 = ((struct instance_standard__Int*)self)->value; /* autounbox from Numeric to Int */;
+var5 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Numeric to Int */;
 var6 = var4 + var5;
 var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var7 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */
+var7 = BOX_standard__Int(var1); /* autobox from Int to Numeric */
 var = var7;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#unary - for (self: Int): Int */
-long kernel__Int__unary_32d_45d(long self) {
+long standard___standard__Int___Numeric__unary_32d_45d(long self) {
 long var /* : Int */;
 long var1 /* : Int */;
 var1 = -self;
@@ -1890,27 +1701,27 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#unary - for (self: Object): Numeric */
-val* VIRTUAL_kernel__Int__unary_32d_45d(val* self) {
+/* method kernel#Int#unary - for (self: Numeric): Numeric */
+val* VIRTUAL_standard___standard__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:Object(Int)> */
-var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
+{ /* Inline kernel#Int#unary - (self) on <self:Numeric(Int)> */
+var3 = ((struct instance_standard__Int*)self)->value; /* autounbox from Numeric to Int */;
 var4 = -var3;
 var1 = var4;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var5 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */
+var5 = BOX_standard__Int(var1); /* autobox from Int to Numeric */
 var = var5;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#- for (self: Int, Int): Int */
-long kernel__Int___45d(long self, long p0) {
+long standard___standard__Int___Numeric___45d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1921,9 +1732,9 @@ long var2 /* : Int */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
 show_backtrace(1);
 }
 var2 = self - p0;
@@ -1932,8 +1743,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#- for (self: Object, Numeric): Numeric */
-val* VIRTUAL_kernel__Int___45d(val* self, val* p0) {
+/* method kernel#Int#- for (self: Numeric, Numeric): Numeric */
+val* VIRTUAL_standard___standard__Int___Numeric___45d(val* self, val* p0) {
 val* var /* : Numeric */;
 long var1 /* : Int */;
 short int var3 /* : Bool */;
@@ -1945,10 +1756,10 @@ long var4 /* : Int */;
 long var5 /* : Int */;
 long var6 /* : Int */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Int#- (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -1959,23 +1770,23 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Numeric to Int */;
+var4 = ((struct instance_standard__Int*)self)->value; /* autounbox from Numeric to Int */;
+var5 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Numeric to Int */;
 var6 = var4 - var5;
 var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var7 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */
+var7 = BOX_standard__Int(var1); /* autobox from Int to Numeric */
 var = var7;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#* for (self: Int, Int): Int */
-long kernel__Int___42d(long self, long p0) {
+long standard___standard__Int___Numeric___42d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
 int cltype;
@@ -1986,9 +1797,9 @@ long var2 /* : Int */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 417);
 show_backtrace(1);
 }
 var2 = self * p0;
@@ -1997,8 +1808,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#* for (self: Object, Numeric): Numeric */
-val* VIRTUAL_kernel__Int___42d(val* self, val* p0) {
+/* method kernel#Int#* for (self: Numeric, Numeric): Numeric */
+val* VIRTUAL_standard___standard__Int___Numeric___42d(val* self, val* p0) {
 val* var /* : Numeric */;
 long var1 /* : Int */;
 short int var3 /* : Bool */;
@@ -2010,10 +1821,10 @@ long var4 /* : Int */;
 long var5 /* : Int */;
 long var6 /* : Int */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Int#* (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -2024,23 +1835,23 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 417);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Numeric to Int */;
+var4 = ((struct instance_standard__Int*)self)->value; /* autounbox from Numeric to Int */;
+var5 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Numeric to Int */;
 var6 = var4 * var5;
 var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var7 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */
+var7 = BOX_standard__Int(var1); /* autobox from Int to Numeric */
 var = var7;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#/ for (self: Int, Int): Int */
-long kernel__Int___47d(long self, long p0) {
+long standard___standard__Int___Numeric___47d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
 int cltype;
@@ -2051,9 +1862,9 @@ long var2 /* : Int */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 418);
 show_backtrace(1);
 }
 var2 = self / p0;
@@ -2062,8 +1873,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#/ for (self: Object, Numeric): Numeric */
-val* VIRTUAL_kernel__Int___47d(val* self, val* p0) {
+/* method kernel#Int#/ for (self: Numeric, Numeric): Numeric */
+val* VIRTUAL_standard___standard__Int___Numeric___47d(val* self, val* p0) {
 val* var /* : Numeric */;
 long var1 /* : Int */;
 short int var3 /* : Bool */;
@@ -2075,10 +1886,10 @@ long var4 /* : Int */;
 long var5 /* : Int */;
 long var6 /* : Int */;
 val* var7 /* : Numeric */;
-{ /* Inline kernel#Int#/ (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -2089,23 +1900,23 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 418);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Numeric to Int */;
+var4 = ((struct instance_standard__Int*)self)->value; /* autounbox from Numeric to Int */;
+var5 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Numeric to Int */;
 var6 = var4 / var5;
 var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var7 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */
+var7 = BOX_standard__Int(var1); /* autobox from Int to Numeric */
 var = var7;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#% for (self: Int, Int): Int */
-long kernel__Int___37d(long self, long p0) {
+long standard___standard__Int____37d(long self, long p0) {
 long var /* : Int */;
 long var1 /* : Int */;
 var1 = self % p0;
@@ -2114,25 +1925,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#% for (self: Object, Int): Int */
-long VIRTUAL_kernel__Int___37d(val* self, long p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-long var3 /* : Int */;
-long var4 /* : Int */;
-{ /* Inline kernel#Int#% (self,p0) on <self:Object(Int)> */
-var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var4 = var3 % p0;
-var1 = var4;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Int#lshift for (self: Int, Int): Int */
-long kernel__Int__lshift(long self, long p0) {
+long standard___standard__Int___lshift(long self, long p0) {
 long var /* : Int */;
 long var1 /* : Int */;
 var1 = self << p0;
@@ -2141,44 +1935,27 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#lshift for (self: Object, Int): Int */
-long VIRTUAL_kernel__Int__lshift(val* self, long p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-long var3 /* : Int */;
-long var4 /* : Int */;
-{ /* Inline kernel#Int#lshift (self,p0) on <self:Object(Int)> */
-var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var4 = var3 << p0;
-var1 = var4;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Int#to_i for (self: Int): Int */
-long kernel__Int__to_i(long self) {
+long standard___standard__Int___Numeric__to_i(long self) {
 long var /* : Int */;
 var = self;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#to_i for (self: Object): Int */
-long VIRTUAL_kernel__Int__to_i(val* self) {
+/* method kernel#Int#to_i for (self: Numeric): Int */
+long VIRTUAL_standard___standard__Int___Numeric__to_i(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var2 /* : Int */;
-var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var1 = kernel__Int__to_i(var2);
+var2 = ((struct instance_standard__Int*)self)->value; /* autounbox from Numeric to Int */;
+var1 = standard___standard__Int___Numeric__to_i(var2);
 var = var1;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#to_f for (self: Int): Float */
-double kernel__Int__to_f(long self) {
+double standard___standard__Int___Numeric__to_f(long self) {
 double var /* : Float */;
 double var1 /* : Float */;
 var1 = (double)self;
@@ -2187,14 +1964,14 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#to_f for (self: Object): Float */
-double VIRTUAL_kernel__Int__to_f(val* self) {
+/* method kernel#Int#to_f for (self: Numeric): Float */
+double VIRTUAL_standard___standard__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:Object(Int)> */
-var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
+{ /* Inline kernel#Int#to_f (self) on <self:Numeric(Int)> */
+var3 = ((struct instance_standard__Int*)self)->value; /* autounbox from Numeric to Int */;
 var4 = (double)var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -2205,7 +1982,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Int#distance for (self: Int, Int): Int */
-long kernel__Int__distance(long self, long p0) {
+long standard___standard__Int___Discrete__distance(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
 int cltype;
@@ -2232,9 +2009,9 @@ long var19 /* : Int */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 398);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 444);
 show_backtrace(1);
 }
 var_i = p0;
@@ -2244,9 +2021,9 @@ var_i = p0;
 /* <var_i:Int> isa OTHER */
 var4 = 1; /* easy <var_i:Int> isa OTHER*/
 if (unlikely(!var4)) {
-var_class_name7 = type_kernel__Int.name;
+var_class_name7 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
 show_backtrace(1);
 }
 var8 = self - var_i;
@@ -2263,9 +2040,9 @@ var9 = 0;
 /* <var9:Int> isa OTHER */
 var12 = 1; /* easy <var9:Int> isa OTHER*/
 if (unlikely(!var12)) {
-var_class_name15 = type_kernel__Int.name;
+var_class_name15 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
 show_backtrace(1);
 }
 var16 = var_d >= var9;
@@ -2292,21 +2069,21 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#distance for (self: Object, Discrete): Int */
-long VIRTUAL_kernel__Int__distance(val* self, val* p0) {
+/* method kernel#Int#distance for (self: Discrete, Discrete): Int */
+long VIRTUAL_standard___standard__Int___Discrete__distance(val* self, val* p0) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var2 /* : Int */;
 long var3 /* : Int */;
-var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Discrete to Int */;
-var1 = kernel__Int__distance(var2, var3);
+var2 = ((struct instance_standard__Int*)self)->value; /* autounbox from Discrete to Int */;
+var3 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Discrete to Int */;
+var1 = standard___standard__Int___Discrete__distance(var2, var3);
 var = var1;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#<=> for (self: Int, Int): Int */
-long kernel__Int___60d_61d_62d(long self, long p0) {
+long standard___standard__Int___Comparable___60d_61d_62d(long self, long p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
 int cltype;
@@ -2334,9 +2111,9 @@ long var21 /* : Int */;
 /* <p0:Int> isa OTHER */
 var1 = 1; /* easy <p0:Int> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 408);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 454);
 show_backtrace(1);
 }
 var_other = p0;
@@ -2346,9 +2123,9 @@ var_other = p0;
 /* <var_other:Int> isa OTHER */
 var4 = 1; /* easy <var_other:Int> isa OTHER*/
 if (unlikely(!var4)) {
-var_class_name7 = type_kernel__Int.name;
+var_class_name7 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
 var8 = self < var_other;
@@ -2376,9 +2153,9 @@ goto RET_LABEL;
 /* <self:Int> isa OTHER */
 var15 = 1; /* easy <self:Int> isa OTHER*/
 if (unlikely(!var15)) {
-var_class_name18 = type_kernel__Int.name;
+var_class_name18 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
 var19 = var_other < self;
@@ -2400,21 +2177,21 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#<=> for (self: Object, Comparable): Int */
-long VIRTUAL_kernel__Int___60d_61d_62d(val* self, val* p0) {
+/* method kernel#Int#<=> for (self: Comparable, Comparable): Int */
+long VIRTUAL_standard___standard__Int___Comparable___60d_61d_62d(val* self, val* p0) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var2 /* : Int */;
 long var3 /* : Int */;
-var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
-var1 = kernel__Int___60d_61d_62d(var2, var3);
+var2 = ((struct instance_standard__Int*)self)->value; /* autounbox from Comparable to Int */;
+var3 = ((struct instance_standard__Int*)p0)->value; /* autounbox from Comparable to Int */;
+var1 = standard___standard__Int___Comparable___60d_61d_62d(var2, var3);
 var = var1;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Int#ascii for (self: Int): Char */
-char kernel__Int__ascii(long self) {
+char standard___standard__Int___ascii(long self) {
 char var /* : Char */;
 char var1 /* : Char */;
 var1 = self;
@@ -2423,197 +2200,176 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#ascii for (self: Object): Char */
-char VIRTUAL_kernel__Int__ascii(val* self) {
-char var /* : Char */;
-char var1 /* : Char */;
-long var3 /* : Int */;
-char var4 /* : Char */;
-{ /* Inline kernel#Int#ascii (self) on <self:Object(Int)> */
-var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var4 = var3;
-var1 = var4;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Int#digit_count for (self: Int, Int): Int */
-long kernel__Int__digit_count(long self, long p0) {
+long standard___standard__Int___digit_count(long self, long p0) {
 long var /* : Int */;
 long var_b /* var b: Int */;
 long var1 /* : Int */;
 short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
+short int var4 /* : Bool */;
+long var5 /* : Int */;
 long var6 /* : Int */;
-long var7 /* : Int */;
-short int var8 /* : Bool */;
-short int var10 /* : Bool */;
+short int var7 /* : Bool */;
+short int var9 /* : Bool */;
 int cltype;
 int idtype;
 const char* var_class_name;
-short int var11 /* : Bool */;
-long var12 /* : Int */;
+short int var10 /* : Bool */;
+long var11 /* : Int */;
 long var_d /* var d: Int */;
-long var13 /* : Int */;
-long var15 /* : Int */;
+long var12 /* : Int */;
+long var14 /* : Int */;
 long var_n /* var n: Int */;
-long var16 /* : Int */;
-short int var17 /* : Bool */;
+long var15 /* : Int */;
+short int var16 /* : Bool */;
 short int var18 /* : Bool */;
-short int var20 /* : Bool */;
+long var19 /* : Int */;
+long var20 /* : Int */;
 long var21 /* : Int */;
-long var22 /* : Int */;
-long var23 /* : Int */;
+short int var22 /* : Bool */;
 short int var24 /* : Bool */;
-short int var26 /* : Bool */;
-int cltype27;
-int idtype28;
-const char* var_class_name29;
-short int var30 /* : Bool */;
-long var31 /* : Int */;
-long var32 /* : Int */;
-short int var34 /* : Bool */;
-int cltype35;
-int idtype36;
-const char* var_class_name37;
-long var38 /* : Int */;
-long var39 /* : Int */;
-short int var41 /* : Bool */;
-int cltype42;
-int idtype43;
-const char* var_class_name44;
-long var45 /* : Int */;
+int cltype25;
+int idtype26;
+const char* var_class_name27;
+short int var28 /* : Bool */;
+long var29 /* : Int */;
+long var30 /* : Int */;
+short int var32 /* : Bool */;
+int cltype33;
+int idtype34;
+const char* var_class_name35;
+long var36 /* : Int */;
+long var37 /* : Int */;
+short int var39 /* : Bool */;
+int cltype40;
+int idtype41;
+const char* var_class_name42;
+long var43 /* : Int */;
 var_b = p0;
 var1 = 10;
 {
 { /* Inline kernel#Int#== (var_b,var1) on <var_b:Int> */
-var5 = var_b == var1;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
+var4 = var_b == var1;
+var2 = var4;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
 }
-var2 = var3;
 }
 if (var2){
 {
-var6 = kernel__Int__digit_count_base_95d10(self);
+var5 = standard___standard__Int___digit_count_base_95d10(self);
 }
-var = var6;
+var = var5;
 goto RET_LABEL;
 } else {
 }
-var7 = 0;
+var6 = 0;
 {
-{ /* Inline kernel#Int#< (self,var7) on <self:Int> */
-/* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
-/* <var7:Int> isa OTHER */
-var10 = 1; /* easy <var7:Int> isa OTHER*/
-if (unlikely(!var10)) {
-var_class_name = type_kernel__Int.name;
+{ /* Inline kernel#Int#< (self,var6) on <self:Int> */
+/* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
+/* <var6:Int> isa OTHER */
+var9 = 1; /* easy <var6:Int> isa OTHER*/
+if (unlikely(!var9)) {
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
-var11 = self < var7;
-var8 = var11;
-goto RET_LABEL9;
-RET_LABEL9:(void)0;
+var10 = self < var6;
+var7 = var10;
+goto RET_LABEL8;
+RET_LABEL8:(void)0;
 }
 }
-if (var8){
-var12 = 1;
-var_d = var12;
+if (var7){
+var11 = 1;
+var_d = var11;
 {
 { /* Inline kernel#Int#unary - (self) on <self:Int> */
-var15 = -self;
-var13 = var15;
-goto RET_LABEL14;
-RET_LABEL14:(void)0;
+var14 = -self;
+var12 = var14;
+goto RET_LABEL13;
+RET_LABEL13:(void)0;
 }
 }
-var_n = var13;
+var_n = var12;
 } else {
-var16 = 0;
+var15 = 0;
 {
-{ /* Inline kernel#Int#== (self,var16) on <self:Int> */
-var20 = self == var16;
-var18 = var20;
-goto RET_LABEL19;
-RET_LABEL19:(void)0;
+{ /* Inline kernel#Int#== (self,var15) on <self:Int> */
+var18 = self == var15;
+var16 = var18;
+goto RET_LABEL17;
+RET_LABEL17:(void)0;
 }
-var17 = var18;
 }
-if (var17){
-var21 = 1;
-var = var21;
+if (var16){
+var19 = 1;
+var = var19;
 goto RET_LABEL;
 } else {
-var22 = 0;
-var_d = var22;
+var20 = 0;
+var_d = var20;
 var_n = self;
 }
 }
 for(;;) {
-var23 = 0;
+var21 = 0;
 {
-{ /* Inline kernel#Int#> (var_n,var23) on <var_n:Int> */
-/* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
-/* <var23:Int> isa OTHER */
-var26 = 1; /* easy <var23:Int> isa OTHER*/
-if (unlikely(!var26)) {
-var_class_name29 = type_kernel__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
+{ /* Inline kernel#Int#> (var_n,var21) on <var_n:Int> */
+/* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
+/* <var21:Int> isa OTHER */
+var24 = 1; /* easy <var21:Int> isa OTHER*/
+if (unlikely(!var24)) {
+var_class_name27 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
 show_backtrace(1);
 }
-var30 = var_n > var23;
-var24 = var30;
-goto RET_LABEL25;
-RET_LABEL25:(void)0;
+var28 = var_n > var21;
+var22 = var28;
+goto RET_LABEL23;
+RET_LABEL23:(void)0;
 }
 }
-if (var24){
-var31 = 1;
+if (var22){
+var29 = 1;
 {
-{ /* Inline kernel#Int#+ (var_d,var31) on <var_d:Int> */
-/* Covariant cast for argument 0 (i) <var31:Int> isa OTHER */
-/* <var31:Int> isa OTHER */
-var34 = 1; /* easy <var31:Int> isa OTHER*/
-if (unlikely(!var34)) {
-var_class_name37 = type_kernel__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+{ /* Inline kernel#Int#+ (var_d,var29) on <var_d:Int> */
+/* Covariant cast for argument 0 (i) <var29:Int> isa OTHER */
+/* <var29:Int> isa OTHER */
+var32 = 1; /* easy <var29:Int> isa OTHER*/
+if (unlikely(!var32)) {
+var_class_name35 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
-var38 = var_d + var31;
-var32 = var38;
-goto RET_LABEL33;
-RET_LABEL33:(void)0;
+var36 = var_d + var29;
+var30 = var36;
+goto RET_LABEL31;
+RET_LABEL31:(void)0;
 }
 }
-var_d = var32;
+var_d = var30;
 {
 { /* 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 */
-var41 = 1; /* easy <var_b:Int> isa OTHER*/
-if (unlikely(!var41)) {
-var_class_name44 = type_kernel__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379);
+var39 = 1; /* easy <var_b:Int> isa OTHER*/
+if (unlikely(!var39)) {
+var_class_name42 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 418);
 show_backtrace(1);
 }
-var45 = var_n / var_b;
-var39 = var45;
-goto RET_LABEL40;
-RET_LABEL40:(void)0;
+var43 = var_n / var_b;
+var37 = var43;
+goto RET_LABEL38;
+RET_LABEL38:(void)0;
 }
 }
-var_n = var39;
+var_n = var37;
 } else {
 goto BREAK_label;
 }
@@ -2624,19 +2380,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#digit_count for (self: Object, Int): Int */
-long VIRTUAL_kernel__Int__digit_count(val* self, long p0) {
-long var /* : Int */;
-long var1 /* : Int */;
-long var2 /* : Int */;
-var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var1 = kernel__Int__digit_count(var2, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Int#digit_count_base_10 for (self: Int): Int */
-long kernel__Int__digit_count_base_95d10(long self) {
+long standard___standard__Int___digit_count_base_95d10(long self) {
 long var /* : Int */;
 long var1 /* : Int */;
 short int var2 /* : Bool */;
@@ -2721,9 +2466,9 @@ var1 = 0;
 /* <var1:Int> isa OTHER */
 var4 = 1; /* easy <var1:Int> isa OTHER*/
 if (unlikely(!var4)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
 var5 = self < var1;
@@ -2757,9 +2502,9 @@ var11 = 10;
 /* <var11:Int> isa OTHER */
 var14 = 1; /* easy <var11:Int> isa OTHER*/
 if (unlikely(!var14)) {
-var_class_name17 = type_kernel__Int.name;
+var_class_name17 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
 var18 = var_val < var11;
@@ -2780,9 +2525,9 @@ var19 = 100;
 /* <var19:Int> isa OTHER */
 var22 = 1; /* easy <var19:Int> isa OTHER*/
 if (unlikely(!var22)) {
-var_class_name25 = type_kernel__Int.name;
+var_class_name25 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
 var26 = var_val < var19;
@@ -2799,9 +2544,9 @@ var27 = 1;
 /* <var27:Int> isa OTHER */
 var30 = 1; /* easy <var27:Int> isa OTHER*/
 if (unlikely(!var30)) {
-var_class_name33 = type_kernel__Int.name;
+var_class_name33 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
 var34 = var_result + var27;
@@ -2821,9 +2566,9 @@ var35 = 1000;
 /* <var35:Int> isa OTHER */
 var38 = 1; /* easy <var35:Int> isa OTHER*/
 if (unlikely(!var38)) {
-var_class_name41 = type_kernel__Int.name;
+var_class_name41 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
 var42 = var_val < var35;
@@ -2840,9 +2585,9 @@ var43 = 2;
 /* <var43:Int> isa OTHER */
 var46 = 1; /* easy <var43:Int> isa OTHER*/
 if (unlikely(!var46)) {
-var_class_name49 = type_kernel__Int.name;
+var_class_name49 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
 var50 = var_result + var43;
@@ -2862,9 +2607,9 @@ var51 = 10000;
 /* <var51:Int> isa OTHER */
 var54 = 1; /* easy <var51:Int> isa OTHER*/
 if (unlikely(!var54)) {
-var_class_name57 = type_kernel__Int.name;
+var_class_name57 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
 var58 = var_val < var51;
@@ -2881,9 +2626,9 @@ var59 = 3;
 /* <var59:Int> isa OTHER */
 var62 = 1; /* easy <var59:Int> isa OTHER*/
 if (unlikely(!var62)) {
-var_class_name65 = type_kernel__Int.name;
+var_class_name65 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
 var66 = var_result + var59;
@@ -2903,9 +2648,9 @@ var67 = 10000;
 /* <var67:Int> isa OTHER */
 var70 = 1; /* easy <var67:Int> isa OTHER*/
 if (unlikely(!var70)) {
-var_class_name73 = type_kernel__Int.name;
+var_class_name73 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 418);
 show_backtrace(1);
 }
 var74 = var_val / var67;
@@ -2922,9 +2667,9 @@ var75 = 4;
 /* <var75:Int> isa OTHER */
 var78 = 1; /* easy <var75:Int> isa OTHER*/
 if (unlikely(!var78)) {
-var_class_name81 = type_kernel__Int.name;
+var_class_name81 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
 var82 = var_result + var75;
@@ -2938,19 +2683,8 @@ var_result = var76;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#digit_count_base_10 for (self: Object): Int */
-long VIRTUAL_kernel__Int__digit_count_base_95d10(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-long var2 /* : Int */;
-var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var1 = kernel__Int__digit_count_base_95d10(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Int#to_c for (self: Int): Char */
-char kernel__Int__to_c(long self) {
+char standard___standard__Int___to_c(long self) {
 char var /* : Char */;
 short int var1 /* : Bool */;
 long var2 /* : Int */;
@@ -3011,9 +2745,9 @@ var2 = 0;
 /* <var2:Int> isa OTHER */
 var5 = 1; /* easy <var2:Int> isa OTHER*/
 if (unlikely(!var5)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
 show_backtrace(1);
 }
 var6 = self >= var2;
@@ -3031,9 +2765,9 @@ var7 = 36;
 /* <var7:Int> isa OTHER */
 var10 = 1; /* easy <var7:Int> isa OTHER*/
 if (unlikely(!var10)) {
-var_class_name13 = type_kernel__Int.name;
+var_class_name13 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
 show_backtrace(1);
 }
 var14 = self <= var7;
@@ -3048,7 +2782,7 @@ var1 = var_;
 }
 if (unlikely(!var1)) {
 PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 508);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 554);
 show_backtrace(1);
 }
 var15 = 10;
@@ -3058,9 +2792,9 @@ var15 = 10;
 /* <var15:Int> isa OTHER */
 var18 = 1; /* easy <var15:Int> isa OTHER*/
 if (unlikely(!var18)) {
-var_class_name21 = type_kernel__Int.name;
+var_class_name21 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
 show_backtrace(1);
 }
 var22 = self < var15;
@@ -3085,9 +2819,9 @@ RET_LABEL25:(void)0;
 /* <var24:Int> isa OTHER */
 var29 = 1; /* easy <var24:Int> isa OTHER*/
 if (unlikely(!var29)) {
-var_class_name32 = type_kernel__Int.name;
+var_class_name32 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
 var33 = self + var24;
@@ -3123,9 +2857,9 @@ var41 = 10;
 /* <var41:Int> isa OTHER */
 var44 = 1; /* easy <var41:Int> isa OTHER*/
 if (unlikely(!var44)) {
-var_class_name47 = type_kernel__Int.name;
+var_class_name47 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
 show_backtrace(1);
 }
 var48 = var38 - var41;
@@ -3140,9 +2874,9 @@ RET_LABEL43:(void)0;
 /* <var42:Int> isa OTHER */
 var51 = 1; /* easy <var42:Int> isa OTHER*/
 if (unlikely(!var51)) {
-var_class_name54 = type_kernel__Int.name;
+var_class_name54 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
 var55 = self + var42;
@@ -3165,19 +2899,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#to_c for (self: Object): Char */
-char VIRTUAL_kernel__Int__to_c(val* self) {
-char var /* : Char */;
-char var1 /* : Char */;
-long var2 /* : Int */;
-var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var1 = kernel__Int__to_c(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Int#abs for (self: Int): Int */
-long kernel__Int__abs(long self) {
+long standard___standard__Int___abs(long self) {
 long var /* : Int */;
 long var1 /* : Int */;
 short int var2 /* : Bool */;
@@ -3202,9 +2925,9 @@ var1 = 0;
 /* <var1:Int> isa OTHER */
 var4 = 1; /* easy <var1:Int> isa OTHER*/
 if (unlikely(!var4)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
 show_backtrace(1);
 }
 var5 = self >= var1;
@@ -3232,9 +2955,9 @@ RET_LABEL8:(void)0;
 /* <self:Int> isa OTHER */
 var12 = 1; /* easy <self:Int> isa OTHER*/
 if (unlikely(!var12)) {
-var_class_name15 = type_kernel__Int.name;
+var_class_name15 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 417);
 show_backtrace(1);
 }
 var16 = var7 * self;
@@ -3249,19 +2972,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Int#abs for (self: Object): Int */
-long VIRTUAL_kernel__Int__abs(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-long var2 /* : Int */;
-var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
-var1 = kernel__Int__abs(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Char#object_id for (self: Char): Int */
-long kernel__Char__object_id(char self) {
+long standard___standard__Char___Object__object_id(char self) {
 long var /* : Int */;
 long var1 /* : Int */;
 var1 = (long)self;
@@ -3271,13 +2983,13 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#object_id for (self: Object): Int */
-long VIRTUAL_kernel__Char__object_id(val* self) {
+long VIRTUAL_standard___standard__Char___Object__object_id(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 char var3 /* : Char */;
 long var4 /* : Int */;
 { /* Inline kernel#Char#object_id (self) on <self:Object(Char)> */
-var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
+var3 = ((struct instance_standard__Char*)self)->value; /* autounbox from Object to Char */;
 var4 = (long)var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -3288,7 +3000,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#hash for (self: Char): Int */
-long kernel__Char__hash(char self) {
+long standard___standard__Char___Object__hash(char self) {
 long var /* : Int */;
 long var1 /* : Int */;
 long var3 /* : Int */;
@@ -3306,24 +3018,24 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#hash for (self: Object): Int */
-long VIRTUAL_kernel__Char__hash(val* self) {
+long VIRTUAL_standard___standard__Char___Object__hash(val* self) {
 long var /* : Int */;
 long var1 /* : Int */;
 char var2 /* : Char */;
-var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var1 = kernel__Char__hash(var2);
+var2 = ((struct instance_standard__Char*)self)->value; /* autounbox from Object to Char */;
+var1 = standard___standard__Char___Object__hash(var2);
 var = var1;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Char#== for (self: Char, nullable Object): Bool */
-short int kernel__Char___61d_61d(char self, val* p0) {
+short int standard___standard__Char___Object___61d_61d(char self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 char var2 /* : Char */;
-var1 = (p0 != NULL) && (p0->class == &class_kernel__Char);
+var1 = (p0 != NULL) && (p0->class == &class_standard__Char);
 if (var1) {
-var2 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
+var2 = ((struct instance_standard__Char*)p0)->value; /* autounbox from nullable Object to Char */;
 var1 = (var2 == self);
 }
 var = var1;
@@ -3332,12 +3044,12 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#== for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Char___61d_61d(val* self, val* p0) {
+short int VIRTUAL_standard___standard__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)> */
-var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value);
+var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_standard__Char*)self)->value == ((struct instance_standard__Char*)p0)->value);
 var1 = var3;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
@@ -3347,14 +3059,14 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#!= for (self: Char, nullable Object): Bool */
-short int kernel__Char___33d_61d(char self, val* p0) {
+short int standard___standard__Char___Object___33d_61d(char self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 char var2 /* : Char */;
 short int var3 /* : Bool */;
-var1 = (p0 != NULL) && (p0->class == &class_kernel__Char);
+var1 = (p0 != NULL) && (p0->class == &class_standard__Char);
 if (var1) {
-var2 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
+var2 = ((struct instance_standard__Char*)p0)->value; /* autounbox from nullable Object to Char */;
 var1 = (var2 == self);
 }
 var3 = !var1;
@@ -3364,13 +3076,13 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#!= for (self: Object, nullable Object): Bool */
-short int VIRTUAL_kernel__Char___33d_61d(val* self, val* p0) {
+short int VIRTUAL_standard___standard__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)> */
-var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value);
+var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_standard__Char*)self)->value == ((struct instance_standard__Char*)p0)->value);
 var4 = !var3;
 var1 = var4;
 goto RET_LABEL2;
@@ -3381,7 +3093,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#<= for (self: Char, Char): Bool */
-short int kernel__Char___60d_61d(char self, char p0) {
+short int standard___standard__Char___Comparable___60d_61d(char self, char p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -3392,9 +3104,9 @@ short int var2 /* : Bool */;
 /* <p0:Char> isa OTHER */
 var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Char.name;
+var_class_name = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 591);
 show_backtrace(1);
 }
 var2 = self <= p0;
@@ -3403,8 +3115,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#<= for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Char___60d_61d(val* self, val* p0) {
+/* method kernel#Char#<= for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Char___Comparable___60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -3415,10 +3127,10 @@ const char* var_class_name;
 char var4 /* : Char */;
 char var5 /* : Char */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Char#<= (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -3429,11 +3141,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 591);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
+var4 = ((struct instance_standard__Char*)self)->value; /* autounbox from Comparable to Char */;
+var5 = ((struct instance_standard__Char*)p0)->value; /* autounbox from Comparable to Char */;
 var6 = var4 <= var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -3444,7 +3156,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#< for (self: Char, Char): Bool */
-short int kernel__Char___60d(char self, char p0) {
+short int standard___standard__Char___Comparable___60d(char self, char p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -3455,9 +3167,9 @@ short int var2 /* : Bool */;
 /* <p0:Char> isa OTHER */
 var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Char.name;
+var_class_name = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 546);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 592);
 show_backtrace(1);
 }
 var2 = self < p0;
@@ -3466,8 +3178,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#< for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Char___60d(val* self, val* p0) {
+/* method kernel#Char#< for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Char___Comparable___60d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -3478,10 +3190,10 @@ const char* var_class_name;
 char var4 /* : Char */;
 char var5 /* : Char */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Char#< (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -3492,11 +3204,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 546);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 592);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
+var4 = ((struct instance_standard__Char*)self)->value; /* autounbox from Comparable to Char */;
+var5 = ((struct instance_standard__Char*)p0)->value; /* autounbox from Comparable to Char */;
 var6 = var4 < var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -3507,7 +3219,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#>= for (self: Char, Char): Bool */
-short int kernel__Char___62d_61d(char self, char p0) {
+short int standard___standard__Char___Comparable___62d_61d(char self, char p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -3518,9 +3230,9 @@ short int var2 /* : Bool */;
 /* <p0:Char> isa OTHER */
 var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Char.name;
+var_class_name = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 593);
 show_backtrace(1);
 }
 var2 = self >= p0;
@@ -3529,8 +3241,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#>= for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Char___62d_61d(val* self, val* p0) {
+/* method kernel#Char#>= for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Char___Comparable___62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -3541,10 +3253,10 @@ const char* var_class_name;
 char var4 /* : Char */;
 char var5 /* : Char */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Char#>= (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -3555,11 +3267,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 593);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
+var4 = ((struct instance_standard__Char*)self)->value; /* autounbox from Comparable to Char */;
+var5 = ((struct instance_standard__Char*)p0)->value; /* autounbox from Comparable to Char */;
 var6 = var4 >= var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -3570,7 +3282,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#> for (self: Char, Char): Bool */
-short int kernel__Char___62d(char self, char p0) {
+short int standard___standard__Char___Comparable___62d(char self, char p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 int cltype;
@@ -3581,9 +3293,9 @@ short int var2 /* : Bool */;
 /* <p0:Char> isa OTHER */
 var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Char.name;
+var_class_name = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 548);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 594);
 show_backtrace(1);
 }
 var2 = self > p0;
@@ -3592,8 +3304,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#> for (self: Object, Comparable): Bool */
-short int VIRTUAL_kernel__Char___62d(val* self, val* p0) {
+/* method kernel#Char#> for (self: Comparable, Comparable): Bool */
+short int VIRTUAL_standard___standard__Char___Comparable___62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 short int var3 /* : Bool */;
@@ -3604,10 +3316,10 @@ const char* var_class_name;
 char var4 /* : Char */;
 char var5 /* : Char */;
 short int var6 /* : Bool */;
-{ /* Inline kernel#Char#> (self,p0) on <self:Object(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 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+type_struct = self->type->resolution_table->types[COLOR_standard__kernel__Comparable__OTHER];
 cltype = type_struct->color;
 idtype = type_struct->id;
 if(cltype >= p0->type->table_size) {
@@ -3618,11 +3330,11 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (unlikely(!var3)) {
 var_class_name = p0 == NULL ? "null" : p0->type->name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 548);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 594);
 show_backtrace(1);
 }
-var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
+var4 = ((struct instance_standard__Char*)self)->value; /* autounbox from Comparable to Char */;
+var5 = ((struct instance_standard__Char*)p0)->value; /* autounbox from Comparable to Char */;
 var6 = var4 > var5;
 var1 = var6;
 goto RET_LABEL2;
@@ -3633,7 +3345,7 @@ RET_LABEL:;
 return var;
 }
 /* method kernel#Char#successor for (self: Char, Int): Char */
-char kernel__Char__successor(char self, long p0) {
+char standard___standard__Char___Discrete__successor(char self, long p0) {
 char var /* : Char */;
 char var1 /* : Char */;
 var1 = self + p0;
@@ -3642,27 +3354,27 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#successor for (self: Object, Int): Discrete */
-val* VIRTUAL_kernel__Char__successor(val* self, long p0) {
+/* method kernel#Char#successor for (self: Discrete, Int): Discrete */
+val* VIRTUAL_standard___standard__Char___Discrete__successor(val* self, long p0) {
 val* var /* : Discrete */;
 char var1 /* : Char */;
 char var3 /* : Char */;
 char var4 /* : Char */;
 val* var5 /* : Discrete */;
-{ /* Inline kernel#Char#successor (self,p0) on <self:Object(Char)> */
-var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
+{ /* Inline kernel#Char#successor (self,p0) on <self:Discrete(Char)> */
+var3 = ((struct instance_standard__Char*)self)->value; /* autounbox from Discrete to Char */;
 var4 = var3 + p0;
 var1 = var4;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
-var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */
+var5 = BOX_standard__Char(var1); /* autobox from Char to Discrete */
 var = var5;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Char#distance for (self: Char, Char): Int */
-long kernel__Char__distance(char self, char p0) {
+long standard___standard__Char___Discrete__distance(char self, char p0) {
 long var /* : Int */;
 short int var1 /* : Bool */;
 int cltype;
@@ -3693,9 +3405,9 @@ long var25 /* : Int */;
 /* <p0:Char> isa OTHER */
 var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (unlikely(!var1)) {
-var_class_name = type_kernel__Char.name;
+var_class_name = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 553);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 599);
 show_backtrace(1);
 }
 var_c = p0;
@@ -3721,9 +3433,9 @@ RET_LABEL6:(void)0;
 /* <var5:Int> isa OTHER */
 var10 = 1; /* easy <var5:Int> isa OTHER*/
 if (unlikely(!var10)) {
-var_class_name13 = type_kernel__Int.name;
+var_class_name13 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
 show_backtrace(1);
 }
 var14 = var2 - var5;
@@ -3740,9 +3452,9 @@ var15 = 0;
 /* <var15:Int> isa OTHER */
 var18 = 1; /* easy <var15:Int> isa OTHER*/
 if (unlikely(!var18)) {
-var_class_name21 = type_kernel__Int.name;
+var_class_name21 = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411);
 show_backtrace(1);
 }
 var22 = var_d >= var15;
@@ -3769,199 +3481,186 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#distance for (self: Object, Discrete): Int */
-long VIRTUAL_kernel__Char__distance(val* self, val* p0) {
+/* method kernel#Char#distance for (self: Discrete, Discrete): Int */
+long VIRTUAL_standard___standard__Char___Discrete__distance(val* self, val* p0) {
 long var /* : Int */;
 long var1 /* : Int */;
 char var2 /* : Char */;
 char var3 /* : Char */;
-var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var3 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Discrete to Char */;
-var1 = kernel__Char__distance(var2, var3);
+var2 = ((struct instance_standard__Char*)self)->value; /* autounbox from Discrete to Char */;
+var3 = ((struct instance_standard__Char*)p0)->value; /* autounbox from Discrete to Char */;
+var1 = standard___standard__Char___Discrete__distance(var2, var3);
 var = var1;
 RET_LABEL:;
 return var;
 }
 /* method kernel#Char#to_i for (self: Char): Int */
-long kernel__Char__to_i(char self) {
+long standard___standard__Char___to_i(char self) {
 long var /* : Int */;
 char var1 /* : Char */;
 short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-short int var5 /* : Bool */;
+short int var4 /* : Bool */;
+long var5 /* : Int */;
 long var6 /* : Int */;
-long var7 /* : Int */;
-long var9 /* : Int */;
-short int var10 /* : Bool */;
-long var11 /* : Int */;
-long var13 /* : Int */;
-char var14 /* : Char */;
-long var15 /* : Int */;
+long var8 /* : Int */;
+short int var9 /* : Bool */;
+long var10 /* : Int */;
+long var12 /* : Int */;
+char var13 /* : Char */;
+long var14 /* : Int */;
+long var16 /* : Int */;
 long var17 /* : Int */;
-long var18 /* : Int */;
-short int var20 /* : Bool */;
+short int var19 /* : Bool */;
 int cltype;
 int idtype;
 const char* var_class_name;
-long var21 /* : Int */;
-char var22 /* : Char */;
-long var23 /* : Int */;
-long var25 /* : Int */;
-char var26 /* : Char */;
-long var27 /* : Int */;
+long var20 /* : Int */;
+char var21 /* : Char */;
+long var22 /* : Int */;
+long var24 /* : Int */;
+char var25 /* : Char */;
+long var26 /* : Int */;
+long var28 /* : Int */;
 long var29 /* : Int */;
-long var30 /* : Int */;
-short int var32 /* : Bool */;
-int cltype33;
-int idtype34;
-const char* var_class_name35;
+short int var31 /* : Bool */;
+int cltype32;
+int idtype33;
+const char* var_class_name34;
+long var35 /* : Int */;
 long var36 /* : Int */;
 long var37 /* : Int */;
-long var38 /* : Int */;
-short int var40 /* : Bool */;
-int cltype41;
-int idtype42;
-const char* var_class_name43;
-long var44 /* : Int */;
+short int var39 /* : Bool */;
+int cltype40;
+int idtype41;
+const char* var_class_name42;
+long var43 /* : Int */;
 var1 = '-';
 {
 { /* Inline kernel#Char#== (self,var1) on <self:Char> */
-var5 = self == var1;
-var3 = var5;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
+var4 = self == var1;
+var2 = var4;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
 }
-var2 = var3;
 }
 if (var2){
-var6 = 1;
+var5 = 1;
 {
-{ /* Inline kernel#Int#unary - (var6) on <var6:Int> */
-var9 = -var6;
-var7 = var9;
-goto RET_LABEL8;
-RET_LABEL8:(void)0;
+{ /* Inline kernel#Int#unary - (var5) on <var5:Int> */
+var8 = -var5;
+var6 = var8;
+goto RET_LABEL7;
+RET_LABEL7:(void)0;
 }
 }
-var = var7;
+var = var6;
 goto RET_LABEL;
 } else {
 {
-var10 = kernel__Char__is_digit(self);
+var9 = standard___standard__Char___is_digit(self);
 }
-if (var10){
+if (var9){
 {
 { /* Inline kernel#Char#ascii (self) on <self:Char> */
-var13 = (unsigned char)self;
-var11 = var13;
-goto RET_LABEL12;
-RET_LABEL12:(void)0;
+var12 = (unsigned char)self;
+var10 = var12;
+goto RET_LABEL11;
+RET_LABEL11:(void)0;
 }
 }
-var14 = '0';
+var13 = '0';
 {
-{ /* Inline kernel#Char#ascii (var14) on <var14:Char> */
-var17 = (unsigned char)var14;
-var15 = var17;
-goto RET_LABEL16;
-RET_LABEL16:(void)0;
+{ /* Inline kernel#Char#ascii (var13) on <var13:Char> */
+var16 = (unsigned char)var13;
+var14 = var16;
+goto RET_LABEL15;
+RET_LABEL15:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#- (var11,var15) on <var11:Int> */
-/* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
-/* <var15:Int> isa OTHER */
-var20 = 1; /* easy <var15:Int> isa OTHER*/
-if (unlikely(!var20)) {
-var_class_name = type_kernel__Int.name;
+{ /* Inline kernel#Int#- (var10,var14) on <var10:Int> */
+/* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
+/* <var14:Int> isa OTHER */
+var19 = 1; /* easy <var14:Int> isa OTHER*/
+if (unlikely(!var19)) {
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
 show_backtrace(1);
 }
-var21 = var11 - var15;
-var18 = var21;
-goto RET_LABEL19;
-RET_LABEL19:(void)0;
+var20 = var10 - var14;
+var17 = var20;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
 }
 }
-var = var18;
+var = var17;
 goto RET_LABEL;
 } else {
 {
-var22 = kernel__Char__to_lower(self);
+var21 = standard___standard__Char___to_lower(self);
 }
 {
-{ /* Inline kernel#Char#ascii (var22) on <var22:Char> */
-var25 = (unsigned char)var22;
-var23 = var25;
-goto RET_LABEL24;
-RET_LABEL24:(void)0;
+{ /* Inline kernel#Char#ascii (var21) on <var21:Char> */
+var24 = (unsigned char)var21;
+var22 = var24;
+goto RET_LABEL23;
+RET_LABEL23:(void)0;
 }
 }
-var26 = 'a';
+var25 = 'a';
 {
-{ /* Inline kernel#Char#ascii (var26) on <var26:Char> */
-var29 = (unsigned char)var26;
-var27 = var29;
-goto RET_LABEL28;
-RET_LABEL28:(void)0;
+{ /* Inline kernel#Char#ascii (var25) on <var25:Char> */
+var28 = (unsigned char)var25;
+var26 = var28;
+goto RET_LABEL27;
+RET_LABEL27:(void)0;
 }
 }
 {
-{ /* Inline kernel#Int#- (var23,var27) on <var23:Int> */
-/* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
-/* <var27:Int> isa OTHER */
-var32 = 1; /* easy <var27:Int> isa OTHER*/
-if (unlikely(!var32)) {
-var_class_name35 = type_kernel__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
+{ /* Inline kernel#Int#- (var22,var26) on <var22:Int> */
+/* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
+/* <var26:Int> isa OTHER */
+var31 = 1; /* easy <var26:Int> isa OTHER*/
+if (unlikely(!var31)) {
+var_class_name34 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
 show_backtrace(1);
 }
-var36 = var23 - var27;
-var30 = var36;
-goto RET_LABEL31;
-RET_LABEL31:(void)0;
+var35 = var22 - var26;
+var29 = var35;
+goto RET_LABEL30;
+RET_LABEL30:(void)0;
 }
 }
-var37 = 10;
+var36 = 10;
 {
-{ /* Inline kernel#Int#+ (var30,var37) on <var30:Int> */
-/* Covariant cast for argument 0 (i) <var37:Int> isa OTHER */
-/* <var37:Int> isa OTHER */
-var40 = 1; /* easy <var37:Int> isa OTHER*/
-if (unlikely(!var40)) {
-var_class_name43 = type_kernel__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+{ /* Inline kernel#Int#+ (var29,var36) on <var29:Int> */
+/* Covariant cast for argument 0 (i) <var36:Int> isa OTHER */
+/* <var36:Int> isa OTHER */
+var39 = 1; /* easy <var36:Int> isa OTHER*/
+if (unlikely(!var39)) {
+var_class_name42 = type_standard__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
-var44 = var30 + var37;
-var38 = var44;
-goto RET_LABEL39;
-RET_LABEL39:(void)0;
+var43 = var29 + var36;
+var37 = var43;
+goto RET_LABEL38;
+RET_LABEL38:(void)0;
 }
 }
-var = var38;
+var = var37;
 goto RET_LABEL;
 }
 }
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#to_i for (self: Object): Int */
-long VIRTUAL_kernel__Char__to_i(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-char var2 /* : Char */;
-var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var1 = kernel__Char__to_i(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Char#ascii for (self: Char): Int */
-long kernel__Char__ascii(char self) {
+long standard___standard__Char___ascii(char self) {
 long var /* : Int */;
 long var1 /* : Int */;
 var1 = (unsigned char)self;
@@ -3970,25 +3669,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#ascii for (self: Object): Int */
-long VIRTUAL_kernel__Char__ascii(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-char var3 /* : Char */;
-long var4 /* : Int */;
-{ /* Inline kernel#Char#ascii (self) on <self:Object(Char)> */
-var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var4 = (unsigned char)var3;
-var1 = var4;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Char#to_lower for (self: Char): Char */
-char kernel__Char__to_lower(char self) {
+char standard___standard__Char___to_lower(char self) {
 char var /* : Char */;
 short int var1 /* : Bool */;
 long var2 /* : Int */;
@@ -4005,7 +3687,7 @@ long var11 /* : Int */;
 char var12 /* : Char */;
 char var14 /* : Char */;
 {
-var1 = kernel__Char__is_upper(self);
+var1 = standard___standard__Char___is_upper(self);
 }
 if (var1){
 {
@@ -4019,7 +3701,7 @@ RET_LABEL3:(void)0;
 var5 = 'a';
 var6 = 'A';
 {
-var7 = kernel__Char__distance(var5, var6);
+var7 = standard___standard__Char___Discrete__distance(var5, var6);
 }
 {
 { /* Inline kernel#Int#+ (var2,var7) on <var2:Int> */
@@ -4027,9 +3709,9 @@ var7 = kernel__Char__distance(var5, var6);
 /* <var7:Int> isa OTHER */
 var10 = 1; /* easy <var7:Int> isa OTHER*/
 if (unlikely(!var10)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
 show_backtrace(1);
 }
 var11 = var2 + var7;
@@ -4055,19 +3737,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#to_lower for (self: Object): Char */
-char VIRTUAL_kernel__Char__to_lower(val* self) {
-char var /* : Char */;
-char var1 /* : Char */;
-char var2 /* : Char */;
-var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var1 = kernel__Char__to_lower(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Char#to_upper for (self: Char): Char */
-char kernel__Char__to_upper(char self) {
+char standard___standard__Char___to_upper(char self) {
 char var /* : Char */;
 short int var1 /* : Bool */;
 long var2 /* : Int */;
@@ -4084,7 +3755,7 @@ long var11 /* : Int */;
 char var12 /* : Char */;
 char var14 /* : Char */;
 {
-var1 = kernel__Char__is_lower(self);
+var1 = standard___standard__Char___is_lower(self);
 }
 if (var1){
 {
@@ -4098,7 +3769,7 @@ RET_LABEL3:(void)0;
 var5 = 'a';
 var6 = 'A';
 {
-var7 = kernel__Char__distance(var5, var6);
+var7 = standard___standard__Char___Discrete__distance(var5, var6);
 }
 {
 { /* Inline kernel#Int#- (var2,var7) on <var2:Int> */
@@ -4106,9 +3777,9 @@ var7 = kernel__Char__distance(var5, var6);
 /* <var7:Int> isa OTHER */
 var10 = 1; /* easy <var7:Int> isa OTHER*/
 if (unlikely(!var10)) {
-var_class_name = type_kernel__Int.name;
+var_class_name = type_standard__Int.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
 show_backtrace(1);
 }
 var11 = var2 - var7;
@@ -4134,19 +3805,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#to_upper for (self: Object): Char */
-char VIRTUAL_kernel__Char__to_upper(val* self) {
-char var /* : Char */;
-char var1 /* : Char */;
-char var2 /* : Char */;
-var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var1 = kernel__Char__to_upper(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Char#is_digit for (self: Char): Bool */
-short int kernel__Char__is_digit(char self) {
+short int standard___standard__Char___is_digit(char self) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 char var2 /* : Char */;
@@ -4171,9 +3831,9 @@ var2 = '0';
 /* <var2:Char> isa OTHER */
 var5 = 1; /* easy <var2:Char> isa OTHER*/
 if (unlikely(!var5)) {
-var_class_name = type_kernel__Char.name;
+var_class_name = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 593);
 show_backtrace(1);
 }
 var6 = self >= var2;
@@ -4191,9 +3851,9 @@ var7 = '9';
 /* <var7:Char> isa OTHER */
 var10 = 1; /* easy <var7:Char> isa OTHER*/
 if (unlikely(!var10)) {
-var_class_name13 = type_kernel__Char.name;
+var_class_name13 = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 591);
 show_backtrace(1);
 }
 var14 = self <= var7;
@@ -4211,19 +3871,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#is_digit for (self: Object): Bool */
-short int VIRTUAL_kernel__Char__is_digit(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-char var2 /* : Char */;
-var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var1 = kernel__Char__is_digit(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Char#is_lower for (self: Char): Bool */
-short int kernel__Char__is_lower(char self) {
+short int standard___standard__Char___is_lower(char self) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 char var2 /* : Char */;
@@ -4248,9 +3897,9 @@ var2 = 'a';
 /* <var2:Char> isa OTHER */
 var5 = 1; /* easy <var2:Char> isa OTHER*/
 if (unlikely(!var5)) {
-var_class_name = type_kernel__Char.name;
+var_class_name = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 593);
 show_backtrace(1);
 }
 var6 = self >= var2;
@@ -4268,9 +3917,9 @@ var7 = 'z';
 /* <var7:Char> isa OTHER */
 var10 = 1; /* easy <var7:Char> isa OTHER*/
 if (unlikely(!var10)) {
-var_class_name13 = type_kernel__Char.name;
+var_class_name13 = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 591);
 show_backtrace(1);
 }
 var14 = self <= var7;
@@ -4288,19 +3937,8 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#is_lower for (self: Object): Bool */
-short int VIRTUAL_kernel__Char__is_lower(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-char var2 /* : Char */;
-var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var1 = kernel__Char__is_lower(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Char#is_upper for (self: Char): Bool */
-short int kernel__Char__is_upper(char self) {
+short int standard___standard__Char___is_upper(char self) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
 char var2 /* : Char */;
@@ -4325,9 +3963,9 @@ var2 = 'A';
 /* <var2:Char> isa OTHER */
 var5 = 1; /* easy <var2:Char> isa OTHER*/
 if (unlikely(!var5)) {
-var_class_name = type_kernel__Char.name;
+var_class_name = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 593);
 show_backtrace(1);
 }
 var6 = self >= var2;
@@ -4345,9 +3983,9 @@ var7 = 'Z';
 /* <var7:Char> isa OTHER */
 var10 = 1; /* easy <var7:Char> isa OTHER*/
 if (unlikely(!var10)) {
-var_class_name13 = type_kernel__Char.name;
+var_class_name13 = type_standard__Char.name;
 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
-PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545);
+PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 591);
 show_backtrace(1);
 }
 var14 = self <= var7;
@@ -4365,43 +4003,15 @@ goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Char#is_upper for (self: Object): Bool */
-short int VIRTUAL_kernel__Char__is_upper(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-char var2 /* : Char */;
-var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
-var1 = kernel__Char__is_upper(var2);
-var = var1;
-RET_LABEL:;
-return var;
-}
 /* method kernel#Pointer#address_is_null for (self: Pointer): Bool */
-short int kernel__Pointer__address_is_null(val* self) {
+short int standard___standard__Pointer___address_is_null(val* self) {
 short int var /* : Bool */;
 short int var1 /* : Bool for extern */;
 void* var2 /* : Pointer for extern */;
-var2 = ((struct instance_kernel__Pointer*)self)->value; /* unboxing Pointer */
+var2 = ((struct instance_standard__Pointer*)self)->value; /* unboxing Pointer */
 var1 = address_is_null(var2);
 var = var1;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Pointer#address_is_null for (self: Object): Bool */
-short int VIRTUAL_kernel__Pointer__address_is_null(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-short int var3 /* : Bool for extern */;
-void* var4 /* : Pointer for extern */;
-{ /* Inline kernel#Pointer#address_is_null (self) on <self:Object(Pointer)> */
-var4 = ((struct instance_kernel__Pointer*)self)->value; /* unboxing Object */
-var3 = address_is_null(var4);
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}