c_src : Regenerated c_src to prevent use of String contructors
[nit.git] / c_src / standard___kernel._sep.c
index 291f53b..3c70ee0 100644 (file)
@@ -1,30 +1,32 @@
 /* This C file is generated by NIT to compile module standard___kernel. */
 #include "standard___kernel._sep.h"
+static const char LOCATE_standard___kernel___Object___object_id[] = "kernel::Object::object_id";
 val_t standard___kernel___Object___object_id(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 28;
+  fra.me.line = 29;
   fra.me.meth = LOCATE_standard___kernel___Object___object_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:28 */
+  /* ../lib/standard/kernel.nit:29 */
   REGB0 = TAG_Int((bigint)((obj_t)fra.me.REG[0])[1].object_id);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Object___is_same_type[] = "kernel::Object::is_same_type";
 val_t standard___kernel___Object___is_same_type(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 33;
+  fra.me.line = 34;
   fra.me.meth = LOCATE_standard___kernel___Object___is_same_type;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -33,18 +35,19 @@ val_t standard___kernel___Object___is_same_type(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:33 */
+  /* ../lib/standard/kernel.nit:34 */
   REGB0 = TAG_Bool((VAL2VFT(fra.me.REG[0])==VAL2VFT(fra.me.REG[1])));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Object_____eqeq[] = "kernel::Object::==";
 val_t standard___kernel___Object_____eqeq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 37;
+  fra.me.line = 38;
   fra.me.meth = LOCATE_standard___kernel___Object_____eqeq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -53,13 +56,14 @@ val_t standard___kernel___Object_____eqeq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:41 */
+  /* ../lib/standard/kernel.nit:42 */
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[1]));
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Object_____neq[] = "kernel::Object::!=";
 val_t standard___kernel___Object_____neq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -67,7 +71,7 @@ val_t standard___kernel___Object_____neq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 43;
+  fra.me.line = 44;
   fra.me.meth = LOCATE_standard___kernel___Object_____neq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -76,7 +80,7 @@ val_t standard___kernel___Object_____neq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:46 */
+  /* ../lib/standard/kernel.nit:47 */
   REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[0],fra.me.REG[1]));
   if (UNTAG_Bool(REGB0)) {
   } else {
@@ -89,58 +93,61 @@ val_t standard___kernel___Object_____neq(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Object___output[] = "kernel::Object::output";
 void standard___kernel___Object___output(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 48;
+  fra.me.line = 49;
   fra.me.meth = LOCATE_standard___kernel___Object___output;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:52 */
+  /* ../lib/standard/kernel.nit:54 */
   REGB0 = TAG_Char('<');
-  /* ./../lib/standard//kernel.nit:380 */
+  /* ../lib/standard/kernel.nit:436 */
   printf("%c", (unsigned char)UNTAG_Char(REGB0));;
-  /* ./../lib/standard//kernel.nit:53 */
+  /* ../lib/standard/kernel.nit:55 */
   REGB0 = CALL_standard___kernel___Object___object_id(fra.me.REG[0])(fra.me.REG[0]);
-  /* ./../lib/standard//kernel.nit:229 */
+  /* ../lib/standard/kernel.nit:239 */
   printf("%ld\n", UNTAG_Int(REGB0));;
-  /* ./../lib/standard//kernel.nit:54 */
+  /* ../lib/standard/kernel.nit:56 */
   REGB0 = TAG_Char('>');
-  /* ./../lib/standard//kernel.nit:380 */
+  /* ../lib/standard/kernel.nit:436 */
   printf("%c", (unsigned char)UNTAG_Char(REGB0));;
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Object___output_class_name[] = "kernel::Object::output_class_name";
 void standard___kernel___Object___output_class_name(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 57;
+  fra.me.line = 59;
   fra.me.meth = LOCATE_standard___kernel___Object___output_class_name;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:57 */
+  /* ../lib/standard/kernel.nit:59 */
   printf("%s\n", VAL2VFT(fra.me.REG[0])[2].cname);;
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Object___exit[] = "kernel::Object::exit";
 void standard___kernel___Object___exit(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 61;
+  fra.me.line = 64;
   fra.me.meth = LOCATE_standard___kernel___Object___exit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -148,34 +155,36 @@ void standard___kernel___Object___exit(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   REGB0 = p1;
-  /* ./../lib/standard//kernel.nit:61 */
+  /* ../lib/standard/kernel.nit:64 */
   exit(UNTAG_Int(REGB0));;
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Object___sys[] = "kernel::Object::sys";
 val_t standard___kernel___Object___sys(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 64;
+  fra.me.line = 67;
   fra.me.meth = LOCATE_standard___kernel___Object___sys;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:64 */
+  /* ../lib/standard/kernel.nit:67 */
   fra.me.REG[0] = (G_sys);
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_standard___kernel___Sys___main[] = "kernel::Sys::main";
 void standard___kernel___Sys___main(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 72;
+  fra.me.line = 75;
   fra.me.meth = LOCATE_standard___kernel___Sys___main;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -185,6 +194,7 @@ void standard___kernel___Sys___main(val_t p0){
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Sys___init[] = "kernel::Sys::init";
 void standard___kernel___Sys___init(val_t p0, int* init_table){
   int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_standard___kernel___Sys].i;
   struct {struct stack_frame_t me;} fra;
@@ -201,13 +211,14 @@ void standard___kernel___Sys___init(val_t p0, int* init_table){
   init_table[itpos0] = 1;
   return;
 }
+static const char LOCATE_standard___kernel___Comparable_____l[] = "kernel::Comparable::<";
 val_t standard___kernel___Comparable_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 86;
+  fra.me.line = 89;
   fra.me.meth = LOCATE_standard___kernel___Comparable_____l;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -221,18 +232,19 @@ val_t standard___kernel___Comparable_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:86 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___kernel, 86);
+  /* ../lib/standard/kernel.nit:89 */
+  nit_abort("Deferred method called", NULL, LOCATE_standard___kernel, 89);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_standard___kernel___Comparable_____leq[] = "kernel::Comparable::<=";
 val_t standard___kernel___Comparable_____leq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 89;
+  fra.me.line = 92;
   fra.me.meth = LOCATE_standard___kernel___Comparable_____leq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -246,7 +258,7 @@ val_t standard___kernel___Comparable_____leq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:91 */
+  /* ../lib/standard/kernel.nit:94 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   goto label1;
@@ -254,13 +266,14 @@ val_t standard___kernel___Comparable_____leq(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Comparable_____geq[] = "kernel::Comparable::>=";
 val_t standard___kernel___Comparable_____geq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 93;
+  fra.me.line = 96;
   fra.me.meth = LOCATE_standard___kernel___Comparable_____geq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -274,7 +287,7 @@ val_t standard___kernel___Comparable_____geq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:95 */
+  /* ../lib/standard/kernel.nit:98 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   goto label1;
@@ -282,13 +295,14 @@ val_t standard___kernel___Comparable_____geq(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Comparable_____g[] = "kernel::Comparable::>";
 val_t standard___kernel___Comparable_____g(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 97;
+  fra.me.line = 100;
   fra.me.meth = LOCATE_standard___kernel___Comparable_____g;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -302,13 +316,14 @@ val_t standard___kernel___Comparable_____g(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:98 */
+  /* ../lib/standard/kernel.nit:101 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Comparable_____leqg[] = "kernel::Comparable::<=>";
 val_t standard___kernel___Comparable_____leqg(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -316,7 +331,7 @@ val_t standard___kernel___Comparable_____leqg(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 100;
+  fra.me.line = 103;
   fra.me.meth = LOCATE_standard___kernel___Comparable_____leqg;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -330,25 +345,25 @@ val_t standard___kernel___Comparable_____leqg(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:104 */
+  /* ../lib/standard/kernel.nit:107 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:105 */
+    /* ../lib/standard/kernel.nit:108 */
     REGB0 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:246 */
     REGB0 = TAG_Int(-UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:105 */
+    /* ../lib/standard/kernel.nit:108 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:106 */
+    /* ../lib/standard/kernel.nit:109 */
     REGB1 = CALL_standard___kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//kernel.nit:107 */
+      /* ../lib/standard/kernel.nit:110 */
       REGB1 = TAG_Int(1);
       REGB0 = REGB1;
       goto label1;
     } else {
-      /* ./../lib/standard//kernel.nit:109 */
+      /* ../lib/standard/kernel.nit:112 */
       REGB1 = TAG_Int(0);
       REGB0 = REGB1;
       goto label1;
@@ -358,6 +373,7 @@ val_t standard___kernel___Comparable_____leqg(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Comparable___is_between[] = "kernel::Comparable::is_between";
 val_t standard___kernel___Comparable___is_between(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -365,7 +381,7 @@ val_t standard___kernel___Comparable___is_between(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 113;
+  fra.me.line = 116;
   fra.me.meth = LOCATE_standard___kernel___Comparable___is_between;
   fra.me.has_broke = 0;
   fra.me.REG_size = 3;
@@ -386,12 +402,12 @@ val_t standard___kernel___Comparable___is_between(val_t p0, val_t p1, val_t p2){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:116 */
+  /* ../lib/standard/kernel.nit:119 */
   REGB0 = CALL_standard___kernel___Comparable_____leq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
     REGB0 = CALL_standard___kernel___Comparable_____leq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
   } else {
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   goto label1;
@@ -399,13 +415,14 @@ val_t standard___kernel___Comparable___is_between(val_t p0, val_t p1, val_t p2){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Comparable___max[] = "kernel::Comparable::max";
 val_t standard___kernel___Comparable___max(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 119;
+  fra.me.line = 122;
   fra.me.meth = LOCATE_standard___kernel___Comparable___max;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -419,13 +436,13 @@ val_t standard___kernel___Comparable___max(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:122 */
+  /* ../lib/standard/kernel.nit:125 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:123 */
+    /* ../lib/standard/kernel.nit:126 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:125 */
+    /* ../lib/standard/kernel.nit:128 */
     fra.me.REG[1] = fra.me.REG[0];
     goto label1;
   }
@@ -433,13 +450,14 @@ val_t standard___kernel___Comparable___max(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_standard___kernel___Comparable___min[] = "kernel::Comparable::min";
 val_t standard___kernel___Comparable___min(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 129;
+  fra.me.line = 132;
   fra.me.meth = LOCATE_standard___kernel___Comparable___min;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -453,13 +471,13 @@ val_t standard___kernel___Comparable___min(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:132 */
+  /* ../lib/standard/kernel.nit:135 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:133 */
+    /* ../lib/standard/kernel.nit:136 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:135 */
+    /* ../lib/standard/kernel.nit:138 */
     fra.me.REG[1] = fra.me.REG[0];
     goto label1;
   }
@@ -467,20 +485,21 @@ val_t standard___kernel___Comparable___min(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_standard___kernel___Discrete___succ[] = "kernel::Discrete::succ";
 val_t standard___kernel___Discrete___succ(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 146;
+  fra.me.line = 149;
   fra.me.meth = LOCATE_standard___kernel___Discrete___succ;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:147 */
+  /* ../lib/standard/kernel.nit:150 */
   REGB0 = TAG_Int(1);
   fra.me.REG[0] = CALL_standard___kernel___Discrete_____plus(fra.me.REG[0])(fra.me.REG[0], REGB0);
   goto label1;
@@ -488,20 +507,21 @@ val_t standard___kernel___Discrete___succ(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_standard___kernel___Discrete___prec[] = "kernel::Discrete::prec";
 val_t standard___kernel___Discrete___prec(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 149;
+  fra.me.line = 152;
   fra.me.meth = LOCATE_standard___kernel___Discrete___prec;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:150 */
+  /* ../lib/standard/kernel.nit:153 */
   REGB0 = TAG_Int(1);
   fra.me.REG[0] = CALL_standard___kernel___Discrete_____minus(fra.me.REG[0])(fra.me.REG[0], REGB0);
   goto label1;
@@ -509,36 +529,39 @@ val_t standard___kernel___Discrete___prec(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_standard___kernel___Discrete_____plus[] = "kernel::Discrete::+";
 val_t standard___kernel___Discrete_____plus(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 152;
+  fra.me.line = 155;
   fra.me.meth = LOCATE_standard___kernel___Discrete_____plus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//kernel.nit:152 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___kernel, 152);
+  /* ../lib/standard/kernel.nit:155 */
+  nit_abort("Deferred method called", NULL, LOCATE_standard___kernel, 155);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_standard___kernel___Discrete_____minus[] = "kernel::Discrete::-";
 val_t standard___kernel___Discrete_____minus(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 155;
+  fra.me.line = 158;
   fra.me.meth = LOCATE_standard___kernel___Discrete_____minus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
-  /* ./../lib/standard//kernel.nit:155 */
-  nit_abort("Deferred method called", NULL, LOCATE_standard___kernel, 155);
+  /* ../lib/standard/kernel.nit:158 */
+  nit_abort("Deferred method called", NULL, LOCATE_standard___kernel, 158);
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_standard___kernel___Discrete___distance[] = "kernel::Discrete::distance";
 val_t standard___kernel___Discrete___distance(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -547,7 +570,7 @@ val_t standard___kernel___Discrete___distance(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 158;
+  fra.me.line = 161;
   fra.me.meth = LOCATE_standard___kernel___Discrete___distance;
   fra.me.has_broke = 0;
   fra.me.REG_size = 4;
@@ -563,79 +586,81 @@ val_t standard___kernel___Discrete___distance(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:165 */
+  /* ../lib/standard/kernel.nit:169 */
   REGB0 = CALL_standard___kernel___Comparable_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:166 */
+    /* ../lib/standard/kernel.nit:170 */
     fra.me.REG[2] = fra.me.REG[0];
-    /* ./../lib/standard//kernel.nit:167 */
+    /* ../lib/standard/kernel.nit:171 */
     fra.me.REG[3] = fra.me.REG[1];
   } else {
-    /* ./../lib/standard//kernel.nit:168 */
+    /* ../lib/standard/kernel.nit:172 */
     REGB0 = CALL_standard___kernel___Comparable_____g(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//kernel.nit:169 */
+      /* ../lib/standard/kernel.nit:173 */
       fra.me.REG[2] = fra.me.REG[1];
-      /* ./../lib/standard//kernel.nit:170 */
+      /* ../lib/standard/kernel.nit:174 */
       fra.me.REG[3] = fra.me.REG[0];
     } else {
-      /* ./../lib/standard//kernel.nit:172 */
+      /* ../lib/standard/kernel.nit:176 */
       REGB0 = TAG_Int(0);
       goto label1;
     }
   }
-  /* ./../lib/standard//kernel.nit:175 */
+  /* ../lib/standard/kernel.nit:179 */
   REGB1 = TAG_Int(0);
-  /* ./../lib/standard//kernel.nit:176 */
+  /* ../lib/standard/kernel.nit:180 */
   while(1) {
     REGB2 = CALL_standard___kernel___Comparable_____l(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//kernel.nit:177 */
+      /* ../lib/standard/kernel.nit:181 */
       fra.me.REG[0] = CALL_standard___kernel___Discrete___succ(fra.me.REG[2])(fra.me.REG[2]);
       fra.me.REG[2] = fra.me.REG[0];
-      /* ./../lib/standard//kernel.nit:178 */
+      /* ../lib/standard/kernel.nit:182 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:178 */
+      /* ../lib/standard/kernel.nit:182 */
       REGB1 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:176 */
+      /* ../lib/standard/kernel.nit:180 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//kernel.nit:180 */
+  /* ../lib/standard/kernel.nit:184 */
   REGB0 = REGB1;
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Bool___object_id[] = "kernel::Bool::(kernel::Object::object_id)";
 val_t standard___kernel___Bool___object_id(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 194;
+  fra.me.line = 198;
   fra.me.meth = LOCATE_standard___kernel___Bool___object_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:194 */
+  /* ../lib/standard/kernel.nit:198 */
   REGB0 = TAG_Int(UNTAG_Bool(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Bool_____eqeq[] = "kernel::Bool::(kernel::Object::==)";
 val_t standard___kernel___Bool_____eqeq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 195;
+  fra.me.line = 199;
   fra.me.meth = LOCATE_standard___kernel___Bool_____eqeq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -643,18 +668,19 @@ val_t standard___kernel___Bool_____eqeq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:195 */
+  /* ../lib/standard/kernel.nit:199 */
   REGB0 = TAG_Bool((REGB0)==(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Bool_____neq[] = "kernel::Bool::(kernel::Object::!=)";
 val_t standard___kernel___Bool_____neq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 196;
+  fra.me.line = 200;
   fra.me.meth = LOCATE_standard___kernel___Bool_____neq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -662,70 +688,74 @@ val_t standard___kernel___Bool_____neq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:196 */
+  /* ../lib/standard/kernel.nit:200 */
   REGB0 = TAG_Bool((REGB0)!=(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Bool___output[] = "kernel::Bool::(kernel::Object::output)";
 void standard___kernel___Bool___output(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 197;
+  fra.me.line = 201;
   fra.me.meth = LOCATE_standard___kernel___Bool___output;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:197 */
+  /* ../lib/standard/kernel.nit:201 */
   (void)printf(UNTAG_Bool(REGB0)?"true\n":"false\n");;
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Float___object_id[] = "kernel::Float::(kernel::Object::object_id)";
 val_t standard___kernel___Float___object_id(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 203;
+  fra.me.line = 207;
   fra.me.meth = LOCATE_standard___kernel___Float___object_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:203 */
+  /* ../lib/standard/kernel.nit:207 */
   REGB0 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Float___output[] = "kernel::Float::(kernel::Object::output)";
 void standard___kernel___Float___output(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 204;
+  fra.me.line = 208;
   fra.me.meth = LOCATE_standard___kernel___Float___output;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:204 */
+  /* ../lib/standard/kernel.nit:208 */
   printf("%f\n", UNBOX_Float(fra.me.REG[0]));;
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Float_____leq[] = "kernel::Float::<=";
 val_t standard___kernel___Float_____leq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 206;
+  fra.me.line = 210;
   fra.me.meth = LOCATE_standard___kernel___Float_____leq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -734,18 +764,19 @@ val_t standard___kernel___Float_____leq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:206 */
+  /* ../lib/standard/kernel.nit:210 */
   REGB0 = TAG_Bool(UNBOX_Float(fra.me.REG[0])<=UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Float_____l[] = "kernel::Float::<";
 val_t standard___kernel___Float_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 207;
+  fra.me.line = 211;
   fra.me.meth = LOCATE_standard___kernel___Float_____l;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -754,18 +785,19 @@ val_t standard___kernel___Float_____l(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:207 */
+  /* ../lib/standard/kernel.nit:211 */
   REGB0 = TAG_Bool(UNBOX_Float(fra.me.REG[0])<UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Float_____geq[] = "kernel::Float::>=";
 val_t standard___kernel___Float_____geq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 208;
+  fra.me.line = 212;
   fra.me.meth = LOCATE_standard___kernel___Float_____geq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -774,18 +806,19 @@ val_t standard___kernel___Float_____geq(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:208 */
+  /* ../lib/standard/kernel.nit:212 */
   REGB0 = TAG_Bool(UNBOX_Float(fra.me.REG[0])>=UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Float_____g[] = "kernel::Float::>";
 val_t standard___kernel___Float_____g(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 209;
+  fra.me.line = 213;
   fra.me.meth = LOCATE_standard___kernel___Float_____g;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -794,17 +827,18 @@ val_t standard___kernel___Float_____g(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:209 */
+  /* ../lib/standard/kernel.nit:213 */
   REGB0 = TAG_Bool(UNBOX_Float(fra.me.REG[0])>UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Float_____plus[] = "kernel::Float::+";
 val_t standard___kernel___Float_____plus(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 210;
+  fra.me.line = 214;
   fra.me.meth = LOCATE_standard___kernel___Float_____plus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -813,34 +847,36 @@ val_t standard___kernel___Float_____plus(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:210 */
+  /* ../lib/standard/kernel.nit:214 */
   fra.me.REG[1] = BOX_Float(UNBOX_Float(fra.me.REG[0])+UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_standard___kernel___Float___unary__minus[] = "kernel::Float::unary -";
 val_t standard___kernel___Float___unary__minus(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 211;
+  fra.me.line = 215;
   fra.me.meth = LOCATE_standard___kernel___Float___unary__minus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:211 */
+  /* ../lib/standard/kernel.nit:215 */
   fra.me.REG[0] = BOX_Float(-UNBOX_Float(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_standard___kernel___Float_____minus[] = "kernel::Float::-";
 val_t standard___kernel___Float_____minus(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 212;
+  fra.me.line = 216;
   fra.me.meth = LOCATE_standard___kernel___Float_____minus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -849,17 +885,18 @@ val_t standard___kernel___Float_____minus(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:212 */
+  /* ../lib/standard/kernel.nit:216 */
   fra.me.REG[1] = BOX_Float(UNBOX_Float(fra.me.REG[0])-UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_standard___kernel___Float_____star[] = "kernel::Float::*";
 val_t standard___kernel___Float_____star(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 213;
+  fra.me.line = 217;
   fra.me.meth = LOCATE_standard___kernel___Float_____star;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -868,17 +905,18 @@ val_t standard___kernel___Float_____star(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:213 */
+  /* ../lib/standard/kernel.nit:217 */
   fra.me.REG[1] = BOX_Float(UNBOX_Float(fra.me.REG[0])*UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_standard___kernel___Float_____slash[] = "kernel::Float::/";
 val_t standard___kernel___Float_____slash(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 214;
+  fra.me.line = 218;
   fra.me.meth = LOCATE_standard___kernel___Float_____slash;
   fra.me.has_broke = 0;
   fra.me.REG_size = 2;
@@ -887,53 +925,56 @@ val_t standard___kernel___Float_____slash(val_t p0, val_t p1){
   fra.me.REG[1] = NIT_NULL;
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
-  /* ./../lib/standard//kernel.nit:214 */
+  /* ../lib/standard/kernel.nit:218 */
   fra.me.REG[1] = BOX_Float(UNBOX_Float(fra.me.REG[0])/UNBOX_Float(fra.me.REG[1]));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_standard___kernel___Float___to_i[] = "kernel::Float::to_i";
 val_t standard___kernel___Float___to_i(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 216;
+  fra.me.line = 220;
   fra.me.meth = LOCATE_standard___kernel___Float___to_i;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
-  /* ./../lib/standard//kernel.nit:216 */
+  /* ../lib/standard/kernel.nit:220 */
   REGB0 = TAG_Int((bigint)UNBOX_Float(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Int___object_id[] = "kernel::Int::(kernel::Object::object_id)";
 val_t standard___kernel___Int___object_id(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 226;
+  fra.me.line = 236;
   fra.me.meth = LOCATE_standard___kernel___Int___object_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:226 */
+  /* ../lib/standard/kernel.nit:236 */
   REGB0 = REGB0;
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Int_____eqeq[] = "kernel::Int::(kernel::Object::==)";
 val_t standard___kernel___Int_____eqeq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 227;
+  fra.me.line = 237;
   fra.me.meth = LOCATE_standard___kernel___Int_____eqeq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -941,18 +982,19 @@ val_t standard___kernel___Int_____eqeq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:227 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB0 = TAG_Bool((REGB0)==(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Int_____neq[] = "kernel::Int::(kernel::Object::!=)";
 val_t standard___kernel___Int_____neq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 228;
+  fra.me.line = 238;
   fra.me.meth = LOCATE_standard___kernel___Int_____neq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -960,28 +1002,30 @@ val_t standard___kernel___Int_____neq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:228 */
+  /* ../lib/standard/kernel.nit:238 */
   REGB0 = TAG_Bool((REGB0)!=(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Int___output[] = "kernel::Int::(kernel::Object::output)";
 void standard___kernel___Int___output(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 229;
+  fra.me.line = 239;
   fra.me.meth = LOCATE_standard___kernel___Int___output;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:229 */
+  /* ../lib/standard/kernel.nit:239 */
   printf("%ld\n", UNTAG_Int(REGB0));;
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Int_____leq[] = "kernel::Int::(kernel::Comparable::<=)";
 val_t standard___kernel___Int_____leq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -990,7 +1034,7 @@ val_t standard___kernel___Int_____leq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 231;
+  fra.me.line = 241;
   fra.me.meth = LOCATE_standard___kernel___Int_____leq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1002,11 +1046,12 @@ val_t standard___kernel___Int_____leq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:231 */
+  /* ../lib/standard/kernel.nit:241 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int_____l[] = "kernel::Int::(kernel::Comparable::<)";
 val_t standard___kernel___Int_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1015,7 +1060,7 @@ val_t standard___kernel___Int_____l(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 232;
+  fra.me.line = 242;
   fra.me.meth = LOCATE_standard___kernel___Int_____l;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1027,11 +1072,12 @@ val_t standard___kernel___Int_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:242 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int_____geq[] = "kernel::Int::(kernel::Comparable::>=)";
 val_t standard___kernel___Int_____geq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1040,7 +1086,7 @@ val_t standard___kernel___Int_____geq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 233;
+  fra.me.line = 243;
   fra.me.meth = LOCATE_standard___kernel___Int_____geq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1052,11 +1098,12 @@ val_t standard___kernel___Int_____geq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:243 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int_____g[] = "kernel::Int::(kernel::Comparable::>)";
 val_t standard___kernel___Int_____g(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1065,7 +1112,7 @@ val_t standard___kernel___Int_____g(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 234;
+  fra.me.line = 244;
   fra.me.meth = LOCATE_standard___kernel___Int_____g;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1077,11 +1124,12 @@ val_t standard___kernel___Int_____g(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:244 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int_____plus[] = "kernel::Int::(kernel::Discrete::+)";
 val_t standard___kernel___Int_____plus(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1089,35 +1137,37 @@ val_t standard___kernel___Int_____plus(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 235;
+  fra.me.line = 245;
   fra.me.meth = LOCATE_standard___kernel___Int_____plus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:235 */
+  /* ../lib/standard/kernel.nit:245 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int___unary__minus[] = "kernel::Int::unary -";
 val_t standard___kernel___Int___unary__minus(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 236;
+  fra.me.line = 246;
   fra.me.meth = LOCATE_standard___kernel___Int___unary__minus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:236 */
+  /* ../lib/standard/kernel.nit:246 */
   REGB0 = TAG_Int(-UNTAG_Int(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Int_____minus[] = "kernel::Int::(kernel::Discrete::-)";
 val_t standard___kernel___Int_____minus(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1125,18 +1175,19 @@ val_t standard___kernel___Int_____minus(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 237;
+  fra.me.line = 247;
   fra.me.meth = LOCATE_standard___kernel___Int_____minus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:247 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int_____star[] = "kernel::Int::*";
 val_t standard___kernel___Int_____star(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1144,18 +1195,19 @@ val_t standard___kernel___Int_____star(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 238;
+  fra.me.line = 248;
   fra.me.meth = LOCATE_standard___kernel___Int_____star;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:238 */
+  /* ../lib/standard/kernel.nit:248 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)*UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int_____slash[] = "kernel::Int::/";
 val_t standard___kernel___Int_____slash(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1163,18 +1215,19 @@ val_t standard___kernel___Int_____slash(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 239;
+  fra.me.line = 249;
   fra.me.meth = LOCATE_standard___kernel___Int_____slash;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:239 */
+  /* ../lib/standard/kernel.nit:249 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)/UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int_____percent[] = "kernel::Int::%";
 val_t standard___kernel___Int_____percent(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1182,18 +1235,19 @@ val_t standard___kernel___Int_____percent(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 240;
+  fra.me.line = 250;
   fra.me.meth = LOCATE_standard___kernel___Int_____percent;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:240 */
+  /* ../lib/standard/kernel.nit:250 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)%UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int___lshift[] = "kernel::Int::lshift";
 val_t standard___kernel___Int___lshift(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1201,18 +1255,19 @@ val_t standard___kernel___Int___lshift(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 241;
+  fra.me.line = 252;
   fra.me.meth = LOCATE_standard___kernel___Int___lshift;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:241 */
+  /* ../lib/standard/kernel.nit:252 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)<<UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int___rshift[] = "kernel::Int::rshift";
 val_t standard___kernel___Int___rshift(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1220,70 +1275,74 @@ val_t standard___kernel___Int___rshift(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 242;
+  fra.me.line = 257;
   fra.me.meth = LOCATE_standard___kernel___Int___rshift;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:242 */
+  /* ../lib/standard/kernel.nit:257 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)>>UNTAG_Int(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int___to_f[] = "kernel::Int::to_f";
 val_t standard___kernel___Int___to_f(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 244;
+  fra.me.line = 262;
   fra.me.meth = LOCATE_standard___kernel___Int___to_f;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
   fra.me.nitni_local_ref_head = NULL;
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:244 */
+  /* ../lib/standard/kernel.nit:262 */
   fra.me.REG[0] = BOX_Float((float)UNTAG_Int(REGB0));
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_standard___kernel___Int___succ[] = "kernel::Int::(kernel::Discrete::succ)";
 val_t standard___kernel___Int___succ(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 247;
+  fra.me.line = 268;
   fra.me.meth = LOCATE_standard___kernel___Int___succ;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:247 */
+  /* ../lib/standard/kernel.nit:268 */
   REGB0 = TAG_Int(UNTAG_Int(REGB0)+1);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Int___prec[] = "kernel::Int::(kernel::Discrete::prec)";
 val_t standard___kernel___Int___prec(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 248;
+  fra.me.line = 269;
   fra.me.meth = LOCATE_standard___kernel___Int___prec;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:248 */
+  /* ../lib/standard/kernel.nit:269 */
   REGB0 = TAG_Int(UNTAG_Int(REGB0)-1);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Int___distance[] = "kernel::Int::(kernel::Discrete::distance)";
 val_t standard___kernel___Int___distance(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1292,7 +1351,7 @@ val_t standard___kernel___Int___distance(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 249;
+  fra.me.line = 270;
   fra.me.meth = LOCATE_standard___kernel___Int___distance;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1304,26 +1363,26 @@ val_t standard___kernel___Int___distance(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:247 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:252 */
+  /* ../lib/standard/kernel.nit:273 */
   REGB0 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:243 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-  /* ./../lib/standard//kernel.nit:252 */
+  /* ../lib/standard/kernel.nit:273 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:253 */
+    /* ../lib/standard/kernel.nit:274 */
     REGB0 = REGB1;
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:246 */
     REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:255 */
+    /* ../lib/standard/kernel.nit:276 */
     REGB0 = REGB1;
     goto label1;
   }
@@ -1331,6 +1390,7 @@ val_t standard___kernel___Int___distance(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Int_____leqg[] = "kernel::Int::(kernel::Comparable::<=>)";
 val_t standard___kernel___Int_____leqg(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1340,7 +1400,7 @@ val_t standard___kernel___Int_____leqg(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 259;
+  fra.me.line = 280;
   fra.me.meth = LOCATE_standard___kernel___Int_____leqg;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1357,15 +1417,15 @@ val_t standard___kernel___Int_____leqg(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:242 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:261 */
+  /* ../lib/standard/kernel.nit:282 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:262 */
+    /* ../lib/standard/kernel.nit:283 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:246 */
     REGB2 = TAG_Int(-UNTAG_Int(REGB2));
-    /* ./../lib/standard//kernel.nit:262 */
+    /* ../lib/standard/kernel.nit:283 */
     goto label1;
   } else {
     REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
@@ -1373,16 +1433,16 @@ val_t standard___kernel___Int_____leqg(val_t p0, val_t p1){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:263 */
+    /* ../lib/standard/kernel.nit:284 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//kernel.nit:264 */
+      /* ../lib/standard/kernel.nit:285 */
       REGB0 = TAG_Int(1);
       REGB2 = REGB0;
       goto label1;
     } else {
-      /* ./../lib/standard//kernel.nit:266 */
+      /* ../lib/standard/kernel.nit:287 */
       REGB0 = TAG_Int(0);
       REGB2 = REGB0;
       goto label1;
@@ -1392,6 +1452,7 @@ val_t standard___kernel___Int_____leqg(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB2;
 }
+static const char LOCATE_standard___kernel___Int___is_between[] = "kernel::Int::(kernel::Comparable::is_between)";
 val_t standard___kernel___Int___is_between(val_t p0, val_t p1, val_t p2){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1401,7 +1462,7 @@ val_t standard___kernel___Int___is_between(val_t p0, val_t p1, val_t p2){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 270;
+  fra.me.line = 291;
   fra.me.meth = LOCATE_standard___kernel___Int___is_between;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1424,29 +1485,29 @@ val_t standard___kernel___Int___is_between(val_t p0, val_t p1, val_t p2){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:242 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:272 */
+  /* ../lib/standard/kernel.nit:293 */
   if (UNTAG_Bool(REGB1)) {
-    REGB1 = TAG_Bool(true);
+    REGB1 = TAG_Bool(1);
   } else {
     REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB3)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:272 */
+    /* ../lib/standard/kernel.nit:293 */
     REGB1 = REGB0;
   }
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:273 */
-    REGB1 = TAG_Bool(false);
+    /* ../lib/standard/kernel.nit:294 */
+    REGB1 = TAG_Bool(0);
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:275 */
-    REGB0 = TAG_Bool(true);
+    /* ../lib/standard/kernel.nit:296 */
+    REGB0 = TAG_Bool(1);
     REGB1 = REGB0;
     goto label1;
   }
@@ -1454,6 +1515,7 @@ val_t standard___kernel___Int___is_between(val_t p0, val_t p1, val_t p2){
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int___max[] = "kernel::Int::(kernel::Comparable::max)";
 val_t standard___kernel___Int___max(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1462,7 +1524,7 @@ val_t standard___kernel___Int___max(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 279;
+  fra.me.line = 300;
   fra.me.meth = LOCATE_standard___kernel___Int___max;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1479,14 +1541,14 @@ val_t standard___kernel___Int___max(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:242 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:281 */
+  /* ../lib/standard/kernel.nit:302 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:282 */
+    /* ../lib/standard/kernel.nit:303 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:284 */
+    /* ../lib/standard/kernel.nit:305 */
     REGB1 = REGB0;
     goto label1;
   }
@@ -1494,6 +1556,7 @@ val_t standard___kernel___Int___max(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int___min[] = "kernel::Int::(kernel::Comparable::min)";
 val_t standard___kernel___Int___min(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1502,7 +1565,7 @@ val_t standard___kernel___Int___min(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 288;
+  fra.me.line = 309;
   fra.me.meth = LOCATE_standard___kernel___Int___min;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1519,14 +1582,14 @@ val_t standard___kernel___Int___min(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:242 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-  /* ./../lib/standard//kernel.nit:290 */
+  /* ../lib/standard/kernel.nit:311 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:291 */
+    /* ../lib/standard/kernel.nit:312 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:293 */
+    /* ../lib/standard/kernel.nit:314 */
     REGB1 = REGB0;
     goto label1;
   }
@@ -1534,23 +1597,25 @@ val_t standard___kernel___Int___min(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int___ascii[] = "kernel::Int::ascii";
 val_t standard___kernel___Int___ascii(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 297;
+  fra.me.line = 318;
   fra.me.meth = LOCATE_standard___kernel___Int___ascii;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:297 */
+  /* ../lib/standard/kernel.nit:318 */
   REGB0 = TAG_Char(UNTAG_Int(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Int___digit_count[] = "kernel::Int::digit_count";
 val_t standard___kernel___Int___digit_count(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1559,89 +1624,232 @@ val_t standard___kernel___Int___digit_count(val_t p0, val_t p1){
   val_t REGB3;
   val_t REGB4;
   val_t REGB5;
+  val_t REGB6;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 300;
+  fra.me.line = 324;
   fra.me.meth = LOCATE_standard___kernel___Int___digit_count;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:306 */
-  REGB2 = TAG_Int(0);
-  REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+  /* ../lib/standard/kernel.nit:330 */
+  REGB2 = TAG_Int(10);
+  REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
+  if (UNTAG_Bool(REGB3)) {
+  } else {
+    /* ../lib/standard/kernel.nit:237 */
+    REGB2 = TAG_Bool((REGB1)==(REGB2));
+    /* ../lib/standard/kernel.nit:330 */
+    REGB3 = REGB2;
+  }
   if (UNTAG_Bool(REGB3)) {
+    REGB3 = CALL_standard___kernel___Int___digit_count_base_10(REGB0)(REGB0);
+    goto label1;
+  }
+  /* ../lib/standard/kernel.nit:334 */
+  REGB2 = TAG_Int(0);
+  REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+  if (UNTAG_Bool(REGB4)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:242 */
   REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
-  /* ./../lib/standard//kernel.nit:306 */
+  /* ../lib/standard/kernel.nit:334 */
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:307 */
+    /* ../lib/standard/kernel.nit:335 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
-    REGB3 = TAG_Int(-UNTAG_Int(REGB0));
+    /* ../lib/standard/kernel.nit:246 */
+    REGB4 = TAG_Int(-UNTAG_Int(REGB0));
   } else {
-    /* ./../lib/standard//kernel.nit:309 */
-    REGB4 = TAG_Int(0);
-    REGB5 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB4));
-    if (UNTAG_Bool(REGB5)) {
+    /* ../lib/standard/kernel.nit:337 */
+    REGB5 = TAG_Int(0);
+    REGB6 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB5));
+    if (UNTAG_Bool(REGB6)) {
     } else {
-      /* ./../lib/standard//kernel.nit:227 */
-      REGB4 = TAG_Bool((REGB0)==(REGB4));
-      /* ./../lib/standard//kernel.nit:309 */
-      REGB5 = REGB4;
+      /* ../lib/standard/kernel.nit:237 */
+      REGB5 = TAG_Bool((REGB0)==(REGB5));
+      /* ../lib/standard/kernel.nit:337 */
+      REGB6 = REGB5;
     }
-    if (UNTAG_Bool(REGB5)) {
-      /* ./../lib/standard//kernel.nit:310 */
-      REGB5 = TAG_Int(1);
+    if (UNTAG_Bool(REGB6)) {
+      /* ../lib/standard/kernel.nit:338 */
+      REGB6 = TAG_Int(1);
+      REGB3 = REGB6;
       goto label1;
     } else {
-      /* ./../lib/standard//kernel.nit:312 */
-      REGB4 = TAG_Int(0);
-      REGB2 = REGB4;
-      /* ./../lib/standard//kernel.nit:313 */
-      REGB3 = REGB0;
+      /* ../lib/standard/kernel.nit:340 */
+      REGB6 = TAG_Int(0);
+      REGB2 = REGB6;
+      /* ../lib/standard/kernel.nit:341 */
+      REGB4 = REGB0;
     }
   }
-  /* ./../lib/standard//kernel.nit:316 */
+  /* ../lib/standard/kernel.nit:344 */
   while(1) {
     REGB0 = TAG_Int(0);
-    REGB4 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
-    if (UNTAG_Bool(REGB4)) {
+    REGB6 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB4), VTID_standard___kernel___Comparable___OTHER(REGB4))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB6)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:234 */
-    REGB0 = TAG_Bool(UNTAG_Int(REGB3)>UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:316 */
+    /* ../lib/standard/kernel.nit:244 */
+    REGB0 = TAG_Bool(UNTAG_Int(REGB4)>UNTAG_Int(REGB0));
+    /* ../lib/standard/kernel.nit:344 */
     if (UNTAG_Bool(REGB0)) {
-      /* ./../lib/standard//kernel.nit:317 */
+      /* ../lib/standard/kernel.nit:345 */
       REGB0 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB0 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB0));
-      /* ./../lib/standard//kernel.nit:317 */
+      /* ../lib/standard/kernel.nit:345 */
       REGB2 = REGB0;
-      /* ./../lib/standard//kernel.nit:239 */
-      REGB0 = TAG_Int(UNTAG_Int(REGB3)/UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:318 */
-      REGB3 = REGB0;
+      /* ../lib/standard/kernel.nit:249 */
+      REGB0 = TAG_Int(UNTAG_Int(REGB4)/UNTAG_Int(REGB1));
+      /* ../lib/standard/kernel.nit:346 */
+      REGB4 = REGB0;
     } else {
-      /* ./../lib/standard//kernel.nit:316 */
+      /* ../lib/standard/kernel.nit:344 */
       goto label2;
     }
   }
   label2: while(0);
-  /* ./../lib/standard//kernel.nit:320 */
-  REGB5 = REGB2;
+  /* ../lib/standard/kernel.nit:348 */
+  REGB3 = REGB2;
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
-  return REGB5;
+  return REGB3;
 }
+static const char LOCATE_standard___kernel___Int___digit_count_base_10[] = "kernel::Int::digit_count_base_10";
+val_t standard___kernel___Int___digit_count_base_10(val_t p0){
+  struct {struct stack_frame_t me;} fra;
+  val_t REGB0;
+  val_t REGB1;
+  val_t REGB2;
+  val_t REGB3;
+  val_t REGB4;
+  val_t tmp;
+  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+  fra.me.file = LOCATE_standard___kernel;
+  fra.me.line = 351;
+  fra.me.meth = LOCATE_standard___kernel___Int___digit_count_base_10;
+  fra.me.has_broke = 0;
+  fra.me.REG_size = 0;
+  fra.me.nitni_local_ref_head = NULL;
+  REGB0 = p0;
+  /* ../lib/standard/kernel.nit:356 */
+  REGB1 = TAG_Int(0);
+  REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+  if (UNTAG_Bool(REGB2)) {
+  } else {
+    nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+  }
+  /* ../lib/standard/kernel.nit:242 */
+  REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
+  /* ../lib/standard/kernel.nit:356 */
+  if (UNTAG_Bool(REGB1)) {
+    /* ../lib/standard/kernel.nit:357 */
+    REGB1 = TAG_Int(2);
+    /* ../lib/standard/kernel.nit:246 */
+    REGB2 = TAG_Int(-UNTAG_Int(REGB0));
+  } else {
+    /* ../lib/standard/kernel.nit:360 */
+    REGB3 = TAG_Int(1);
+    REGB1 = REGB3;
+    /* ../lib/standard/kernel.nit:361 */
+    REGB2 = REGB0;
+  }
+  /* ../lib/standard/kernel.nit:363 */
+  while(1) {
+    /* ../lib/standard/kernel.nit:364 */
+    REGB0 = TAG_Int(10);
+    REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB3)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:242 */
+    REGB0 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB0));
+    /* ../lib/standard/kernel.nit:364 */
+    if (UNTAG_Bool(REGB0)) {
+      REGB0 = REGB1;
+      goto label1;
+    }
+    /* ../lib/standard/kernel.nit:365 */
+    REGB3 = TAG_Int(100);
+    REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB4)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:242 */
+    REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
+    /* ../lib/standard/kernel.nit:365 */
+    if (UNTAG_Bool(REGB3)) {
+      REGB3 = TAG_Int(1);
+      /* ../lib/standard/kernel.nit:245 */
+      REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
+      /* ../lib/standard/kernel.nit:365 */
+      REGB0 = REGB3;
+      goto label1;
+    }
+    /* ../lib/standard/kernel.nit:366 */
+    REGB3 = TAG_Int(1000);
+    REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB4)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:242 */
+    REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
+    /* ../lib/standard/kernel.nit:366 */
+    if (UNTAG_Bool(REGB3)) {
+      REGB3 = TAG_Int(2);
+      /* ../lib/standard/kernel.nit:245 */
+      REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
+      /* ../lib/standard/kernel.nit:366 */
+      REGB0 = REGB3;
+      goto label1;
+    }
+    /* ../lib/standard/kernel.nit:367 */
+    REGB3 = TAG_Int(10000);
+    REGB4 = TAG_Bool(VAL_ISA(REGB3, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
+    if (UNTAG_Bool(REGB4)) {
+    } else {
+      nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+    }
+    /* ../lib/standard/kernel.nit:242 */
+    REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
+    /* ../lib/standard/kernel.nit:367 */
+    if (UNTAG_Bool(REGB3)) {
+      REGB3 = TAG_Int(3);
+      /* ../lib/standard/kernel.nit:245 */
+      REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
+      /* ../lib/standard/kernel.nit:367 */
+      REGB0 = REGB3;
+      goto label1;
+    }
+    /* ../lib/standard/kernel.nit:368 */
+    REGB3 = TAG_Int(10000);
+    /* ../lib/standard/kernel.nit:249 */
+    REGB3 = TAG_Int(UNTAG_Int(REGB2)/UNTAG_Int(REGB3));
+    /* ../lib/standard/kernel.nit:368 */
+    REGB2 = REGB3;
+    /* ../lib/standard/kernel.nit:369 */
+    REGB3 = TAG_Int(4);
+    /* ../lib/standard/kernel.nit:245 */
+    REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
+    /* ../lib/standard/kernel.nit:369 */
+    REGB1 = REGB3;
+  }
+  label1: while(0);
+  stack_frame_head = fra.me.prev;
+  return REGB0;
+}
+static const char LOCATE_standard___kernel___Int___to_c[] = "kernel::Int::to_c";
 val_t standard___kernel___Int___to_c(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1651,22 +1859,22 @@ val_t standard___kernel___Int___to_c(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 323;
+  fra.me.line = 373;
   fra.me.meth = LOCATE_standard___kernel___Int___to_c;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:328 */
+  /* ../lib/standard/kernel.nit:380 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:243 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:328 */
+  /* ../lib/standard/kernel.nit:380 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Int(36);
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -1674,52 +1882,52 @@ val_t standard___kernel___Int___to_c(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:231 */
+    /* ../lib/standard/kernel.nit:241 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
   } else {
-    /* ./../lib/standard//kernel.nit:328 */
-    REGB2 = TAG_Bool(false);
+    /* ../lib/standard/kernel.nit:380 */
+    REGB2 = TAG_Bool(0);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
   } else {
-    nit_abort("Assert failed", NULL, LOCATE_standard___kernel, 328);
+    nit_abort("Assert failed", NULL, LOCATE_standard___kernel, 380);
   }
-  /* ./../lib/standard//kernel.nit:329 */
+  /* ../lib/standard/kernel.nit:381 */
   REGB1 = TAG_Int(10);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:232 */
+  /* ../lib/standard/kernel.nit:242 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:329 */
+  /* ../lib/standard/kernel.nit:381 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:330 */
+    /* ../lib/standard/kernel.nit:382 */
     REGB1 = TAG_Char('0');
-    /* ./../lib/standard//kernel.nit:413 */
+    /* ../lib/standard/kernel.nit:471 */
     REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB1));
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:245 */
     REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:297 */
+    /* ../lib/standard/kernel.nit:318 */
     REGB1 = TAG_Char(UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:330 */
+    /* ../lib/standard/kernel.nit:382 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:332 */
+    /* ../lib/standard/kernel.nit:384 */
     REGB2 = TAG_Char('a');
-    /* ./../lib/standard//kernel.nit:413 */
+    /* ../lib/standard/kernel.nit:471 */
     REGB2 = TAG_Int((unsigned char)UNTAG_Char(REGB2));
-    /* ./../lib/standard//kernel.nit:332 */
+    /* ../lib/standard/kernel.nit:384 */
     REGB3 = TAG_Int(10);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:247 */
     REGB3 = TAG_Int(UNTAG_Int(REGB2)-UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:245 */
     REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:297 */
+    /* ../lib/standard/kernel.nit:318 */
     REGB3 = TAG_Char(UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:332 */
+    /* ../lib/standard/kernel.nit:384 */
     REGB1 = REGB3;
     goto label1;
   }
@@ -1727,6 +1935,7 @@ val_t standard___kernel___Int___to_c(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Int___enumerate_to[] = "kernel::Int::enumerate_to";
 void standard___kernel___Int___enumerate_to(val_t p0, val_t p1, struct stack_frame_t *closctx_param, fun_t clos_fun0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1736,7 +1945,7 @@ void standard___kernel___Int___enumerate_to(val_t p0, val_t p1, struct stack_fra
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 336;
+  fra.me.line = 388;
   fra.me.meth = LOCATE_standard___kernel___Int___enumerate_to;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1746,30 +1955,30 @@ void standard___kernel___Int___enumerate_to(val_t p0, val_t p1, struct stack_fra
   REGB0 = p0;
   REGB1 = p1;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//kernel.nit:341 */
+  /* ../lib/standard/kernel.nit:393 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:231 */
+    /* ../lib/standard/kernel.nit:241 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<=UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:341 */
+    /* ../lib/standard/kernel.nit:393 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//kernel.nit:342 */
+      /* ../lib/standard/kernel.nit:394 */
       ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, REGB0);
       if (closctx_param->has_broke) {
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:343 */
+      /* ../lib/standard/kernel.nit:395 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:343 */
+      /* ../lib/standard/kernel.nit:395 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:341 */
+      /* ../lib/standard/kernel.nit:393 */
       goto label2;
     }
   }
@@ -1778,6 +1987,7 @@ void standard___kernel___Int___enumerate_to(val_t p0, val_t p1, struct stack_fra
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Int___enumerate_before[] = "kernel::Int::enumerate_before";
 void standard___kernel___Int___enumerate_before(val_t p0, val_t p1, struct stack_frame_t *closctx_param, fun_t clos_fun0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1787,7 +1997,7 @@ void standard___kernel___Int___enumerate_before(val_t p0, val_t p1, struct stack
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 347;
+  fra.me.line = 399;
   fra.me.meth = LOCATE_standard___kernel___Int___enumerate_before;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1797,30 +2007,30 @@ void standard___kernel___Int___enumerate_before(val_t p0, val_t p1, struct stack
   REGB0 = p0;
   REGB1 = p1;
   CREG[0] = clos_fun0;
-  /* ./../lib/standard//kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:404 */
   while(1) {
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB2)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:242 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:404 */
     if (UNTAG_Bool(REGB2)) {
-      /* ./../lib/standard//kernel.nit:353 */
+      /* ../lib/standard/kernel.nit:405 */
       ((void (*)(struct stack_frame_t *, val_t))(CREG[0]))(closctx_param, REGB0);
       if (closctx_param->has_broke) {
         goto label1;
       }
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:406 */
       REGB2 = TAG_Int(1);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
-      /* ./../lib/standard//kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:406 */
       REGB0 = REGB2;
     } else {
-      /* ./../lib/standard//kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:404 */
       goto label2;
     }
   }
@@ -1829,6 +2039,7 @@ void standard___kernel___Int___enumerate_before(val_t p0, val_t p1, struct stack
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Int___abs[] = "kernel::Int::abs";
 val_t standard___kernel___Int___abs(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1837,34 +2048,34 @@ val_t standard___kernel___Int___abs(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 358;
+  fra.me.line = 410;
   fra.me.meth = LOCATE_standard___kernel___Int___abs;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:361 */
+  /* ../lib/standard/kernel.nit:417 */
   REGB1 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:243 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:361 */
+  /* ../lib/standard/kernel.nit:417 */
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:363 */
+    /* ../lib/standard/kernel.nit:419 */
     REGB1 = REGB0;
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:365 */
+    /* ../lib/standard/kernel.nit:421 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:246 */
     REGB2 = TAG_Int(-UNTAG_Int(REGB2));
-    /* ./../lib/standard//kernel.nit:238 */
+    /* ../lib/standard/kernel.nit:248 */
     REGB0 = TAG_Int(UNTAG_Int(REGB2)*UNTAG_Int(REGB0));
-    /* ./../lib/standard//kernel.nit:365 */
+    /* ../lib/standard/kernel.nit:421 */
     REGB1 = REGB0;
     goto label1;
   }
@@ -1872,30 +2083,32 @@ val_t standard___kernel___Int___abs(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char___object_id[] = "kernel::Char::(kernel::Object::object_id)";
 val_t standard___kernel___Char___object_id(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 377;
+  fra.me.line = 433;
   fra.me.meth = LOCATE_standard___kernel___Char___object_id;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:377 */
+  /* ../lib/standard/kernel.nit:433 */
   REGB0 = TAG_Int(UNTAG_Char(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Char_____eqeq[] = "kernel::Char::(kernel::Object::==)";
 val_t standard___kernel___Char_____eqeq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 378;
+  fra.me.line = 434;
   fra.me.meth = LOCATE_standard___kernel___Char_____eqeq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -1903,18 +2116,19 @@ val_t standard___kernel___Char_____eqeq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:378 */
+  /* ../lib/standard/kernel.nit:434 */
   REGB0 = TAG_Bool((REGB0)==(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Char_____neq[] = "kernel::Char::(kernel::Object::!=)";
 val_t standard___kernel___Char_____neq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 379;
+  fra.me.line = 435;
   fra.me.meth = LOCATE_standard___kernel___Char_____neq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 1;
@@ -1922,28 +2136,30 @@ val_t standard___kernel___Char_____neq(val_t p0, val_t p1){
   fra.me.REG[0] = NIT_NULL;
   REGB0 = p0;
   fra.me.REG[0] = p1;
-  /* ./../lib/standard//kernel.nit:379 */
+  /* ../lib/standard/kernel.nit:435 */
   REGB0 = TAG_Bool((REGB0)!=(fra.me.REG[0]));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Char___output[] = "kernel::Char::(kernel::Object::output)";
 void standard___kernel___Char___output(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 380;
+  fra.me.line = 436;
   fra.me.meth = LOCATE_standard___kernel___Char___output;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:380 */
+  /* ../lib/standard/kernel.nit:436 */
   printf("%c", (unsigned char)UNTAG_Char(REGB0));;
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_standard___kernel___Char_____leq[] = "kernel::Char::(kernel::Comparable::<=)";
 val_t standard___kernel___Char_____leq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1952,7 +2168,7 @@ val_t standard___kernel___Char_____leq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 382;
+  fra.me.line = 438;
   fra.me.meth = LOCATE_standard___kernel___Char_____leq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1964,11 +2180,12 @@ val_t standard___kernel___Char_____leq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:382 */
+  /* ../lib/standard/kernel.nit:438 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char_____l[] = "kernel::Char::(kernel::Comparable::<)";
 val_t standard___kernel___Char_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1977,7 +2194,7 @@ val_t standard___kernel___Char_____l(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 383;
+  fra.me.line = 439;
   fra.me.meth = LOCATE_standard___kernel___Char_____l;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -1989,11 +2206,12 @@ val_t standard___kernel___Char_____l(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:383 */
+  /* ../lib/standard/kernel.nit:439 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)<UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char_____geq[] = "kernel::Char::(kernel::Comparable::>=)";
 val_t standard___kernel___Char_____geq(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2002,7 +2220,7 @@ val_t standard___kernel___Char_____geq(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 384;
+  fra.me.line = 440;
   fra.me.meth = LOCATE_standard___kernel___Char_____geq;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -2014,11 +2232,12 @@ val_t standard___kernel___Char_____geq(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:384 */
+  /* ../lib/standard/kernel.nit:440 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char_____g[] = "kernel::Char::(kernel::Comparable::>)";
 val_t standard___kernel___Char_____g(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2027,7 +2246,7 @@ val_t standard___kernel___Char_____g(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 385;
+  fra.me.line = 441;
   fra.me.meth = LOCATE_standard___kernel___Char_____g;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -2039,45 +2258,48 @@ val_t standard___kernel___Char_____g(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:385 */
+  /* ../lib/standard/kernel.nit:441 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char___succ[] = "kernel::Char::(kernel::Discrete::succ)";
 val_t standard___kernel___Char___succ(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 387;
+  fra.me.line = 443;
   fra.me.meth = LOCATE_standard___kernel___Char___succ;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:387 */
+  /* ../lib/standard/kernel.nit:443 */
   REGB0 = TAG_Char(UNTAG_Char(REGB0)+1);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Char___prec[] = "kernel::Char::(kernel::Discrete::prec)";
 val_t standard___kernel___Char___prec(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 388;
+  fra.me.line = 444;
   fra.me.meth = LOCATE_standard___kernel___Char___prec;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:388 */
+  /* ../lib/standard/kernel.nit:444 */
   REGB0 = TAG_Char(UNTAG_Char(REGB0)-1);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Char___distance[] = "kernel::Char::(kernel::Discrete::distance)";
 val_t standard___kernel___Char___distance(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2086,7 +2308,7 @@ val_t standard___kernel___Char___distance(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 390;
+  fra.me.line = 446;
   fra.me.meth = LOCATE_standard___kernel___Char___distance;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
@@ -2098,29 +2320,29 @@ val_t standard___kernel___Char___distance(val_t p0, val_t p1){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:413 */
+  /* ../lib/standard/kernel.nit:471 */
   REGB0 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
   REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB1));
-  /* ./../lib/standard//kernel.nit:237 */
+  /* ../lib/standard/kernel.nit:247 */
   REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-  /* ./../lib/standard//kernel.nit:393 */
+  /* ../lib/standard/kernel.nit:449 */
   REGB0 = TAG_Int(0);
   REGB2 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:233 */
+  /* ../lib/standard/kernel.nit:243 */
   REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
-  /* ./../lib/standard//kernel.nit:393 */
+  /* ../lib/standard/kernel.nit:449 */
   if (UNTAG_Bool(REGB0)) {
-    /* ./../lib/standard//kernel.nit:394 */
+    /* ../lib/standard/kernel.nit:450 */
     REGB0 = REGB1;
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:246 */
     REGB1 = TAG_Int(-UNTAG_Int(REGB1));
-    /* ./../lib/standard//kernel.nit:396 */
+    /* ../lib/standard/kernel.nit:452 */
     REGB0 = REGB1;
     goto label1;
   }
@@ -2128,6 +2350,7 @@ val_t standard___kernel___Char___distance(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Char___to_i[] = "kernel::Char::to_i";
 val_t standard___kernel___Char___to_i(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2137,60 +2360,60 @@ val_t standard___kernel___Char___to_i(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 400;
+  fra.me.line = 456;
   fra.me.meth = LOCATE_standard___kernel___Char___to_i;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:404 */
+  /* ../lib/standard/kernel.nit:462 */
   REGB1 = TAG_Char('-');
   REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
   if (UNTAG_Bool(REGB2)) {
   } else {
-    /* ./../lib/standard//kernel.nit:378 */
+    /* ../lib/standard/kernel.nit:434 */
     REGB1 = TAG_Bool((REGB0)==(REGB1));
-    /* ./../lib/standard//kernel.nit:404 */
+    /* ../lib/standard/kernel.nit:462 */
     REGB2 = REGB1;
   }
   if (UNTAG_Bool(REGB2)) {
-    /* ./../lib/standard//kernel.nit:405 */
+    /* ../lib/standard/kernel.nit:463 */
     REGB2 = TAG_Int(1);
-    /* ./../lib/standard//kernel.nit:236 */
+    /* ../lib/standard/kernel.nit:246 */
     REGB2 = TAG_Int(-UNTAG_Int(REGB2));
-    /* ./../lib/standard//kernel.nit:405 */
+    /* ../lib/standard/kernel.nit:463 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:406 */
+    /* ../lib/standard/kernel.nit:464 */
     REGB1 = CALL_standard___kernel___Char___is_digit(REGB0)(REGB0);
     if (UNTAG_Bool(REGB1)) {
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:471 */
       REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
-      /* ./../lib/standard//kernel.nit:407 */
+      /* ../lib/standard/kernel.nit:465 */
       REGB3 = TAG_Char('0');
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:471 */
       REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:247 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB3));
-      /* ./../lib/standard//kernel.nit:407 */
+      /* ../lib/standard/kernel.nit:465 */
       REGB2 = REGB3;
       goto label1;
     } else {
-      /* ./../lib/standard//kernel.nit:409 */
+      /* ../lib/standard/kernel.nit:467 */
       REGB0 = CALL_standard___kernel___Char___to_lower(REGB0)(REGB0);
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:471 */
       REGB0 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
-      /* ./../lib/standard//kernel.nit:409 */
+      /* ../lib/standard/kernel.nit:467 */
       REGB3 = TAG_Char('a');
-      /* ./../lib/standard//kernel.nit:413 */
+      /* ../lib/standard/kernel.nit:471 */
       REGB3 = TAG_Int((unsigned char)UNTAG_Char(REGB3));
-      /* ./../lib/standard//kernel.nit:409 */
+      /* ../lib/standard/kernel.nit:467 */
       REGB1 = TAG_Int(10);
-      /* ./../lib/standard//kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:245 */
       REGB1 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:237 */
+      /* ../lib/standard/kernel.nit:247 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
-      /* ./../lib/standard//kernel.nit:409 */
+      /* ../lib/standard/kernel.nit:467 */
       REGB2 = REGB1;
       goto label1;
     }
@@ -2199,23 +2422,25 @@ val_t standard___kernel___Char___to_i(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB2;
 }
+static const char LOCATE_standard___kernel___Char___ascii[] = "kernel::Char::ascii";
 val_t standard___kernel___Char___ascii(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 413;
+  fra.me.line = 471;
   fra.me.meth = LOCATE_standard___kernel___Char___ascii;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:413 */
+  /* ../lib/standard/kernel.nit:471 */
   REGB0 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_standard___kernel___Char_____plus[] = "kernel::Char::(kernel::Discrete::+)";
 val_t standard___kernel___Char_____plus(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2223,18 +2448,19 @@ val_t standard___kernel___Char_____plus(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 416;
+  fra.me.line = 477;
   fra.me.meth = LOCATE_standard___kernel___Char_____plus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:416 */
+  /* ../lib/standard/kernel.nit:477 */
   REGB1 = TAG_Char(UNTAG_Char(REGB0)+UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char_____minus[] = "kernel::Char::(kernel::Discrete::-)";
 val_t standard___kernel___Char_____minus(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2242,18 +2468,19 @@ val_t standard___kernel___Char_____minus(val_t p0, val_t p1){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 417;
+  fra.me.line = 478;
   fra.me.meth = LOCATE_standard___kernel___Char_____minus;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
   REGB1 = p1;
-  /* ./../lib/standard//kernel.nit:417 */
+  /* ../lib/standard/kernel.nit:478 */
   REGB1 = TAG_Char(UNTAG_Char(REGB0)-UNTAG_Char(REGB1));
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char___to_lower[] = "kernel::Char::to_lower";
 val_t standard___kernel___Char___to_lower(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2263,29 +2490,29 @@ val_t standard___kernel___Char___to_lower(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 419;
+  fra.me.line = 480;
   fra.me.meth = LOCATE_standard___kernel___Char___to_lower;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:423 */
+  /* ../lib/standard/kernel.nit:488 */
   REGB1 = CALL_standard___kernel___Char___is_upper(REGB0)(REGB0);
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:413 */
+    /* ../lib/standard/kernel.nit:471 */
     REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
-    /* ./../lib/standard//kernel.nit:424 */
+    /* ../lib/standard/kernel.nit:489 */
     REGB2 = TAG_Char('a');
     REGB3 = TAG_Char('A');
     REGB3 = CALL_standard___kernel___Discrete___distance(REGB2)(REGB2, REGB3);
-    /* ./../lib/standard//kernel.nit:235 */
+    /* ../lib/standard/kernel.nit:245 */
     REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:297 */
+    /* ../lib/standard/kernel.nit:318 */
     REGB3 = TAG_Char(UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:424 */
+    /* ../lib/standard/kernel.nit:489 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:426 */
+    /* ../lib/standard/kernel.nit:491 */
     REGB3 = REGB0;
     goto label1;
   }
@@ -2293,6 +2520,7 @@ val_t standard___kernel___Char___to_lower(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB3;
 }
+static const char LOCATE_standard___kernel___Char___to_upper[] = "kernel::Char::to_upper";
 val_t standard___kernel___Char___to_upper(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2302,29 +2530,29 @@ val_t standard___kernel___Char___to_upper(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 430;
+  fra.me.line = 495;
   fra.me.meth = LOCATE_standard___kernel___Char___to_upper;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:434 */
+  /* ../lib/standard/kernel.nit:503 */
   REGB1 = CALL_standard___kernel___Char___is_lower(REGB0)(REGB0);
   if (UNTAG_Bool(REGB1)) {
-    /* ./../lib/standard//kernel.nit:413 */
+    /* ../lib/standard/kernel.nit:471 */
     REGB1 = TAG_Int((unsigned char)UNTAG_Char(REGB0));
-    /* ./../lib/standard//kernel.nit:435 */
+    /* ../lib/standard/kernel.nit:504 */
     REGB2 = TAG_Char('a');
     REGB3 = TAG_Char('A');
     REGB3 = CALL_standard___kernel___Discrete___distance(REGB2)(REGB2, REGB3);
-    /* ./../lib/standard//kernel.nit:237 */
+    /* ../lib/standard/kernel.nit:247 */
     REGB3 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:297 */
+    /* ../lib/standard/kernel.nit:318 */
     REGB3 = TAG_Char(UNTAG_Int(REGB3));
-    /* ./../lib/standard//kernel.nit:435 */
+    /* ../lib/standard/kernel.nit:504 */
     goto label1;
   } else {
-    /* ./../lib/standard//kernel.nit:437 */
+    /* ../lib/standard/kernel.nit:506 */
     REGB3 = REGB0;
     goto label1;
   }
@@ -2332,6 +2560,7 @@ val_t standard___kernel___Char___to_upper(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB3;
 }
+static const char LOCATE_standard___kernel___Char___is_digit[] = "kernel::Char::is_digit";
 val_t standard___kernel___Char___is_digit(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2340,22 +2569,22 @@ val_t standard___kernel___Char___is_digit(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 441;
+  fra.me.line = 510;
   fra.me.meth = LOCATE_standard___kernel___Char___is_digit;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:444 */
+  /* ../lib/standard/kernel.nit:517 */
   REGB1 = TAG_Char('0');
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:384 */
+  /* ../lib/standard/kernel.nit:440 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB1));
-  /* ./../lib/standard//kernel.nit:444 */
+  /* ../lib/standard/kernel.nit:517 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Char('9');
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -2363,11 +2592,11 @@ val_t standard___kernel___Char___is_digit(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:382 */
+    /* ../lib/standard/kernel.nit:438 */
     REGB1 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB1));
   } else {
-    /* ./../lib/standard//kernel.nit:444 */
-    REGB0 = TAG_Bool(false);
+    /* ../lib/standard/kernel.nit:517 */
+    REGB0 = TAG_Bool(0);
     REGB1 = REGB0;
   }
   goto label1;
@@ -2375,6 +2604,7 @@ val_t standard___kernel___Char___is_digit(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char___is_lower[] = "kernel::Char::is_lower";
 val_t standard___kernel___Char___is_lower(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2383,22 +2613,22 @@ val_t standard___kernel___Char___is_lower(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 447;
+  fra.me.line = 520;
   fra.me.meth = LOCATE_standard___kernel___Char___is_lower;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:450 */
+  /* ../lib/standard/kernel.nit:528 */
   REGB1 = TAG_Char('a');
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:384 */
+  /* ../lib/standard/kernel.nit:440 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB1));
-  /* ./../lib/standard//kernel.nit:450 */
+  /* ../lib/standard/kernel.nit:528 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Char('z');
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -2406,11 +2636,11 @@ val_t standard___kernel___Char___is_lower(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:382 */
+    /* ../lib/standard/kernel.nit:438 */
     REGB1 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB1));
   } else {
-    /* ./../lib/standard//kernel.nit:450 */
-    REGB0 = TAG_Bool(false);
+    /* ../lib/standard/kernel.nit:528 */
+    REGB0 = TAG_Bool(0);
     REGB1 = REGB0;
   }
   goto label1;
@@ -2418,6 +2648,7 @@ val_t standard___kernel___Char___is_lower(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char___is_upper[] = "kernel::Char::is_upper";
 val_t standard___kernel___Char___is_upper(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2426,22 +2657,22 @@ val_t standard___kernel___Char___is_upper(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 453;
+  fra.me.line = 531;
   fra.me.meth = LOCATE_standard___kernel___Char___is_upper;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:456 */
+  /* ../lib/standard/kernel.nit:539 */
   REGB1 = TAG_Char('A');
   REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
   if (UNTAG_Bool(REGB2)) {
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ./../lib/standard//kernel.nit:384 */
+  /* ../lib/standard/kernel.nit:440 */
   REGB1 = TAG_Bool(UNTAG_Char(REGB0)>=UNTAG_Char(REGB1));
-  /* ./../lib/standard//kernel.nit:456 */
+  /* ../lib/standard/kernel.nit:539 */
   if (UNTAG_Bool(REGB1)) {
     REGB1 = TAG_Char('Z');
     REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
@@ -2449,11 +2680,11 @@ val_t standard___kernel___Char___is_upper(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ./../lib/standard//kernel.nit:382 */
+    /* ../lib/standard/kernel.nit:438 */
     REGB1 = TAG_Bool(UNTAG_Char(REGB0)<=UNTAG_Char(REGB1));
   } else {
-    /* ./../lib/standard//kernel.nit:456 */
-    REGB0 = TAG_Bool(false);
+    /* ../lib/standard/kernel.nit:539 */
+    REGB0 = TAG_Bool(0);
     REGB1 = REGB0;
   }
   goto label1;
@@ -2461,6 +2692,7 @@ val_t standard___kernel___Char___is_upper(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB1;
 }
+static const char LOCATE_standard___kernel___Char___is_letter[] = "kernel::Char::is_letter";
 val_t standard___kernel___Char___is_letter(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2468,16 +2700,16 @@ val_t standard___kernel___Char___is_letter(val_t p0){
   val_t tmp;
   fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
   fra.me.file = LOCATE_standard___kernel;
-  fra.me.line = 459;
+  fra.me.line = 542;
   fra.me.meth = LOCATE_standard___kernel___Char___is_letter;
   fra.me.has_broke = 0;
   fra.me.REG_size = 0;
   fra.me.nitni_local_ref_head = NULL;
   REGB0 = p0;
-  /* ./../lib/standard//kernel.nit:462 */
+  /* ../lib/standard/kernel.nit:550 */
   REGB1 = CALL_standard___kernel___Char___is_lower(REGB0)(REGB0);
   if (UNTAG_Bool(REGB1)) {
-    REGB1 = TAG_Bool(true);
+    REGB1 = TAG_Bool(1);
   } else {
     REGB0 = CALL_standard___kernel___Char___is_upper(REGB0)(REGB0);
     REGB1 = REGB0;