ni_nitdoc: added fast copy past utility to signatures.
[nit.git] / c_src / metamodel___static_type._sep.c
index 6972134..d01f0da 100644 (file)
@@ -1,5 +1,6 @@
 /* This C file is generated by NIT to compile module metamodel___static_type. */
 #include "metamodel___static_type._sep.h"
+static const char LOCATE_metamodel___static_type___MMLocalClass___get_type[] = "static_type::MMLocalClass::get_type";
 val_t metamodel___static_type___MMLocalClass___get_type(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -25,7 +26,7 @@ val_t metamodel___static_type___MMLocalClass___get_type(val_t p0){
   } else {
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
@@ -48,6 +49,7 @@ val_t metamodel___static_type___MMLocalClass___get_type(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMLocalClass___add_ancestor[] = "static_type::MMLocalClass::add_ancestor";
 void metamodel___static_type___MMLocalClass___add_ancestor(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -103,6 +105,7 @@ void metamodel___static_type___MMLocalClass___add_ancestor(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMLocalClass___ancestors[] = "static_type::MMLocalClass::ancestors";
 val_t metamodel___static_type___MMLocalClass___ancestors(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -120,6 +123,7 @@ val_t metamodel___static_type___MMLocalClass___ancestors(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMLocalClass___ancestor[] = "static_type::MMLocalClass::ancestor";
 val_t metamodel___static_type___MMLocalClass___ancestor(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -152,6 +156,7 @@ val_t metamodel___static_type___MMLocalClass___ancestor(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMLocalProperty___signature[] = "static_type::MMLocalProperty::signature";
 val_t metamodel___static_type___MMLocalProperty___signature(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -169,6 +174,7 @@ val_t metamodel___static_type___MMLocalProperty___signature(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMLocalProperty___signature__eq[] = "static_type::MMLocalProperty::signature=";
 void metamodel___static_type___MMLocalProperty___signature__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -188,6 +194,7 @@ void metamodel___static_type___MMLocalProperty___signature__eq(val_t p0, val_t p
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMLocalProperty___signature_for[] = "static_type::MMLocalProperty::signature_for";
 val_t metamodel___static_type___MMLocalProperty___signature_for(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -267,6 +274,7 @@ val_t metamodel___static_type___MMLocalProperty___signature_for(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_metamodel___static_type___MMParam___mmtype[] = "static_type::MMParam::mmtype";
 val_t metamodel___static_type___MMParam___mmtype(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -290,6 +298,7 @@ val_t metamodel___static_type___MMParam___mmtype(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMParam___mmtype__eq[] = "static_type::MMParam::mmtype=";
 void metamodel___static_type___MMParam___mmtype__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -309,6 +318,7 @@ void metamodel___static_type___MMParam___mmtype__eq(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMParam___name[] = "static_type::MMParam::name";
 val_t metamodel___static_type___MMParam___name(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -332,6 +342,7 @@ val_t metamodel___static_type___MMParam___name(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMParam___name__eq[] = "static_type::MMParam::name=";
 void metamodel___static_type___MMParam___name__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -351,6 +362,7 @@ void metamodel___static_type___MMParam___name__eq(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMParam___init[] = "static_type::MMParam::init";
 void metamodel___static_type___MMParam___init(val_t p0, val_t p1, val_t p2, int* init_table){
   int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMParam].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -377,6 +389,7 @@ void metamodel___static_type___MMParam___init(val_t p0, val_t p1, val_t p2, int*
   init_table[itpos0] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMParam___to_s[] = "static_type::MMParam::(string::Object::to_s)";
 val_t metamodel___static_type___MMParam___to_s(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -437,6 +450,7 @@ val_t metamodel___static_type___MMParam___to_s(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___recv[] = "static_type::MMSignature::recv";
 val_t metamodel___static_type___MMSignature___recv(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -460,6 +474,7 @@ val_t metamodel___static_type___MMSignature___recv(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___params[] = "static_type::MMSignature::params";
 val_t metamodel___static_type___MMSignature___params(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -483,6 +498,7 @@ val_t metamodel___static_type___MMSignature___params(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___return_type[] = "static_type::MMSignature::return_type";
 val_t metamodel___static_type___MMSignature___return_type(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -500,6 +516,7 @@ val_t metamodel___static_type___MMSignature___return_type(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___closures[] = "static_type::MMSignature::closures";
 val_t metamodel___static_type___MMSignature___closures(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -523,6 +540,7 @@ val_t metamodel___static_type___MMSignature___closures(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___closure_named[] = "static_type::MMSignature::closure_named";
 val_t metamodel___static_type___MMSignature___closure_named(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -575,7 +593,7 @@ val_t metamodel___static_type___MMSignature___closure_named(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:235 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
@@ -584,7 +602,7 @@ val_t metamodel___static_type___MMSignature___closure_named(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ../lib/standard/collection/array.nit:718 */
+      /* ../lib/standard/collection/array.nit:724 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
       /* metamodel/static_type.nit:101 */
       fra.me.REG[4] = CALL_metamodel___static_type___MMClosure___name(fra.me.REG[3])(fra.me.REG[3]);
@@ -599,7 +617,7 @@ val_t metamodel___static_type___MMSignature___closure_named(val_t p0, val_t p1){
       }
       /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
       /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
@@ -616,6 +634,7 @@ val_t metamodel___static_type___MMSignature___closure_named(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[3];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___arity[] = "static_type::MMSignature::arity";
 val_t metamodel___static_type___MMSignature___arity(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -649,6 +668,7 @@ val_t metamodel___static_type___MMSignature___arity(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMSignature_____l[] = "static_type::MMSignature::<";
 val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -684,7 +704,7 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
   }
   if (UNTAG_Bool(REGB0)) {
     /* metamodel/static_type.nit:116 */
-    REGB0 = TAG_Bool(true);
+    REGB0 = TAG_Bool(1);
     goto label1;
   }
   /* metamodel/static_type.nit:118 */
@@ -717,21 +737,21 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
   REGB3 = TAG_Bool(IS_EQUAL_OO(REGB1,REGB2));
   if (UNTAG_Bool(REGB3)) {
   } else {
-    /* ../lib/standard/kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:230 */
     REGB2 = TAG_Bool((REGB1)==(REGB2));
     /* metamodel/static_type.nit:121 */
     REGB3 = REGB2;
   }
   REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
   if (UNTAG_Bool(REGB3)) {
-    REGB3 = TAG_Bool(true);
+    REGB3 = TAG_Bool(1);
   } else {
     REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
     } else {
       REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB1)) {
-        REGB1 = TAG_Bool(false);
+        REGB1 = TAG_Bool(0);
         REGB2 = REGB1;
       } else {
         REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
@@ -743,7 +763,7 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     } else {
       REGB4 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
       if (UNTAG_Bool(REGB4)) {
-        REGB4 = TAG_Bool(false);
+        REGB4 = TAG_Bool(0);
         REGB1 = REGB4;
       } else {
         REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL);
@@ -753,7 +773,7 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     REGB4 = TAG_Bool(IS_EQUAL_OO(REGB2,REGB1));
     if (UNTAG_Bool(REGB4)) {
     } else {
-      /* ../lib/standard/kernel.nit:195 */
+      /* ../lib/standard/kernel.nit:198 */
       REGB1 = TAG_Bool((REGB2)==(REGB1));
       /* metamodel/static_type.nit:121 */
       REGB4 = REGB1;
@@ -762,7 +782,7 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     REGB3 = REGB4;
   }
   if (UNTAG_Bool(REGB3)) {
-    REGB3 = TAG_Bool(false);
+    REGB3 = TAG_Bool(0);
     REGB0 = REGB3;
     goto label1;
   }
@@ -772,7 +792,7 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
   } else {
     REGB4 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB4)) {
-      REGB4 = TAG_Bool(false);
+      REGB4 = TAG_Bool(0);
       REGB3 = REGB4;
     } else {
       REGB4 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
@@ -793,28 +813,28 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     REGB3 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
     REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
   } else {
-    REGB4 = TAG_Bool(false);
+    REGB4 = TAG_Bool(0);
     REGB3 = REGB4;
   }
   if (UNTAG_Bool(REGB3)) {
     /* metamodel/static_type.nit:123 */
-    REGB3 = TAG_Bool(false);
+    REGB3 = TAG_Bool(0);
     REGB0 = REGB3;
     goto label1;
   }
   /* metamodel/static_type.nit:126 */
   REGB3 = TAG_Int(0);
   REGB4 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[2])(fra.me.REG[2]);
-  /* ../lib/standard/kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:355 */
   while(1) {
     REGB1 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/;
     if (UNTAG_Bool(REGB1)) {
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ../lib/standard/kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB4));
-    /* ../lib/standard/kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:355 */
     if (UNTAG_Bool(REGB1)) {
       /* metamodel/static_type.nit:126 */
       REGB1 = REGB3;
@@ -825,18 +845,18 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
       REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
       if (UNTAG_Bool(REGB1)) {
         /* metamodel/static_type.nit:128 */
-        REGB1 = TAG_Bool(false);
+        REGB1 = TAG_Bool(0);
         REGB0 = REGB1;
         goto label1;
       }
-      /* ../lib/standard/kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:357 */
       REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB1 = TAG_Int(UNTAG_Int(REGB3)+UNTAG_Int(REGB1));
-      /* ../lib/standard/kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:357 */
       REGB3 = REGB1;
     } else {
-      /* ../lib/standard/kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:355 */
       goto label2;
     }
   }
@@ -863,14 +883,14 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
   REGB1 = TAG_Bool(IS_EQUAL_OO(REGB3,REGB4));
   if (UNTAG_Bool(REGB1)) {
   } else {
-    /* ../lib/standard/kernel.nit:227 */
+    /* ../lib/standard/kernel.nit:230 */
     REGB4 = TAG_Bool((REGB3)==(REGB4));
     /* metamodel/static_type.nit:132 */
     REGB1 = REGB4;
   }
   REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
   if (UNTAG_Bool(REGB1)) {
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
     goto label1;
   }
@@ -884,16 +904,16 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
     nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
   }
   REGB4 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
-  /* ../lib/standard/kernel.nit:352 */
+  /* ../lib/standard/kernel.nit:355 */
   while(1) {
     REGB3 = TAG_Bool(VAL_ISA(REGB4, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*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:235 */
     REGB3 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB4));
-    /* ../lib/standard/kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:355 */
     if (UNTAG_Bool(REGB3)) {
       /* metamodel/static_type.nit:133 */
       REGB3 = REGB1;
@@ -908,7 +928,7 @@ val_t metamodel___static_type___MMSignature_____l(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:236 */
       REGB5 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB5));
       /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB5)) {
@@ -923,11 +943,11 @@ val_t metamodel___static_type___MMSignature_____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:235 */
         REGB5 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB5));
       } else {
         /* ../lib/standard/collection/array.nit:280 */
-        REGB6 = TAG_Bool(false);
+        REGB6 = TAG_Bool(0);
         REGB5 = REGB6;
       }
       if (UNTAG_Bool(REGB5)) {
@@ -940,7 +960,7 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB5)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ../lib/standard/collection/array.nit:718 */
+      /* ../lib/standard/collection/array.nit:724 */
       fra.me.REG[4] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB2)];
       /* ../lib/standard/collection/array.nit:281 */
       goto label3;
@@ -954,7 +974,7 @@ val_t metamodel___static_type___MMSignature_____l(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:236 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB3)>=UNTAG_Int(REGB2));
       /* ../lib/standard/collection/array.nit:280 */
       if (UNTAG_Bool(REGB2)) {
@@ -969,11 +989,11 @@ val_t metamodel___static_type___MMSignature_____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:235 */
         REGB2 = TAG_Bool(UNTAG_Int(REGB3)<UNTAG_Int(REGB2));
       } else {
         /* ../lib/standard/collection/array.nit:280 */
-        REGB5 = TAG_Bool(false);
+        REGB5 = TAG_Bool(0);
         REGB2 = REGB5;
       }
       if (UNTAG_Bool(REGB2)) {
@@ -986,7 +1006,7 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
       }
-      /* ../lib/standard/collection/array.nit:718 */
+      /* ../lib/standard/collection/array.nit:724 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB3)];
       /* ../lib/standard/collection/array.nit:281 */
       goto label4;
@@ -999,30 +1019,31 @@ val_t metamodel___static_type___MMSignature_____l(val_t p0, val_t p1){
       REGB3 = CALL_metamodel___static_type___MMClosure_____l(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
       REGB3 = TAG_Bool(!UNTAG_Bool(REGB3));
       if (UNTAG_Bool(REGB3)) {
-        REGB3 = TAG_Bool(false);
+        REGB3 = TAG_Bool(0);
         REGB0 = REGB3;
         goto label1;
       }
-      /* ../lib/standard/kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:357 */
       REGB3 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
-      /* ../lib/standard/kernel.nit:354 */
+      /* ../lib/standard/kernel.nit:357 */
       REGB1 = REGB3;
     } else {
-      /* ../lib/standard/kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:355 */
       goto label5;
     }
   }
   label5: while(0);
   /* metamodel/static_type.nit:136 */
-  REGB1 = TAG_Bool(true);
+  REGB1 = TAG_Bool(1);
   REGB0 = REGB1;
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMSignature_____bra[] = "static_type::MMSignature::[]";
 val_t metamodel___static_type___MMSignature_____bra(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -1059,7 +1080,7 @@ val_t metamodel___static_type___MMSignature_____bra(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:237 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB1)>UNTAG_Int(REGB0));
   /* metamodel/static_type.nit:142 */
   if (UNTAG_Bool(REGB1)) {
@@ -1080,7 +1101,7 @@ val_t metamodel___static_type___MMSignature_____bra(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:236 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
   /* ../lib/standard/collection/array.nit:280 */
   if (UNTAG_Bool(REGB1)) {
@@ -1095,11 +1116,11 @@ val_t metamodel___static_type___MMSignature_____bra(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:235 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
   } else {
     /* ../lib/standard/collection/array.nit:280 */
-    REGB2 = TAG_Bool(false);
+    REGB2 = TAG_Bool(0);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
@@ -1112,7 +1133,7 @@ val_t metamodel___static_type___MMSignature_____bra(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB1)) {
     nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
   }
-  /* ../lib/standard/collection/array.nit:718 */
+  /* ../lib/standard/collection/array.nit:724 */
   fra.me.REG[0] = ((Nit_NativeArray)fra.me.REG[0])->val[UNTAG_Int(REGB0)];
   /* ../lib/standard/collection/array.nit:281 */
   goto label1;
@@ -1128,6 +1149,7 @@ val_t metamodel___static_type___MMSignature_____bra(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___to_s[] = "static_type::MMSignature::(string::Object::to_s)";
 val_t metamodel___static_type___MMSignature___to_s(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
   val_t REGB0;
@@ -1177,7 +1199,7 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
   } else {
     nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
   }
-  /* ../lib/standard/kernel.nit:234 */
+  /* ../lib/standard/kernel.nit:237 */
   REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
   /* metamodel/static_type.nit:149 */
   if (UNTAG_Bool(REGB1)) {
@@ -1212,16 +1234,16 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
       nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
     }
     REGB0 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
-    /* ../lib/standard/kernel.nit:352 */
+    /* ../lib/standard/kernel.nit:355 */
     while(1) {
       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:232 */
+      /* ../lib/standard/kernel.nit:235 */
       REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB0));
-      /* ../lib/standard/kernel.nit:352 */
+      /* ../lib/standard/kernel.nit:355 */
       if (UNTAG_Bool(REGB2)) {
         /* metamodel/static_type.nit:152 */
         REGB2 = REGB1;
@@ -1239,7 +1261,7 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
         } else {
           nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
         }
-        /* ../lib/standard/kernel.nit:233 */
+        /* ../lib/standard/kernel.nit:236 */
         REGB3 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB3));
         /* ../lib/standard/collection/array.nit:280 */
         if (UNTAG_Bool(REGB3)) {
@@ -1254,11 +1276,11 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
           } else {
             nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
           }
-          /* ../lib/standard/kernel.nit:232 */
+          /* ../lib/standard/kernel.nit:235 */
           REGB3 = TAG_Bool(UNTAG_Int(REGB2)<UNTAG_Int(REGB3));
         } else {
           /* ../lib/standard/collection/array.nit:280 */
-          REGB4 = TAG_Bool(false);
+          REGB4 = TAG_Bool(0);
           REGB3 = REGB4;
         }
         if (UNTAG_Bool(REGB3)) {
@@ -1271,7 +1293,7 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
         if (UNTAG_Bool(REGB3)) {
           nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 281);
         }
-        /* ../lib/standard/collection/array.nit:718 */
+        /* ../lib/standard/collection/array.nit:724 */
         fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB2)];
         /* ../lib/standard/collection/array.nit:281 */
         goto label1;
@@ -1279,14 +1301,14 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
         /* metamodel/static_type.nit:154 */
         fra.me.REG[3] = CALL_standard___string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
         CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
-        /* ../lib/standard/kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:357 */
         REGB2 = TAG_Int(1);
-        /* ../lib/standard/kernel.nit:235 */
+        /* ../lib/standard/kernel.nit:238 */
         REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-        /* ../lib/standard/kernel.nit:354 */
+        /* ../lib/standard/kernel.nit:357 */
         REGB1 = REGB2;
       } else {
-        /* ../lib/standard/kernel.nit:352 */
+        /* ../lib/standard/kernel.nit:355 */
         goto label2;
       }
     }
@@ -1333,7 +1355,7 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
   } else {
     REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
     if (UNTAG_Bool(REGB0)) {
-      REGB0 = TAG_Bool(false);
+      REGB0 = TAG_Bool(0);
       REGB1 = REGB0;
     } else {
       REGB0 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
@@ -1374,6 +1396,7 @@ val_t metamodel___static_type___MMSignature___to_s(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___adaptation_to[] = "static_type::MMSignature::adaptation_to";
 val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
   val_t REGB0;
@@ -1453,7 +1476,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(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:235 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
@@ -1462,7 +1485,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ../lib/standard/collection/array.nit:718 */
+      /* ../lib/standard/collection/array.nit:724 */
       fra.me.REG[7] = ((Nit_NativeArray)fra.me.REG[6])->val[UNTAG_Int(REGB0)];
       /* metamodel/static_type.nit:172 */
       fra.me.REG[8] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[7])(fra.me.REG[7]);
@@ -1489,7 +1512,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]);
       /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
       /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
@@ -1507,7 +1530,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
   } else {
     REGB1 = TAG_Bool(fra.me.REG[6]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], NIT_NULL);
@@ -1559,7 +1582,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(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:235 */
     REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
     /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB1)) {
@@ -1568,7 +1591,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
       if (UNTAG_Bool(REGB1)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ../lib/standard/collection/array.nit:718 */
+      /* ../lib/standard/collection/array.nit:724 */
       fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
       /* metamodel/static_type.nit:188 */
       fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___closures(fra.me.REG[6])(fra.me.REG[6]);
@@ -1576,7 +1599,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]);
       /* ../lib/standard/collection/array.nit:274 */
       REGB1 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
       /* ../lib/standard/collection/array.nit:274 */
       REGB0 = REGB1;
@@ -1593,6 +1616,7 @@ val_t metamodel___static_type___MMSignature___adaptation_to(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___not_for_self[] = "static_type::MMSignature::not_for_self";
 val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
   val_t REGB0;
@@ -1626,7 +1650,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
   } else {
     REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
@@ -1644,7 +1668,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
     goto label1;
   }
   /* metamodel/static_type.nit:201 */
-  REGB0 = TAG_Bool(false);
+  REGB0 = TAG_Bool(0);
   /* metamodel/static_type.nit:202 */
   fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
   /* metamodel/static_type.nit:203 */
@@ -1679,7 +1703,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ../lib/standard/kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
     /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
@@ -1688,7 +1712,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ../lib/standard/collection/array.nit:718 */
+      /* ../lib/standard/collection/array.nit:724 */
       fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
       /* metamodel/static_type.nit:204 */
       fra.me.REG[6] = CALL_metamodel___static_type___MMParam___mmtype(fra.me.REG[5])(fra.me.REG[5]);
@@ -1706,7 +1730,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
         fra.me.REG[7] = fra.me.REG[5];
       } else {
         /* metamodel/static_type.nit:209 */
-        REGB2 = TAG_Bool(true);
+        REGB2 = TAG_Bool(1);
         REGB0 = REGB2;
         /* metamodel/static_type.nit:210 */
         fra.me.REG[5] = CALL_metamodel___static_type___MMParam___name(fra.me.REG[5])(fra.me.REG[5]);
@@ -1717,7 +1741,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]);
       /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
       /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
@@ -1735,7 +1759,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
   } else {
     REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
     if (UNTAG_Bool(REGB2)) {
-      REGB2 = TAG_Bool(false);
+      REGB2 = TAG_Bool(0);
       REGB1 = REGB2;
     } else {
       REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
@@ -1758,7 +1782,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
     } else {
       REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
       if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(false);
+        REGB2 = TAG_Bool(0);
         REGB1 = REGB2;
       } else {
         REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]);
@@ -1767,7 +1791,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
     }
     REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(true);
+      REGB1 = TAG_Bool(1);
       REGB0 = REGB1;
     }
   }
@@ -1805,7 +1829,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
     } else {
       nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
     }
-    /* ../lib/standard/kernel.nit:232 */
+    /* ../lib/standard/kernel.nit:235 */
     REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
     /* ../lib/standard/collection/array.nit:272 */
     if (UNTAG_Bool(REGB2)) {
@@ -1814,7 +1838,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
       if (UNTAG_Bool(REGB2)) {
         nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
       }
-      /* ../lib/standard/collection/array.nit:718 */
+      /* ../lib/standard/collection/array.nit:724 */
       fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB1)];
       /* metamodel/static_type.nit:224 */
       fra.me.REG[8] = CALL_metamodel___static_type___MMClosure___not_for_self(fra.me.REG[6])(fra.me.REG[6]);
@@ -1827,14 +1851,14 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
       }
       REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
       if (UNTAG_Bool(REGB2)) {
-        REGB2 = TAG_Bool(true);
+        REGB2 = TAG_Bool(1);
         REGB0 = REGB2;
       }
       /* metamodel/static_type.nit:226 */
       CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[8]);
       /* ../lib/standard/collection/array.nit:274 */
       REGB2 = TAG_Int(1);
-      /* ../lib/standard/kernel.nit:235 */
+      /* ../lib/standard/kernel.nit:238 */
       REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
       /* ../lib/standard/collection/array.nit:274 */
       REGB1 = REGB2;
@@ -1870,6 +1894,7 @@ val_t metamodel___static_type___MMSignature___not_for_self(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_metamodel___static_type___MMSignature___init[] = "static_type::MMSignature::init";
 void metamodel___static_type___MMSignature___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
   int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMSignature].i;
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
@@ -1900,6 +1925,7 @@ void metamodel___static_type___MMSignature___init(val_t p0, val_t p1, val_t p2,
   init_table[itpos1] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMExplicitImport___signature[] = "static_type::MMExplicitImport::signature";
 val_t metamodel___static_type___MMExplicitImport___signature(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -1923,6 +1949,7 @@ val_t metamodel___static_type___MMExplicitImport___signature(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMExplicitImport___signature__eq[] = "static_type::MMExplicitImport::signature=";
 void metamodel___static_type___MMExplicitImport___signature__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -1942,6 +1969,7 @@ void metamodel___static_type___MMExplicitImport___signature__eq(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMExplicitImport___init[] = "static_type::MMExplicitImport::(abstractmetamodel::MMExplicitImport::init)";
 void metamodel___static_type___MMExplicitImport___init(val_t p0, val_t p1, val_t p2, int* init_table){
   int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___abstractmetamodel___MMExplicitImport].i;
   struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
@@ -1983,6 +2011,7 @@ void metamodel___static_type___MMExplicitImport___init(val_t p0, val_t p1, val_t
   init_table[itpos2] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMClosure___name[] = "static_type::MMClosure::name";
 val_t metamodel___static_type___MMClosure___name(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2006,6 +2035,7 @@ val_t metamodel___static_type___MMClosure___name(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMClosure___signature[] = "static_type::MMClosure::signature";
 val_t metamodel___static_type___MMClosure___signature(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2029,6 +2059,7 @@ val_t metamodel___static_type___MMClosure___signature(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMClosure___is_break[] = "static_type::MMClosure::is_break";
 val_t metamodel___static_type___MMClosure___is_break(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2052,6 +2083,7 @@ val_t metamodel___static_type___MMClosure___is_break(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMClosure___is_optional[] = "static_type::MMClosure::is_optional";
 val_t metamodel___static_type___MMClosure___is_optional(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2075,6 +2107,7 @@ val_t metamodel___static_type___MMClosure___is_optional(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMClosure___adaptation_to[] = "static_type::MMClosure::adaptation_to";
 val_t metamodel___static_type___MMClosure___adaptation_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -2125,6 +2158,7 @@ val_t metamodel___static_type___MMClosure___adaptation_to(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMClosure___init[] = "static_type::MMClosure::init";
 void metamodel___static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, int* init_table){
   int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMClosure].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -2159,6 +2193,7 @@ void metamodel___static_type___MMClosure___init(val_t p0, val_t p1, val_t p2, va
   init_table[itpos3] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMClosure___not_for_self[] = "static_type::MMClosure::not_for_self";
 val_t metamodel___static_type___MMClosure___not_for_self(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -2228,6 +2263,7 @@ val_t metamodel___static_type___MMClosure___not_for_self(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMClosure_____l[] = "static_type::MMClosure::<";
 val_t metamodel___static_type___MMClosure_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2251,11 +2287,11 @@ val_t metamodel___static_type___MMClosure_____l(val_t p0, val_t p1){
     REGB0 = CALL_metamodel___static_type___MMClosure___is_optional(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(false);
+    REGB0 = TAG_Bool(0);
     goto label1;
   }
   /* metamodel/static_type.nit:303 */
@@ -2264,11 +2300,11 @@ val_t metamodel___static_type___MMClosure_____l(val_t p0, val_t p1){
   if (UNTAG_Bool(REGB1)) {
     REGB1 = CALL_metamodel___static_type___MMClosure___is_break(fra.me.REG[0])(fra.me.REG[0]);
   } else {
-    REGB2 = TAG_Bool(false);
+    REGB2 = TAG_Bool(0);
     REGB1 = REGB2;
   }
   if (UNTAG_Bool(REGB1)) {
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
     goto label1;
   }
@@ -2282,6 +2318,7 @@ val_t metamodel___static_type___MMClosure_____l(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMAncestor___stype__eq[] = "static_type::MMAncestor::stype=";
 void metamodel___static_type___MMAncestor___stype__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -2301,6 +2338,7 @@ void metamodel___static_type___MMAncestor___stype__eq(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMAncestor___stype[] = "static_type::MMAncestor::stype";
 val_t metamodel___static_type___MMAncestor___stype(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2329,6 +2367,7 @@ val_t metamodel___static_type___MMAncestor___stype(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMAncestor___inheriter__eq[] = "static_type::MMAncestor::inheriter=";
 void metamodel___static_type___MMAncestor___inheriter__eq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -2348,6 +2387,7 @@ void metamodel___static_type___MMAncestor___inheriter__eq(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMAncestor___inheriter[] = "static_type::MMAncestor::inheriter";
 val_t metamodel___static_type___MMAncestor___inheriter(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2376,6 +2416,7 @@ val_t metamodel___static_type___MMAncestor___inheriter(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMAncestor___is_reffinement[] = "static_type::MMAncestor::is_reffinement";
 val_t metamodel___static_type___MMAncestor___is_reffinement(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2408,6 +2449,7 @@ val_t metamodel___static_type___MMAncestor___is_reffinement(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMAncestor___is_specialisation[] = "static_type::MMAncestor::is_specialisation";
 val_t metamodel___static_type___MMAncestor___is_specialisation(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2442,6 +2484,7 @@ val_t metamodel___static_type___MMAncestor___is_specialisation(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMAncestor___local_class[] = "static_type::MMAncestor::local_class";
 val_t metamodel___static_type___MMAncestor___local_class(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2457,6 +2500,7 @@ val_t metamodel___static_type___MMAncestor___local_class(val_t p0){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMAncestor___to_s[] = "static_type::MMAncestor::(string::Object::to_s)";
 val_t metamodel___static_type___MMAncestor___to_s(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2479,7 +2523,7 @@ val_t metamodel___static_type___MMAncestor___to_s(val_t p0){
   } else {
     REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
@@ -2502,6 +2546,7 @@ val_t metamodel___static_type___MMAncestor___to_s(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMAncestor___init[] = "static_type::MMAncestor::init";
 void metamodel___static_type___MMAncestor___init(val_t p0, int* init_table){
   int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMAncestor].i;
   struct {struct stack_frame_t me;} fra;
@@ -2518,6 +2563,7 @@ void metamodel___static_type___MMAncestor___init(val_t p0, int* init_table){
   init_table[itpos4] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMType___mmmodule[] = "static_type::MMType::mmmodule";
 val_t metamodel___static_type___MMType___mmmodule(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2533,6 +2579,7 @@ val_t metamodel___static_type___MMType___mmmodule(val_t p0){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMType___local_class[] = "static_type::MMType::local_class";
 val_t metamodel___static_type___MMType___local_class(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2548,6 +2595,7 @@ val_t metamodel___static_type___MMType___local_class(val_t p0){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMType___is_valid[] = "static_type::MMType::is_valid";
 val_t metamodel___static_type___MMType___is_valid(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2562,12 +2610,13 @@ val_t metamodel___static_type___MMType___is_valid(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   /* metamodel/static_type.nit:354 */
-  REGB0 = TAG_Bool(true);
+  REGB0 = TAG_Bool(1);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMType_____l[] = "static_type::MMType::<";
 val_t metamodel___static_type___MMType_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2583,6 +2632,7 @@ val_t metamodel___static_type___MMType_____l(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMType___is_supertype[] = "static_type::MMType::is_supertype";
 val_t metamodel___static_type___MMType___is_supertype(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2598,6 +2648,7 @@ val_t metamodel___static_type___MMType___is_supertype(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMType___for_module[] = "static_type::MMType::for_module";
 val_t metamodel___static_type___MMType___for_module(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2613,6 +2664,7 @@ val_t metamodel___static_type___MMType___for_module(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMType___adapt_to[] = "static_type::MMType::adapt_to";
 val_t metamodel___static_type___MMType___adapt_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2628,6 +2680,7 @@ val_t metamodel___static_type___MMType___adapt_to(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMType___upcast_for[] = "static_type::MMType::upcast_for";
 val_t metamodel___static_type___MMType___upcast_for(val_t p0, val_t p1){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2643,6 +2696,7 @@ val_t metamodel___static_type___MMType___upcast_for(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMType___not_for_self[] = "static_type::MMType::not_for_self";
 val_t metamodel___static_type___MMType___not_for_self(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2661,6 +2715,7 @@ val_t metamodel___static_type___MMType___not_for_self(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMType___is_nullable[] = "static_type::MMType::is_nullable";
 val_t metamodel___static_type___MMType___is_nullable(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2675,12 +2730,13 @@ val_t metamodel___static_type___MMType___is_nullable(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   /* metamodel/static_type.nit:401 */
-  REGB0 = TAG_Bool(false);
+  REGB0 = TAG_Bool(0);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMType___as_nullable[] = "static_type::MMType::as_nullable";
 val_t metamodel___static_type___MMType___as_nullable(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -2705,7 +2761,7 @@ val_t metamodel___static_type___MMType___as_nullable(val_t p0){
   } else {
     REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
     if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(false);
+      REGB1 = TAG_Bool(0);
       REGB0 = REGB1;
     } else {
       REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
@@ -2727,6 +2783,7 @@ val_t metamodel___static_type___MMType___as_nullable(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMType___as_notnull[] = "static_type::MMType::as_notnull";
 val_t metamodel___static_type___MMType___as_notnull(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2745,6 +2802,7 @@ val_t metamodel___static_type___MMType___as_notnull(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMType___init[] = "static_type::MMType::init";
 void metamodel___static_type___MMType___init(val_t p0, int* init_table){
   int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMType].i;
   struct {struct stack_frame_t me;} fra;
@@ -2761,6 +2819,31 @@ void metamodel___static_type___MMType___init(val_t p0, int* init_table){
   init_table[itpos5] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___base_type[] = "static_type::MMNullableType::base_type";
+val_t metamodel___static_type___MMNullableType___base_type(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_metamodel___static_type;
+  fra.me.line = 420;
+  fra.me.meth = LOCATE_metamodel___static_type___MMNullableType___base_type;
+  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;
+  /* metamodel/static_type.nit:420 */
+  REGB0 = TAG_Bool(ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0])!=NIT_NULL);
+  if (UNTAG_Bool(REGB0)) {
+  } else {
+    nit_abort("Uninitialized attribute %s", "_base_type", LOCATE_metamodel___static_type, 420);
+  }
+  fra.me.REG[0] = ATTR_metamodel___static_type___MMNullableType____base_type(fra.me.REG[0]);
+  stack_frame_head = fra.me.prev;
+  return fra.me.REG[0];
+}
+static const char LOCATE_metamodel___static_type___MMNullableType___is_valid[] = "static_type::MMNullableType::(static_type::MMType::is_valid)";
 val_t metamodel___static_type___MMNullableType___is_valid(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2787,6 +2870,7 @@ val_t metamodel___static_type___MMNullableType___is_valid(val_t p0){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___is_nullable[] = "static_type::MMNullableType::(static_type::MMType::is_nullable)";
 val_t metamodel___static_type___MMNullableType___is_nullable(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2801,12 +2885,13 @@ val_t metamodel___static_type___MMNullableType___is_nullable(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   /* metamodel/static_type.nit:422 */
-  REGB0 = TAG_Bool(true);
+  REGB0 = TAG_Bool(1);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___as_notnull[] = "static_type::MMNullableType::(static_type::MMType::as_notnull)";
 val_t metamodel___static_type___MMNullableType___as_notnull(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2832,6 +2917,7 @@ val_t metamodel___static_type___MMNullableType___as_notnull(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___as_nullable[] = "static_type::MMNullableType::(static_type::MMType::as_nullable)";
 val_t metamodel___static_type___MMNullableType___as_nullable(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -2850,6 +2936,7 @@ val_t metamodel___static_type___MMNullableType___as_nullable(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___init[] = "static_type::MMNullableType::init";
 void metamodel___static_type___MMNullableType___init(val_t p0, val_t p1, int* init_table){
   int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMNullableType].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -2875,6 +2962,7 @@ void metamodel___static_type___MMNullableType___init(val_t p0, val_t p1, int* in
   init_table[itpos6] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___mmmodule[] = "static_type::MMNullableType::(static_type::MMType::mmmodule)";
 val_t metamodel___static_type___MMNullableType___mmmodule(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2901,6 +2989,7 @@ val_t metamodel___static_type___MMNullableType___mmmodule(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___local_class[] = "static_type::MMNullableType::(static_type::MMType::local_class)";
 val_t metamodel___static_type___MMNullableType___local_class(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -2927,6 +3016,7 @@ val_t metamodel___static_type___MMNullableType___local_class(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMNullableType_____l[] = "static_type::MMNullableType::(static_type::MMType::<)";
 val_t metamodel___static_type___MMNullableType_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -2955,7 +3045,7 @@ val_t metamodel___static_type___MMNullableType_____l(val_t p0, val_t p1){
     fra.me.REG[1] = CALL_metamodel___static_type___MMType___as_notnull(fra.me.REG[1])(fra.me.REG[1]);
     REGB0 = CALL_metamodel___static_type___MMType_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
   } else {
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   goto label1;
@@ -2963,6 +3053,7 @@ val_t metamodel___static_type___MMNullableType_____l(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___to_s[] = "static_type::MMNullableType::(string::Object::to_s)";
 val_t metamodel___static_type___MMNullableType___to_s(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -3015,6 +3106,7 @@ val_t metamodel___static_type___MMNullableType___to_s(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___is_supertype[] = "static_type::MMNullableType::(static_type::MMType::is_supertype)";
 val_t metamodel___static_type___MMNullableType___is_supertype(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3043,6 +3135,7 @@ val_t metamodel___static_type___MMNullableType___is_supertype(val_t p0, val_t p1
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___for_module[] = "static_type::MMNullableType::(static_type::MMType::for_module)";
 val_t metamodel___static_type___MMNullableType___for_module(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3072,6 +3165,7 @@ val_t metamodel___static_type___MMNullableType___for_module(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___adapt_to[] = "static_type::MMNullableType::(static_type::MMType::adapt_to)";
 val_t metamodel___static_type___MMNullableType___adapt_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3101,6 +3195,7 @@ val_t metamodel___static_type___MMNullableType___adapt_to(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___upcast_for[] = "static_type::MMNullableType::(static_type::MMType::upcast_for)";
 val_t metamodel___static_type___MMNullableType___upcast_for(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3129,6 +3224,7 @@ val_t metamodel___static_type___MMNullableType___upcast_for(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMNullableType___not_for_self[] = "static_type::MMNullableType::(static_type::MMType::not_for_self)";
 val_t metamodel___static_type___MMNullableType___not_for_self(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3156,6 +3252,7 @@ val_t metamodel___static_type___MMNullableType___not_for_self(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMTypeClass___local_class[] = "static_type::MMTypeClass::(static_type::MMType::local_class)";
 val_t metamodel___static_type___MMTypeClass___local_class(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3179,6 +3276,7 @@ val_t metamodel___static_type___MMTypeClass___local_class(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMTypeClass___mmmodule[] = "static_type::MMTypeClass::(static_type::MMType::mmmodule)";
 val_t metamodel___static_type___MMTypeClass___mmmodule(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3205,6 +3303,7 @@ val_t metamodel___static_type___MMTypeClass___mmmodule(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMTypeClass_____l[] = "static_type::MMTypeClass::(static_type::MMType::<)";
 val_t metamodel___static_type___MMTypeClass_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3227,6 +3326,7 @@ val_t metamodel___static_type___MMTypeClass_____l(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMTypeClass___to_s[] = "static_type::MMTypeClass::(string::Object::to_s)";
 val_t metamodel___static_type___MMTypeClass___to_s(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3253,6 +3353,7 @@ val_t metamodel___static_type___MMTypeClass___to_s(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMTypeClass___upcast_for[] = "static_type::MMTypeClass::(static_type::MMType::upcast_for)";
 val_t metamodel___static_type___MMTypeClass___upcast_for(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -3304,6 +3405,7 @@ val_t metamodel___static_type___MMTypeClass___upcast_for(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_metamodel___static_type___MMTypeClass___init[] = "static_type::MMTypeClass::init";
 void metamodel___static_type___MMTypeClass___init(val_t p0, val_t p1, int* init_table){
   int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMTypeClass].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -3330,6 +3432,7 @@ void metamodel___static_type___MMTypeClass___init(val_t p0, val_t p1, int* init_
   init_table[itpos7] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMTypeSimpleClass___is_supertype[] = "static_type::MMTypeSimpleClass::(static_type::MMType::is_supertype)";
 val_t metamodel___static_type___MMTypeSimpleClass___is_supertype(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3360,6 +3463,7 @@ val_t metamodel___static_type___MMTypeSimpleClass___is_supertype(val_t p0, val_t
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMTypeSimpleClass___for_module[] = "static_type::MMTypeSimpleClass::(static_type::MMType::for_module)";
 val_t metamodel___static_type___MMTypeSimpleClass___for_module(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -3407,6 +3511,7 @@ val_t metamodel___static_type___MMTypeSimpleClass___for_module(val_t p0, val_t p
   stack_frame_head = fra.me.prev;
   return fra.me.REG[2];
 }
+static const char LOCATE_metamodel___static_type___MMTypeSimpleClass___adapt_to[] = "static_type::MMTypeSimpleClass::(static_type::MMType::adapt_to)";
 val_t metamodel___static_type___MMTypeSimpleClass___adapt_to(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -3427,6 +3532,7 @@ val_t metamodel___static_type___MMTypeSimpleClass___adapt_to(val_t p0, val_t p1)
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMTypeSimpleClass___init[] = "static_type::MMTypeSimpleClass::init";
 void metamodel___static_type___MMTypeSimpleClass___init(val_t p0, val_t p1, int* init_table){
   int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMTypeSimpleClass].i;
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
@@ -3449,6 +3555,7 @@ void metamodel___static_type___MMTypeSimpleClass___init(val_t p0, val_t p1, int*
   init_table[itpos8] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone___mmmodule[] = "static_type::MMTypeNone::(static_type::MMType::mmmodule)";
 val_t metamodel___static_type___MMTypeNone___mmmodule(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3472,6 +3579,7 @@ val_t metamodel___static_type___MMTypeNone___mmmodule(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone___is_nullable[] = "static_type::MMTypeNone::(static_type::MMType::is_nullable)";
 val_t metamodel___static_type___MMTypeNone___is_nullable(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3486,12 +3594,13 @@ val_t metamodel___static_type___MMTypeNone___is_nullable(val_t p0){
   fra.me.REG[0] = NIT_NULL;
   fra.me.REG[0] = p0;
   /* metamodel/static_type.nit:521 */
-  REGB0 = TAG_Bool(true);
+  REGB0 = TAG_Bool(1);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone_____l[] = "static_type::MMTypeNone::(static_type::MMType::<)";
 val_t metamodel___static_type___MMTypeNone_____l(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3511,7 +3620,7 @@ val_t metamodel___static_type___MMTypeNone_____l(val_t p0, val_t p1){
   /* metamodel/static_type.nit:522 */
   REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMTypeNone, ID_metamodel___static_type___MMTypeNone)) /*cast MMTypeNone*/;
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(true);
+    REGB0 = TAG_Bool(1);
   } else {
     REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_metamodel___static_type___MMNullableType, ID_metamodel___static_type___MMNullableType)) /*cast MMNullableType*/;
     REGB0 = REGB1;
@@ -3521,6 +3630,7 @@ val_t metamodel___static_type___MMTypeNone_____l(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone___to_s[] = "static_type::MMTypeNone::(string::Object::to_s)";
 val_t metamodel___static_type___MMTypeNone___to_s(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3549,6 +3659,7 @@ val_t metamodel___static_type___MMTypeNone___to_s(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone___is_supertype[] = "static_type::MMTypeNone::(static_type::MMType::is_supertype)";
 val_t metamodel___static_type___MMTypeNone___is_supertype(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3565,12 +3676,13 @@ val_t metamodel___static_type___MMTypeNone___is_supertype(val_t p0, val_t p1){
   fra.me.REG[0] = p0;
   fra.me.REG[1] = p1;
   /* metamodel/static_type.nit:524 */
-  REGB0 = TAG_Bool(false);
+  REGB0 = TAG_Bool(0);
   goto label1;
   label1: while(0);
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone___local_class[] = "static_type::MMTypeNone::(static_type::MMType::local_class)";
 val_t metamodel___static_type___MMTypeNone___local_class(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -3588,6 +3700,7 @@ val_t metamodel___static_type___MMTypeNone___local_class(val_t p0){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone___upcast_for[] = "static_type::MMTypeNone::(static_type::MMType::upcast_for)";
 val_t metamodel___static_type___MMTypeNone___upcast_for(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t tmp;
@@ -3607,6 +3720,7 @@ val_t metamodel___static_type___MMTypeNone___upcast_for(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone___as_nullable[] = "static_type::MMTypeNone::(static_type::MMType::as_nullable)";
 val_t metamodel___static_type___MMTypeNone___as_nullable(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -3625,6 +3739,7 @@ val_t metamodel___static_type___MMTypeNone___as_nullable(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone___as_notnull[] = "static_type::MMTypeNone::(static_type::MMType::as_notnull)";
 val_t metamodel___static_type___MMTypeNone___as_notnull(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;
@@ -3642,6 +3757,7 @@ val_t metamodel___static_type___MMTypeNone___as_notnull(val_t p0){
   stack_frame_head = fra.me.prev;
   return NIT_NULL;
 }
+static const char LOCATE_metamodel___static_type___MMTypeNone___init[] = "static_type::MMTypeNone::init";
 void metamodel___static_type___MMTypeNone___init(val_t p0, val_t p1, int* init_table){
   int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMTypeNone].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -3667,6 +3783,7 @@ void metamodel___static_type___MMTypeNone___init(val_t p0, val_t p1, int* init_t
   init_table[itpos9] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMModule___type_none[] = "static_type::MMModule::type_none";
 val_t metamodel___static_type___MMModule___type_none(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3690,6 +3807,7 @@ val_t metamodel___static_type___MMModule___type_none(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMModule___type_bool[] = "static_type::MMModule::type_bool";
 val_t metamodel___static_type___MMModule___type_bool(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3716,7 +3834,7 @@ val_t metamodel___static_type___MMModule___type_bool(val_t p0){
       register_static_object(&once_value_2);
     } else fra.me.REG[1] = once_value_2;
     fra.me.REG[1] = fra.me.REG[1];
-    fra.me.REG[1] = CALL_standard___symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
+    fra.me.REG[1] = CALL_symbol___String___to_symbol(fra.me.REG[1])(fra.me.REG[1]);
     once_value_1 = fra.me.REG[1];
     register_static_object(&once_value_1);
   } else fra.me.REG[1] = once_value_1;
@@ -3728,6 +3846,7 @@ val_t metamodel___static_type___MMModule___type_bool(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[1];
 }
+static const char LOCATE_metamodel___static_type___MMImportedCast___from[] = "static_type::MMImportedCast::from";
 val_t metamodel___static_type___MMImportedCast___from(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3751,6 +3870,7 @@ val_t metamodel___static_type___MMImportedCast___from(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMImportedCast___to[] = "static_type::MMImportedCast::to";
 val_t metamodel___static_type___MMImportedCast___to(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t REGB0;
@@ -3774,6 +3894,7 @@ val_t metamodel___static_type___MMImportedCast___to(val_t p0){
   stack_frame_head = fra.me.prev;
   return fra.me.REG[0];
 }
+static const char LOCATE_metamodel___static_type___MMImportedCast___is_about_nullable_only[] = "static_type::MMImportedCast::is_about_nullable_only";
 val_t metamodel___static_type___MMImportedCast___is_about_nullable_only(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
   val_t REGB0;
@@ -3820,11 +3941,11 @@ val_t metamodel___static_type___MMImportedCast___is_about_nullable_only(val_t p0
       REGB0 = REGB1;
     }
   } else {
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
-    REGB0 = TAG_Bool(true);
+    REGB0 = TAG_Bool(1);
   } else {
     /* metamodel/static_type.nit:552 */
     REGB1 = TAG_Bool(ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0])!=NIT_NULL);
@@ -3855,7 +3976,7 @@ val_t metamodel___static_type___MMImportedCast___is_about_nullable_only(val_t p0
         REGB1 = REGB2;
       }
     } else {
-      REGB2 = TAG_Bool(false);
+      REGB2 = TAG_Bool(0);
       REGB1 = REGB2;
     }
     /* metamodel/static_type.nit:551 */
@@ -3866,6 +3987,7 @@ val_t metamodel___static_type___MMImportedCast___is_about_nullable_only(val_t p0
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMImportedCast___is_not_null_to_nullable[] = "static_type::MMImportedCast::is_not_null_to_nullable";
 val_t metamodel___static_type___MMImportedCast___is_not_null_to_nullable(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3899,7 +4021,7 @@ val_t metamodel___static_type___MMImportedCast___is_not_null_to_nullable(val_t p
     fra.me.REG[0] = ATTR_metamodel___static_type___MMImportedCast____to(fra.me.REG[0]);
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
   } else {
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   goto label1;
@@ -3907,6 +4029,7 @@ val_t metamodel___static_type___MMImportedCast___is_not_null_to_nullable(val_t p
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMImportedCast___is_nullable_to_not_null[] = "static_type::MMImportedCast::is_nullable_to_not_null";
 val_t metamodel___static_type___MMImportedCast___is_nullable_to_not_null(val_t p0){
   struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
   val_t REGB0;
@@ -3940,7 +4063,7 @@ val_t metamodel___static_type___MMImportedCast___is_nullable_to_not_null(val_t p
     REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[0])(fra.me.REG[0]);
     REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
   } else {
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   goto label1;
@@ -3948,6 +4071,7 @@ val_t metamodel___static_type___MMImportedCast___is_nullable_to_not_null(val_t p
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMImportedCast_____eqeq[] = "static_type::MMImportedCast::(kernel::Object::==)";
 val_t metamodel___static_type___MMImportedCast_____eqeq(val_t p0, val_t p1){
   struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
   val_t REGB0;
@@ -3984,7 +4108,7 @@ val_t metamodel___static_type___MMImportedCast_____eqeq(val_t p0, val_t p1){
     }
   } else {
     /* metamodel/static_type.nit:567 */
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   if (UNTAG_Bool(REGB0)) {
@@ -4003,7 +4127,7 @@ val_t metamodel___static_type___MMImportedCast_____eqeq(val_t p0, val_t p1){
     }
   } else {
     /* metamodel/static_type.nit:567 */
-    REGB1 = TAG_Bool(false);
+    REGB1 = TAG_Bool(0);
     REGB0 = REGB1;
   }
   goto label1;
@@ -4011,6 +4135,7 @@ val_t metamodel___static_type___MMImportedCast_____eqeq(val_t p0, val_t p1){
   stack_frame_head = fra.me.prev;
   return REGB0;
 }
+static const char LOCATE_metamodel___static_type___MMImportedCast___init[] = "static_type::MMImportedCast::init";
 void metamodel___static_type___MMImportedCast___init(val_t p0, val_t p1, val_t p2, int* init_table){
   int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___static_type___MMImportedCast].i;
   struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
@@ -4035,6 +4160,7 @@ void metamodel___static_type___MMImportedCast___init(val_t p0, val_t p1, val_t p
   init_table[itpos10] = 1;
   return;
 }
+static const char LOCATE_metamodel___static_type___MMMethod___explicit_casts[] = "static_type::MMMethod::explicit_casts";
 val_t metamodel___static_type___MMMethod___explicit_casts(val_t p0){
   struct {struct stack_frame_t me;} fra;
   val_t tmp;