-/* method model#MGenericType#init for (self: MGenericType) */
-void nitc___nitc__MGenericType___core__kernel__Object__init(val* self) {
-val* var /* : MClass */;
-val* var2 /* : MClass */;
-long var3 /* : Int */;
-long var5 /* : Int */;
-val* var6 /* : Array[MType] */;
-val* var8 /* : Array[MType] */;
-long var9 /* : Int */;
-long var11 /* : Int */;
-short int var12 /* : Bool */;
-short int var14 /* : Bool */;
-val* var16 /* : Array[MType] */;
-val* var18 /* : Array[MType] */;
-val* var_ /* var : Array[MType] */;
-val* var19 /* : IndexedIterator[nullable Object] */;
-val* var_20 /* var : IndexedIterator[MType] */;
-short int var21 /* : Bool */;
-val* var22 /* : nullable Object */;
-val* var_t /* var t: MType */;
-short int var23 /* : Bool */;
-val* var25 /* : NativeArray[String] */;
-static val* varonce;
-static val* varonce26;
-val* var27 /* : String */;
-char* var28 /* : NativeString */;
-val* var29 /* : String */;
-static val* varonce30;
-val* var31 /* : String */;
-char* var32 /* : NativeString */;
-val* var33 /* : String */;
-val* var34 /* : MClass */;
-val* var36 /* : MClass */;
-val* var37 /* : String */;
-val* var38 /* : Array[MType] */;
-val* var40 /* : Array[MType] */;
-static val* varonce41;
-val* var42 /* : String */;
-char* var43 /* : NativeString */;
-val* var44 /* : String */;
-val* var45 /* : String */;
-val* var46 /* : String */;
-{
-((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__MGenericType___core__kernel__Object__init]))(self); /* init on <self:MGenericType>*/
-}
-{
-{ /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
-var2 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
-if (unlikely(var2 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
-fatal_exit(1);
-}
-var = var2;
-RET_LABEL1:(void)0;
-}
-}
-{
-{ /* Inline model#MClass#arity (var) on <var:MClass> */
-var5 = var->attrs[COLOR_nitc__model__MClass___arity].l; /* _arity on <var:MClass> */
-var3 = var5;
-RET_LABEL4:(void)0;
-}
-}
-{
-{ /* Inline model#MGenericType#arguments (self) on <self:MGenericType> */
-var8 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
-if (unlikely(var8 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
-fatal_exit(1);
-}
-var6 = var8;
-RET_LABEL7:(void)0;
-}
-}
-{
-{ /* Inline array#AbstractArrayRead#length (var6) on <var6:Array[MType]> */
-var11 = var6->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var6:Array[MType]> */
-var9 = var11;
-RET_LABEL10:(void)0;
-}
-}
-{
-{ /* Inline kernel#Int#== (var3,var9) on <var3:Int> */
-var14 = var3 == var9;
-var12 = var14;
-goto RET_LABEL13;
-RET_LABEL13:(void)0;
-}
-}
-if (unlikely(!var12)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1275);
-fatal_exit(1);
-}
-{
-{ /* Inline model#MGenericType#need_anchor= (self,0) on <self:MGenericType> */
-self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s = 0; /* _need_anchor on <self:MGenericType> */
-RET_LABEL15:(void)0;
-}
-}
-{
-{ /* Inline model#MGenericType#arguments (self) on <self:MGenericType> */
-var18 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
-if (unlikely(var18 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
-fatal_exit(1);
-}
-var16 = var18;
-RET_LABEL17:(void)0;
-}
-}
-var_ = var16;
-{
-var19 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
-}
-var_20 = var19;
-for(;;) {
-{
-var21 = ((short int(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_20); /* is_ok on <var_20:IndexedIterator[MType]>*/
-}
-if (var21){
-} else {
-goto BREAK_label;
-}
-{
-var22 = ((val*(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_20); /* item on <var_20:IndexedIterator[MType]>*/
-}
-var_t = var22;
-{
-var23 = ((short int(*)(val* self))(var_t->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_t); /* need_anchor on <var_t:MType>*/
-}
-if (var23){
-{
-{ /* Inline model#MGenericType#need_anchor= (self,1) on <self:MGenericType> */
-self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s = 1; /* _need_anchor on <self:MGenericType> */
-RET_LABEL24:(void)0;
-}
-}
-goto BREAK_label;
-} else {
-}
-{
-((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_20); /* next on <var_20:IndexedIterator[MType]>*/
-}
-}
-BREAK_label: (void)0;
-{
-((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_20); /* finish on <var_20:IndexedIterator[MType]>*/
-}
-if (unlikely(varonce==NULL)) {
-var25 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
-if (likely(varonce26!=NULL)) {
-var27 = varonce26;
-} else {
-var28 = "[";
-var29 = core__flat___NativeString___to_s_full(var28, 1l, 1l);
-var27 = var29;
-varonce26 = var27;
-}
-((struct instance_core__NativeArray*)var25)->values[1]=var27;
-if (likely(varonce30!=NULL)) {
-var31 = varonce30;
-} else {
-var32 = "]";
-var33 = core__flat___NativeString___to_s_full(var32, 1l, 1l);
-var31 = var33;
-varonce30 = var31;
-}
-((struct instance_core__NativeArray*)var25)->values[3]=var31;
-} else {
-var25 = varonce;
-varonce = NULL;
-}
-{
-{ /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
-var36 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
-if (unlikely(var36 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
-fatal_exit(1);
-}
-var34 = var36;
-RET_LABEL35:(void)0;
-}
-}
-{
-var37 = ((val*(*)(val* self))(var34->class->vft[COLOR_core__abstract_text__Object__to_s]))(var34); /* to_s on <var34:MClass>*/
-}
-((struct instance_core__NativeArray*)var25)->values[0]=var37;
-{
-{ /* Inline model#MGenericType#arguments (self) on <self:MGenericType> */
-var40 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
-if (unlikely(var40 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
-fatal_exit(1);
-}
-var38 = var40;
-RET_LABEL39:(void)0;
-}
-}
-if (likely(varonce41!=NULL)) {
-var42 = varonce41;
-} else {
-var43 = ", ";
-var44 = core__flat___NativeString___to_s_full(var43, 2l, 2l);
-var42 = var44;
-varonce41 = var42;
-}
-{
-var45 = core__abstract_text___Collection___join(var38, var42);
-}
-((struct instance_core__NativeArray*)var25)->values[2]=var45;
-{
-var46 = ((val*(*)(val* self))(var25->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var25); /* native_to_s on <var25:NativeArray[String]>*/
-}
-varonce = var25;
-{
-{ /* Inline model#MGenericType#to_s= (self,var46) on <self:MGenericType> */
-self->attrs[COLOR_nitc__model__MGenericType___to_s].val = var46; /* _to_s on <self:MGenericType> */
-RET_LABEL47:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method model#MGenericType#to_s for (self: MGenericType): String */
-val* nitc___nitc__MGenericType___core__abstract_text__Object__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = self->attrs[COLOR_nitc__model__MGenericType___to_s].val; /* _to_s on <self:MGenericType> */
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1288);
-fatal_exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MGenericType#to_s= for (self: MGenericType, String) */
-void nitc___nitc__MGenericType___to_s_61d(val* self, val* p0) {
-self->attrs[COLOR_nitc__model__MGenericType___to_s].val = p0; /* _to_s on <self:MGenericType> */
-RET_LABEL:;
-}
-/* method model#MGenericType#full_name for (self: MGenericType): String */
-val* nitc___nitc__MGenericType___nitc__model_base__MEntity__full_name(val* self) {
-val* var /* : String */;
-short int var1 /* : Bool */;
-val* var2 /* : String */;
-val* var3 /* : String */;
-val* var5 /* : Array[String] */;
-val* var_args /* var args: Array[String] */;
-val* var6 /* : Array[MType] */;
-val* var8 /* : Array[MType] */;
-val* var_ /* var : Array[MType] */;
-val* var9 /* : IndexedIterator[nullable Object] */;
-val* var_10 /* var : IndexedIterator[MType] */;
-short int var11 /* : Bool */;
-val* var12 /* : nullable Object */;
-val* var_t /* var t: MType */;
-val* var13 /* : String */;
-val* var14 /* : NativeArray[String] */;
-static val* varonce;
-static val* varonce15;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-val* var18 /* : String */;
-static val* varonce19;
-val* var20 /* : String */;
-char* var21 /* : NativeString */;
-val* var22 /* : String */;
-val* var23 /* : MClass */;
-val* var25 /* : MClass */;
-val* var26 /* : String */;
-static val* varonce27;
-val* var28 /* : String */;
-char* var29 /* : NativeString */;
-val* var30 /* : String */;
-val* var31 /* : String */;
-val* var32 /* : String */;
-var1 = self->attrs[COLOR_nitc__model__MGenericType___full_name].val != NULL; /* _full_name on <self:MGenericType> */
-if(likely(var1)) {
-var2 = self->attrs[COLOR_nitc__model__MGenericType___full_name].val; /* _full_name on <self:MGenericType> */
-if (unlikely(var2 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1292);
-fatal_exit(1);
-}
-} else {
-{
-var5 = NEW_core__Array(&type_core__Array__core__String);
-{
-core___core__Array___core__kernel__Object__init(var5); /* Direct call array#Array#init on <var5:Array[String]>*/
-}
-var_args = var5;
-{
-{ /* Inline model#MGenericType#arguments (self) on <self:MGenericType> */
-var8 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
-if (unlikely(var8 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
-fatal_exit(1);
-}
-var6 = var8;
-RET_LABEL7:(void)0;
-}
-}
-var_ = var6;
-{
-var9 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
-}
-var_10 = var9;
-for(;;) {
-{
-var11 = ((short int(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_10); /* is_ok on <var_10:IndexedIterator[MType]>*/
-}
-if (var11){
-} else {
-goto BREAK_label;
-}
-{
-var12 = ((val*(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_10); /* item on <var_10:IndexedIterator[MType]>*/
-}
-var_t = var12;
-{
-var13 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model_base__MEntity__full_name]))(var_t); /* full_name on <var_t:MType>*/
-}
-{
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var13); /* Direct call array#Array#add on <var_args:Array[String]>*/
-}
-{
-((void(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_10); /* next on <var_10:IndexedIterator[MType]>*/
-}
-}
-BREAK_label: (void)0;
-{
-((void(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_10); /* finish on <var_10:IndexedIterator[MType]>*/
-}
-if (unlikely(varonce==NULL)) {
-var14 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
-if (likely(varonce15!=NULL)) {
-var16 = varonce15;
-} else {
-var17 = "[";
-var18 = core__flat___NativeString___to_s_full(var17, 1l, 1l);
-var16 = var18;
-varonce15 = var16;
-}
-((struct instance_core__NativeArray*)var14)->values[1]=var16;
-if (likely(varonce19!=NULL)) {
-var20 = varonce19;
-} else {
-var21 = "]";
-var22 = core__flat___NativeString___to_s_full(var21, 1l, 1l);
-var20 = var22;
-varonce19 = var20;
-}
-((struct instance_core__NativeArray*)var14)->values[3]=var20;
-} else {
-var14 = varonce;
-varonce = NULL;
-}
-{
-{ /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
-var25 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
-if (unlikely(var25 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
-fatal_exit(1);
-}
-var23 = var25;
-RET_LABEL24:(void)0;
-}
-}
-{
-var26 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var23);
-}
-((struct instance_core__NativeArray*)var14)->values[0]=var26;
-if (likely(varonce27!=NULL)) {
-var28 = varonce27;
-} else {
-var29 = ", ";
-var30 = core__flat___NativeString___to_s_full(var29, 2l, 2l);
-var28 = var30;
-varonce27 = var28;
-}
-{
-var31 = core__abstract_text___Collection___join(var_args, var28);
-}
-((struct instance_core__NativeArray*)var14)->values[2]=var31;
-{
-var32 = ((val*(*)(val* self))(var14->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var14); /* native_to_s on <var14:NativeArray[String]>*/
-}
-varonce = var14;
-var3 = var32;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
-}
-self->attrs[COLOR_nitc__model__MGenericType___full_name].val = var3; /* _full_name on <self:MGenericType> */
-var2 = var3;
-}
-var = var2;
-RET_LABEL:;
-return var;
-}
-/* method model#MGenericType#c_name for (self: MGenericType): String */
-val* nitc___nitc__MGenericType___nitc__model_base__MEntity__c_name(val* self) {
-val* var /* : String */;
-short int var1 /* : Bool */;
-val* var2 /* : String */;
-val* var3 /* : String */;
-val* var5 /* : MClass */;
-val* var7 /* : MClass */;
-val* var8 /* : String */;
-val* var_res /* var res: String */;
-val* var9 /* : Array[MType] */;
-val* var11 /* : Array[MType] */;
-val* var_ /* var : Array[MType] */;
-val* var12 /* : IndexedIterator[nullable Object] */;
-val* var_13 /* var : IndexedIterator[MType] */;
-short int var14 /* : Bool */;
-val* var15 /* : nullable Object */;
-val* var_t /* var t: MType */;
-static val* varonce;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-val* var18 /* : String */;
-val* var19 /* : String */;
-val* var20 /* : String */;
-val* var21 /* : String */;
-val* var22 /* : String */;
-var1 = self->attrs[COLOR_nitc__model__MGenericType___c_name].val != NULL; /* _c_name on <self:MGenericType> */
-if(likely(var1)) {
-var2 = self->attrs[COLOR_nitc__model__MGenericType___c_name].val; /* _c_name on <self:MGenericType> */
-if (unlikely(var2 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1302);
-fatal_exit(1);
-}
-} else {
-{
-{
-{ /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
-var7 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
-if (unlikely(var7 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
-fatal_exit(1);
-}
-var5 = var7;
-RET_LABEL6:(void)0;
-}
-}
-{
-var8 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var5);
-}
-var_res = var8;
-{
-{ /* Inline model#MGenericType#arguments (self) on <self:MGenericType> */
-var11 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
-if (unlikely(var11 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
-fatal_exit(1);
-}
-var9 = var11;
-RET_LABEL10:(void)0;
-}
-}
-var_ = var9;
-{
-var12 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
-}
-var_13 = var12;
-for(;;) {
-{
-var14 = ((short int(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_13); /* is_ok on <var_13:IndexedIterator[MType]>*/
-}
-if (var14){
-} else {
-goto BREAK_label;
-}
-{
-var15 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_13); /* item on <var_13:IndexedIterator[MType]>*/
-}
-var_t = var15;
-if (likely(varonce!=NULL)) {
-var16 = varonce;
-} else {
-var17 = "__";
-var18 = core__flat___NativeString___to_s_full(var17, 2l, 2l);
-var16 = var18;
-varonce = var16;
-}
-{
-var19 = ((val*(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__abstract_text__String___43d]))(var_res, var16); /* + on <var_res:String>*/
-}
-var_res = var19;
-{
-var20 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_t); /* c_name on <var_t:MType>*/
-}
-{
-var21 = ((val*(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__abstract_text__String___43d]))(var_res, var20); /* + on <var_res:String>*/
-}
-var_res = var21;
-{
-((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_13); /* next on <var_13:IndexedIterator[MType]>*/
-}
-}
-BREAK_label: (void)0;
-{
-((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_13); /* finish on <var_13:IndexedIterator[MType]>*/
-}
-{
-var22 = core___core__String___Object__to_s(var_res);
-}
-var3 = var22;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
-}
-self->attrs[COLOR_nitc__model__MGenericType___c_name].val = var3; /* _c_name on <self:MGenericType> */
-var2 = var3;
-}
-var = var2;
-RET_LABEL:;
-return var;
-}
-/* method model#MGenericType#need_anchor for (self: MGenericType): Bool */
-short int nitc___nitc__MGenericType___MType__need_anchor(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s; /* _need_anchor on <self:MGenericType> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MGenericType#need_anchor= for (self: MGenericType, Bool) */
-void nitc___nitc__MGenericType___need_anchor_61d(val* self, short int p0) {
-self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s = p0; /* _need_anchor on <self:MGenericType> */
-RET_LABEL:;
-}
-/* method model#MGenericType#resolve_for for (self: MGenericType, MType, nullable MClassType, MModule, Bool): MType */
-val* nitc___nitc__MGenericType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
-short int var1 /* : Bool */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-short int var5 /* : Bool */;
-val* var6 /* : Array[MType] */;
-val* var_types /* var types: Array[MType] */;
-val* var7 /* : Array[MType] */;
-val* var9 /* : Array[MType] */;
-val* var_ /* var : Array[MType] */;
-val* var10 /* : IndexedIterator[nullable Object] */;
-val* var_11 /* var : IndexedIterator[MType] */;
-short int var12 /* : Bool */;
-val* var13 /* : nullable Object */;
-val* var_t /* var t: MType */;
-val* var14 /* : MType */;
-val* var15 /* : MClass */;
-val* var17 /* : MClass */;
-val* var18 /* : MClassType */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-{
-{ /* Inline model#MGenericType#need_anchor (self) on <self:MGenericType> */
-var3 = self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s; /* _need_anchor on <self:MGenericType> */
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-var4 = !var1;
-if (var4){
-var = self;
-goto RET_LABEL;
-} else {
-}
-{
-var5 = nitc___nitc__MGenericType___MType__can_resolve_for(self, var_mtype, var_anchor, var_mmodule);
-}
-if (unlikely(!var5)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1317);
-fatal_exit(1);
-}
-var6 = NEW_core__Array(&type_core__Array__nitc__MType);
-{
-core___core__Array___core__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[MType]>*/
-}
-var_types = var6;
-{
-{ /* Inline model#MGenericType#arguments (self) on <self:MGenericType> */
-var9 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
-if (unlikely(var9 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
-fatal_exit(1);
-}
-var7 = var9;
-RET_LABEL8:(void)0;
-}
-}
-var_ = var7;
-{
-var10 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
-}
-var_11 = var10;
-for(;;) {
-{
-var12 = ((short int(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_11); /* is_ok on <var_11:IndexedIterator[MType]>*/
-}
-if (var12){
-} else {
-goto BREAK_label;
-}
-{
-var13 = ((val*(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_11); /* item on <var_11:IndexedIterator[MType]>*/
-}
-var_t = var13;
-{
-var14 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_t->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on <var_t:MType>*/
-}
-{
-core___core__Array___core__abstract_collection__SimpleCollection__add(var_types, var14); /* Direct call array#Array#add on <var_types:Array[MType]>*/
-}
-{
-((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_11); /* next on <var_11:IndexedIterator[MType]>*/
-}
-}
-BREAK_label: (void)0;
-{
-((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_11); /* finish on <var_11:IndexedIterator[MType]>*/
-}
-{
-{ /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
-var17 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
-if (unlikely(var17 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
-fatal_exit(1);
-}
-var15 = var17;
-RET_LABEL16:(void)0;
-}
-}
-{
-var18 = nitc___nitc__MClass___get_mtype(var15, var_types);
-}
-var = var18;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MGenericType#can_resolve_for for (self: MGenericType, MType, nullable MClassType, MModule): Bool */
-short int nitc___nitc__MGenericType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var1 /* : Bool */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-val* var5 /* : Array[MType] */;
-val* var7 /* : Array[MType] */;
-val* var_ /* var : Array[MType] */;
-val* var8 /* : IndexedIterator[nullable Object] */;
-val* var_9 /* var : IndexedIterator[MType] */;
-short int var10 /* : Bool */;
-val* var11 /* : nullable Object */;
-val* var_t /* var t: MType */;
-short int var12 /* : Bool */;
-short int var13 /* : Bool */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-{
-{ /* Inline model#MGenericType#need_anchor (self) on <self:MGenericType> */
-var3 = self->attrs[COLOR_nitc__model__MGenericType___need_anchor].s; /* _need_anchor on <self:MGenericType> */
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-var4 = !var1;
-if (var4){
-var = 1;
-goto RET_LABEL;
-} else {
-}
-{
-{ /* Inline model#MGenericType#arguments (self) on <self:MGenericType> */
-var7 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
-if (unlikely(var7 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
-fatal_exit(1);
-}
-var5 = var7;
-RET_LABEL6:(void)0;
-}
-}
-var_ = var5;
-{
-var8 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
-}
-var_9 = var8;
-for(;;) {
-{
-var10 = ((short int(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_9); /* is_ok on <var_9:IndexedIterator[MType]>*/
-}
-if (var10){
-} else {
-goto BREAK_label;
-}
-{
-var11 = ((val*(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_9); /* item on <var_9:IndexedIterator[MType]>*/
-}
-var_t = var11;
-{
-var12 = ((short int(*)(val* self, val* p0, val* p1, val* p2))(var_t->class->vft[COLOR_nitc__model__MType__can_resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule); /* can_resolve_for on <var_t:MType>*/
-}
-var13 = !var12;
-if (var13){
-var = 0;
-goto RET_LABEL;
-} else {
-}
-{
-((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_9); /* next on <var_9:IndexedIterator[MType]>*/
-}
-}
-BREAK_label: (void)0;
-{
-((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_9); /* finish on <var_9:IndexedIterator[MType]>*/
-}
-var = 1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MGenericType#length for (self: MGenericType): Int */
-long nitc___nitc__MGenericType___MType__length(val* self) {
-long var /* : Int */;
-long var_res /* var res: Int */;
-val* var1 /* : Array[MType] */;
-val* var3 /* : Array[MType] */;
-val* var_ /* var : Array[MType] */;
-val* var4 /* : IndexedIterator[nullable Object] */;
-val* var_5 /* var : IndexedIterator[MType] */;
-short int var6 /* : Bool */;
-val* var7 /* : nullable Object */;
-val* var_a /* var a: MType */;
-long var8 /* : Int */;
-long var9 /* : Int */;
-short int var11 /* : Bool */;
-int cltype;
-int idtype;
-const char* var_class_name;
-long var12 /* : Int */;
-var_res = 1l;
-{
-{ /* Inline model#MGenericType#arguments (self) on <self:MGenericType> */
-var3 = self->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <self:MGenericType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
-fatal_exit(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-var_ = var1;
-{
-var4 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
-}
-var_5 = var4;
-for(;;) {
-{
-var6 = ((short int(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_5); /* is_ok on <var_5:IndexedIterator[MType]>*/
-}
-if (var6){
-} else {
-goto BREAK_label;
-}
-{
-var7 = ((val*(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_5); /* item on <var_5:IndexedIterator[MType]>*/
-}
-var_a = var7;
-{
-var8 = ((long(*)(val* self))(var_a->class->vft[COLOR_nitc__model__MType__length]))(var_a); /* length on <var_a:MType>*/
-}
-{
-{ /* Inline kernel#Int#+ (var_res,var8) on <var_res:Int> */
-/* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
-/* <var8:Int> isa OTHER */
-var11 = 1; /* easy <var8:Int> isa OTHER*/
-if (unlikely(!var11)) {
-var_class_name = type_core__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
-fatal_exit(1);
-}
-var12 = var_res + var8;
-var9 = var12;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
-}
-}
-var_res = var9;
-{
-((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on <var_5:IndexedIterator[MType]>*/
-}
-}
-BREAK_label: (void)0;
-{
-((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_5); /* finish on <var_5:IndexedIterator[MType]>*/
-}
-var = var_res;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MFormalType#as_notnull for (self: MFormalType): MType */
-val* nitc___nitc__MFormalType___MType__as_notnull(val* self) {
-val* var /* : MType */;
-short int var1 /* : Bool */;
-val* var2 /* : MType */;
-val* var3 /* : MNotNullType */;
-var1 = self->attrs[COLOR_nitc__model__MFormalType___as_notnull].val != NULL; /* _as_notnull on <self:MFormalType> */
-if(likely(var1)) {
-var2 = self->attrs[COLOR_nitc__model__MFormalType___as_notnull].val; /* _as_notnull on <self:MFormalType> */
-if (unlikely(var2 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _as_notnull");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1362);
-fatal_exit(1);
-}
-} else {
-var3 = NEW_nitc__MNotNullType(&type_nitc__MNotNullType);
-{
-((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nitc__model__MProxyType__mtype_61d]))(var3, self); /* mtype= on <var3:MNotNullType>*/
-}
-{
-((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:MNotNullType>*/
-}
-self->attrs[COLOR_nitc__model__MFormalType___as_notnull].val = var3; /* _as_notnull on <self:MFormalType> */
-var2 = var3;
-}
-var = var2;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#mproperty for (self: MVirtualType): MVirtualTypeProp */
-val* nitc___nitc__MVirtualType___mproperty(val* self) {
-val* var /* : MVirtualTypeProp */;
-val* var1 /* : MVirtualTypeProp */;
-var1 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1369);
-fatal_exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#mproperty= for (self: MVirtualType, MVirtualTypeProp) */
-void nitc___nitc__MVirtualType___mproperty_61d(val* self, val* p0) {
-self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val = p0; /* _mproperty on <self:MVirtualType> */
-RET_LABEL:;
-}
-/* method model#MVirtualType#model for (self: MVirtualType): Model */
-val* nitc___nitc__MVirtualType___nitc__model_base__MEntity__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : MVirtualTypeProp */;
-val* var3 /* : MVirtualTypeProp */;
-val* var4 /* : MClassDef */;
-val* var6 /* : MClassDef */;
-val* var7 /* : MModule */;
-val* var9 /* : MModule */;
-val* var10 /* : Model */;
-val* var12 /* : Model */;
-{
-{ /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
-var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1369);
-fatal_exit(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-{ /* Inline model#MProperty#intro_mclassdef (var1) on <var1:MVirtualTypeProp> */
-var6 = var1->attrs[COLOR_nitc__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var1:MVirtualTypeProp> */
-if (unlikely(var6 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1946);
-fatal_exit(1);
-}
-var4 = var6;
-RET_LABEL5:(void)0;
-}
-}
-{
-{ /* Inline model#MClassDef#mmodule (var4) on <var4:MClassDef> */
-var9 = var4->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var4:MClassDef> */
-if (unlikely(var9 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
-fatal_exit(1);
-}
-var7 = var9;
-RET_LABEL8:(void)0;
-}
-}
-{
-{ /* Inline mmodule#MModule#model (var7) on <var7:MModule> */
-var12 = var7->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var7:MModule> */
-if (unlikely(var12 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 78);
-fatal_exit(1);
-}
-var10 = var12;
-RET_LABEL11:(void)0;
-}
-}
-var = var10;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#lookup_bound for (self: MVirtualType, MModule, MType): MType */
-val* nitc___nitc__MVirtualType___MType__lookup_bound(val* self, val* p0, val* p1) {
-val* var /* : MType */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var_resolved_receiver /* var resolved_receiver: MType */;
-val* var1 /* : MType */;
-val* var2 /* : MVirtualTypeDef */;
-val* var3 /* : nullable MType */;
-val* var5 /* : nullable MType */;
-val* var6 /* : MBottomType */;
-val* var7 /* : Model */;
-var_mmodule = p0;
-var_resolved_receiver = p1;
-{
-var2 = nitc___nitc__MVirtualType___lookup_single_definition(self, var_mmodule, var_resolved_receiver);
-}
-{
-{ /* Inline model#MVirtualTypeDef#bound (var2) on <var2:MVirtualTypeDef> */
-var5 = var2->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val; /* _bound on <var2:MVirtualTypeDef> */
-var3 = var5;
-RET_LABEL4:(void)0;
-}
-}
-if (var3!=NULL) {
-var1 = var3;
-} else {
-var6 = NEW_nitc__MBottomType(&type_nitc__MBottomType);
-{
-var7 = nitc___nitc__MVirtualType___nitc__model_base__MEntity__model(self);
-}
-{
-((void(*)(val* self, val* p0))(var6->class->vft[COLOR_nitc__model__MBottomType__model_61d]))(var6, var7); /* model= on <var6:MBottomType>*/
-}
-{
-((void(*)(val* self))(var6->class->vft[COLOR_core__kernel__Object__init]))(var6); /* init on <var6:MBottomType>*/
-}
-var1 = var6;
-}
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#lookup_single_definition for (self: MVirtualType, MModule, MType): MVirtualTypeDef */
-val* nitc___nitc__MVirtualType___lookup_single_definition(val* self, val* p0, val* p1) {
-val* var /* : MVirtualTypeDef */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var_resolved_receiver /* var resolved_receiver: MType */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-val* var3 /* : MVirtualTypeProp */;
-val* var5 /* : MVirtualTypeProp */;
-val* var6 /* : Array[MPropDef] */;
-val* var_props /* var props: Array[MVirtualTypeDef] */;
-short int var7 /* : Bool */;
-long var8 /* : Int */;
-long var10 /* : Int */;
-short int var11 /* : Bool */;
-short int var13 /* : Bool */;
-val* var14 /* : nullable Object */;
-val* var15 /* : ArraySet[MType] */;
-val* var_types /* var types: ArraySet[MType] */;
-val* var16 /* : nullable Object */;
-val* var_res /* var res: MVirtualTypeDef */;
-val* var_ /* var : Array[MVirtualTypeDef] */;
-val* var17 /* : IndexedIterator[nullable Object] */;
-val* var_18 /* var : IndexedIterator[MVirtualTypeDef] */;
-short int var19 /* : Bool */;
-val* var20 /* : nullable Object */;
-val* var_p /* var p: MVirtualTypeDef */;
-val* var21 /* : nullable MType */;
-val* var23 /* : nullable MType */;
-short int var24 /* : Bool */;
-short int var26 /* : Bool */;
-short int var27 /* : Bool */;
-long var28 /* : Int */;
-short int var29 /* : Bool */;
-short int var31 /* : Bool */;
-var_mmodule = p0;
-var_resolved_receiver = p1;
-{
-var1 = ((short int(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_resolved_receiver); /* need_anchor on <var_resolved_receiver:MType>*/
-}
-var2 = !var1;
-if (unlikely(!var2)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1382);
-fatal_exit(1);
-}
-{
-{ /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
-var5 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
-if (unlikely(var5 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1369);
-fatal_exit(1);
-}
-var3 = var5;
-RET_LABEL4:(void)0;
-}
-}
-{
-var6 = nitc___nitc__MProperty___lookup_definitions(var3, var_mmodule, var_resolved_receiver);
-}
-var_props = var6;
-{
-var7 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_props);
-}
-if (var7){
-PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1385);
-fatal_exit(1);
-} else {
-{
-{ /* Inline array#AbstractArrayRead#length (var_props) on <var_props:Array[MVirtualTypeDef]> */
-var10 = var_props->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_props:Array[MVirtualTypeDef]> */
-var8 = var10;
-RET_LABEL9:(void)0;
-}
-}
-{
-{ /* Inline kernel#Int#== (var8,1l) on <var8:Int> */
-var13 = var8 == 1l;
-var11 = var13;
-goto RET_LABEL12;
-RET_LABEL12:(void)0;
-}
-}
-if (var11){
-{
-var14 = core___core__SequenceRead___Collection__first(var_props);
-}
-var = var14;
-goto RET_LABEL;
-} else {
-}
-}
-var15 = NEW_core__ArraySet(&type_core__ArraySet__nitc__MType);
-{
-core___core__ArraySet___core__kernel__Object__init(var15); /* Direct call array#ArraySet#init on <var15:ArraySet[MType]>*/
-}
-var_types = var15;
-{
-var16 = core___core__SequenceRead___Collection__first(var_props);
-}
-var_res = var16;
-var_ = var_props;
-{
-var17 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
-}
-var_18 = var17;
-for(;;) {
-{
-var19 = ((short int(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_18); /* is_ok on <var_18:IndexedIterator[MVirtualTypeDef]>*/
-}
-if (var19){
-} else {
-goto BREAK_label;
-}
-{
-var20 = ((val*(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_18); /* item on <var_18:IndexedIterator[MVirtualTypeDef]>*/
-}
-var_p = var20;
-{
-{ /* Inline model#MVirtualTypeDef#bound (var_p) on <var_p:MVirtualTypeDef> */
-var23 = var_p->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val; /* _bound on <var_p:MVirtualTypeDef> */
-var21 = var23;
-RET_LABEL22:(void)0;
-}
-}
-if (unlikely(var21 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1392);
-fatal_exit(1);
-}
-{
-core___core__ArraySet___core__abstract_collection__SimpleCollection__add(var_types, var21); /* Direct call array#ArraySet#add on <var_types:ArraySet[MType]>*/
-}
-{
-{ /* Inline model#MVirtualTypeDef#is_fixed (var_res) on <var_res:MVirtualTypeDef> */
-var26 = var_res->attrs[COLOR_nitc__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <var_res:MVirtualTypeDef> */
-var24 = var26;
-RET_LABEL25:(void)0;
-}
-}
-var27 = !var24;
-if (var27){
-var_res = var_p;
-} else {
-}
-{
-((void(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_18); /* next on <var_18:IndexedIterator[MVirtualTypeDef]>*/
-}
-}
-BREAK_label: (void)0;
-{
-((void(*)(val* self))((((long)var_18&3)?class_info[((long)var_18&3)]:var_18->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_18); /* finish on <var_18:IndexedIterator[MVirtualTypeDef]>*/
-}
-{
-var28 = core___core__ArraySet___core__abstract_collection__Collection__length(var_types);
-}
-{
-{ /* Inline kernel#Int#== (var28,1l) on <var28:Int> */
-var31 = var28 == 1l;
-var29 = var31;
-goto RET_LABEL30;
-RET_LABEL30:(void)0;
-}
-}
-if (var29){
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1398);
-fatal_exit(1);
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#lookup_fixed for (self: MVirtualType, MModule, MType): MType */
-val* nitc___nitc__MVirtualType___MType__lookup_fixed(val* self, val* p0, val* p1) {
-val* var /* : MType */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var_resolved_receiver /* var resolved_receiver: MType */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-val* var3 /* : MType */;
-short int var4 /* : Bool */;
-int cltype;
-int idtype;
-val* var5 /* : MVirtualTypeDef */;
-val* var_prop /* var prop: MVirtualTypeDef */;
-val* var6 /* : nullable MType */;
-val* var8 /* : nullable MType */;
-val* var_res /* var res: nullable MType */;
-short int var9 /* : Bool */;
-short int var10 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var12 /* : Bool */;
-short int var14 /* : Bool */;
-val* var15 /* : MBottomType */;
-val* var16 /* : Model */;
-val* var17 /* : MType */;
-short int var18 /* : Bool */;
-short int var20 /* : Bool */;
-short int var21 /* : Bool */;
-short int var22 /* : Bool */;
-int cltype23;
-int idtype24;
-short int var_ /* var : Bool */;
-val* var25 /* : MClass */;
-val* var27 /* : MClass */;
-val* var28 /* : MClassKind */;
-val* var30 /* : MClassKind */;
-val* var31 /* : Sys */;
-val* var32 /* : MClassKind */;
-short int var33 /* : Bool */;
-short int var35 /* : Bool */;
-short int var37 /* : Bool */;
-val* var38 /* : MClass */;
-val* var40 /* : MClass */;
-val* var41 /* : MClassKind */;
-val* var43 /* : MClassKind */;
-val* var44 /* : Sys */;
-val* var45 /* : MClassKind */;
-short int var46 /* : Bool */;
-short int var48 /* : Bool */;
-short int var50 /* : Bool */;
-var_mmodule = p0;
-var_resolved_receiver = p1;
-{
-var1 = ((short int(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_resolved_receiver); /* need_anchor on <var_resolved_receiver:MType>*/
-}
-var2 = !var1;
-if (unlikely(!var2)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1407);
-fatal_exit(1);
-}
-{
-var3 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nitc__model__MType__undecorate]))(var_resolved_receiver); /* undecorate on <var_resolved_receiver:MType>*/
-}
-var_resolved_receiver = var3;
-/* <var_resolved_receiver:MType> isa MClassType */
-cltype = type_nitc__MClassType.color;
-idtype = type_nitc__MClassType.id;
-if(cltype >= var_resolved_receiver->type->table_size) {
-var4 = 0;
-} else {
-var4 = var_resolved_receiver->type->type_table[cltype] == idtype;
-}
-if (unlikely(!var4)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1409);
-fatal_exit(1);
-}
-{
-var5 = nitc___nitc__MVirtualType___lookup_single_definition(self, var_mmodule, var_resolved_receiver);
-}
-var_prop = var5;
-{
-{ /* Inline model#MVirtualTypeDef#bound (var_prop) on <var_prop:MVirtualTypeDef> */
-var8 = var_prop->attrs[COLOR_nitc__model__MVirtualTypeDef___bound].val; /* _bound on <var_prop:MVirtualTypeDef> */
-var6 = var8;
-RET_LABEL7:(void)0;
-}
-}
-var_res = var6;
-if (var_res == NULL) {
-var9 = 1; /* is null */
-} else {
-var9 = 0; /* arg is null but recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#== (var_res,((val*)NULL)) on <var_res:nullable MType> */
-var_other = ((val*)NULL);
-{
-{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MType(MType)> */
-var14 = var_res == var_other;
-var12 = var14;
-goto RET_LABEL13;
-RET_LABEL13:(void)0;
-}
-}
-var10 = var12;
-goto RET_LABEL11;
-RET_LABEL11:(void)0;
-}
-var9 = var10;
-}
-if (var9){
-var15 = NEW_nitc__MBottomType(&type_nitc__MBottomType);
-{
-var16 = nitc___nitc__MVirtualType___nitc__model_base__MEntity__model(self);
-}
-{
-((void(*)(val* self, val* p0))(var15->class->vft[COLOR_nitc__model__MBottomType__model_61d]))(var15, var16); /* model= on <var15:MBottomType>*/
-}
-{
-((void(*)(val* self))(var15->class->vft[COLOR_core__kernel__Object__init]))(var15); /* init on <var15:MBottomType>*/
-}
-var = var15;
-goto RET_LABEL;
-} else {
-}
-{
-var17 = ((val*(*)(val* self, val* p0, val* p1))(var_res->class->vft[COLOR_nitc__model__MType__lookup_fixed]))(var_res, var_mmodule, var_resolved_receiver); /* lookup_fixed on <var_res:nullable MType(MType)>*/
-}
-var_res = var17;
-{
-{ /* Inline model#MVirtualTypeDef#is_fixed (var_prop) on <var_prop:MVirtualTypeDef> */
-var20 = var_prop->attrs[COLOR_nitc__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <var_prop:MVirtualTypeDef> */
-var18 = var20;
-RET_LABEL19:(void)0;
-}
-}
-if (var18){
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-/* <var_res:nullable MType(MType)> isa MClassType */
-cltype23 = type_nitc__MClassType.color;
-idtype24 = type_nitc__MClassType.id;
-if(cltype23 >= var_res->type->table_size) {
-var22 = 0;
-} else {
-var22 = var_res->type->type_table[cltype23] == idtype24;
-}
-var_ = var22;
-if (var22){
-{
-{ /* Inline model#MClassType#mclass (var_res) on <var_res:nullable MType(MClassType)> */
-var27 = var_res->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_res:nullable MType(MClassType)> */
-if (unlikely(var27 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
-fatal_exit(1);
-}
-var25 = var27;
-RET_LABEL26:(void)0;
-}
-}
-{
-{ /* Inline model#MClass#kind (var25) on <var25:MClass> */
-var30 = var25->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var25:MClass> */
-if (unlikely(var30 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 459);
-fatal_exit(1);
-}
-var28 = var30;
-RET_LABEL29:(void)0;
-}
-}
-var31 = glob_sys;
-{
-var32 = nitc__model___core__Sys___enum_kind(var31);
-}
-{
-{ /* Inline kernel#Object#== (var28,var32) on <var28:MClassKind> */
-var_other = var32;
-{
-{ /* Inline kernel#Object#is_same_instance (var28,var_other) on <var28:MClassKind> */
-var37 = var28 == var_other;
-var35 = var37;
-goto RET_LABEL36;
-RET_LABEL36:(void)0;
-}
-}
-var33 = var35;
-goto RET_LABEL34;
-RET_LABEL34:(void)0;
-}
-}
-var21 = var33;
-} else {
-var21 = var_;
-}
-if (var21){
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-{
-{ /* Inline model#MClassType#mclass (var_resolved_receiver) on <var_resolved_receiver:MType(MClassType)> */
-var40 = var_resolved_receiver->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:MType(MClassType)> */
-if (unlikely(var40 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
-fatal_exit(1);
-}
-var38 = var40;
-RET_LABEL39:(void)0;
-}
-}
-{
-{ /* Inline model#MClass#kind (var38) on <var38:MClass> */
-var43 = var38->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var38:MClass> */
-if (unlikely(var43 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 459);
-fatal_exit(1);
-}
-var41 = var43;
-RET_LABEL42:(void)0;
-}
-}
-var44 = glob_sys;
-{
-var45 = nitc__model___core__Sys___enum_kind(var44);
-}
-{
-{ /* Inline kernel#Object#== (var41,var45) on <var41:MClassKind> */
-var_other = var45;
-{
-{ /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:MClassKind> */
-var50 = var41 == var_other;
-var48 = var50;
-goto RET_LABEL49;
-RET_LABEL49:(void)0;
-}
-}
-var46 = var48;
-goto RET_LABEL47;
-RET_LABEL47:(void)0;
-}
-}
-if (var46){
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-var = self;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule, Bool): MType */
-val* nitc___nitc__MVirtualType___MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-short int var5 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var7 /* : Bool */;
-short int var8 /* : Bool */;
-val* var9 /* : MType */;
-val* var_resolved_receiver /* var resolved_receiver: nullable Object */;
-val* var10 /* : MType */;
-val* var_verbatim_bound /* var verbatim_bound: MType */;
-val* var11 /* : MType */;
-val* var_res /* var res: MType */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-var1 = !var_cleanup_virtual;
-if (var1){
-var = self;
-goto RET_LABEL;
-} else {
-}
-{
-var2 = nitc___nitc__MVirtualType___MType__can_resolve_for(self, var_mtype, var_anchor, var_mmodule);
-}
-if (unlikely(!var2)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1433);
-fatal_exit(1);
-}
-{
-var3 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
-}
-if (var3){
-if (var_anchor == NULL) {
-var4 = 0; /* is null */
-} else {
-var4 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
-var_other = ((val*)NULL);
-{
-var7 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on <var_anchor:nullable MClassType(MClassType)>*/
-}
-var8 = !var7;
-var5 = var8;
-goto RET_LABEL6;
-RET_LABEL6:(void)0;
-}
-var4 = var5;
-}
-if (unlikely(!var4)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1440);
-fatal_exit(1);
-}
-{
-var9 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_mtype, var_anchor, ((val*)NULL), var_mmodule, 1); /* resolve_for on <var_mtype:MType>*/
-}
-var_resolved_receiver = var9;
-} else {
-var_resolved_receiver = var_mtype;
-}
-{
-var10 = nitc___nitc__MVirtualType___MType__lookup_bound(self, var_mmodule, var_resolved_receiver);
-}
-var_verbatim_bound = var10;
-{
-var11 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_verbatim_bound->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_verbatim_bound, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on <var_verbatim_bound:MType>*/
-}
-var_res = var11;
-var = var_res;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#can_resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule): Bool */
-short int nitc___nitc__MVirtualType___MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-val* var7 /* : MType */;
-val* var8 /* : MVirtualTypeProp */;
-val* var10 /* : MVirtualTypeProp */;
-short int var11 /* : Bool */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-{
-var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
-}
-if (var1){
-if (var_anchor == NULL) {
-var2 = 0; /* is null */
-} else {
-var2 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
-var_other = ((val*)NULL);
-{
-var5 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on <var_anchor:nullable MClassType(MClassType)>*/
-}
-var6 = !var5;
-var3 = var6;
-goto RET_LABEL4;
-RET_LABEL4:(void)0;
-}
-var2 = var3;
-}
-if (unlikely(!var2)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1456);
-fatal_exit(1);
-}
-{
-var7 = ((val*(*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nitc__model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor); /* anchor_to on <var_mtype:MType>*/
-}
-var_mtype = var7;
-} else {
-}
-{
-{ /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
-var10 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
-if (unlikely(var10 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1369);
-fatal_exit(1);
-}
-var8 = var10;
-RET_LABEL9:(void)0;
-}
-}
-{
-var11 = nitc___nitc__MType___has_mproperty(var_mtype, var_mmodule, var8);
-}
-var = var11;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#to_s for (self: MVirtualType): String */
-val* nitc___nitc__MVirtualType___core__abstract_text__Object__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : MVirtualTypeProp */;
-val* var3 /* : MVirtualTypeProp */;
-val* var4 /* : String */;
-{
-{ /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
-var3 = self->attrs[COLOR_nitc__model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1369);
-fatal_exit(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = nitc___nitc__MProperty___core__abstract_text__Object__to_s(var1);
-}
-var = var4;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}