use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / icode___icode_base._sep.c
diff --git a/c_src/icode___icode_base._sep.c b/c_src/icode___icode_base._sep.c
deleted file mode 100644 (file)
index 3d9108a..0000000
+++ /dev/null
@@ -1,2661 +0,0 @@
-/* This C file is generated by NIT to compile module icode___icode_base. */
-#include "icode___icode_base._sep.h"
-static const char LOCATE_icode___icode_base___IRegister___stype[] = "icode_base::IRegister::stype";
-val_t icode___icode_base___IRegister___stype(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_icode___icode_base;
-  fra.me.line = 26;
-  fra.me.meth = LOCATE_icode___icode_base___IRegister___stype;
-  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;
-  /* icode/icode_base.nit:26 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IRegister____stype(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stype", LOCATE_icode___icode_base, 26);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IRegister____stype(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IRegister___init[] = "icode_base::IRegister::init";
-void icode___icode_base___IRegister___init(val_t p0, val_t p1, int* init_table){
-  int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IRegister].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos0]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 28;
-  fra.me.meth = LOCATE_icode___icode_base___IRegister___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:30 */
-  ATTR_icode___icode_base___IRegister____stype(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos0] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IEscapeMark___init[] = "icode_base::IEscapeMark::init";
-void icode___icode_base___IEscapeMark___init(val_t p0, int* init_table){
-  int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IEscapeMark].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos1]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_icode___icode_base___IEscapeMark___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos1] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IClosureDecl___closure[] = "icode_base::IClosureDecl::closure";
-val_t icode___icode_base___IClosureDecl___closure(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_icode___icode_base;
-  fra.me.line = 40;
-  fra.me.meth = LOCATE_icode___icode_base___IClosureDecl___closure;
-  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;
-  /* icode/icode_base.nit:40 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IClosureDecl____closure(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_closure", LOCATE_icode___icode_base, 40);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IClosureDecl____closure(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IClosureDecl___default[] = "icode_base::IClosureDecl::default";
-val_t icode___icode_base___IClosureDecl___default(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_icode___icode_base;
-  fra.me.line = 43;
-  fra.me.meth = LOCATE_icode___icode_base___IClosureDecl___default;
-  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;
-  /* icode/icode_base.nit:43 */
-  fra.me.REG[0] = ATTR_icode___icode_base___IClosureDecl____default(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IClosureDecl___default__eq[] = "icode_base::IClosureDecl::default=";
-void icode___icode_base___IClosureDecl___default__eq(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_icode___icode_base;
-  fra.me.line = 43;
-  fra.me.meth = LOCATE_icode___icode_base___IClosureDecl___default__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:43 */
-  ATTR_icode___icode_base___IClosureDecl____default(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___IClosureDecl___init[] = "icode_base::IClosureDecl::init";
-void icode___icode_base___IClosureDecl___init(val_t p0, val_t p1, int* init_table){
-  int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IClosureDecl].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos2]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 46;
-  fra.me.meth = LOCATE_icode___icode_base___IClosureDecl___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:46 */
-  ATTR_icode___icode_base___IClosureDecl____closure(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos2] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IRoutine___params[] = "icode_base::IRoutine::params";
-val_t icode___icode_base___IRoutine___params(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_icode___icode_base;
-  fra.me.line = 51;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___params;
-  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;
-  /* icode/icode_base.nit:51 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IRoutine____params(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_params", LOCATE_icode___icode_base, 51);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____params(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IRoutine___closure_decls[] = "icode_base::IRoutine::closure_decls";
-val_t icode___icode_base___IRoutine___closure_decls(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_icode___icode_base;
-  fra.me.line = 54;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___closure_decls;
-  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;
-  /* icode/icode_base.nit:54 */
-  fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____closure_decls(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IRoutine___closure_decls__eq[] = "icode_base::IRoutine::closure_decls=";
-void icode___icode_base___IRoutine___closure_decls__eq(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_icode___icode_base;
-  fra.me.line = 54;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___closure_decls__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:54 */
-  ATTR_icode___icode_base___IRoutine____closure_decls(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___IRoutine___registers[] = "icode_base::IRoutine::registers";
-val_t icode___icode_base___IRoutine___registers(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_icode___icode_base;
-  fra.me.line = 57;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___registers;
-  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;
-  /* icode/icode_base.nit:57 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IRoutine____registers(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_registers", LOCATE_icode___icode_base, 57);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____registers(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IRoutine___result[] = "icode_base::IRoutine::result";
-val_t icode___icode_base___IRoutine___result(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_icode___icode_base;
-  fra.me.line = 60;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___result;
-  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;
-  /* icode/icode_base.nit:60 */
-  fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____result(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IRoutine___escape_marks[] = "icode_base::IRoutine::escape_marks";
-val_t icode___icode_base___IRoutine___escape_marks(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_icode___icode_base;
-  fra.me.line = 63;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___escape_marks;
-  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;
-  /* icode/icode_base.nit:63 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IRoutine____escape_marks(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_escape_marks", LOCATE_icode___icode_base, 63);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____escape_marks(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IRoutine___body[] = "icode_base::IRoutine::body";
-val_t icode___icode_base___IRoutine___body(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_icode___icode_base;
-  fra.me.line = 66;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___body;
-  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;
-  /* icode/icode_base.nit:66 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IRoutine____body(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_body", LOCATE_icode___icode_base, 66);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____body(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IRoutine___location[] = "icode_base::IRoutine::location";
-val_t icode___icode_base___IRoutine___location(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_icode___icode_base;
-  fra.me.line = 69;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___location;
-  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;
-  /* icode/icode_base.nit:69 */
-  fra.me.REG[0] = ATTR_icode___icode_base___IRoutine____location(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IRoutine___location__eq[] = "icode_base::IRoutine::location=";
-void icode___icode_base___IRoutine___location__eq(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_icode___icode_base;
-  fra.me.line = 69;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___location__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:69 */
-  ATTR_icode___icode_base___IRoutine____location(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___IRoutine___init[] = "icode_base::IRoutine::init";
-void icode___icode_base___IRoutine___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IRoutine].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos3]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 72;
-  fra.me.meth = LOCATE_icode___icode_base___IRoutine___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:74 */
-  fra.me.REG[1] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[1])(fra.me.REG[1]);
-  ATTR_icode___icode_base___IRoutine____params(fra.me.REG[0]) = fra.me.REG[1];
-  /* icode/icode_base.nit:75 */
-  ATTR_icode___icode_base___IRoutine____result(fra.me.REG[0]) = fra.me.REG[2];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos3] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IClosureDef___init[] = "icode_base::IClosureDef::init";
-void icode___icode_base___IClosureDef___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos4 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IClosureDef].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos4]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 82;
-  fra.me.meth = LOCATE_icode___icode_base___IClosureDef___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:84 */
-  CALL_icode___icode_base___IRoutine___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos4] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICode___arity[] = "icode_base::ICode::arity";
-val_t icode___icode_base___ICode___arity(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_icode___icode_base;
-  fra.me.line = 92;
-  fra.me.meth = LOCATE_icode___icode_base___ICode___arity;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* icode/icode_base.nit:92 */
-  nit_abort("Deferred method called", NULL, LOCATE_icode___icode_base, 92);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_icode___icode_base___ICode___result[] = "icode_base::ICode::result";
-val_t icode___icode_base___ICode___result(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_icode___icode_base;
-  fra.me.line = 95;
-  fra.me.meth = LOCATE_icode___icode_base___ICode___result;
-  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;
-  /* icode/icode_base.nit:95 */
-  fra.me.REG[0] = ATTR_icode___icode_base___ICode____result(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ICode___result__eq[] = "icode_base::ICode::result=";
-void icode___icode_base___ICode___result__eq(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_icode___icode_base;
-  fra.me.line = 95;
-  fra.me.meth = LOCATE_icode___icode_base___ICode___result__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:95 */
-  ATTR_icode___icode_base___ICode____result(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICode___location[] = "icode_base::ICode::location";
-val_t icode___icode_base___ICode___location(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_icode___icode_base;
-  fra.me.line = 98;
-  fra.me.meth = LOCATE_icode___icode_base___ICode___location;
-  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;
-  /* icode/icode_base.nit:98 */
-  fra.me.REG[0] = ATTR_icode___icode_base___ICode____location(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ICode___location__eq[] = "icode_base::ICode::location=";
-void icode___icode_base___ICode___location__eq(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_icode___icode_base;
-  fra.me.line = 98;
-  fra.me.meth = LOCATE_icode___icode_base___ICode___location__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:98 */
-  ATTR_icode___icode_base___ICode____location(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICode___is_pure[] = "icode_base::ICode::is_pure";
-val_t icode___icode_base___ICode___is_pure(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_icode___icode_base;
-  fra.me.line = 101;
-  fra.me.meth = LOCATE_icode___icode_base___ICode___is_pure;
-  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;
-  /* icode/icode_base.nit:102 */
-  REGB0 = TAG_Bool(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___ICode___init[] = "icode_base::ICode::init";
-void icode___icode_base___ICode___init(val_t p0, int* init_table){
-  int itpos5 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ICode].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos5]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 0;
-  fra.me.meth = LOCATE_icode___icode_base___ICode___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos5] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICode0___arity[] = "icode_base::ICode0::(icode_base::ICode::arity)";
-val_t icode___icode_base___ICode0___arity(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_icode___icode_base;
-  fra.me.line = 108;
-  fra.me.meth = LOCATE_icode___icode_base___ICode0___arity;
-  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;
-  /* icode/icode_base.nit:108 */
-  REGB0 = TAG_Int(0);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___ICode1___arity[] = "icode_base::ICode1::(icode_base::ICode::arity)";
-val_t icode___icode_base___ICode1___arity(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_icode___icode_base;
-  fra.me.line = 114;
-  fra.me.meth = LOCATE_icode___icode_base___ICode1___arity;
-  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;
-  /* icode/icode_base.nit:114 */
-  REGB0 = TAG_Int(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___ICode1___expr[] = "icode_base::ICode1::expr";
-val_t icode___icode_base___ICode1___expr(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_icode___icode_base;
-  fra.me.line = 116;
-  fra.me.meth = LOCATE_icode___icode_base___ICode1___expr;
-  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;
-  /* icode/icode_base.nit:116 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___ICode1____expr(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_expr", LOCATE_icode___icode_base, 116);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___ICode1____expr(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ICode1___init[] = "icode_base::ICode1::init";
-void icode___icode_base___ICode1___init(val_t p0, val_t p1, int* init_table){
-  int itpos6 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ICode1].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos6]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 119;
-  fra.me.meth = LOCATE_icode___icode_base___ICode1___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:119 */
-  fra.me.REG[2] = fra.me.REG[0];
-  CALL_icode___icode_base___ICode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  ATTR_icode___icode_base___ICode1____expr(fra.me.REG[2]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos6] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICode2___arity[] = "icode_base::ICode2::(icode_base::ICode::arity)";
-val_t icode___icode_base___ICode2___arity(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_icode___icode_base;
-  fra.me.line = 125;
-  fra.me.meth = LOCATE_icode___icode_base___ICode2___arity;
-  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;
-  /* icode/icode_base.nit:125 */
-  REGB0 = TAG_Int(2);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___ICode2___expr1[] = "icode_base::ICode2::expr1";
-val_t icode___icode_base___ICode2___expr1(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_icode___icode_base;
-  fra.me.line = 127;
-  fra.me.meth = LOCATE_icode___icode_base___ICode2___expr1;
-  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;
-  /* icode/icode_base.nit:127 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___ICode2____expr1(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_expr1", LOCATE_icode___icode_base, 127);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___ICode2____expr1(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ICode2___expr2[] = "icode_base::ICode2::expr2";
-val_t icode___icode_base___ICode2___expr2(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_icode___icode_base;
-  fra.me.line = 130;
-  fra.me.meth = LOCATE_icode___icode_base___ICode2___expr2;
-  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;
-  /* icode/icode_base.nit:130 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___ICode2____expr2(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_expr2", LOCATE_icode___icode_base, 130);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___ICode2____expr2(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ICode2___init[] = "icode_base::ICode2::init";
-void icode___icode_base___ICode2___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos7 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ICode2].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  if (init_table[itpos7]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 133;
-  fra.me.meth = LOCATE_icode___icode_base___ICode2___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:133 */
-  fra.me.REG[3] = fra.me.REG[0];
-  CALL_icode___icode_base___ICode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* icode/icode_base.nit:135 */
-  ATTR_icode___icode_base___ICode2____expr1(fra.me.REG[3]) = fra.me.REG[1];
-  /* icode/icode_base.nit:136 */
-  ATTR_icode___icode_base___ICode2____expr2(fra.me.REG[3]) = fra.me.REG[2];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos7] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICodeN___arity[] = "icode_base::ICodeN::(icode_base::ICode::arity)";
-val_t icode___icode_base___ICodeN___arity(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_icode___icode_base;
-  fra.me.line = 143;
-  fra.me.meth = LOCATE_icode___icode_base___ICodeN___arity;
-  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;
-  /* icode/icode_base.nit:143 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_exprs", LOCATE_icode___icode_base, 143);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[0]);
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[0])(fra.me.REG[0]);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___ICodeN___exprs[] = "icode_base::ICodeN::exprs";
-val_t icode___icode_base___ICodeN___exprs(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_icode___icode_base;
-  fra.me.line = 145;
-  fra.me.meth = LOCATE_icode___icode_base___ICodeN___exprs;
-  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;
-  /* icode/icode_base.nit:145 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_exprs", LOCATE_icode___icode_base, 145);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ICodeN___closure_defs[] = "icode_base::ICodeN::closure_defs";
-val_t icode___icode_base___ICodeN___closure_defs(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_icode___icode_base;
-  fra.me.line = 148;
-  fra.me.meth = LOCATE_icode___icode_base___ICodeN___closure_defs;
-  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;
-  /* icode/icode_base.nit:148 */
-  fra.me.REG[0] = ATTR_icode___icode_base___ICodeN____closure_defs(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ICodeN___closure_defs__eq[] = "icode_base::ICodeN::closure_defs=";
-void icode___icode_base___ICodeN___closure_defs__eq(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_icode___icode_base;
-  fra.me.line = 148;
-  fra.me.meth = LOCATE_icode___icode_base___ICodeN___closure_defs__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:148 */
-  ATTR_icode___icode_base___ICodeN____closure_defs(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICodeN___init[] = "icode_base::ICodeN::init";
-void icode___icode_base___ICodeN___init(val_t p0, val_t p1, int* init_table){
-  int itpos8 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ICodeN].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t tmp;
-  if (init_table[itpos8]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 151;
-  fra.me.meth = LOCATE_icode___icode_base___ICodeN___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:151 */
-  fra.me.REG[2] = fra.me.REG[0];
-  CALL_icode___icode_base___ICode___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  /* icode/icode_base.nit:153 */
-  REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
-    if (UNTAG_Bool(REGB1)) {
-      REGB1 = TAG_Bool(0);
-      REGB0 = REGB1;
-    } else {
-      REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
-      REGB0 = REGB1;
-    }
-  }
-  if (UNTAG_Bool(REGB0)) {
-    /* icode/icode_base.nit:154 */
-    fra.me.REG[0] = NEW_Array_standard___collection___array___Array___init();
-    ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[2]) = fra.me.REG[0];
-  } else {
-    /* icode/icode_base.nit:156 */
-    ATTR_icode___icode_base___ICodeN____exprs(fra.me.REG[2]) = fra.me.REG[1];
-  }
-  stack_frame_head = fra.me.prev;
-  init_table[itpos8] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ISeq___icodes[] = "icode_base::ISeq::icodes";
-val_t icode___icode_base___ISeq___icodes(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_icode___icode_base;
-  fra.me.line = 166;
-  fra.me.meth = LOCATE_icode___icode_base___ISeq___icodes;
-  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;
-  /* icode/icode_base.nit:166 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___ISeq____icodes(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_icodes", LOCATE_icode___icode_base, 166);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___ISeq____icodes(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ISeq___iescape_mark[] = "icode_base::ISeq::iescape_mark";
-val_t icode___icode_base___ISeq___iescape_mark(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_icode___icode_base;
-  fra.me.line = 169;
-  fra.me.meth = LOCATE_icode___icode_base___ISeq___iescape_mark;
-  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;
-  /* icode/icode_base.nit:169 */
-  fra.me.REG[0] = ATTR_icode___icode_base___ISeq____iescape_mark(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ISeq___iescape_mark__eq[] = "icode_base::ISeq::iescape_mark=";
-void icode___icode_base___ISeq___iescape_mark__eq(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_icode___icode_base;
-  fra.me.line = 169;
-  fra.me.meth = LOCATE_icode___icode_base___ISeq___iescape_mark__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:169 */
-  ATTR_icode___icode_base___ISeq____iescape_mark(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___ISeq___init[] = "icode_base::ISeq::init";
-void icode___icode_base___ISeq___init(val_t p0, int* init_table){
-  int itpos9 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ISeq].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos9]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 172;
-  fra.me.meth = LOCATE_icode___icode_base___ISeq___init;
-  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;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos9] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ILoop___init[] = "icode_base::ILoop::init";
-void icode___icode_base___ILoop___init(val_t p0, int* init_table){
-  int itpos10 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ILoop].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos10]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 179;
-  fra.me.meth = LOCATE_icode___icode_base___ILoop___init;
-  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;
-  /* icode/icode_base.nit:179 */
-  CALL_icode___icode_base___ISeq___init(fra.me.REG[0])(fra.me.REG[0], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos10] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IIf___then_seq[] = "icode_base::IIf::then_seq";
-val_t icode___icode_base___IIf___then_seq(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_icode___icode_base;
-  fra.me.line = 186;
-  fra.me.meth = LOCATE_icode___icode_base___IIf___then_seq;
-  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;
-  /* icode/icode_base.nit:186 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IIf____then_seq(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_then_seq", LOCATE_icode___icode_base, 186);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IIf____then_seq(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IIf___else_seq[] = "icode_base::IIf::else_seq";
-val_t icode___icode_base___IIf___else_seq(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_icode___icode_base;
-  fra.me.line = 188;
-  fra.me.meth = LOCATE_icode___icode_base___IIf___else_seq;
-  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;
-  /* icode/icode_base.nit:188 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IIf____else_seq(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_else_seq", LOCATE_icode___icode_base, 188);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IIf____else_seq(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IIf___init[] = "icode_base::IIf::init";
-void icode___icode_base___IIf___init(val_t p0, val_t p1, int* init_table){
-  int itpos11 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IIf].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos11]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 190;
-  fra.me.meth = LOCATE_icode___icode_base___IIf___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:190 */
-  CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos11] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IEscape___iescape_mark[] = "icode_base::IEscape::iescape_mark";
-val_t icode___icode_base___IEscape___iescape_mark(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_icode___icode_base;
-  fra.me.line = 196;
-  fra.me.meth = LOCATE_icode___icode_base___IEscape___iescape_mark;
-  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;
-  /* icode/icode_base.nit:196 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IEscape____iescape_mark(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_iescape_mark", LOCATE_icode___icode_base, 196);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IEscape____iescape_mark(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IEscape___init[] = "icode_base::IEscape::init";
-void icode___icode_base___IEscape___init(val_t p0, val_t p1, int* init_table){
-  int itpos12 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IEscape].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos12]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 199;
-  fra.me.meth = LOCATE_icode___icode_base___IEscape___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:199 */
-  ATTR_icode___icode_base___IEscape____iescape_mark(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos12] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IAbort___texts[] = "icode_base::IAbort::texts";
-val_t icode___icode_base___IAbort___texts(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_icode___icode_base;
-  fra.me.line = 205;
-  fra.me.meth = LOCATE_icode___icode_base___IAbort___texts;
-  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;
-  /* icode/icode_base.nit:205 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IAbort____texts(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_texts", LOCATE_icode___icode_base, 205);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IAbort____texts(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IAbort___module_location[] = "icode_base::IAbort::module_location";
-val_t icode___icode_base___IAbort___module_location(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_icode___icode_base;
-  fra.me.line = 208;
-  fra.me.meth = LOCATE_icode___icode_base___IAbort___module_location;
-  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;
-  /* icode/icode_base.nit:208 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IAbort____module_location(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_module_location", LOCATE_icode___icode_base, 208);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IAbort____module_location(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IAbort___init[] = "icode_base::IAbort::init";
-void icode___icode_base___IAbort___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos13 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IAbort].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos13]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 210;
-  fra.me.meth = LOCATE_icode___icode_base___IAbort___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:212 */
-  ATTR_icode___icode_base___IAbort____texts(fra.me.REG[0]) = fra.me.REG[1];
-  /* icode/icode_base.nit:213 */
-  ATTR_icode___icode_base___IAbort____module_location(fra.me.REG[0]) = fra.me.REG[2];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos13] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IAbsCall___property[] = "icode_base::IAbsCall::property";
-val_t icode___icode_base___IAbsCall___property(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_icode___icode_base;
-  fra.me.line = 222;
-  fra.me.meth = LOCATE_icode___icode_base___IAbsCall___property;
-  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;
-  /* icode/icode_base.nit:222 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IAbsCall____property(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_property", LOCATE_icode___icode_base, 222);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IAbsCall____property(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IAbsCall___is_explicit_from_extern[] = "icode_base::IAbsCall::is_explicit_from_extern";
-val_t icode___icode_base___IAbsCall___is_explicit_from_extern(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_icode___icode_base;
-  fra.me.line = 225;
-  fra.me.meth = LOCATE_icode___icode_base___IAbsCall___is_explicit_from_extern;
-  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;
-  /* icode/icode_base.nit:225 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IAbsCall_____atis_explicit_from_extern(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "@is_explicit_from_extern", LOCATE_icode___icode_base, 225);
-  }
-  REGB0 = ATTR_icode___icode_base___IAbsCall_____atis_explicit_from_extern(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IAbsCall___is_explicit_from_extern__eq[] = "icode_base::IAbsCall::is_explicit_from_extern=";
-void icode___icode_base___IAbsCall___is_explicit_from_extern__eq(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_icode___icode_base;
-  fra.me.line = 225;
-  fra.me.meth = LOCATE_icode___icode_base___IAbsCall___is_explicit_from_extern__eq;
-  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;
-  REGB0 = p1;
-  /* icode/icode_base.nit:225 */
-  ATTR_icode___icode_base___IAbsCall_____atis_explicit_from_extern(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___IAbsCall___init[] = "icode_base::IAbsCall::init";
-void icode___icode_base___IAbsCall___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos14 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IAbsCall].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  if (init_table[itpos14]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 228;
-  fra.me.meth = LOCATE_icode___icode_base___IAbsCall___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:228 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* icode/icode_base.nit:230 */
-  CALL_icode___icode_base___ICodeN___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* icode/icode_base.nit:231 */
-  ATTR_icode___icode_base___IAbsCall____property(fra.me.REG[3]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos14] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICall___init[] = "icode_base::ICall::init";
-void icode___icode_base___ICall___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos15 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ICall].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos15]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 239;
-  fra.me.meth = LOCATE_icode___icode_base___ICall___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:239 */
-  CALL_icode___icode_base___IAbsCall___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos15] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ISuper___init[] = "icode_base::ISuper::init";
-void icode___icode_base___ISuper___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos16 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ISuper].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos16]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 246;
-  fra.me.meth = LOCATE_icode___icode_base___ISuper___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:246 */
-  CALL_icode___icode_base___IAbsCall___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos16] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___INew___stype[] = "icode_base::INew::stype";
-val_t icode___icode_base___INew___stype(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_icode___icode_base;
-  fra.me.line = 258;
-  fra.me.meth = LOCATE_icode___icode_base___INew___stype;
-  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;
-  /* icode/icode_base.nit:258 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___INew____stype(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stype", LOCATE_icode___icode_base, 258);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___INew____stype(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___INew___init[] = "icode_base::INew::init";
-void icode___icode_base___INew___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
-  int itpos17 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___INew].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t tmp;
-  if (init_table[itpos17]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 260;
-  fra.me.meth = LOCATE_icode___icode_base___INew___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  /* icode/icode_base.nit:260 */
-  fra.me.REG[4] = fra.me.REG[0];
-  /* icode/icode_base.nit:262 */
-  CALL_icode___icode_base___IAbsCall___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3], init_table);
-  /* icode/icode_base.nit:263 */
-  ATTR_icode___icode_base___INew____stype(fra.me.REG[4]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos17] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IAllocateInstance___stype[] = "icode_base::IAllocateInstance::stype";
-val_t icode___icode_base___IAllocateInstance___stype(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_icode___icode_base;
-  fra.me.line = 272;
-  fra.me.meth = LOCATE_icode___icode_base___IAllocateInstance___stype;
-  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;
-  /* icode/icode_base.nit:272 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IAllocateInstance____stype(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stype", LOCATE_icode___icode_base, 272);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IAllocateInstance____stype(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IAllocateInstance___init[] = "icode_base::IAllocateInstance::init";
-void icode___icode_base___IAllocateInstance___init(val_t p0, val_t p1, int* init_table){
-  int itpos18 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IAllocateInstance].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos18]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 274;
-  fra.me.meth = LOCATE_icode___icode_base___IAllocateInstance___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:276 */
-  ATTR_icode___icode_base___IAllocateInstance____stype(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos18] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IStaticCall___init[] = "icode_base::IStaticCall::init";
-void icode___icode_base___IStaticCall___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos19 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IStaticCall].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos19]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 283;
-  fra.me.meth = LOCATE_icode___icode_base___IStaticCall___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:283 */
-  CALL_icode___icode_base___IAbsCall___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos19] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICheckInstance___stype[] = "icode_base::ICheckInstance::stype";
-val_t icode___icode_base___ICheckInstance___stype(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_icode___icode_base;
-  fra.me.line = 289;
-  fra.me.meth = LOCATE_icode___icode_base___ICheckInstance___stype;
-  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;
-  /* icode/icode_base.nit:289 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___ICheckInstance____stype(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stype", LOCATE_icode___icode_base, 289);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___ICheckInstance____stype(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ICheckInstance___init[] = "icode_base::ICheckInstance::init";
-void icode___icode_base___ICheckInstance___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos20 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ICheckInstance].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  if (init_table[itpos20]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 291;
-  fra.me.meth = LOCATE_icode___icode_base___ICheckInstance___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:291 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* icode/icode_base.nit:293 */
-  CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* icode/icode_base.nit:294 */
-  ATTR_icode___icode_base___ICheckInstance____stype(fra.me.REG[3]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos20] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IInitAttributes___stype[] = "icode_base::IInitAttributes::stype";
-val_t icode___icode_base___IInitAttributes___stype(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_icode___icode_base;
-  fra.me.line = 301;
-  fra.me.meth = LOCATE_icode___icode_base___IInitAttributes___stype;
-  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;
-  /* icode/icode_base.nit:301 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IInitAttributes____stype(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stype", LOCATE_icode___icode_base, 301);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IInitAttributes____stype(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IInitAttributes___init[] = "icode_base::IInitAttributes::init";
-void icode___icode_base___IInitAttributes___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos21 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IInitAttributes].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  if (init_table[itpos21]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 303;
-  fra.me.meth = LOCATE_icode___icode_base___IInitAttributes___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:303 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* icode/icode_base.nit:305 */
-  CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* icode/icode_base.nit:306 */
-  ATTR_icode___icode_base___IInitAttributes____stype(fra.me.REG[3]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos21] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IClosCall___closure_decl[] = "icode_base::IClosCall::closure_decl";
-val_t icode___icode_base___IClosCall___closure_decl(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_icode___icode_base;
-  fra.me.line = 314;
-  fra.me.meth = LOCATE_icode___icode_base___IClosCall___closure_decl;
-  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;
-  /* icode/icode_base.nit:314 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IClosCall____closure_decl(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_closure_decl", LOCATE_icode___icode_base, 314);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IClosCall____closure_decl(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IClosCall___break_seq[] = "icode_base::IClosCall::break_seq";
-val_t icode___icode_base___IClosCall___break_seq(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_icode___icode_base;
-  fra.me.line = 317;
-  fra.me.meth = LOCATE_icode___icode_base___IClosCall___break_seq;
-  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;
-  /* icode/icode_base.nit:317 */
-  fra.me.REG[0] = ATTR_icode___icode_base___IClosCall____break_seq(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IClosCall___break_seq__eq[] = "icode_base::IClosCall::break_seq=";
-void icode___icode_base___IClosCall___break_seq__eq(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_icode___icode_base;
-  fra.me.line = 317;
-  fra.me.meth = LOCATE_icode___icode_base___IClosCall___break_seq__eq;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:317 */
-  ATTR_icode___icode_base___IClosCall____break_seq(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___IClosCall___init[] = "icode_base::IClosCall::init";
-void icode___icode_base___IClosCall___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos22 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IClosCall].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  if (init_table[itpos22]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 320;
-  fra.me.meth = LOCATE_icode___icode_base___IClosCall___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:320 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* icode/icode_base.nit:322 */
-  CALL_icode___icode_base___ICodeN___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* icode/icode_base.nit:323 */
-  ATTR_icode___icode_base___IClosCall____closure_decl(fra.me.REG[3]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos22] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___INative___method[] = "icode_base::INative::method";
-val_t icode___icode_base___INative___method(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_icode___icode_base;
-  fra.me.line = 332;
-  fra.me.meth = LOCATE_icode___icode_base___INative___method;
-  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;
-  /* icode/icode_base.nit:332 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___INative____method(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_method", LOCATE_icode___icode_base, 332);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___INative____method(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___INative___init[] = "icode_base::INative::init";
-void icode___icode_base___INative___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos23 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___INative].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t REGB0;
-  val_t REGB1;
-  val_t REGB2;
-  val_t tmp;
-  if (init_table[itpos23]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 335;
-  fra.me.meth = LOCATE_icode___icode_base___INative___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:335 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* icode/icode_base.nit:338 */
-  REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-    nit_abort("Reciever is null", NULL, LOCATE_icode___icode_base, 338);
-  }
-  REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
-  fra.me.REG[4] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]);
-  REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
-  if (UNTAG_Bool(REGB1)) {
-    nit_abort("Reciever is null", NULL, LOCATE_icode___icode_base, 338);
-  }
-  REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[4])(fra.me.REG[4]);
-  REGB2 = TAG_Int(1);
-  /* ../lib/standard/kernel.nit:245 */
-  REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
-  /* icode/icode_base.nit:338 */
-  REGB1 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB2));
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    /* ../lib/standard/kernel.nit:237 */
-    REGB2 = TAG_Bool((REGB0)==(REGB2));
-    /* icode/icode_base.nit:338 */
-    REGB1 = REGB2;
-  }
-  if (UNTAG_Bool(REGB1)) {
-  } else {
-    nit_abort("Assert failed", NULL, LOCATE_icode___icode_base, 338);
-  }
-  /* icode/icode_base.nit:340 */
-  CALL_icode___icode_base___ICodeN___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* icode/icode_base.nit:341 */
-  ATTR_icode___icode_base___INative____method(fra.me.REG[3]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos23] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___INative___is_pure[] = "icode_base::INative::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___INative___is_pure(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_icode___icode_base;
-  fra.me.line = 344;
-  fra.me.meth = LOCATE_icode___icode_base___INative___is_pure;
-  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;
-  /* icode/icode_base.nit:344 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___INative____is_pure(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_is_pure", LOCATE_icode___icode_base, 344);
-  }
-  REGB0 = ATTR_icode___icode_base___INative____is_pure(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___INative___is_pure__eq[] = "icode_base::INative::is_pure=";
-void icode___icode_base___INative___is_pure__eq(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_icode___icode_base;
-  fra.me.line = 344;
-  fra.me.meth = LOCATE_icode___icode_base___INative___is_pure__eq;
-  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;
-  REGB0 = p1;
-  /* icode/icode_base.nit:344 */
-  ATTR_icode___icode_base___INative____is_pure(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  return;
-}
-static const char LOCATE_icode___icode_base___IIntValue___value[] = "icode_base::IIntValue::value";
-val_t icode___icode_base___IIntValue___value(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_icode___icode_base;
-  fra.me.line = 350;
-  fra.me.meth = LOCATE_icode___icode_base___IIntValue___value;
-  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;
-  /* icode/icode_base.nit:350 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IIntValue____value(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_value", LOCATE_icode___icode_base, 350);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IIntValue____value(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IIntValue___init[] = "icode_base::IIntValue::init";
-void icode___icode_base___IIntValue___init(val_t p0, val_t p1, int* init_table){
-  int itpos24 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IIntValue].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos24]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 353;
-  fra.me.meth = LOCATE_icode___icode_base___IIntValue___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:353 */
-  ATTR_icode___icode_base___IIntValue____value(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos24] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IIntValue___is_pure[] = "icode_base::IIntValue::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___IIntValue___is_pure(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_icode___icode_base;
-  fra.me.line = 355;
-  fra.me.meth = LOCATE_icode___icode_base___IIntValue___is_pure;
-  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;
-  /* icode/icode_base.nit:355 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IBoolValue___value[] = "icode_base::IBoolValue::value";
-val_t icode___icode_base___IBoolValue___value(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_icode___icode_base;
-  fra.me.line = 361;
-  fra.me.meth = LOCATE_icode___icode_base___IBoolValue___value;
-  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;
-  /* icode/icode_base.nit:361 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IBoolValue____value(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_value", LOCATE_icode___icode_base, 361);
-  }
-  REGB0 = ATTR_icode___icode_base___IBoolValue____value(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IBoolValue___init[] = "icode_base::IBoolValue::init";
-void icode___icode_base___IBoolValue___init(val_t p0, val_t p1, int* init_table){
-  int itpos25 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IBoolValue].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t REGB0;
-  val_t tmp;
-  if (init_table[itpos25]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 364;
-  fra.me.meth = LOCATE_icode___icode_base___IBoolValue___init;
-  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;
-  REGB0 = p1;
-  /* icode/icode_base.nit:364 */
-  ATTR_icode___icode_base___IBoolValue____value(fra.me.REG[0]) = REGB0;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos25] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IBoolValue___is_pure[] = "icode_base::IBoolValue::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___IBoolValue___is_pure(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_icode___icode_base;
-  fra.me.line = 366;
-  fra.me.meth = LOCATE_icode___icode_base___IBoolValue___is_pure;
-  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;
-  /* icode/icode_base.nit:366 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IStringValue___value[] = "icode_base::IStringValue::value";
-val_t icode___icode_base___IStringValue___value(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_icode___icode_base;
-  fra.me.line = 372;
-  fra.me.meth = LOCATE_icode___icode_base___IStringValue___value;
-  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;
-  /* icode/icode_base.nit:372 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IStringValue____value(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_value", LOCATE_icode___icode_base, 372);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IStringValue____value(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IStringValue___init[] = "icode_base::IStringValue::init";
-void icode___icode_base___IStringValue___init(val_t p0, val_t p1, int* init_table){
-  int itpos26 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IStringValue].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos26]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 375;
-  fra.me.meth = LOCATE_icode___icode_base___IStringValue___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:375 */
-  ATTR_icode___icode_base___IStringValue____value(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos26] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IStringValue___is_pure[] = "icode_base::IStringValue::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___IStringValue___is_pure(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_icode___icode_base;
-  fra.me.line = 377;
-  fra.me.meth = LOCATE_icode___icode_base___IStringValue___is_pure;
-  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;
-  /* icode/icode_base.nit:377 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IFloatValue___value[] = "icode_base::IFloatValue::value";
-val_t icode___icode_base___IFloatValue___value(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_icode___icode_base;
-  fra.me.line = 383;
-  fra.me.meth = LOCATE_icode___icode_base___IFloatValue___value;
-  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;
-  /* icode/icode_base.nit:383 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IFloatValue____value(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_value", LOCATE_icode___icode_base, 383);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IFloatValue____value(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IFloatValue___init[] = "icode_base::IFloatValue::init";
-void icode___icode_base___IFloatValue___init(val_t p0, val_t p1, int* init_table){
-  int itpos27 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IFloatValue].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos27]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 386;
-  fra.me.meth = LOCATE_icode___icode_base___IFloatValue___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:386 */
-  ATTR_icode___icode_base___IFloatValue____value(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos27] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IFloatValue___is_pure[] = "icode_base::IFloatValue::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___IFloatValue___is_pure(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_icode___icode_base;
-  fra.me.line = 388;
-  fra.me.meth = LOCATE_icode___icode_base___IFloatValue___is_pure;
-  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;
-  /* icode/icode_base.nit:388 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___ICharValue___value[] = "icode_base::ICharValue::value";
-val_t icode___icode_base___ICharValue___value(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_icode___icode_base;
-  fra.me.line = 394;
-  fra.me.meth = LOCATE_icode___icode_base___ICharValue___value;
-  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;
-  /* icode/icode_base.nit:394 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___ICharValue____value(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_value", LOCATE_icode___icode_base, 394);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___ICharValue____value(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ICharValue___init[] = "icode_base::ICharValue::init";
-void icode___icode_base___ICharValue___init(val_t p0, val_t p1, int* init_table){
-  int itpos28 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ICharValue].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos28]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 397;
-  fra.me.meth = LOCATE_icode___icode_base___ICharValue___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:397 */
-  ATTR_icode___icode_base___ICharValue____value(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos28] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ICharValue___is_pure[] = "icode_base::ICharValue::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___ICharValue___is_pure(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_icode___icode_base;
-  fra.me.line = 399;
-  fra.me.meth = LOCATE_icode___icode_base___ICharValue___is_pure;
-  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;
-  /* icode/icode_base.nit:399 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IMove___init[] = "icode_base::IMove::init";
-void icode___icode_base___IMove___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos29 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IMove].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  if (init_table[itpos29]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 407;
-  fra.me.meth = LOCATE_icode___icode_base___IMove___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:407 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* icode/icode_base.nit:409 */
-  CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* icode/icode_base.nit:410 */
-  ATTR_icode___icode_base___ICode____result(fra.me.REG[3]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos29] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IMove___is_pure[] = "icode_base::IMove::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___IMove___is_pure(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_icode___icode_base;
-  fra.me.line = 413;
-  fra.me.meth = LOCATE_icode___icode_base___IMove___is_pure;
-  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;
-  /* icode/icode_base.nit:413 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IAttrRead___property[] = "icode_base::IAttrRead::property";
-val_t icode___icode_base___IAttrRead___property(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_icode___icode_base;
-  fra.me.line = 420;
-  fra.me.meth = LOCATE_icode___icode_base___IAttrRead___property;
-  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;
-  /* icode/icode_base.nit:420 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IAttrRead____property(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_property", LOCATE_icode___icode_base, 420);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IAttrRead____property(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IAttrRead___init[] = "icode_base::IAttrRead::init";
-void icode___icode_base___IAttrRead___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos30 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IAttrRead].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  if (init_table[itpos30]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 423;
-  fra.me.meth = LOCATE_icode___icode_base___IAttrRead___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:423 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* icode/icode_base.nit:425 */
-  CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* icode/icode_base.nit:426 */
-  ATTR_icode___icode_base___IAttrRead____property(fra.me.REG[3]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos30] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IAttrRead___is_pure[] = "icode_base::IAttrRead::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___IAttrRead___is_pure(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_icode___icode_base;
-  fra.me.line = 429;
-  fra.me.meth = LOCATE_icode___icode_base___IAttrRead___is_pure;
-  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;
-  /* icode/icode_base.nit:429 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IAttrWrite___property[] = "icode_base::IAttrWrite::property";
-val_t icode___icode_base___IAttrWrite___property(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_icode___icode_base;
-  fra.me.line = 436;
-  fra.me.meth = LOCATE_icode___icode_base___IAttrWrite___property;
-  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;
-  /* icode/icode_base.nit:436 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IAttrWrite____property(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_property", LOCATE_icode___icode_base, 436);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IAttrWrite____property(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IAttrWrite___init[] = "icode_base::IAttrWrite::init";
-void icode___icode_base___IAttrWrite___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
-  int itpos31 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IAttrWrite].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t tmp;
-  if (init_table[itpos31]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 439;
-  fra.me.meth = LOCATE_icode___icode_base___IAttrWrite___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  /* icode/icode_base.nit:439 */
-  fra.me.REG[4] = fra.me.REG[0];
-  /* icode/icode_base.nit:441 */
-  CALL_icode___icode_base___ICode2___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3], init_table);
-  /* icode/icode_base.nit:442 */
-  ATTR_icode___icode_base___IAttrWrite____property(fra.me.REG[4]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos31] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IAttrIsset___property[] = "icode_base::IAttrIsset::property";
-val_t icode___icode_base___IAttrIsset___property(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_icode___icode_base;
-  fra.me.line = 451;
-  fra.me.meth = LOCATE_icode___icode_base___IAttrIsset___property;
-  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;
-  /* icode/icode_base.nit:451 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IAttrIsset____property(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_property", LOCATE_icode___icode_base, 451);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IAttrIsset____property(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IAttrIsset___init[] = "icode_base::IAttrIsset::init";
-void icode___icode_base___IAttrIsset___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos32 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IAttrIsset].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
-  val_t tmp;
-  if (init_table[itpos32]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 454;
-  fra.me.meth = LOCATE_icode___icode_base___IAttrIsset___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 4;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:454 */
-  fra.me.REG[3] = fra.me.REG[0];
-  /* icode/icode_base.nit:456 */
-  CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], init_table);
-  /* icode/icode_base.nit:457 */
-  ATTR_icode___icode_base___IAttrIsset____property(fra.me.REG[3]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos32] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IAttrIsset___is_pure[] = "icode_base::IAttrIsset::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___IAttrIsset___is_pure(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_icode___icode_base;
-  fra.me.line = 460;
-  fra.me.meth = LOCATE_icode___icode_base___IAttrIsset___is_pure;
-  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;
-  /* icode/icode_base.nit:460 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___ITypeCheck___stype[] = "icode_base::ITypeCheck::stype";
-val_t icode___icode_base___ITypeCheck___stype(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_icode___icode_base;
-  fra.me.line = 468;
-  fra.me.meth = LOCATE_icode___icode_base___ITypeCheck___stype;
-  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;
-  /* icode/icode_base.nit:468 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___ITypeCheck____stype(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_stype", LOCATE_icode___icode_base, 468);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___ITypeCheck____stype(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___ITypeCheck___init[] = "icode_base::ITypeCheck::init";
-void icode___icode_base___ITypeCheck___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
-  int itpos33 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___ITypeCheck].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
-  val_t tmp;
-  if (init_table[itpos33]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 471;
-  fra.me.meth = LOCATE_icode___icode_base___ITypeCheck___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 5;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[3] = NIT_NULL;
-  fra.me.REG[4] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  fra.me.REG[3] = p3;
-  /* icode/icode_base.nit:471 */
-  fra.me.REG[4] = fra.me.REG[0];
-  /* icode/icode_base.nit:473 */
-  CALL_icode___icode_base___ICode2___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  /* icode/icode_base.nit:474 */
-  ATTR_icode___icode_base___ITypeCheck____stype(fra.me.REG[4]) = fra.me.REG[3];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos33] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___ITypeCheck___is_pure[] = "icode_base::ITypeCheck::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___ITypeCheck___is_pure(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_icode___icode_base;
-  fra.me.line = 477;
-  fra.me.meth = LOCATE_icode___icode_base___ITypeCheck___is_pure;
-  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;
-  /* icode/icode_base.nit:477 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IIs___init[] = "icode_base::IIs::init";
-void icode___icode_base___IIs___init(val_t p0, val_t p1, val_t p2, int* init_table){
-  int itpos34 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IIs].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
-  val_t tmp;
-  if (init_table[itpos34]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 484;
-  fra.me.meth = LOCATE_icode___icode_base___IIs___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 3;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[2] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  fra.me.REG[2] = p2;
-  /* icode/icode_base.nit:486 */
-  CALL_icode___icode_base___ICode2___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos34] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IIs___is_pure[] = "icode_base::IIs::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___IIs___is_pure(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_icode___icode_base;
-  fra.me.line = 489;
-  fra.me.meth = LOCATE_icode___icode_base___IIs___is_pure;
-  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;
-  /* icode/icode_base.nit:489 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___INot___init[] = "icode_base::INot::init";
-void icode___icode_base___INot___init(val_t p0, val_t p1, int* init_table){
-  int itpos35 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___INot].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos35]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 496;
-  fra.me.meth = LOCATE_icode___icode_base___INot___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:498 */
-  CALL_icode___icode_base___ICode1___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
-  stack_frame_head = fra.me.prev;
-  init_table[itpos35] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___INot___is_pure[] = "icode_base::INot::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___INot___is_pure(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_icode___icode_base;
-  fra.me.line = 501;
-  fra.me.meth = LOCATE_icode___icode_base___INot___is_pure;
-  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;
-  /* icode/icode_base.nit:501 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___IOnce___body[] = "icode_base::IOnce::body";
-val_t icode___icode_base___IOnce___body(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_icode___icode_base;
-  fra.me.line = 508;
-  fra.me.meth = LOCATE_icode___icode_base___IOnce___body;
-  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;
-  /* icode/icode_base.nit:508 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IOnce____body(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_body", LOCATE_icode___icode_base, 508);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IOnce____body(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IOnce___init[] = "icode_base::IOnce::init";
-void icode___icode_base___IOnce___init(val_t p0, int* init_table){
-  int itpos36 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IOnce].i;
-  struct {struct stack_frame_t me;} fra;
-  val_t tmp;
-  if (init_table[itpos36]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 509;
-  fra.me.meth = LOCATE_icode___icode_base___IOnce___init;
-  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;
-  stack_frame_head = fra.me.prev;
-  init_table[itpos36] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IHasClos___closure_decl[] = "icode_base::IHasClos::closure_decl";
-val_t icode___icode_base___IHasClos___closure_decl(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_icode___icode_base;
-  fra.me.line = 515;
-  fra.me.meth = LOCATE_icode___icode_base___IHasClos___closure_decl;
-  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;
-  /* icode/icode_base.nit:515 */
-  REGB0 = TAG_Bool(ATTR_icode___icode_base___IHasClos____closure_decl(fra.me.REG[0])!=NIT_NULL);
-  if (UNTAG_Bool(REGB0)) {
-  } else {
-    nit_abort("Uninitialized attribute %s", "_closure_decl", LOCATE_icode___icode_base, 515);
-  }
-  fra.me.REG[0] = ATTR_icode___icode_base___IHasClos____closure_decl(fra.me.REG[0]);
-  stack_frame_head = fra.me.prev;
-  return fra.me.REG[0];
-}
-static const char LOCATE_icode___icode_base___IHasClos___init[] = "icode_base::IHasClos::init";
-void icode___icode_base___IHasClos___init(val_t p0, val_t p1, int* init_table){
-  int itpos37 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_base___IHasClos].i;
-  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
-  val_t tmp;
-  if (init_table[itpos37]) return;
-  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
-  fra.me.file = LOCATE_icode___icode_base;
-  fra.me.line = 518;
-  fra.me.meth = LOCATE_icode___icode_base___IHasClos___init;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 2;
-  fra.me.nitni_local_ref_head = NULL;
-  fra.me.REG[0] = NIT_NULL;
-  fra.me.REG[1] = NIT_NULL;
-  fra.me.REG[0] = p0;
-  fra.me.REG[1] = p1;
-  /* icode/icode_base.nit:520 */
-  ATTR_icode___icode_base___IHasClos____closure_decl(fra.me.REG[0]) = fra.me.REG[1];
-  stack_frame_head = fra.me.prev;
-  init_table[itpos37] = 1;
-  return;
-}
-static const char LOCATE_icode___icode_base___IHasClos___is_pure[] = "icode_base::IHasClos::(icode_base::ICode::is_pure)";
-val_t icode___icode_base___IHasClos___is_pure(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_icode___icode_base;
-  fra.me.line = 523;
-  fra.me.meth = LOCATE_icode___icode_base___IHasClos___is_pure;
-  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;
-  /* icode/icode_base.nit:523 */
-  REGB0 = TAG_Bool(1);
-  goto label1;
-  label1: while(0);
-  stack_frame_head = fra.me.prev;
-  return REGB0;
-}
-static const char LOCATE_icode___icode_base___MMAttribute___iroutine[] = "icode_base::MMAttribute::iroutine";
-val_t icode___icode_base___MMAttribute___iroutine(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_icode___icode_base;
-  fra.me.line = 529;
-  fra.me.meth = LOCATE_icode___icode_base___MMAttribute___iroutine;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* icode/icode_base.nit:529 */
-  nit_abort("Deferred method called", NULL, LOCATE_icode___icode_base, 529);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}
-static const char LOCATE_icode___icode_base___MMMethod___iroutine[] = "icode_base::MMMethod::iroutine";
-val_t icode___icode_base___MMMethod___iroutine(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_icode___icode_base;
-  fra.me.line = 535;
-  fra.me.meth = LOCATE_icode___icode_base___MMMethod___iroutine;
-  fra.me.has_broke = 0;
-  fra.me.REG_size = 0;
-  fra.me.nitni_local_ref_head = NULL;
-  /* icode/icode_base.nit:535 */
-  nit_abort("Deferred method called", NULL, LOCATE_icode___icode_base, 535);
-  stack_frame_head = fra.me.prev;
-  return NIT_NULL;
-}