ordered_tree: make OrderedTree a subclass of Collection and implements missing methods
[nit.git] / c_src / nitg.classes.11.c
index c7aaea3..92c3a52 100644 (file)
@@ -5,6 +5,7 @@ const struct class class_toolcontext__ToolContext = {
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to toolcontext:ToolContext:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to toolcontext:ToolContext:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to toolcontext:ToolContext:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to toolcontext:ToolContext:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to toolcontext:ToolContext:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to toolcontext:ToolContext:kernel#Object#output */
@@ -12,16 +13,17 @@ const struct class class_toolcontext__ToolContext = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to toolcontext:ToolContext:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to toolcontext:ToolContext:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to toolcontext:ToolContext:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to toolcontext:ToolContext:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to toolcontext:ToolContext:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to toolcontext:ToolContext:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to toolcontext:ToolContext:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to toolcontext:ToolContext:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to toolcontext:ToolContext:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to toolcontext:ToolContext:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to toolcontext:ToolContext:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to toolcontext:ToolContext:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to toolcontext:ToolContext:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to toolcontext:ToolContext:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to toolcontext:ToolContext:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to toolcontext:ToolContext:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to toolcontext:ToolContext:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to toolcontext:ToolContext:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to toolcontext:ToolContext:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to toolcontext:ToolContext:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to toolcontext:ToolContext:time#Object#get_time */
@@ -44,6 +46,14 @@ const struct class class_toolcontext__ToolContext = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to toolcontext:ToolContext:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to toolcontext:ToolContext:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to toolcontext:ToolContext:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to toolcontext:ToolContext:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to toolcontext:ToolContext:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to toolcontext:ToolContext:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to toolcontext:ToolContext:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to toolcontext:ToolContext:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to toolcontext:ToolContext:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to toolcontext:ToolContext:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to toolcontext:ToolContext:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_toolcontext__ToolContext__error_count, /* pointer to toolcontext:ToolContext:toolcontext#ToolContext#error_count */
 (nitmethod_t)VIRTUAL_toolcontext__ToolContext__error_count_61d, /* pointer to toolcontext:ToolContext:toolcontext#ToolContext#error_count= */
 (nitmethod_t)VIRTUAL_toolcontext__ToolContext__warning_count, /* pointer to toolcontext:ToolContext:toolcontext#ToolContext#warning_count */
@@ -101,6 +111,8 @@ const struct class class_toolcontext__ToolContext = {
 (nitmethod_t)VIRTUAL_scope__ToolContext__scope_phase_61d, /* pointer to toolcontext:ToolContext:scope#ToolContext#scope_phase= */
 (nitmethod_t)VIRTUAL_flow__ToolContext__flow_phase, /* pointer to toolcontext:ToolContext:flow#ToolContext#flow_phase */
 (nitmethod_t)VIRTUAL_flow__ToolContext__flow_phase_61d, /* pointer to toolcontext:ToolContext:flow#ToolContext#flow_phase= */
+(nitmethod_t)VIRTUAL_serialization_phase__ToolContext__serialization_phase, /* pointer to toolcontext:ToolContext:serialization_phase#ToolContext#serialization_phase */
+(nitmethod_t)VIRTUAL_serialization_phase__ToolContext__serialization_phase_61d, /* pointer to toolcontext:ToolContext:serialization_phase#ToolContext#serialization_phase= */
 (nitmethod_t)VIRTUAL_local_var_init__ToolContext__local_var_init_phase, /* pointer to toolcontext:ToolContext:local_var_init#ToolContext#local_var_init_phase */
 (nitmethod_t)VIRTUAL_local_var_init__ToolContext__local_var_init_phase_61d, /* pointer to toolcontext:ToolContext:local_var_init#ToolContext#local_var_init_phase= */
 (nitmethod_t)VIRTUAL_modelbuilder__ToolContext__opt_path, /* pointer to toolcontext:ToolContext:modelbuilder#ToolContext#opt_path */
@@ -112,12 +124,16 @@ const struct class class_toolcontext__ToolContext = {
 (nitmethod_t)VIRTUAL_modelbuilder__ToolContext__modelbuilder, /* pointer to toolcontext:ToolContext:modelbuilder#ToolContext#modelbuilder */
 (nitmethod_t)VIRTUAL_modelbuilder__ToolContext__modelbuilder_real, /* pointer to toolcontext:ToolContext:modelbuilder#ToolContext#modelbuilder_real */
 (nitmethod_t)VIRTUAL_modelbuilder__ToolContext__modelbuilder_real_61d, /* pointer to toolcontext:ToolContext:modelbuilder#ToolContext#modelbuilder_real= */
+(nitmethod_t)VIRTUAL_modelbuilder__ToolContext__run_global_phases, /* pointer to toolcontext:ToolContext:modelbuilder#ToolContext#run_global_phases */
 (nitmethod_t)VIRTUAL_modelize_class__ToolContext__modelize_class_phase, /* pointer to toolcontext:ToolContext:modelize_class#ToolContext#modelize_class_phase */
 (nitmethod_t)VIRTUAL_modelize_class__ToolContext__modelize_class_phase_61d, /* pointer to toolcontext:ToolContext:modelize_class#ToolContext#modelize_class_phase= */
 (nitmethod_t)VIRTUAL_modelize_property__ToolContext__modelize_property_phase, /* pointer to toolcontext:ToolContext:modelize_property#ToolContext#modelize_property_phase */
 (nitmethod_t)VIRTUAL_modelize_property__ToolContext__modelize_property_phase_61d, /* pointer to toolcontext:ToolContext:modelize_property#ToolContext#modelize_property_phase= */
 (nitmethod_t)VIRTUAL_cached__ToolContext__cached_phase, /* pointer to toolcontext:ToolContext:cached#ToolContext#cached_phase */
 (nitmethod_t)VIRTUAL_cached__ToolContext__cached_phase_61d, /* pointer to toolcontext:ToolContext:cached#ToolContext#cached_phase= */
+(nitmethod_t)VIRTUAL_platform__ToolContext__platform_phase, /* pointer to toolcontext:ToolContext:platform#ToolContext#platform_phase */
+(nitmethod_t)VIRTUAL_platform__ToolContext__platform_phase_61d, /* pointer to toolcontext:ToolContext:platform#ToolContext#platform_phase= */
+(nitmethod_t)VIRTUAL_android_platform__ToolContext__platform_from_name, /* pointer to toolcontext:ToolContext:android_platform#ToolContext#platform_from_name */
 (nitmethod_t)VIRTUAL_typing__ToolContext__typing_phase, /* pointer to toolcontext:ToolContext:typing#ToolContext#typing_phase */
 (nitmethod_t)VIRTUAL_typing__ToolContext__typing_phase_61d, /* pointer to toolcontext:ToolContext:typing#ToolContext#typing_phase= */
 (nitmethod_t)VIRTUAL_auto_super_init__ToolContext__auto_super_init_phase, /* pointer to toolcontext:ToolContext:auto_super_init#ToolContext#auto_super_init_phase */
@@ -126,10 +142,23 @@ const struct class class_toolcontext__ToolContext = {
 (nitmethod_t)VIRTUAL_div_by_zero__ToolContext__div_by_zero_phase_61d, /* pointer to toolcontext:ToolContext:div_by_zero#ToolContext#div_by_zero_phase= */
 (nitmethod_t)VIRTUAL_transform__ToolContext__transform_phase, /* pointer to toolcontext:ToolContext:transform#ToolContext#transform_phase */
 (nitmethod_t)VIRTUAL_transform__ToolContext__transform_phase_61d, /* pointer to toolcontext:ToolContext:transform#ToolContext#transform_phase= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ToolContext__verify_nitni_callback_phase, /* pointer to toolcontext:ToolContext:nitni_callbacks#ToolContext#verify_nitni_callback_phase */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ToolContext__verify_nitni_callback_phase_61d, /* pointer to toolcontext:ToolContext:nitni_callbacks#ToolContext#verify_nitni_callback_phase= */
 (nitmethod_t)VIRTUAL_frontend__ToolContext__dummy, /* pointer to toolcontext:ToolContext:frontend#ToolContext#dummy */
 (nitmethod_t)VIRTUAL_frontend__ToolContext__dummy_61d, /* pointer to toolcontext:ToolContext:frontend#ToolContext#dummy= */
 (nitmethod_t)VIRTUAL_frontend__ToolContext__do_dummy, /* pointer to toolcontext:ToolContext:frontend#ToolContext#do_dummy */
-(nitmethod_t)VIRTUAL_frontend__ToolContext__run_global_phases, /* pointer to toolcontext:ToolContext:frontend#ToolContext#run_global_phases */
+(nitmethod_t)VIRTUAL_ffi_base__ToolContext__ffi_language_assignation_phase, /* pointer to toolcontext:ToolContext:ffi_base#ToolContext#ffi_language_assignation_phase */
+(nitmethod_t)VIRTUAL_ffi_base__ToolContext__ffi_language_assignation_phase_61d, /* pointer to toolcontext:ToolContext:ffi_base#ToolContext#ffi_language_assignation_phase= */
+(nitmethod_t)VIRTUAL_extern_classes__ToolContext__extern_classes_typing_phase_ast, /* pointer to toolcontext:ToolContext:extern_classes#ToolContext#extern_classes_typing_phase_ast */
+(nitmethod_t)VIRTUAL_extern_classes__ToolContext__extern_classes_typing_phase_ast_61d, /* pointer to toolcontext:ToolContext:extern_classes#ToolContext#extern_classes_typing_phase_ast= */
+(nitmethod_t)VIRTUAL_extern_classes__ToolContext__extern_classes_typing_phase_model, /* pointer to toolcontext:ToolContext:extern_classes#ToolContext#extern_classes_typing_phase_model */
+(nitmethod_t)VIRTUAL_extern_classes__ToolContext__extern_classes_typing_phase_model_61d, /* pointer to toolcontext:ToolContext:extern_classes#ToolContext#extern_classes_typing_phase_model= */
+(nitmethod_t)VIRTUAL_header_dependency__ToolContext__header_dependancy_phase, /* pointer to toolcontext:ToolContext:header_dependency#ToolContext#header_dependancy_phase */
+(nitmethod_t)VIRTUAL_header_dependency__ToolContext__header_dependancy_phase_61d, /* pointer to toolcontext:ToolContext:header_dependency#ToolContext#header_dependancy_phase= */
+(nitmethod_t)VIRTUAL_pkgconfig__ToolContext__pkgconfig_phase, /* pointer to toolcontext:ToolContext:pkgconfig#ToolContext#pkgconfig_phase */
+(nitmethod_t)VIRTUAL_pkgconfig__ToolContext__pkgconfig_phase_61d, /* pointer to toolcontext:ToolContext:pkgconfig#ToolContext#pkgconfig_phase= */
+(nitmethod_t)VIRTUAL_c_compiler_options__ToolContext__c_compiler_options_phase, /* pointer to toolcontext:ToolContext:c_compiler_options#ToolContext#c_compiler_options_phase */
+(nitmethod_t)VIRTUAL_c_compiler_options__ToolContext__c_compiler_options_phase_61d, /* pointer to toolcontext:ToolContext:c_compiler_options#ToolContext#c_compiler_options_phase= */
 (nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_output, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_output */
 (nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_output_61d, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_output= */
 (nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_no_cc, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_no_cc */
@@ -156,6 +185,11 @@ const struct class class_toolcontext__ToolContext = {
 (nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_no_check_other_61d, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_no_check_other= */
 (nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_typing_test_metrics, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_typing_test_metrics */
 (nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_typing_test_metrics_61d, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_typing_test_metrics= */
+(nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_no_stacktrace, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_no_stacktrace */
+(nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_no_stacktrace_61d, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_no_stacktrace= */
+(nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_stacktrace, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_stacktrace */
+(nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__opt_stacktrace_61d, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#opt_stacktrace= */
+(nitmethod_t)VIRTUAL_android_platform__ToolContext__exec_and_check, /* pointer to toolcontext:ToolContext:android_platform#ToolContext#exec_and_check */
 (nitmethod_t)VIRTUAL_separate_compiler__ToolContext__opt_separate, /* pointer to toolcontext:ToolContext:separate_compiler#ToolContext#opt_separate */
 (nitmethod_t)VIRTUAL_separate_compiler__ToolContext__opt_separate_61d, /* pointer to toolcontext:ToolContext:separate_compiler#ToolContext#opt_separate= */
 (nitmethod_t)VIRTUAL_separate_compiler__ToolContext__opt_no_inline_intern, /* pointer to toolcontext:ToolContext:separate_compiler#ToolContext#opt_no_inline_intern */
@@ -182,6 +216,7 @@ const struct class class_toolcontext__ToolContext = {
 (nitmethod_t)VIRTUAL_abstract_compiler__ToolContext__init, /* pointer to toolcontext:ToolContext:abstract_compiler#ToolContext#init */
 (nitmethod_t)VIRTUAL_modelbuilder__ToolContext__init, /* pointer to toolcontext:ToolContext:modelbuilder#ToolContext#init */
 (nitmethod_t)VIRTUAL_toolcontext__ToolContext__init, /* pointer to toolcontext:ToolContext:toolcontext#ToolContext#init */
+(nitmethod_t)VIRTUAL_platform__ToolContext__platform_from_name, /* pointer to toolcontext:ToolContext:platform#ToolContext#platform_from_name */
 }
 };
 /* allocate ToolContext */
@@ -361,438 +396,501 @@ val* var169 /* : Array[Phase] */;
 long var170 /* : Int */;
 val* var_ /* var : Array[Phase] */;
 val* var171 /* : Phase */;
-val* var172 /* : LocalVarInitPhase */;
-val* var173 /* : Array[Phase] */;
-long var174 /* : Int */;
-val* var_175 /* var : Array[Phase] */;
-val* var176 /* : Phase */;
-val* var177 /* : OptionArray */;
-static val* varonce178;
-val* var179 /* : String */;
-char* var180 /* : NativeString */;
-long var181 /* : Int */;
-val* var182 /* : String */;
-static val* varonce183;
+val* var172 /* : SerializationPhase */;
+val* var173 /* : null */;
+val* var174 /* : LocalVarInitPhase */;
+val* var175 /* : Array[Phase] */;
+long var176 /* : Int */;
+val* var_177 /* var : Array[Phase] */;
+val* var178 /* : Phase */;
+val* var179 /* : OptionArray */;
+static val* varonce180;
+val* var181 /* : String */;
+char* var182 /* : NativeString */;
+long var183 /* : Int */;
 val* var184 /* : String */;
-char* var185 /* : NativeString */;
-long var186 /* : Int */;
-val* var187 /* : String */;
-static val* varonce188;
+static val* varonce185;
+val* var186 /* : String */;
+char* var187 /* : NativeString */;
+long var188 /* : Int */;
 val* var189 /* : String */;
-char* var190 /* : NativeString */;
-long var191 /* : Int */;
-val* var192 /* : String */;
-val* var193 /* : Array[String] */;
-long var194 /* : Int */;
-val* var195 /* : NativeArray[String] */;
-val* var196 /* : OptionBool */;
-static val* varonce197;
-val* var198 /* : String */;
-char* var199 /* : NativeString */;
-long var200 /* : Int */;
-val* var201 /* : String */;
-static val* varonce202;
+static val* varonce190;
+val* var191 /* : String */;
+char* var192 /* : NativeString */;
+long var193 /* : Int */;
+val* var194 /* : String */;
+val* var195 /* : Array[String] */;
+long var196 /* : Int */;
+val* var197 /* : NativeArray[String] */;
+val* var198 /* : OptionBool */;
+static val* varonce199;
+val* var200 /* : String */;
+char* var201 /* : NativeString */;
+long var202 /* : Int */;
 val* var203 /* : String */;
-char* var204 /* : NativeString */;
-long var205 /* : Int */;
-val* var206 /* : String */;
-val* var207 /* : Array[String] */;
-long var208 /* : Int */;
-val* var209 /* : NativeArray[String] */;
-val* var210 /* : OptionBool */;
-static val* varonce211;
-val* var212 /* : String */;
-char* var213 /* : NativeString */;
-long var214 /* : Int */;
-val* var215 /* : String */;
-static val* varonce216;
+static val* varonce204;
+val* var205 /* : String */;
+char* var206 /* : NativeString */;
+long var207 /* : Int */;
+val* var208 /* : String */;
+val* var209 /* : Array[String] */;
+long var210 /* : Int */;
+val* var211 /* : NativeArray[String] */;
+val* var212 /* : OptionBool */;
+static val* varonce213;
+val* var214 /* : String */;
+char* var215 /* : NativeString */;
+long var216 /* : Int */;
 val* var217 /* : String */;
-char* var218 /* : NativeString */;
-long var219 /* : Int */;
-val* var220 /* : String */;
-val* var221 /* : Array[String] */;
-long var222 /* : Int */;
-val* var223 /* : NativeArray[String] */;
-val* var224 /* : null */;
-val* var225 /* : ModelizeClassPhase */;
+static val* varonce218;
+val* var219 /* : String */;
+char* var220 /* : NativeString */;
+long var221 /* : Int */;
+val* var222 /* : String */;
+val* var223 /* : Array[String] */;
+long var224 /* : Int */;
+val* var225 /* : NativeArray[String] */;
 val* var226 /* : null */;
-val* var227 /* : ModelizePropertyPhase */;
-val* var228 /* : Array[Phase] */;
-long var229 /* : Int */;
-val* var_230 /* var : Array[Phase] */;
-val* var231 /* : Phase */;
-val* var232 /* : CachedPhase */;
-val* var233 /* : Array[Phase] */;
-long var234 /* : Int */;
-val* var_235 /* var : Array[Phase] */;
-val* var236 /* : Phase */;
-val* var237 /* : TypingPhase */;
-val* var238 /* : Array[Phase] */;
-long var239 /* : Int */;
-val* var_240 /* var : Array[Phase] */;
-val* var241 /* : Phase */;
-val* var242 /* : Phase */;
+val* var227 /* : ModelizeClassPhase */;
+val* var228 /* : null */;
+val* var229 /* : ModelizePropertyPhase */;
+val* var230 /* : Array[Phase] */;
+long var231 /* : Int */;
+val* var_232 /* var : Array[Phase] */;
+val* var233 /* : Phase */;
+val* var234 /* : CachedPhase */;
+val* var235 /* : Array[Phase] */;
+long var236 /* : Int */;
+val* var_237 /* var : Array[Phase] */;
+val* var238 /* : Phase */;
+val* var239 /* : PlatformPhase */;
+val* var240 /* : Array[Phase] */;
+long var241 /* : Int */;
+val* var_242 /* var : Array[Phase] */;
 val* var243 /* : Phase */;
-val* var244 /* : AutoSuperInitPhase */;
+val* var244 /* : TypingPhase */;
 val* var245 /* : Array[Phase] */;
 long var246 /* : Int */;
 val* var_247 /* var : Array[Phase] */;
 val* var248 /* : Phase */;
-val* var249 /* : DivByZeroPhase */;
-val* var250 /* : Array[Phase] */;
-long var251 /* : Int */;
-val* var_252 /* var : Array[Phase] */;
-val* var253 /* : Phase */;
-val* var254 /* : Phase */;
-val* var255 /* : TransformPhase */;
-val* var256 /* : Array[Phase] */;
-long var257 /* : Int */;
-val* var_258 /* var : Array[Phase] */;
-val* var259 /* : Phase */;
+val* var249 /* : Phase */;
+val* var250 /* : Phase */;
+val* var251 /* : AutoSuperInitPhase */;
+val* var252 /* : Array[Phase] */;
+long var253 /* : Int */;
+val* var_254 /* var : Array[Phase] */;
+val* var255 /* : Phase */;
+val* var256 /* : DivByZeroPhase */;
+val* var257 /* : Array[Phase] */;
+long var258 /* : Int */;
+val* var_259 /* var : Array[Phase] */;
 val* var260 /* : Phase */;
-short int var261 /* : Bool */;
-val* var262 /* : OptionString */;
-static val* varonce263;
-val* var264 /* : String */;
-char* var265 /* : NativeString */;
-long var266 /* : Int */;
-val* var267 /* : String */;
-static val* varonce268;
-val* var269 /* : String */;
-char* var270 /* : NativeString */;
-long var271 /* : Int */;
-val* var272 /* : String */;
-static val* varonce273;
-val* var274 /* : String */;
-char* var275 /* : NativeString */;
-long var276 /* : Int */;
-val* var277 /* : String */;
-val* var278 /* : Array[String] */;
-long var279 /* : Int */;
-val* var280 /* : NativeArray[String] */;
-val* var281 /* : OptionBool */;
-static val* varonce282;
-val* var283 /* : String */;
-char* var284 /* : NativeString */;
-long var285 /* : Int */;
-val* var286 /* : String */;
-static val* varonce287;
-val* var288 /* : String */;
-char* var289 /* : NativeString */;
-long var290 /* : Int */;
-val* var291 /* : String */;
-val* var292 /* : Array[String] */;
-long var293 /* : Int */;
-val* var294 /* : NativeArray[String] */;
-val* var295 /* : OptionArray */;
-static val* varonce296;
-val* var297 /* : String */;
-char* var298 /* : NativeString */;
-long var299 /* : Int */;
-val* var300 /* : String */;
-static val* varonce301;
+val* var261 /* : Phase */;
+val* var262 /* : VerifyNitniCallbacksPhase */;
+val* var263 /* : Array[Phase] */;
+long var264 /* : Int */;
+val* var_265 /* var : Array[Phase] */;
+val* var266 /* : Phase */;
+val* var267 /* : TransformPhase */;
+val* var268 /* : Array[Phase] */;
+long var269 /* : Int */;
+val* var_270 /* var : Array[Phase] */;
+val* var271 /* : Phase */;
+val* var272 /* : Phase */;
+val* var273 /* : FFILanguageAssignationPhase */;
+val* var274 /* : null */;
+val* var275 /* : ExternClassesTypingPhaseAst */;
+val* var276 /* : Array[Phase] */;
+long var277 /* : Int */;
+val* var_278 /* var : Array[Phase] */;
+val* var279 /* : Phase */;
+val* var280 /* : ExternClassesTypingPhaseModel */;
+val* var281 /* : Array[Phase] */;
+long var282 /* : Int */;
+val* var_283 /* var : Array[Phase] */;
+val* var284 /* : Phase */;
+val* var285 /* : Phase */;
+val* var286 /* : HeaderDependancyPhase */;
+val* var287 /* : Array[Phase] */;
+long var288 /* : Int */;
+val* var_289 /* var : Array[Phase] */;
+val* var290 /* : Phase */;
+val* var291 /* : Phase */;
+val* var292 /* : PkgconfigPhase */;
+val* var293 /* : null */;
+short int var294 /* : Bool */;
+val* var295 /* : CCompilerOptionsPhase */;
+val* var296 /* : null */;
+val* var297 /* : OptionString */;
+static val* varonce298;
+val* var299 /* : String */;
+char* var300 /* : NativeString */;
+long var301 /* : Int */;
 val* var302 /* : String */;
-char* var303 /* : NativeString */;
-long var304 /* : Int */;
-val* var305 /* : String */;
-val* var306 /* : Array[String] */;
-long var307 /* : Int */;
-val* var308 /* : NativeArray[String] */;
-val* var309 /* : OptionString */;
-static val* varonce310;
-val* var311 /* : String */;
-char* var312 /* : NativeString */;
-long var313 /* : Int */;
-val* var314 /* : String */;
-static val* varonce315;
-val* var316 /* : String */;
-char* var317 /* : NativeString */;
-long var318 /* : Int */;
-val* var319 /* : String */;
-val* var320 /* : Array[String] */;
-long var321 /* : Int */;
-val* var322 /* : NativeArray[String] */;
-val* var323 /* : OptionString */;
-static val* varonce324;
-val* var325 /* : String */;
-char* var326 /* : NativeString */;
-long var327 /* : Int */;
-val* var328 /* : String */;
-static val* varonce329;
-val* var330 /* : String */;
-char* var331 /* : NativeString */;
-long var332 /* : Int */;
-val* var333 /* : String */;
-val* var334 /* : Array[String] */;
-long var335 /* : Int */;
-val* var336 /* : NativeArray[String] */;
-val* var337 /* : OptionBool */;
-static val* varonce338;
-val* var339 /* : String */;
-char* var340 /* : NativeString */;
-long var341 /* : Int */;
-val* var342 /* : String */;
-static val* varonce343;
-val* var344 /* : String */;
-char* var345 /* : NativeString */;
-long var346 /* : Int */;
-val* var347 /* : String */;
-val* var348 /* : Array[String] */;
-long var349 /* : Int */;
-val* var350 /* : NativeArray[String] */;
-val* var351 /* : OptionBool */;
-static val* varonce352;
-val* var353 /* : String */;
-char* var354 /* : NativeString */;
-long var355 /* : Int */;
-val* var356 /* : String */;
-static val* varonce357;
-val* var358 /* : String */;
-char* var359 /* : NativeString */;
-long var360 /* : Int */;
-val* var361 /* : String */;
-val* var362 /* : Array[String] */;
-long var363 /* : Int */;
-val* var364 /* : NativeArray[String] */;
-val* var365 /* : OptionBool */;
-static val* varonce366;
-val* var367 /* : String */;
-char* var368 /* : NativeString */;
-long var369 /* : Int */;
-val* var370 /* : String */;
-static val* varonce371;
-val* var372 /* : String */;
-char* var373 /* : NativeString */;
-long var374 /* : Int */;
-val* var375 /* : String */;
-val* var376 /* : Array[String] */;
-long var377 /* : Int */;
-val* var378 /* : NativeArray[String] */;
-val* var379 /* : OptionBool */;
-static val* varonce380;
-val* var381 /* : String */;
-char* var382 /* : NativeString */;
-long var383 /* : Int */;
-val* var384 /* : String */;
-static val* varonce385;
-val* var386 /* : String */;
-char* var387 /* : NativeString */;
-long var388 /* : Int */;
-val* var389 /* : String */;
-val* var390 /* : Array[String] */;
-long var391 /* : Int */;
-val* var392 /* : NativeArray[String] */;
-val* var393 /* : OptionBool */;
-static val* varonce394;
-val* var395 /* : String */;
-char* var396 /* : NativeString */;
-long var397 /* : Int */;
-val* var398 /* : String */;
-static val* varonce399;
-val* var400 /* : String */;
-char* var401 /* : NativeString */;
-long var402 /* : Int */;
-val* var403 /* : String */;
-val* var404 /* : Array[String] */;
-long var405 /* : Int */;
-val* var406 /* : NativeArray[String] */;
-val* var407 /* : OptionBool */;
-static val* varonce408;
-val* var409 /* : String */;
-char* var410 /* : NativeString */;
-long var411 /* : Int */;
-val* var412 /* : String */;
-static val* varonce413;
-val* var414 /* : String */;
-char* var415 /* : NativeString */;
-long var416 /* : Int */;
-val* var417 /* : String */;
-val* var418 /* : Array[String] */;
-long var419 /* : Int */;
-val* var420 /* : NativeArray[String] */;
-val* var421 /* : OptionBool */;
-static val* varonce422;
-val* var423 /* : String */;
-char* var424 /* : NativeString */;
-long var425 /* : Int */;
-val* var426 /* : String */;
-static val* varonce427;
-val* var428 /* : String */;
-char* var429 /* : NativeString */;
-long var430 /* : Int */;
-val* var431 /* : String */;
-val* var432 /* : Array[String] */;
-long var433 /* : Int */;
-val* var434 /* : NativeArray[String] */;
-val* var435 /* : OptionBool */;
-static val* varonce436;
-val* var437 /* : String */;
-char* var438 /* : NativeString */;
-long var439 /* : Int */;
-val* var440 /* : String */;
-static val* varonce441;
-val* var442 /* : String */;
-char* var443 /* : NativeString */;
-long var444 /* : Int */;
-val* var445 /* : String */;
-val* var446 /* : Array[String] */;
-long var447 /* : Int */;
-val* var448 /* : NativeArray[String] */;
-val* var449 /* : OptionBool */;
-static val* varonce450;
-val* var451 /* : String */;
-char* var452 /* : NativeString */;
-long var453 /* : Int */;
-val* var454 /* : String */;
-static val* varonce455;
-val* var456 /* : String */;
-char* var457 /* : NativeString */;
-long var458 /* : Int */;
-val* var459 /* : String */;
-val* var460 /* : Array[String] */;
-long var461 /* : Int */;
-val* var462 /* : NativeArray[String] */;
-val* var463 /* : OptionBool */;
-static val* varonce464;
-val* var465 /* : String */;
-char* var466 /* : NativeString */;
-long var467 /* : Int */;
-val* var468 /* : String */;
-static val* varonce469;
-val* var470 /* : String */;
-char* var471 /* : NativeString */;
-long var472 /* : Int */;
-val* var473 /* : String */;
-val* var474 /* : Array[String] */;
-long var475 /* : Int */;
-val* var476 /* : NativeArray[String] */;
-val* var477 /* : OptionBool */;
-static val* varonce478;
-val* var479 /* : String */;
-char* var480 /* : NativeString */;
-long var481 /* : Int */;
-val* var482 /* : String */;
-static val* varonce483;
-val* var484 /* : String */;
-char* var485 /* : NativeString */;
-long var486 /* : Int */;
-val* var487 /* : String */;
-val* var488 /* : Array[String] */;
-long var489 /* : Int */;
-val* var490 /* : NativeArray[String] */;
-val* var491 /* : OptionBool */;
-static val* varonce492;
-val* var493 /* : String */;
-char* var494 /* : NativeString */;
-long var495 /* : Int */;
-val* var496 /* : String */;
-static val* varonce497;
-val* var498 /* : String */;
-char* var499 /* : NativeString */;
-long var500 /* : Int */;
-val* var501 /* : String */;
-val* var502 /* : Array[String] */;
-long var503 /* : Int */;
-val* var504 /* : NativeArray[String] */;
-val* var505 /* : OptionBool */;
-static val* varonce506;
-val* var507 /* : String */;
-char* var508 /* : NativeString */;
-long var509 /* : Int */;
-val* var510 /* : String */;
-static val* varonce511;
-val* var512 /* : String */;
-char* var513 /* : NativeString */;
-long var514 /* : Int */;
-val* var515 /* : String */;
-val* var516 /* : Array[String] */;
-long var517 /* : Int */;
-val* var518 /* : NativeArray[String] */;
-val* var519 /* : OptionBool */;
-static val* varonce520;
-val* var521 /* : String */;
-char* var522 /* : NativeString */;
-long var523 /* : Int */;
-val* var524 /* : String */;
-static val* varonce525;
-val* var526 /* : String */;
-char* var527 /* : NativeString */;
-long var528 /* : Int */;
-val* var529 /* : String */;
-val* var530 /* : Array[String] */;
-long var531 /* : Int */;
-val* var532 /* : NativeArray[String] */;
-val* var533 /* : OptionBool */;
-static val* varonce534;
-val* var535 /* : String */;
-char* var536 /* : NativeString */;
-long var537 /* : Int */;
-val* var538 /* : String */;
-static val* varonce539;
-val* var540 /* : String */;
-char* var541 /* : NativeString */;
-long var542 /* : Int */;
-val* var543 /* : String */;
-val* var544 /* : Array[String] */;
-long var545 /* : Int */;
-val* var546 /* : NativeArray[String] */;
-val* var547 /* : OptionBool */;
-static val* varonce548;
-val* var549 /* : String */;
-char* var550 /* : NativeString */;
-long var551 /* : Int */;
-val* var552 /* : String */;
-static val* varonce553;
-val* var554 /* : String */;
-char* var555 /* : NativeString */;
-long var556 /* : Int */;
-val* var557 /* : String */;
-val* var558 /* : Array[String] */;
-long var559 /* : Int */;
-val* var560 /* : NativeArray[String] */;
-val* var561 /* : OptionBool */;
-static val* varonce562;
-val* var563 /* : String */;
-char* var564 /* : NativeString */;
-long var565 /* : Int */;
-val* var566 /* : String */;
-static val* varonce567;
-val* var568 /* : String */;
-char* var569 /* : NativeString */;
-long var570 /* : Int */;
-val* var571 /* : String */;
-val* var572 /* : Array[String] */;
-long var573 /* : Int */;
-val* var574 /* : NativeArray[String] */;
-val* var575 /* : OptionBool */;
-static val* varonce576;
-val* var577 /* : String */;
-char* var578 /* : NativeString */;
-long var579 /* : Int */;
-val* var580 /* : String */;
-static val* varonce581;
-val* var582 /* : String */;
-char* var583 /* : NativeString */;
-long var584 /* : Int */;
-val* var585 /* : String */;
-val* var586 /* : Array[String] */;
-long var587 /* : Int */;
-val* var588 /* : NativeArray[String] */;
-val* var589 /* : OptionBool */;
-static val* varonce590;
-val* var591 /* : String */;
-char* var592 /* : NativeString */;
-long var593 /* : Int */;
-val* var594 /* : String */;
-static val* varonce595;
-val* var596 /* : String */;
-char* var597 /* : NativeString */;
-long var598 /* : Int */;
-val* var599 /* : String */;
-val* var600 /* : Array[String] */;
-long var601 /* : Int */;
-val* var602 /* : NativeArray[String] */;
-self = nit_alloc(sizeof(struct instance) + 58*sizeof(nitattribute_t));
+static val* varonce303;
+val* var304 /* : String */;
+char* var305 /* : NativeString */;
+long var306 /* : Int */;
+val* var307 /* : String */;
+static val* varonce308;
+val* var309 /* : String */;
+char* var310 /* : NativeString */;
+long var311 /* : Int */;
+val* var312 /* : String */;
+val* var313 /* : Array[String] */;
+long var314 /* : Int */;
+val* var315 /* : NativeArray[String] */;
+val* var316 /* : OptionBool */;
+static val* varonce317;
+val* var318 /* : String */;
+char* var319 /* : NativeString */;
+long var320 /* : Int */;
+val* var321 /* : String */;
+static val* varonce322;
+val* var323 /* : String */;
+char* var324 /* : NativeString */;
+long var325 /* : Int */;
+val* var326 /* : String */;
+val* var327 /* : Array[String] */;
+long var328 /* : Int */;
+val* var329 /* : NativeArray[String] */;
+val* var330 /* : OptionArray */;
+static val* varonce331;
+val* var332 /* : String */;
+char* var333 /* : NativeString */;
+long var334 /* : Int */;
+val* var335 /* : String */;
+static val* varonce336;
+val* var337 /* : String */;
+char* var338 /* : NativeString */;
+long var339 /* : Int */;
+val* var340 /* : String */;
+val* var341 /* : Array[String] */;
+long var342 /* : Int */;
+val* var343 /* : NativeArray[String] */;
+val* var344 /* : OptionString */;
+static val* varonce345;
+val* var346 /* : String */;
+char* var347 /* : NativeString */;
+long var348 /* : Int */;
+val* var349 /* : String */;
+static val* varonce350;
+val* var351 /* : String */;
+char* var352 /* : NativeString */;
+long var353 /* : Int */;
+val* var354 /* : String */;
+val* var355 /* : Array[String] */;
+long var356 /* : Int */;
+val* var357 /* : NativeArray[String] */;
+val* var358 /* : OptionString */;
+static val* varonce359;
+val* var360 /* : String */;
+char* var361 /* : NativeString */;
+long var362 /* : Int */;
+val* var363 /* : String */;
+static val* varonce364;
+val* var365 /* : String */;
+char* var366 /* : NativeString */;
+long var367 /* : Int */;
+val* var368 /* : String */;
+val* var369 /* : Array[String] */;
+long var370 /* : Int */;
+val* var371 /* : NativeArray[String] */;
+val* var372 /* : OptionBool */;
+static val* varonce373;
+val* var374 /* : String */;
+char* var375 /* : NativeString */;
+long var376 /* : Int */;
+val* var377 /* : String */;
+static val* varonce378;
+val* var379 /* : String */;
+char* var380 /* : NativeString */;
+long var381 /* : Int */;
+val* var382 /* : String */;
+val* var383 /* : Array[String] */;
+long var384 /* : Int */;
+val* var385 /* : NativeArray[String] */;
+val* var386 /* : OptionBool */;
+static val* varonce387;
+val* var388 /* : String */;
+char* var389 /* : NativeString */;
+long var390 /* : Int */;
+val* var391 /* : String */;
+static val* varonce392;
+val* var393 /* : String */;
+char* var394 /* : NativeString */;
+long var395 /* : Int */;
+val* var396 /* : String */;
+val* var397 /* : Array[String] */;
+long var398 /* : Int */;
+val* var399 /* : NativeArray[String] */;
+val* var400 /* : OptionBool */;
+static val* varonce401;
+val* var402 /* : String */;
+char* var403 /* : NativeString */;
+long var404 /* : Int */;
+val* var405 /* : String */;
+static val* varonce406;
+val* var407 /* : String */;
+char* var408 /* : NativeString */;
+long var409 /* : Int */;
+val* var410 /* : String */;
+val* var411 /* : Array[String] */;
+long var412 /* : Int */;
+val* var413 /* : NativeArray[String] */;
+val* var414 /* : OptionBool */;
+static val* varonce415;
+val* var416 /* : String */;
+char* var417 /* : NativeString */;
+long var418 /* : Int */;
+val* var419 /* : String */;
+static val* varonce420;
+val* var421 /* : String */;
+char* var422 /* : NativeString */;
+long var423 /* : Int */;
+val* var424 /* : String */;
+val* var425 /* : Array[String] */;
+long var426 /* : Int */;
+val* var427 /* : NativeArray[String] */;
+val* var428 /* : OptionBool */;
+static val* varonce429;
+val* var430 /* : String */;
+char* var431 /* : NativeString */;
+long var432 /* : Int */;
+val* var433 /* : String */;
+static val* varonce434;
+val* var435 /* : String */;
+char* var436 /* : NativeString */;
+long var437 /* : Int */;
+val* var438 /* : String */;
+val* var439 /* : Array[String] */;
+long var440 /* : Int */;
+val* var441 /* : NativeArray[String] */;
+val* var442 /* : OptionBool */;
+static val* varonce443;
+val* var444 /* : String */;
+char* var445 /* : NativeString */;
+long var446 /* : Int */;
+val* var447 /* : String */;
+static val* varonce448;
+val* var449 /* : String */;
+char* var450 /* : NativeString */;
+long var451 /* : Int */;
+val* var452 /* : String */;
+val* var453 /* : Array[String] */;
+long var454 /* : Int */;
+val* var455 /* : NativeArray[String] */;
+val* var456 /* : OptionBool */;
+static val* varonce457;
+val* var458 /* : String */;
+char* var459 /* : NativeString */;
+long var460 /* : Int */;
+val* var461 /* : String */;
+static val* varonce462;
+val* var463 /* : String */;
+char* var464 /* : NativeString */;
+long var465 /* : Int */;
+val* var466 /* : String */;
+val* var467 /* : Array[String] */;
+long var468 /* : Int */;
+val* var469 /* : NativeArray[String] */;
+val* var470 /* : OptionBool */;
+static val* varonce471;
+val* var472 /* : String */;
+char* var473 /* : NativeString */;
+long var474 /* : Int */;
+val* var475 /* : String */;
+static val* varonce476;
+val* var477 /* : String */;
+char* var478 /* : NativeString */;
+long var479 /* : Int */;
+val* var480 /* : String */;
+val* var481 /* : Array[String] */;
+long var482 /* : Int */;
+val* var483 /* : NativeArray[String] */;
+val* var484 /* : OptionBool */;
+static val* varonce485;
+val* var486 /* : String */;
+char* var487 /* : NativeString */;
+long var488 /* : Int */;
+val* var489 /* : String */;
+static val* varonce490;
+val* var491 /* : String */;
+char* var492 /* : NativeString */;
+long var493 /* : Int */;
+val* var494 /* : String */;
+val* var495 /* : Array[String] */;
+long var496 /* : Int */;
+val* var497 /* : NativeArray[String] */;
+val* var498 /* : OptionBool */;
+static val* varonce499;
+val* var500 /* : String */;
+char* var501 /* : NativeString */;
+long var502 /* : Int */;
+val* var503 /* : String */;
+static val* varonce504;
+val* var505 /* : String */;
+char* var506 /* : NativeString */;
+long var507 /* : Int */;
+val* var508 /* : String */;
+val* var509 /* : Array[String] */;
+long var510 /* : Int */;
+val* var511 /* : NativeArray[String] */;
+val* var512 /* : OptionBool */;
+static val* varonce513;
+val* var514 /* : String */;
+char* var515 /* : NativeString */;
+long var516 /* : Int */;
+val* var517 /* : String */;
+static val* varonce518;
+val* var519 /* : String */;
+char* var520 /* : NativeString */;
+long var521 /* : Int */;
+val* var522 /* : String */;
+val* var523 /* : Array[String] */;
+long var524 /* : Int */;
+val* var525 /* : NativeArray[String] */;
+val* var526 /* : OptionBool */;
+static val* varonce527;
+val* var528 /* : String */;
+char* var529 /* : NativeString */;
+long var530 /* : Int */;
+val* var531 /* : String */;
+static val* varonce532;
+val* var533 /* : String */;
+char* var534 /* : NativeString */;
+long var535 /* : Int */;
+val* var536 /* : String */;
+val* var537 /* : Array[String] */;
+long var538 /* : Int */;
+val* var539 /* : NativeArray[String] */;
+val* var540 /* : OptionBool */;
+static val* varonce541;
+val* var542 /* : String */;
+char* var543 /* : NativeString */;
+long var544 /* : Int */;
+val* var545 /* : String */;
+static val* varonce546;
+val* var547 /* : String */;
+char* var548 /* : NativeString */;
+long var549 /* : Int */;
+val* var550 /* : String */;
+val* var551 /* : Array[String] */;
+long var552 /* : Int */;
+val* var553 /* : NativeArray[String] */;
+val* var554 /* : OptionBool */;
+static val* varonce555;
+val* var556 /* : String */;
+char* var557 /* : NativeString */;
+long var558 /* : Int */;
+val* var559 /* : String */;
+static val* varonce560;
+val* var561 /* : String */;
+char* var562 /* : NativeString */;
+long var563 /* : Int */;
+val* var564 /* : String */;
+val* var565 /* : Array[String] */;
+long var566 /* : Int */;
+val* var567 /* : NativeArray[String] */;
+val* var568 /* : OptionBool */;
+static val* varonce569;
+val* var570 /* : String */;
+char* var571 /* : NativeString */;
+long var572 /* : Int */;
+val* var573 /* : String */;
+static val* varonce574;
+val* var575 /* : String */;
+char* var576 /* : NativeString */;
+long var577 /* : Int */;
+val* var578 /* : String */;
+val* var579 /* : Array[String] */;
+long var580 /* : Int */;
+val* var581 /* : NativeArray[String] */;
+val* var582 /* : OptionBool */;
+static val* varonce583;
+val* var584 /* : String */;
+char* var585 /* : NativeString */;
+long var586 /* : Int */;
+val* var587 /* : String */;
+static val* varonce588;
+val* var589 /* : String */;
+char* var590 /* : NativeString */;
+long var591 /* : Int */;
+val* var592 /* : String */;
+val* var593 /* : Array[String] */;
+long var594 /* : Int */;
+val* var595 /* : NativeArray[String] */;
+val* var596 /* : OptionBool */;
+static val* varonce597;
+val* var598 /* : String */;
+char* var599 /* : NativeString */;
+long var600 /* : Int */;
+val* var601 /* : String */;
+static val* varonce602;
+val* var603 /* : String */;
+char* var604 /* : NativeString */;
+long var605 /* : Int */;
+val* var606 /* : String */;
+val* var607 /* : Array[String] */;
+long var608 /* : Int */;
+val* var609 /* : NativeArray[String] */;
+val* var610 /* : OptionBool */;
+static val* varonce611;
+val* var612 /* : String */;
+char* var613 /* : NativeString */;
+long var614 /* : Int */;
+val* var615 /* : String */;
+static val* varonce616;
+val* var617 /* : String */;
+char* var618 /* : NativeString */;
+long var619 /* : Int */;
+val* var620 /* : String */;
+val* var621 /* : Array[String] */;
+long var622 /* : Int */;
+val* var623 /* : NativeArray[String] */;
+val* var624 /* : OptionBool */;
+static val* varonce625;
+val* var626 /* : String */;
+char* var627 /* : NativeString */;
+long var628 /* : Int */;
+val* var629 /* : String */;
+static val* varonce630;
+val* var631 /* : String */;
+char* var632 /* : NativeString */;
+long var633 /* : Int */;
+val* var634 /* : String */;
+val* var635 /* : Array[String] */;
+long var636 /* : Int */;
+val* var637 /* : NativeArray[String] */;
+val* var638 /* : OptionBool */;
+static val* varonce639;
+val* var640 /* : String */;
+char* var641 /* : NativeString */;
+long var642 /* : Int */;
+val* var643 /* : String */;
+static val* varonce644;
+val* var645 /* : String */;
+char* var646 /* : NativeString */;
+long var647 /* : Int */;
+val* var648 /* : String */;
+val* var649 /* : Array[String] */;
+long var650 /* : Int */;
+val* var651 /* : NativeArray[String] */;
+val* var652 /* : OptionBool */;
+static val* varonce653;
+val* var654 /* : String */;
+char* var655 /* : NativeString */;
+long var656 /* : Int */;
+val* var657 /* : String */;
+static val* varonce658;
+val* var659 /* : String */;
+char* var660 /* : NativeString */;
+long var661 /* : Int */;
+val* var662 /* : String */;
+val* var663 /* : Array[String] */;
+long var664 /* : Int */;
+val* var665 /* : NativeArray[String] */;
+self = nit_alloc(sizeof(struct instance) + 69*sizeof(nitattribute_t));
 self->type = type;
 self->class = &class_toolcontext__ToolContext;
 var = 0;
@@ -811,15 +909,12 @@ varonce = var2;
 self->attrs[COLOR_toolcontext__ToolContext___64dlog_directory].val = var2; /* @log_directory on <self:ToolContext exact> */
 var6 = NEW_array__Array(&type_array__Arraytoolcontext__Message);
 ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on <var6:Array[Message]>*/;
-CHECK_NEW_array__Array(var6);
 self->attrs[COLOR_toolcontext__ToolContext___64dmessages].val = var6; /* @messages on <self:ToolContext exact> */
 var7 = NEW_sorter__ComparableSorter(&type_sorter__ComparableSortertoolcontext__Message);
 ((void (*)(val*))(var7->class->vft[COLOR_sorter__ComparableSorter__init]))(var7) /* init on <var7:ComparableSorter[Message]>*/;
-CHECK_NEW_sorter__ComparableSorter(var7);
 self->attrs[COLOR_toolcontext__ToolContext___64dmessage_sorter].val = var7; /* @message_sorter on <self:ToolContext exact> */
 var8 = NEW_opts__OptionContext(&type_opts__OptionContext);
 ((void (*)(val*))(var8->class->vft[COLOR_opts__OptionContext__init]))(var8) /* init on <var8:OptionContext>*/;
-CHECK_NEW_opts__OptionContext(var8);
 self->attrs[COLOR_toolcontext__ToolContext___64doption_context].val = var8; /* @option_context on <self:ToolContext exact> */
 var9 = NEW_opts__OptionCount(&type_opts__OptionCount);
 if (varonce10) {
@@ -856,10 +951,8 @@ var27 = NEW_array__NativeArray(var26, &type_array__NativeArraystring__String);
 ((struct instance_array__NativeArray*)var27)->values[0] = (val*) var16;
 ((struct instance_array__NativeArray*)var27)->values[1] = (val*) var21;
 ((void (*)(val*, val*, long))(var25->class->vft[COLOR_array__Array__with_native]))(var25, var27, var26) /* with_native on <var25:Array[String]>*/;
-CHECK_NEW_array__Array(var25);
 }
 ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_opts__OptionCount__init]))(var9, var11, var25) /* init on <var9:OptionCount>*/;
-CHECK_NEW_opts__OptionCount(var9);
 self->attrs[COLOR_toolcontext__ToolContext___64dopt_warn].val = var9; /* @opt_warn on <self:ToolContext exact> */
 var28 = NEW_opts__OptionBool(&type_opts__OptionBool);
 if (varonce29) {
@@ -896,10 +989,8 @@ var46 = NEW_array__NativeArray(var45, &type_array__NativeArraystring__String);
 ((struct instance_array__NativeArray*)var46)->values[0] = (val*) var35;
 ((struct instance_array__NativeArray*)var46)->values[1] = (val*) var40;
 ((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on <var44:Array[String]>*/;
-CHECK_NEW_array__Array(var44);
 }
 ((void (*)(val*, val*, val*))(var28->class->vft[COLOR_opts__OptionBool__init]))(var28, var30, var44) /* init on <var28:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var28);
 self->attrs[COLOR_toolcontext__ToolContext___64dopt_quiet].val = var28; /* @opt_quiet on <self:ToolContext exact> */
 var47 = NEW_opts__OptionBool(&type_opts__OptionBool);
 if (varonce48) {
@@ -926,10 +1017,8 @@ var59 = 1;
 var60 = NEW_array__NativeArray(var59, &type_array__NativeArraystring__String);
 ((struct instance_array__NativeArray*)var60)->values[0] = (val*) var54;
 ((void (*)(val*, val*, long))(var58->class->vft[COLOR_array__Array__with_native]))(var58, var60, var59) /* with_native on <var58:Array[String]>*/;
-CHECK_NEW_array__Array(var58);
 }
 ((void (*)(val*, val*, val*))(var47->class->vft[COLOR_opts__OptionBool__init]))(var47, var49, var58) /* init on <var47:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var47);
 self->attrs[COLOR_toolcontext__ToolContext___64dopt_log].val = var47; /* @opt_log on <self:ToolContext exact> */
 var61 = NEW_opts__OptionString(&type_opts__OptionString);
 if (varonce62) {
@@ -956,10 +1045,8 @@ var73 = 1;
 var74 = NEW_array__NativeArray(var73, &type_array__NativeArraystring__String);
 ((struct instance_array__NativeArray*)var74)->values[0] = (val*) var68;
 ((void (*)(val*, val*, long))(var72->class->vft[COLOR_array__Array__with_native]))(var72, var74, var73) /* with_native on <var72:Array[String]>*/;
-CHECK_NEW_array__Array(var72);
 }
 ((void (*)(val*, val*, val*))(var61->class->vft[COLOR_opts__OptionString__init]))(var61, var63, var72) /* init on <var61:OptionString>*/;
-CHECK_NEW_opts__OptionString(var61);
 self->attrs[COLOR_toolcontext__ToolContext___64dopt_log_dir].val = var61; /* @opt_log_dir on <self:ToolContext exact> */
 var75 = NEW_opts__OptionBool(&type_opts__OptionBool);
 if (varonce76) {
@@ -1006,10 +1093,8 @@ var98 = NEW_array__NativeArray(var97, &type_array__NativeArraystring__String);
 ((struct instance_array__NativeArray*)var98)->values[1] = (val*) var87;
 ((struct instance_array__NativeArray*)var98)->values[2] = (val*) var92;
 ((void (*)(val*, val*, long))(var96->class->vft[COLOR_array__Array__with_native]))(var96, var98, var97) /* with_native on <var96:Array[String]>*/;
-CHECK_NEW_array__Array(var96);
 }
 ((void (*)(val*, val*, val*))(var75->class->vft[COLOR_opts__OptionBool__init]))(var75, var77, var96) /* init on <var75:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var75);
 self->attrs[COLOR_toolcontext__ToolContext___64dopt_help].val = var75; /* @opt_help on <self:ToolContext exact> */
 var99 = NEW_opts__OptionBool(&type_opts__OptionBool);
 if (varonce100) {
@@ -1036,10 +1121,8 @@ var111 = 1;
 var112 = NEW_array__NativeArray(var111, &type_array__NativeArraystring__String);
 ((struct instance_array__NativeArray*)var112)->values[0] = (val*) var106;
 ((void (*)(val*, val*, long))(var110->class->vft[COLOR_array__Array__with_native]))(var110, var112, var111) /* with_native on <var110:Array[String]>*/;
-CHECK_NEW_array__Array(var110);
 }
 ((void (*)(val*, val*, val*))(var99->class->vft[COLOR_opts__OptionBool__init]))(var99, var101, var110) /* init on <var99:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var99);
 self->attrs[COLOR_toolcontext__ToolContext___64dopt_version].val = var99; /* @opt_version on <self:ToolContext exact> */
 var113 = NEW_opts__OptionCount(&type_opts__OptionCount);
 if (varonce114) {
@@ -1076,10 +1159,8 @@ var131 = NEW_array__NativeArray(var130, &type_array__NativeArraystring__String);
 ((struct instance_array__NativeArray*)var131)->values[0] = (val*) var120;
 ((struct instance_array__NativeArray*)var131)->values[1] = (val*) var125;
 ((void (*)(val*, val*, long))(var129->class->vft[COLOR_array__Array__with_native]))(var129, var131, var130) /* with_native on <var129:Array[String]>*/;
-CHECK_NEW_array__Array(var129);
 }
 ((void (*)(val*, val*, val*))(var113->class->vft[COLOR_opts__OptionCount__init]))(var113, var115, var129) /* init on <var113:OptionCount>*/;
-CHECK_NEW_opts__OptionCount(var113);
 self->attrs[COLOR_toolcontext__ToolContext___64dopt_verbose].val = var113; /* @opt_verbose on <self:ToolContext exact> */
 var132 = NEW_opts__OptionBool(&type_opts__OptionBool);
 if (varonce133) {
@@ -1106,10 +1187,8 @@ var144 = 1;
 var145 = NEW_array__NativeArray(var144, &type_array__NativeArraystring__String);
 ((struct instance_array__NativeArray*)var145)->values[0] = (val*) var139;
 ((void (*)(val*, val*, long))(var143->class->vft[COLOR_array__Array__with_native]))(var143, var145, var144) /* with_native on <var143:Array[String]>*/;
-CHECK_NEW_array__Array(var143);
 }
 ((void (*)(val*, val*, val*))(var132->class->vft[COLOR_opts__OptionBool__init]))(var132, var134, var143) /* init on <var132:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var132);
 self->attrs[COLOR_toolcontext__ToolContext___64dopt_stop_on_first_error].val = var132; /* @opt_stop_on_first_error on <self:ToolContext exact> */
 var146 = NEW_opts__OptionBool(&type_opts__OptionBool);
 if (varonce147) {
@@ -1136,978 +1215,1020 @@ var158 = 1;
 var159 = NEW_array__NativeArray(var158, &type_array__NativeArraystring__String);
 ((struct instance_array__NativeArray*)var159)->values[0] = (val*) var153;
 ((void (*)(val*, val*, long))(var157->class->vft[COLOR_array__Array__with_native]))(var157, var159, var158) /* with_native on <var157:Array[String]>*/;
-CHECK_NEW_array__Array(var157);
 }
 ((void (*)(val*, val*, val*))(var146->class->vft[COLOR_opts__OptionBool__init]))(var146, var148, var157) /* init on <var146:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var146);
 self->attrs[COLOR_toolcontext__ToolContext___64dopt_no_color].val = var146; /* @opt_no_color on <self:ToolContext exact> */
 var160 = 0;
 self->attrs[COLOR_toolcontext__ToolContext___64dverbose_level].l = var160; /* @verbose_level on <self:ToolContext exact> */
 var161 = NEW_poset__POSet(&type_poset__POSetphase__Phase);
 ((void (*)(val*))(var161->class->vft[COLOR_poset__POSet__init]))(var161) /* init on <var161:POSet[Phase]>*/;
-CHECK_NEW_poset__POSet(var161);
 self->attrs[COLOR_phase__ToolContext___64dphases].val = var161; /* @phases on <self:ToolContext exact> */
 var162 = NEW_simple_misc_analysis__SimpleMiscAnalysisPhase(&type_simple_misc_analysis__SimpleMiscAnalysisPhase);
 var163 = NULL;
 ((void (*)(val*, val*, val*))(var162->class->vft[COLOR_phase__Phase__init]))(var162, self, var163) /* init on <var162:SimpleMiscAnalysisPhase>*/;
-CHECK_NEW_simple_misc_analysis__SimpleMiscAnalysisPhase(var162);
 self->attrs[COLOR_simple_misc_analysis__ToolContext___64dsimple_misc_analysis_phase].val = var162; /* @simple_misc_analysis_phase on <self:ToolContext exact> */
 var164 = NEW_literal__LiteralPhase(&type_literal__LiteralPhase);
 var165 = NULL;
 ((void (*)(val*, val*, val*))(var164->class->vft[COLOR_phase__Phase__init]))(var164, self, var165) /* init on <var164:LiteralPhase>*/;
-CHECK_NEW_literal__LiteralPhase(var164);
 self->attrs[COLOR_literal__ToolContext___64dliteral_phase].val = var164; /* @literal_phase on <self:ToolContext exact> */
 var166 = NEW_scope__ScopePhase(&type_scope__ScopePhase);
 var167 = NULL;
 ((void (*)(val*, val*, val*))(var166->class->vft[COLOR_phase__Phase__init]))(var166, self, var167) /* init on <var166:ScopePhase>*/;
-CHECK_NEW_scope__ScopePhase(var166);
 self->attrs[COLOR_scope__ToolContext___64dscope_phase].val = var166; /* @scope_phase on <self:ToolContext exact> */
 var168 = NEW_flow__FlowPhase(&type_flow__FlowPhase);
 var169 = NEW_array__Array(&type_array__Arrayphase__Phase);
 var170 = 1;
 ((void (*)(val*, long))(var169->class->vft[COLOR_array__Array__with_capacity]))(var169, var170) /* with_capacity on <var169:Array[Phase]>*/;
-CHECK_NEW_array__Array(var169);
 var_ = var169;
 var171 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ToolContext__scope_phase]))(self) /* scope_phase on <self:ToolContext exact>*/;
 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var171) /* push on <var_:Array[Phase]>*/;
 ((void (*)(val*, val*, val*))(var168->class->vft[COLOR_phase__Phase__init]))(var168, self, var_) /* init on <var168:FlowPhase>*/;
-CHECK_NEW_flow__FlowPhase(var168);
 self->attrs[COLOR_flow__ToolContext___64dflow_phase].val = var168; /* @flow_phase on <self:ToolContext exact> */
-var172 = NEW_local_var_init__LocalVarInitPhase(&type_local_var_init__LocalVarInitPhase);
-var173 = NEW_array__Array(&type_array__Arrayphase__Phase);
-var174 = 1;
-((void (*)(val*, long))(var173->class->vft[COLOR_array__Array__with_capacity]))(var173, var174) /* with_capacity on <var173:Array[Phase]>*/;
-CHECK_NEW_array__Array(var173);
-var_175 = var173;
-var176 = ((val* (*)(val*))(self->class->vft[COLOR_flow__ToolContext__flow_phase]))(self) /* flow_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_175->class->vft[COLOR_abstract_collection__Sequence__push]))(var_175, var176) /* push on <var_175:Array[Phase]>*/;
-((void (*)(val*, val*, val*))(var172->class->vft[COLOR_phase__Phase__init]))(var172, self, var_175) /* init on <var172:LocalVarInitPhase>*/;
-CHECK_NEW_local_var_init__LocalVarInitPhase(var172);
-self->attrs[COLOR_local_var_init__ToolContext___64dlocal_var_init_phase].val = var172; /* @local_var_init_phase on <self:ToolContext exact> */
-var177 = NEW_opts__OptionArray(&type_opts__OptionArray);
-if (varonce178) {
-var179 = varonce178;
+var172 = NEW_serialization_phase__SerializationPhase(&type_serialization_phase__SerializationPhase);
+var173 = NULL;
+((void (*)(val*, val*, val*))(var172->class->vft[COLOR_phase__Phase__init]))(var172, self, var173) /* init on <var172:SerializationPhase>*/;
+self->attrs[COLOR_serialization_phase__ToolContext___64dserialization_phase].val = var172; /* @serialization_phase on <self:ToolContext exact> */
+var174 = NEW_local_var_init__LocalVarInitPhase(&type_local_var_init__LocalVarInitPhase);
+var175 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var176 = 1;
+((void (*)(val*, long))(var175->class->vft[COLOR_array__Array__with_capacity]))(var175, var176) /* with_capacity on <var175:Array[Phase]>*/;
+var_177 = var175;
+var178 = ((val* (*)(val*))(self->class->vft[COLOR_flow__ToolContext__flow_phase]))(self) /* flow_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_177->class->vft[COLOR_abstract_collection__Sequence__push]))(var_177, var178) /* push on <var_177:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var174->class->vft[COLOR_phase__Phase__init]))(var174, self, var_177) /* init on <var174:LocalVarInitPhase>*/;
+self->attrs[COLOR_local_var_init__ToolContext___64dlocal_var_init_phase].val = var174; /* @local_var_init_phase on <self:ToolContext exact> */
+var179 = NEW_opts__OptionArray(&type_opts__OptionArray);
+if (varonce180) {
+var181 = varonce180;
 } else {
-var180 = "Set include path for loaders (may be used more than once)";
-var181 = 57;
-var182 = string__NativeString__to_s_with_length(var180, var181);
-var179 = var182;
-varonce178 = var179;
-}
-if (varonce183) {
-var184 = varonce183;
+var182 = "Set include path for loaders (may be used more than once)";
+var183 = 57;
+var184 = string__NativeString__to_s_with_length(var182, var183);
+var181 = var184;
+varonce180 = var181;
+}
+if (varonce185) {
+var186 = varonce185;
 } else {
-var185 = "-I";
-var186 = 2;
-var187 = string__NativeString__to_s_with_length(var185, var186);
-var184 = var187;
-varonce183 = var184;
-}
-if (varonce188) {
-var189 = varonce188;
+var187 = "-I";
+var188 = 2;
+var189 = string__NativeString__to_s_with_length(var187, var188);
+var186 = var189;
+varonce185 = var186;
+}
+if (varonce190) {
+var191 = varonce190;
 } else {
-var190 = "--path";
-var191 = 6;
-var192 = string__NativeString__to_s_with_length(var190, var191);
-var189 = var192;
-varonce188 = var189;
-}
-var193 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var193 = array_instance Array[String] */
-var194 = 2;
-var195 = NEW_array__NativeArray(var194, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var195)->values[0] = (val*) var184;
-((struct instance_array__NativeArray*)var195)->values[1] = (val*) var189;
-((void (*)(val*, val*, long))(var193->class->vft[COLOR_array__Array__with_native]))(var193, var195, var194) /* with_native on <var193:Array[String]>*/;
-CHECK_NEW_array__Array(var193);
-}
-((void (*)(val*, val*, val*))(var177->class->vft[COLOR_opts__OptionArray__init]))(var177, var179, var193) /* init on <var177:OptionArray>*/;
-CHECK_NEW_opts__OptionArray(var177);
-self->attrs[COLOR_modelbuilder__ToolContext___64dopt_path].val = var177; /* @opt_path on <self:ToolContext exact> */
-var196 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce197) {
-var198 = varonce197;
+var192 = "--path";
+var193 = 6;
+var194 = string__NativeString__to_s_with_length(var192, var193);
+var191 = var194;
+varonce190 = var191;
+}
+var195 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var195 = array_instance Array[String] */
+var196 = 2;
+var197 = NEW_array__NativeArray(var196, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var197)->values[0] = (val*) var186;
+((struct instance_array__NativeArray*)var197)->values[1] = (val*) var191;
+((void (*)(val*, val*, long))(var195->class->vft[COLOR_array__Array__with_native]))(var195, var197, var196) /* with_native on <var195:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var179->class->vft[COLOR_opts__OptionArray__init]))(var179, var181, var195) /* init on <var179:OptionArray>*/;
+self->attrs[COLOR_modelbuilder__ToolContext___64dopt_path].val = var179; /* @opt_path on <self:ToolContext exact> */
+var198 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce199) {
+var200 = varonce199;
 } else {
-var199 = "Stop after meta-model processing";
-var200 = 32;
-var201 = string__NativeString__to_s_with_length(var199, var200);
-var198 = var201;
-varonce197 = var198;
-}
-if (varonce202) {
-var203 = varonce202;
+var201 = "Stop after meta-model processing";
+var202 = 32;
+var203 = string__NativeString__to_s_with_length(var201, var202);
+var200 = var203;
+varonce199 = var200;
+}
+if (varonce204) {
+var205 = varonce204;
 } else {
-var204 = "--only-metamodel";
-var205 = 16;
-var206 = string__NativeString__to_s_with_length(var204, var205);
-var203 = var206;
-varonce202 = var203;
-}
-var207 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var207 = array_instance Array[String] */
-var208 = 1;
-var209 = NEW_array__NativeArray(var208, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var209)->values[0] = (val*) var203;
-((void (*)(val*, val*, long))(var207->class->vft[COLOR_array__Array__with_native]))(var207, var209, var208) /* with_native on <var207:Array[String]>*/;
-CHECK_NEW_array__Array(var207);
-}
-((void (*)(val*, val*, val*))(var196->class->vft[COLOR_opts__OptionBool__init]))(var196, var198, var207) /* init on <var196:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var196);
-self->attrs[COLOR_modelbuilder__ToolContext___64dopt_only_metamodel].val = var196; /* @opt_only_metamodel on <self:ToolContext exact> */
-var210 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce211) {
-var212 = varonce211;
+var206 = "--only-metamodel";
+var207 = 16;
+var208 = string__NativeString__to_s_with_length(var206, var207);
+var205 = var208;
+varonce204 = var205;
+}
+var209 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var209 = array_instance Array[String] */
+var210 = 1;
+var211 = NEW_array__NativeArray(var210, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var211)->values[0] = (val*) var205;
+((void (*)(val*, val*, long))(var209->class->vft[COLOR_array__Array__with_native]))(var209, var211, var210) /* with_native on <var209:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var198->class->vft[COLOR_opts__OptionBool__init]))(var198, var200, var209) /* init on <var198:OptionBool>*/;
+self->attrs[COLOR_modelbuilder__ToolContext___64dopt_only_metamodel].val = var198; /* @opt_only_metamodel on <self:ToolContext exact> */
+var212 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce213) {
+var214 = varonce213;
 } else {
-var213 = "Only proceed to parse step of loaders";
-var214 = 37;
-var215 = string__NativeString__to_s_with_length(var213, var214);
-var212 = var215;
-varonce211 = var212;
-}
-if (varonce216) {
-var217 = varonce216;
+var215 = "Only proceed to parse step of loaders";
+var216 = 37;
+var217 = string__NativeString__to_s_with_length(var215, var216);
+var214 = var217;
+varonce213 = var214;
+}
+if (varonce218) {
+var219 = varonce218;
 } else {
-var218 = "--only-parse";
-var219 = 12;
-var220 = string__NativeString__to_s_with_length(var218, var219);
-var217 = var220;
-varonce216 = var217;
-}
-var221 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var221 = array_instance Array[String] */
-var222 = 1;
-var223 = NEW_array__NativeArray(var222, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var223)->values[0] = (val*) var217;
-((void (*)(val*, val*, long))(var221->class->vft[COLOR_array__Array__with_native]))(var221, var223, var222) /* with_native on <var221:Array[String]>*/;
-CHECK_NEW_array__Array(var221);
-}
-((void (*)(val*, val*, val*))(var210->class->vft[COLOR_opts__OptionBool__init]))(var210, var212, var221) /* init on <var210:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var210);
-self->attrs[COLOR_modelbuilder__ToolContext___64dopt_only_parse].val = var210; /* @opt_only_parse on <self:ToolContext exact> */
-var224 = NULL;
-self->attrs[COLOR_modelbuilder__ToolContext___64dmodelbuilder_real].val = var224; /* @modelbuilder_real on <self:ToolContext exact> */
-var225 = NEW_modelize_class__ModelizeClassPhase(&type_modelize_class__ModelizeClassPhase);
+var220 = "--only-parse";
+var221 = 12;
+var222 = string__NativeString__to_s_with_length(var220, var221);
+var219 = var222;
+varonce218 = var219;
+}
+var223 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var223 = array_instance Array[String] */
+var224 = 1;
+var225 = NEW_array__NativeArray(var224, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var225)->values[0] = (val*) var219;
+((void (*)(val*, val*, long))(var223->class->vft[COLOR_array__Array__with_native]))(var223, var225, var224) /* with_native on <var223:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var212->class->vft[COLOR_opts__OptionBool__init]))(var212, var214, var223) /* init on <var212:OptionBool>*/;
+self->attrs[COLOR_modelbuilder__ToolContext___64dopt_only_parse].val = var212; /* @opt_only_parse on <self:ToolContext exact> */
 var226 = NULL;
-((void (*)(val*, val*, val*))(var225->class->vft[COLOR_phase__Phase__init]))(var225, self, var226) /* init on <var225:ModelizeClassPhase>*/;
-CHECK_NEW_modelize_class__ModelizeClassPhase(var225);
-self->attrs[COLOR_modelize_class__ToolContext___64dmodelize_class_phase].val = var225; /* @modelize_class_phase on <self:ToolContext exact> */
-var227 = NEW_modelize_property__ModelizePropertyPhase(&type_modelize_property__ModelizePropertyPhase);
-var228 = NEW_array__Array(&type_array__Arrayphase__Phase);
-var229 = 1;
-((void (*)(val*, long))(var228->class->vft[COLOR_array__Array__with_capacity]))(var228, var229) /* with_capacity on <var228:Array[Phase]>*/;
-CHECK_NEW_array__Array(var228);
-var_230 = var228;
-var231 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_class__ToolContext__modelize_class_phase]))(self) /* modelize_class_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_230->class->vft[COLOR_abstract_collection__Sequence__push]))(var_230, var231) /* push on <var_230:Array[Phase]>*/;
-((void (*)(val*, val*, val*))(var227->class->vft[COLOR_phase__Phase__init]))(var227, self, var_230) /* init on <var227:ModelizePropertyPhase>*/;
-CHECK_NEW_modelize_property__ModelizePropertyPhase(var227);
-self->attrs[COLOR_modelize_property__ToolContext___64dmodelize_property_phase].val = var227; /* @modelize_property_phase on <self:ToolContext exact> */
-var232 = NEW_cached__CachedPhase(&type_cached__CachedPhase);
-var233 = NEW_array__Array(&type_array__Arrayphase__Phase);
-var234 = 1;
-((void (*)(val*, long))(var233->class->vft[COLOR_array__Array__with_capacity]))(var233, var234) /* with_capacity on <var233:Array[Phase]>*/;
-CHECK_NEW_array__Array(var233);
-var_235 = var233;
-var236 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ToolContext__modelize_property_phase]))(self) /* modelize_property_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_235->class->vft[COLOR_abstract_collection__Sequence__push]))(var_235, var236) /* push on <var_235:Array[Phase]>*/;
-((void (*)(val*, val*, val*))(var232->class->vft[COLOR_cached__CachedPhase__init]))(var232, self, var_235) /* init on <var232:CachedPhase>*/;
-CHECK_NEW_cached__CachedPhase(var232);
-self->attrs[COLOR_cached__ToolContext___64dcached_phase].val = var232; /* @cached_phase on <self:ToolContext exact> */
-var237 = NEW_typing__TypingPhase(&type_typing__TypingPhase);
-var238 = NEW_array__Array(&type_array__Arrayphase__Phase);
-var239 = 3;
-((void (*)(val*, long))(var238->class->vft[COLOR_array__Array__with_capacity]))(var238, var239) /* with_capacity on <var238:Array[Phase]>*/;
-CHECK_NEW_array__Array(var238);
-var_240 = var238;
-var241 = ((val* (*)(val*))(self->class->vft[COLOR_flow__ToolContext__flow_phase]))(self) /* flow_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_240->class->vft[COLOR_abstract_collection__Sequence__push]))(var_240, var241) /* push on <var_240:Array[Phase]>*/;
-var242 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ToolContext__modelize_property_phase]))(self) /* modelize_property_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_240->class->vft[COLOR_abstract_collection__Sequence__push]))(var_240, var242) /* push on <var_240:Array[Phase]>*/;
-var243 = ((val* (*)(val*))(self->class->vft[COLOR_local_var_init__ToolContext__local_var_init_phase]))(self) /* local_var_init_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_240->class->vft[COLOR_abstract_collection__Sequence__push]))(var_240, var243) /* push on <var_240:Array[Phase]>*/;
-((void (*)(val*, val*, val*))(var237->class->vft[COLOR_phase__Phase__init]))(var237, self, var_240) /* init on <var237:TypingPhase>*/;
-CHECK_NEW_typing__TypingPhase(var237);
-self->attrs[COLOR_typing__ToolContext___64dtyping_phase].val = var237; /* @typing_phase on <self:ToolContext exact> */
-var244 = NEW_auto_super_init__AutoSuperInitPhase(&type_auto_super_init__AutoSuperInitPhase);
+self->attrs[COLOR_modelbuilder__ToolContext___64dmodelbuilder_real].val = var226; /* @modelbuilder_real on <self:ToolContext exact> */
+var227 = NEW_modelize_class__ModelizeClassPhase(&type_modelize_class__ModelizeClassPhase);
+var228 = NULL;
+((void (*)(val*, val*, val*))(var227->class->vft[COLOR_phase__Phase__init]))(var227, self, var228) /* init on <var227:ModelizeClassPhase>*/;
+self->attrs[COLOR_modelize_class__ToolContext___64dmodelize_class_phase].val = var227; /* @modelize_class_phase on <self:ToolContext exact> */
+var229 = NEW_modelize_property__ModelizePropertyPhase(&type_modelize_property__ModelizePropertyPhase);
+var230 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var231 = 1;
+((void (*)(val*, long))(var230->class->vft[COLOR_array__Array__with_capacity]))(var230, var231) /* with_capacity on <var230:Array[Phase]>*/;
+var_232 = var230;
+var233 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_class__ToolContext__modelize_class_phase]))(self) /* modelize_class_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_232->class->vft[COLOR_abstract_collection__Sequence__push]))(var_232, var233) /* push on <var_232:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var229->class->vft[COLOR_phase__Phase__init]))(var229, self, var_232) /* init on <var229:ModelizePropertyPhase>*/;
+self->attrs[COLOR_modelize_property__ToolContext___64dmodelize_property_phase].val = var229; /* @modelize_property_phase on <self:ToolContext exact> */
+var234 = NEW_cached__CachedPhase(&type_cached__CachedPhase);
+var235 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var236 = 1;
+((void (*)(val*, long))(var235->class->vft[COLOR_array__Array__with_capacity]))(var235, var236) /* with_capacity on <var235:Array[Phase]>*/;
+var_237 = var235;
+var238 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ToolContext__modelize_property_phase]))(self) /* modelize_property_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_237->class->vft[COLOR_abstract_collection__Sequence__push]))(var_237, var238) /* push on <var_237:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var234->class->vft[COLOR_cached__CachedPhase__init]))(var234, self, var_237) /* init on <var234:CachedPhase>*/;
+self->attrs[COLOR_cached__ToolContext___64dcached_phase].val = var234; /* @cached_phase on <self:ToolContext exact> */
+var239 = NEW_platform__PlatformPhase(&type_platform__PlatformPhase);
+var240 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var241 = 1;
+((void (*)(val*, long))(var240->class->vft[COLOR_array__Array__with_capacity]))(var240, var241) /* with_capacity on <var240:Array[Phase]>*/;
+var_242 = var240;
+var243 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ToolContext__modelize_property_phase]))(self) /* modelize_property_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_242->class->vft[COLOR_abstract_collection__Sequence__push]))(var_242, var243) /* push on <var_242:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var239->class->vft[COLOR_phase__Phase__init]))(var239, self, var_242) /* init on <var239:PlatformPhase>*/;
+self->attrs[COLOR_platform__ToolContext___64dplatform_phase].val = var239; /* @platform_phase on <self:ToolContext exact> */
+var244 = NEW_typing__TypingPhase(&type_typing__TypingPhase);
 var245 = NEW_array__Array(&type_array__Arrayphase__Phase);
-var246 = 1;
+var246 = 3;
 ((void (*)(val*, long))(var245->class->vft[COLOR_array__Array__with_capacity]))(var245, var246) /* with_capacity on <var245:Array[Phase]>*/;
-CHECK_NEW_array__Array(var245);
 var_247 = var245;
-var248 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ToolContext__typing_phase]))(self) /* typing_phase on <self:ToolContext exact>*/;
+var248 = ((val* (*)(val*))(self->class->vft[COLOR_flow__ToolContext__flow_phase]))(self) /* flow_phase on <self:ToolContext exact>*/;
 ((void (*)(val*, val*))(var_247->class->vft[COLOR_abstract_collection__Sequence__push]))(var_247, var248) /* push on <var_247:Array[Phase]>*/;
-((void (*)(val*, val*, val*))(var244->class->vft[COLOR_phase__Phase__init]))(var244, self, var_247) /* init on <var244:AutoSuperInitPhase>*/;
-CHECK_NEW_auto_super_init__AutoSuperInitPhase(var244);
-self->attrs[COLOR_auto_super_init__ToolContext___64dauto_super_init_phase].val = var244; /* @auto_super_init_phase on <self:ToolContext exact> */
-var249 = NEW_div_by_zero__DivByZeroPhase(&type_div_by_zero__DivByZeroPhase);
-var250 = NEW_array__Array(&type_array__Arrayphase__Phase);
-var251 = 2;
-((void (*)(val*, long))(var250->class->vft[COLOR_array__Array__with_capacity]))(var250, var251) /* with_capacity on <var250:Array[Phase]>*/;
-CHECK_NEW_array__Array(var250);
-var_252 = var250;
-var253 = ((val* (*)(val*))(self->class->vft[COLOR_literal__ToolContext__literal_phase]))(self) /* literal_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_252->class->vft[COLOR_abstract_collection__Sequence__push]))(var_252, var253) /* push on <var_252:Array[Phase]>*/;
-var254 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ToolContext__typing_phase]))(self) /* typing_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_252->class->vft[COLOR_abstract_collection__Sequence__push]))(var_252, var254) /* push on <var_252:Array[Phase]>*/;
-((void (*)(val*, val*, val*))(var249->class->vft[COLOR_phase__Phase__init]))(var249, self, var_252) /* init on <var249:DivByZeroPhase>*/;
-CHECK_NEW_div_by_zero__DivByZeroPhase(var249);
-self->attrs[COLOR_div_by_zero__ToolContext___64ddiv_by_zero_phase].val = var249; /* @div_by_zero_phase on <self:ToolContext exact> */
-var255 = NEW_transform__TransformPhase(&type_transform__TransformPhase);
-var256 = NEW_array__Array(&type_array__Arrayphase__Phase);
-var257 = 2;
-((void (*)(val*, long))(var256->class->vft[COLOR_array__Array__with_capacity]))(var256, var257) /* with_capacity on <var256:Array[Phase]>*/;
-CHECK_NEW_array__Array(var256);
-var_258 = var256;
-var259 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ToolContext__typing_phase]))(self) /* typing_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_258->class->vft[COLOR_abstract_collection__Sequence__push]))(var_258, var259) /* push on <var_258:Array[Phase]>*/;
-var260 = ((val* (*)(val*))(self->class->vft[COLOR_auto_super_init__ToolContext__auto_super_init_phase]))(self) /* auto_super_init_phase on <self:ToolContext exact>*/;
-((void (*)(val*, val*))(var_258->class->vft[COLOR_abstract_collection__Sequence__push]))(var_258, var260) /* push on <var_258:Array[Phase]>*/;
-((void (*)(val*, val*, val*))(var255->class->vft[COLOR_phase__Phase__init]))(var255, self, var_258) /* init on <var255:TransformPhase>*/;
-CHECK_NEW_transform__TransformPhase(var255);
-self->attrs[COLOR_transform__ToolContext___64dtransform_phase].val = var255; /* @transform_phase on <self:ToolContext exact> */
-var261 = ((short int (*)(val*))(self->class->vft[COLOR_frontend__ToolContext__do_dummy]))(self) /* do_dummy on <self:ToolContext exact>*/;
-self->attrs[COLOR_frontend__ToolContext___64ddummy].s = var261; /* @dummy on <self:ToolContext exact> */
-var262 = NEW_opts__OptionString(&type_opts__OptionString);
-if (varonce263) {
-var264 = varonce263;
+var249 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ToolContext__modelize_property_phase]))(self) /* modelize_property_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_247->class->vft[COLOR_abstract_collection__Sequence__push]))(var_247, var249) /* push on <var_247:Array[Phase]>*/;
+var250 = ((val* (*)(val*))(self->class->vft[COLOR_local_var_init__ToolContext__local_var_init_phase]))(self) /* local_var_init_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_247->class->vft[COLOR_abstract_collection__Sequence__push]))(var_247, var250) /* push on <var_247:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var244->class->vft[COLOR_phase__Phase__init]))(var244, self, var_247) /* init on <var244:TypingPhase>*/;
+self->attrs[COLOR_typing__ToolContext___64dtyping_phase].val = var244; /* @typing_phase on <self:ToolContext exact> */
+var251 = NEW_auto_super_init__AutoSuperInitPhase(&type_auto_super_init__AutoSuperInitPhase);
+var252 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var253 = 1;
+((void (*)(val*, long))(var252->class->vft[COLOR_array__Array__with_capacity]))(var252, var253) /* with_capacity on <var252:Array[Phase]>*/;
+var_254 = var252;
+var255 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ToolContext__typing_phase]))(self) /* typing_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_254->class->vft[COLOR_abstract_collection__Sequence__push]))(var_254, var255) /* push on <var_254:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var251->class->vft[COLOR_phase__Phase__init]))(var251, self, var_254) /* init on <var251:AutoSuperInitPhase>*/;
+self->attrs[COLOR_auto_super_init__ToolContext___64dauto_super_init_phase].val = var251; /* @auto_super_init_phase on <self:ToolContext exact> */
+var256 = NEW_div_by_zero__DivByZeroPhase(&type_div_by_zero__DivByZeroPhase);
+var257 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var258 = 2;
+((void (*)(val*, long))(var257->class->vft[COLOR_array__Array__with_capacity]))(var257, var258) /* with_capacity on <var257:Array[Phase]>*/;
+var_259 = var257;
+var260 = ((val* (*)(val*))(self->class->vft[COLOR_literal__ToolContext__literal_phase]))(self) /* literal_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_259->class->vft[COLOR_abstract_collection__Sequence__push]))(var_259, var260) /* push on <var_259:Array[Phase]>*/;
+var261 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ToolContext__typing_phase]))(self) /* typing_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_259->class->vft[COLOR_abstract_collection__Sequence__push]))(var_259, var261) /* push on <var_259:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var256->class->vft[COLOR_phase__Phase__init]))(var256, self, var_259) /* init on <var256:DivByZeroPhase>*/;
+self->attrs[COLOR_div_by_zero__ToolContext___64ddiv_by_zero_phase].val = var256; /* @div_by_zero_phase on <self:ToolContext exact> */
+var262 = NEW_nitni_callbacks__VerifyNitniCallbacksPhase(&type_nitni_callbacks__VerifyNitniCallbacksPhase);
+var263 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var264 = 1;
+((void (*)(val*, long))(var263->class->vft[COLOR_array__Array__with_capacity]))(var263, var264) /* with_capacity on <var263:Array[Phase]>*/;
+var_265 = var263;
+var266 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ToolContext__typing_phase]))(self) /* typing_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_265->class->vft[COLOR_abstract_collection__Sequence__push]))(var_265, var266) /* push on <var_265:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var262->class->vft[COLOR_phase__Phase__init]))(var262, self, var_265) /* init on <var262:VerifyNitniCallbacksPhase>*/;
+self->attrs[COLOR_nitni_callbacks__ToolContext___64dverify_nitni_callback_phase].val = var262; /* @verify_nitni_callback_phase on <self:ToolContext exact> */
+var267 = NEW_transform__TransformPhase(&type_transform__TransformPhase);
+var268 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var269 = 2;
+((void (*)(val*, long))(var268->class->vft[COLOR_array__Array__with_capacity]))(var268, var269) /* with_capacity on <var268:Array[Phase]>*/;
+var_270 = var268;
+var271 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ToolContext__typing_phase]))(self) /* typing_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_270->class->vft[COLOR_abstract_collection__Sequence__push]))(var_270, var271) /* push on <var_270:Array[Phase]>*/;
+var272 = ((val* (*)(val*))(self->class->vft[COLOR_auto_super_init__ToolContext__auto_super_init_phase]))(self) /* auto_super_init_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_270->class->vft[COLOR_abstract_collection__Sequence__push]))(var_270, var272) /* push on <var_270:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var267->class->vft[COLOR_phase__Phase__init]))(var267, self, var_270) /* init on <var267:TransformPhase>*/;
+self->attrs[COLOR_transform__ToolContext___64dtransform_phase].val = var267; /* @transform_phase on <self:ToolContext exact> */
+var273 = NEW_ffi_base__FFILanguageAssignationPhase(&type_ffi_base__FFILanguageAssignationPhase);
+var274 = NULL;
+((void (*)(val*, val*, val*))(var273->class->vft[COLOR_phase__Phase__init]))(var273, self, var274) /* init on <var273:FFILanguageAssignationPhase>*/;
+self->attrs[COLOR_ffi_base__ToolContext___64dffi_language_assignation_phase].val = var273; /* @ffi_language_assignation_phase on <self:ToolContext exact> */
+var275 = NEW_extern_classes__ExternClassesTypingPhaseAst(&type_extern_classes__ExternClassesTypingPhaseAst);
+var276 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var277 = 1;
+((void (*)(val*, long))(var276->class->vft[COLOR_array__Array__with_capacity]))(var276, var277) /* with_capacity on <var276:Array[Phase]>*/;
+var_278 = var276;
+var279 = ((val* (*)(val*))(self->class->vft[COLOR_ffi_base__ToolContext__ffi_language_assignation_phase]))(self) /* ffi_language_assignation_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_278->class->vft[COLOR_abstract_collection__Sequence__push]))(var_278, var279) /* push on <var_278:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var275->class->vft[COLOR_phase__Phase__init]))(var275, self, var_278) /* init on <var275:ExternClassesTypingPhaseAst>*/;
+self->attrs[COLOR_extern_classes__ToolContext___64dextern_classes_typing_phase_ast].val = var275; /* @extern_classes_typing_phase_ast on <self:ToolContext exact> */
+var280 = NEW_extern_classes__ExternClassesTypingPhaseModel(&type_extern_classes__ExternClassesTypingPhaseModel);
+var281 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var282 = 2;
+((void (*)(val*, long))(var281->class->vft[COLOR_array__Array__with_capacity]))(var281, var282) /* with_capacity on <var281:Array[Phase]>*/;
+var_283 = var281;
+var284 = ((val* (*)(val*))(self->class->vft[COLOR_extern_classes__ToolContext__extern_classes_typing_phase_ast]))(self) /* extern_classes_typing_phase_ast on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_283->class->vft[COLOR_abstract_collection__Sequence__push]))(var_283, var284) /* push on <var_283:Array[Phase]>*/;
+var285 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_class__ToolContext__modelize_class_phase]))(self) /* modelize_class_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_283->class->vft[COLOR_abstract_collection__Sequence__push]))(var_283, var285) /* push on <var_283:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var280->class->vft[COLOR_phase__Phase__init]))(var280, self, var_283) /* init on <var280:ExternClassesTypingPhaseModel>*/;
+self->attrs[COLOR_extern_classes__ToolContext___64dextern_classes_typing_phase_model].val = var280; /* @extern_classes_typing_phase_model on <self:ToolContext exact> */
+var286 = NEW_header_dependency__HeaderDependancyPhase(&type_header_dependency__HeaderDependancyPhase);
+var287 = NEW_array__Array(&type_array__Arrayphase__Phase);
+var288 = 2;
+((void (*)(val*, long))(var287->class->vft[COLOR_array__Array__with_capacity]))(var287, var288) /* with_capacity on <var287:Array[Phase]>*/;
+var_289 = var287;
+var290 = ((val* (*)(val*))(self->class->vft[COLOR_ffi_base__ToolContext__ffi_language_assignation_phase]))(self) /* ffi_language_assignation_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_289->class->vft[COLOR_abstract_collection__Sequence__push]))(var_289, var290) /* push on <var_289:Array[Phase]>*/;
+var291 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_class__ToolContext__modelize_class_phase]))(self) /* modelize_class_phase on <self:ToolContext exact>*/;
+((void (*)(val*, val*))(var_289->class->vft[COLOR_abstract_collection__Sequence__push]))(var_289, var291) /* push on <var_289:Array[Phase]>*/;
+((void (*)(val*, val*, val*))(var286->class->vft[COLOR_phase__Phase__init]))(var286, self, var_289) /* init on <var286:HeaderDependancyPhase>*/;
+self->attrs[COLOR_header_dependency__ToolContext___64dheader_dependancy_phase].val = var286; /* @header_dependancy_phase on <self:ToolContext exact> */
+var292 = NEW_pkgconfig__PkgconfigPhase(&type_pkgconfig__PkgconfigPhase);
+var293 = NULL;
+((void (*)(val*, val*, val*))(var292->class->vft[COLOR_phase__Phase__init]))(var292, self, var293) /* init on <var292:PkgconfigPhase>*/;
+self->attrs[COLOR_pkgconfig__ToolContext___64dpkgconfig_phase].val = var292; /* @pkgconfig_phase on <self:ToolContext exact> */
+var294 = ((short int (*)(val*))(self->class->vft[COLOR_frontend__ToolContext__do_dummy]))(self) /* do_dummy on <self:ToolContext exact>*/;
+self->attrs[COLOR_frontend__ToolContext___64ddummy].s = var294; /* @dummy on <self:ToolContext exact> */
+var295 = NEW_c_compiler_options__CCompilerOptionsPhase(&type_c_compiler_options__CCompilerOptionsPhase);
+var296 = NULL;
+((void (*)(val*, val*, val*))(var295->class->vft[COLOR_phase__Phase__init]))(var295, self, var296) /* init on <var295:CCompilerOptionsPhase>*/;
+self->attrs[COLOR_c_compiler_options__ToolContext___64dc_compiler_options_phase].val = var295; /* @c_compiler_options_phase on <self:ToolContext exact> */
+var297 = NEW_opts__OptionString(&type_opts__OptionString);
+if (varonce298) {
+var299 = varonce298;
 } else {
-var265 = "Output file";
-var266 = 11;
-var267 = string__NativeString__to_s_with_length(var265, var266);
-var264 = var267;
-varonce263 = var264;
-}
-if (varonce268) {
-var269 = varonce268;
+var300 = "Output file";
+var301 = 11;
+var302 = string__NativeString__to_s_with_length(var300, var301);
+var299 = var302;
+varonce298 = var299;
+}
+if (varonce303) {
+var304 = varonce303;
 } else {
-var270 = "-o";
-var271 = 2;
-var272 = string__NativeString__to_s_with_length(var270, var271);
-var269 = var272;
-varonce268 = var269;
-}
-if (varonce273) {
-var274 = varonce273;
+var305 = "-o";
+var306 = 2;
+var307 = string__NativeString__to_s_with_length(var305, var306);
+var304 = var307;
+varonce303 = var304;
+}
+if (varonce308) {
+var309 = varonce308;
 } else {
-var275 = "--output";
-var276 = 8;
-var277 = string__NativeString__to_s_with_length(var275, var276);
-var274 = var277;
-varonce273 = var274;
-}
-var278 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var278 = array_instance Array[String] */
-var279 = 2;
-var280 = NEW_array__NativeArray(var279, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var280)->values[0] = (val*) var269;
-((struct instance_array__NativeArray*)var280)->values[1] = (val*) var274;
-((void (*)(val*, val*, long))(var278->class->vft[COLOR_array__Array__with_native]))(var278, var280, var279) /* with_native on <var278:Array[String]>*/;
-CHECK_NEW_array__Array(var278);
-}
-((void (*)(val*, val*, val*))(var262->class->vft[COLOR_opts__OptionString__init]))(var262, var264, var278) /* init on <var262:OptionString>*/;
-CHECK_NEW_opts__OptionString(var262);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_output].val = var262; /* @opt_output on <self:ToolContext exact> */
-var281 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce282) {
-var283 = varonce282;
+var310 = "--output";
+var311 = 8;
+var312 = string__NativeString__to_s_with_length(var310, var311);
+var309 = var312;
+varonce308 = var309;
+}
+var313 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var313 = array_instance Array[String] */
+var314 = 2;
+var315 = NEW_array__NativeArray(var314, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var315)->values[0] = (val*) var304;
+((struct instance_array__NativeArray*)var315)->values[1] = (val*) var309;
+((void (*)(val*, val*, long))(var313->class->vft[COLOR_array__Array__with_native]))(var313, var315, var314) /* with_native on <var313:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var297->class->vft[COLOR_opts__OptionString__init]))(var297, var299, var313) /* init on <var297:OptionString>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_output].val = var297; /* @opt_output on <self:ToolContext exact> */
+var316 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce317) {
+var318 = varonce317;
 } else {
-var284 = "Do not invoke C compiler";
-var285 = 24;
-var286 = string__NativeString__to_s_with_length(var284, var285);
-var283 = var286;
-varonce282 = var283;
-}
-if (varonce287) {
-var288 = varonce287;
+var319 = "Do not invoke C compiler";
+var320 = 24;
+var321 = string__NativeString__to_s_with_length(var319, var320);
+var318 = var321;
+varonce317 = var318;
+}
+if (varonce322) {
+var323 = varonce322;
 } else {
-var289 = "--no-cc";
-var290 = 7;
-var291 = string__NativeString__to_s_with_length(var289, var290);
-var288 = var291;
-varonce287 = var288;
-}
-var292 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var292 = array_instance Array[String] */
-var293 = 1;
-var294 = NEW_array__NativeArray(var293, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var294)->values[0] = (val*) var288;
-((void (*)(val*, val*, long))(var292->class->vft[COLOR_array__Array__with_native]))(var292, var294, var293) /* with_native on <var292:Array[String]>*/;
-CHECK_NEW_array__Array(var292);
-}
-((void (*)(val*, val*, val*))(var281->class->vft[COLOR_opts__OptionBool__init]))(var281, var283, var292) /* init on <var281:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var281);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_cc].val = var281; /* @opt_no_cc on <self:ToolContext exact> */
-var295 = NEW_opts__OptionArray(&type_opts__OptionArray);
-if (varonce296) {
-var297 = varonce296;
+var324 = "--no-cc";
+var325 = 7;
+var326 = string__NativeString__to_s_with_length(var324, var325);
+var323 = var326;
+varonce322 = var323;
+}
+var327 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var327 = array_instance Array[String] */
+var328 = 1;
+var329 = NEW_array__NativeArray(var328, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var329)->values[0] = (val*) var323;
+((void (*)(val*, val*, long))(var327->class->vft[COLOR_array__Array__with_native]))(var327, var329, var328) /* with_native on <var327:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var316->class->vft[COLOR_opts__OptionBool__init]))(var316, var318, var327) /* init on <var316:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_cc].val = var316; /* @opt_no_cc on <self:ToolContext exact> */
+var330 = NEW_opts__OptionArray(&type_opts__OptionArray);
+if (varonce331) {
+var332 = varonce331;
 } else {
-var298 = "Set include path for C header files (may be used more than once)";
-var299 = 64;
-var300 = string__NativeString__to_s_with_length(var298, var299);
-var297 = var300;
-varonce296 = var297;
-}
-if (varonce301) {
-var302 = varonce301;
+var333 = "Set include path for C header files (may be used more than once)";
+var334 = 64;
+var335 = string__NativeString__to_s_with_length(var333, var334);
+var332 = var335;
+varonce331 = var332;
+}
+if (varonce336) {
+var337 = varonce336;
 } else {
-var303 = "--cc-path";
-var304 = 9;
-var305 = string__NativeString__to_s_with_length(var303, var304);
-var302 = var305;
-varonce301 = var302;
-}
-var306 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var306 = array_instance Array[String] */
-var307 = 1;
-var308 = NEW_array__NativeArray(var307, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var308)->values[0] = (val*) var302;
-((void (*)(val*, val*, long))(var306->class->vft[COLOR_array__Array__with_native]))(var306, var308, var307) /* with_native on <var306:Array[String]>*/;
-CHECK_NEW_array__Array(var306);
-}
-((void (*)(val*, val*, val*))(var295->class->vft[COLOR_opts__OptionArray__init]))(var295, var297, var306) /* init on <var295:OptionArray>*/;
-CHECK_NEW_opts__OptionArray(var295);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_cc_path].val = var295; /* @opt_cc_path on <self:ToolContext exact> */
-var309 = NEW_opts__OptionString(&type_opts__OptionString);
-if (varonce310) {
-var311 = varonce310;
+var338 = "--cc-path";
+var339 = 9;
+var340 = string__NativeString__to_s_with_length(var338, var339);
+var337 = var340;
+varonce336 = var337;
+}
+var341 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var341 = array_instance Array[String] */
+var342 = 1;
+var343 = NEW_array__NativeArray(var342, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var343)->values[0] = (val*) var337;
+((void (*)(val*, val*, long))(var341->class->vft[COLOR_array__Array__with_native]))(var341, var343, var342) /* with_native on <var341:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var330->class->vft[COLOR_opts__OptionArray__init]))(var330, var332, var341) /* init on <var330:OptionArray>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_cc_path].val = var330; /* @opt_cc_path on <self:ToolContext exact> */
+var344 = NEW_opts__OptionString(&type_opts__OptionString);
+if (varonce345) {
+var346 = varonce345;
 } else {
-var312 = "Additional options to make";
-var313 = 26;
-var314 = string__NativeString__to_s_with_length(var312, var313);
-var311 = var314;
-varonce310 = var311;
-}
-if (varonce315) {
-var316 = varonce315;
+var347 = "Additional options to make";
+var348 = 26;
+var349 = string__NativeString__to_s_with_length(var347, var348);
+var346 = var349;
+varonce345 = var346;
+}
+if (varonce350) {
+var351 = varonce350;
 } else {
-var317 = "--make-flags";
-var318 = 12;
-var319 = string__NativeString__to_s_with_length(var317, var318);
-var316 = var319;
-varonce315 = var316;
-}
-var320 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var320 = array_instance Array[String] */
-var321 = 1;
-var322 = NEW_array__NativeArray(var321, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var322)->values[0] = (val*) var316;
-((void (*)(val*, val*, long))(var320->class->vft[COLOR_array__Array__with_native]))(var320, var322, var321) /* with_native on <var320:Array[String]>*/;
-CHECK_NEW_array__Array(var320);
-}
-((void (*)(val*, val*, val*))(var309->class->vft[COLOR_opts__OptionString__init]))(var309, var311, var320) /* init on <var309:OptionString>*/;
-CHECK_NEW_opts__OptionString(var309);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_make_flags].val = var309; /* @opt_make_flags on <self:ToolContext exact> */
-var323 = NEW_opts__OptionString(&type_opts__OptionString);
-if (varonce324) {
-var325 = varonce324;
+var352 = "--make-flags";
+var353 = 12;
+var354 = string__NativeString__to_s_with_length(var352, var353);
+var351 = var354;
+varonce350 = var351;
+}
+var355 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var355 = array_instance Array[String] */
+var356 = 1;
+var357 = NEW_array__NativeArray(var356, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var357)->values[0] = (val*) var351;
+((void (*)(val*, val*, long))(var355->class->vft[COLOR_array__Array__with_native]))(var355, var357, var356) /* with_native on <var355:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var344->class->vft[COLOR_opts__OptionString__init]))(var344, var346, var355) /* init on <var344:OptionString>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_make_flags].val = var344; /* @opt_make_flags on <self:ToolContext exact> */
+var358 = NEW_opts__OptionString(&type_opts__OptionString);
+if (varonce359) {
+var360 = varonce359;
 } else {
-var326 = "Directory used to generate temporary files";
-var327 = 42;
-var328 = string__NativeString__to_s_with_length(var326, var327);
-var325 = var328;
-varonce324 = var325;
-}
-if (varonce329) {
-var330 = varonce329;
+var361 = "Directory used to generate temporary files";
+var362 = 42;
+var363 = string__NativeString__to_s_with_length(var361, var362);
+var360 = var363;
+varonce359 = var360;
+}
+if (varonce364) {
+var365 = varonce364;
 } else {
-var331 = "--compile-dir";
-var332 = 13;
-var333 = string__NativeString__to_s_with_length(var331, var332);
-var330 = var333;
-varonce329 = var330;
-}
-var334 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var334 = array_instance Array[String] */
-var335 = 1;
-var336 = NEW_array__NativeArray(var335, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var336)->values[0] = (val*) var330;
-((void (*)(val*, val*, long))(var334->class->vft[COLOR_array__Array__with_native]))(var334, var336, var335) /* with_native on <var334:Array[String]>*/;
-CHECK_NEW_array__Array(var334);
-}
-((void (*)(val*, val*, val*))(var323->class->vft[COLOR_opts__OptionString__init]))(var323, var325, var334) /* init on <var323:OptionString>*/;
-CHECK_NEW_opts__OptionString(var323);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_compile_dir].val = var323; /* @opt_compile_dir on <self:ToolContext exact> */
-var337 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce338) {
-var339 = varonce338;
+var366 = "--compile-dir";
+var367 = 13;
+var368 = string__NativeString__to_s_with_length(var366, var367);
+var365 = var368;
+varonce364 = var365;
+}
+var369 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var369 = array_instance Array[String] */
+var370 = 1;
+var371 = NEW_array__NativeArray(var370, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var371)->values[0] = (val*) var365;
+((void (*)(val*, val*, long))(var369->class->vft[COLOR_array__Array__with_native]))(var369, var371, var370) /* with_native on <var369:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var358->class->vft[COLOR_opts__OptionString__init]))(var358, var360, var369) /* init on <var358:OptionString>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_compile_dir].val = var358; /* @opt_compile_dir on <self:ToolContext exact> */
+var372 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce373) {
+var374 = varonce373;
 } else {
-var340 = "Generate contracts in the C code against bugs in the compiler";
-var341 = 61;
-var342 = string__NativeString__to_s_with_length(var340, var341);
-var339 = var342;
-varonce338 = var339;
-}
-if (varonce343) {
-var344 = varonce343;
+var375 = "Generate contracts in the C code against bugs in the compiler";
+var376 = 61;
+var377 = string__NativeString__to_s_with_length(var375, var376);
+var374 = var377;
+varonce373 = var374;
+}
+if (varonce378) {
+var379 = varonce378;
 } else {
-var345 = "--hardening";
-var346 = 11;
-var347 = string__NativeString__to_s_with_length(var345, var346);
-var344 = var347;
-varonce343 = var344;
-}
-var348 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var348 = array_instance Array[String] */
-var349 = 1;
-var350 = NEW_array__NativeArray(var349, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var350)->values[0] = (val*) var344;
-((void (*)(val*, val*, long))(var348->class->vft[COLOR_array__Array__with_native]))(var348, var350, var349) /* with_native on <var348:Array[String]>*/;
-CHECK_NEW_array__Array(var348);
-}
-((void (*)(val*, val*, val*))(var337->class->vft[COLOR_opts__OptionBool__init]))(var337, var339, var348) /* init on <var337:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var337);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_hardening].val = var337; /* @opt_hardening on <self:ToolContext exact> */
-var351 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce352) {
-var353 = varonce352;
+var380 = "--hardening";
+var381 = 11;
+var382 = string__NativeString__to_s_with_length(var380, var381);
+var379 = var382;
+varonce378 = var379;
+}
+var383 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var383 = array_instance Array[String] */
+var384 = 1;
+var385 = NEW_array__NativeArray(var384, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var385)->values[0] = (val*) var379;
+((void (*)(val*, val*, long))(var383->class->vft[COLOR_array__Array__with_native]))(var383, var385, var384) /* with_native on <var383:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var372->class->vft[COLOR_opts__OptionBool__init]))(var372, var374, var383) /* init on <var372:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_hardening].val = var372; /* @opt_hardening on <self:ToolContext exact> */
+var386 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce387) {
+var388 = varonce387;
 } else {
-var354 = "Always insantiate a range and its iterator on \'for\' loops";
-var355 = 57;
-var356 = string__NativeString__to_s_with_length(var354, var355);
-var353 = var356;
-varonce352 = var353;
-}
-if (varonce357) {
-var358 = varonce357;
+var389 = "Always insantiate a range and its iterator on \'for\' loops";
+var390 = 57;
+var391 = string__NativeString__to_s_with_length(var389, var390);
+var388 = var391;
+varonce387 = var388;
+}
+if (varonce392) {
+var393 = varonce392;
 } else {
-var359 = "--no-shortcut-range";
-var360 = 19;
-var361 = string__NativeString__to_s_with_length(var359, var360);
-var358 = var361;
-varonce357 = var358;
-}
-var362 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var362 = array_instance Array[String] */
-var363 = 1;
-var364 = NEW_array__NativeArray(var363, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var364)->values[0] = (val*) var358;
-((void (*)(val*, val*, long))(var362->class->vft[COLOR_array__Array__with_native]))(var362, var364, var363) /* with_native on <var362:Array[String]>*/;
-CHECK_NEW_array__Array(var362);
-}
-((void (*)(val*, val*, val*))(var351->class->vft[COLOR_opts__OptionBool__init]))(var351, var353, var362) /* init on <var351:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var351);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_shortcut_range].val = var351; /* @opt_no_shortcut_range on <self:ToolContext exact> */
-var365 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce366) {
-var367 = varonce366;
+var394 = "--no-shortcut-range";
+var395 = 19;
+var396 = string__NativeString__to_s_with_length(var394, var395);
+var393 = var396;
+varonce392 = var393;
+}
+var397 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var397 = array_instance Array[String] */
+var398 = 1;
+var399 = NEW_array__NativeArray(var398, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var399)->values[0] = (val*) var393;
+((void (*)(val*, val*, long))(var397->class->vft[COLOR_array__Array__with_native]))(var397, var399, var398) /* with_native on <var397:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var386->class->vft[COLOR_opts__OptionBool__init]))(var386, var388, var397) /* init on <var386:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_shortcut_range].val = var386; /* @opt_no_shortcut_range on <self:ToolContext exact> */
+var400 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce401) {
+var402 = varonce401;
 } else {
-var368 = "Disable type tests of covariant parameters (dangerous)";
-var369 = 54;
-var370 = string__NativeString__to_s_with_length(var368, var369);
-var367 = var370;
-varonce366 = var367;
-}
-if (varonce371) {
-var372 = varonce371;
+var403 = "Disable type tests of covariant parameters (dangerous)";
+var404 = 54;
+var405 = string__NativeString__to_s_with_length(var403, var404);
+var402 = var405;
+varonce401 = var402;
+}
+if (varonce406) {
+var407 = varonce406;
 } else {
-var373 = "--no-check-covariance";
-var374 = 21;
-var375 = string__NativeString__to_s_with_length(var373, var374);
-var372 = var375;
-varonce371 = var372;
-}
-var376 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var376 = array_instance Array[String] */
-var377 = 1;
-var378 = NEW_array__NativeArray(var377, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var378)->values[0] = (val*) var372;
-((void (*)(val*, val*, long))(var376->class->vft[COLOR_array__Array__with_native]))(var376, var378, var377) /* with_native on <var376:Array[String]>*/;
-CHECK_NEW_array__Array(var376);
-}
-((void (*)(val*, val*, val*))(var365->class->vft[COLOR_opts__OptionBool__init]))(var365, var367, var376) /* init on <var365:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var365);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_covariance].val = var365; /* @opt_no_check_covariance on <self:ToolContext exact> */
-var379 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce380) {
-var381 = varonce380;
+var408 = "--no-check-covariance";
+var409 = 21;
+var410 = string__NativeString__to_s_with_length(var408, var409);
+var407 = var410;
+varonce406 = var407;
+}
+var411 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var411 = array_instance Array[String] */
+var412 = 1;
+var413 = NEW_array__NativeArray(var412, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var413)->values[0] = (val*) var407;
+((void (*)(val*, val*, long))(var411->class->vft[COLOR_array__Array__with_native]))(var411, var413, var412) /* with_native on <var411:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var400->class->vft[COLOR_opts__OptionBool__init]))(var400, var402, var411) /* init on <var400:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_covariance].val = var400; /* @opt_no_check_covariance on <self:ToolContext exact> */
+var414 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce415) {
+var416 = varonce415;
 } else {
-var382 = "Disable isset tests at the end of constructors (dangerous)";
-var383 = 58;
-var384 = string__NativeString__to_s_with_length(var382, var383);
-var381 = var384;
-varonce380 = var381;
-}
-if (varonce385) {
-var386 = varonce385;
+var417 = "Disable isset tests at the end of constructors (dangerous)";
+var418 = 58;
+var419 = string__NativeString__to_s_with_length(var417, var418);
+var416 = var419;
+varonce415 = var416;
+}
+if (varonce420) {
+var421 = varonce420;
 } else {
-var387 = "--no-check-initialization";
-var388 = 25;
-var389 = string__NativeString__to_s_with_length(var387, var388);
-var386 = var389;
-varonce385 = var386;
-}
-var390 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var390 = array_instance Array[String] */
-var391 = 1;
-var392 = NEW_array__NativeArray(var391, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var392)->values[0] = (val*) var386;
-((void (*)(val*, val*, long))(var390->class->vft[COLOR_array__Array__with_native]))(var390, var392, var391) /* with_native on <var390:Array[String]>*/;
-CHECK_NEW_array__Array(var390);
-}
-((void (*)(val*, val*, val*))(var379->class->vft[COLOR_opts__OptionBool__init]))(var379, var381, var390) /* init on <var379:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var379);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_initialization].val = var379; /* @opt_no_check_initialization on <self:ToolContext exact> */
-var393 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce394) {
-var395 = varonce394;
+var422 = "--no-check-initialization";
+var423 = 25;
+var424 = string__NativeString__to_s_with_length(var422, var423);
+var421 = var424;
+varonce420 = var421;
+}
+var425 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var425 = array_instance Array[String] */
+var426 = 1;
+var427 = NEW_array__NativeArray(var426, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var427)->values[0] = (val*) var421;
+((void (*)(val*, val*, long))(var425->class->vft[COLOR_array__Array__with_native]))(var425, var427, var426) /* with_native on <var425:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var414->class->vft[COLOR_opts__OptionBool__init]))(var414, var416, var425) /* init on <var414:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_initialization].val = var414; /* @opt_no_check_initialization on <self:ToolContext exact> */
+var428 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce429) {
+var430 = varonce429;
 } else {
-var396 = "Disable the evaluation of explicit \'assert\' and \'as\' (dangerous)";
-var397 = 64;
-var398 = string__NativeString__to_s_with_length(var396, var397);
-var395 = var398;
-varonce394 = var395;
-}
-if (varonce399) {
-var400 = varonce399;
+var431 = "Disable the evaluation of explicit \'assert\' and \'as\' (dangerous)";
+var432 = 64;
+var433 = string__NativeString__to_s_with_length(var431, var432);
+var430 = var433;
+varonce429 = var430;
+}
+if (varonce434) {
+var435 = varonce434;
 } else {
-var401 = "--no-check-assert";
-var402 = 17;
-var403 = string__NativeString__to_s_with_length(var401, var402);
-var400 = var403;
-varonce399 = var400;
-}
-var404 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var404 = array_instance Array[String] */
-var405 = 1;
-var406 = NEW_array__NativeArray(var405, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var406)->values[0] = (val*) var400;
-((void (*)(val*, val*, long))(var404->class->vft[COLOR_array__Array__with_native]))(var404, var406, var405) /* with_native on <var404:Array[String]>*/;
-CHECK_NEW_array__Array(var404);
-}
-((void (*)(val*, val*, val*))(var393->class->vft[COLOR_opts__OptionBool__init]))(var393, var395, var404) /* init on <var393:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var393);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_assert].val = var393; /* @opt_no_check_assert on <self:ToolContext exact> */
-var407 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce408) {
-var409 = varonce408;
+var436 = "--no-check-assert";
+var437 = 17;
+var438 = string__NativeString__to_s_with_length(var436, var437);
+var435 = var438;
+varonce434 = var435;
+}
+var439 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var439 = array_instance Array[String] */
+var440 = 1;
+var441 = NEW_array__NativeArray(var440, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var441)->values[0] = (val*) var435;
+((void (*)(val*, val*, long))(var439->class->vft[COLOR_array__Array__with_native]))(var439, var441, var440) /* with_native on <var439:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var428->class->vft[COLOR_opts__OptionBool__init]))(var428, var430, var439) /* init on <var428:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_assert].val = var428; /* @opt_no_check_assert on <self:ToolContext exact> */
+var442 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce443) {
+var444 = varonce443;
 } else {
-var410 = "Disable implicit casts on unsafe expression usage (dangerous)";
-var411 = 61;
-var412 = string__NativeString__to_s_with_length(var410, var411);
-var409 = var412;
-varonce408 = var409;
-}
-if (varonce413) {
-var414 = varonce413;
+var445 = "Disable implicit casts on unsafe expression usage (dangerous)";
+var446 = 61;
+var447 = string__NativeString__to_s_with_length(var445, var446);
+var444 = var447;
+varonce443 = var444;
+}
+if (varonce448) {
+var449 = varonce448;
 } else {
-var415 = "--no-check-autocast";
-var416 = 19;
-var417 = string__NativeString__to_s_with_length(var415, var416);
-var414 = var417;
-varonce413 = var414;
-}
-var418 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var418 = array_instance Array[String] */
-var419 = 1;
-var420 = NEW_array__NativeArray(var419, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var420)->values[0] = (val*) var414;
-((void (*)(val*, val*, long))(var418->class->vft[COLOR_array__Array__with_native]))(var418, var420, var419) /* with_native on <var418:Array[String]>*/;
-CHECK_NEW_array__Array(var418);
-}
-((void (*)(val*, val*, val*))(var407->class->vft[COLOR_opts__OptionBool__init]))(var407, var409, var418) /* init on <var407:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var407);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_autocast].val = var407; /* @opt_no_check_autocast on <self:ToolContext exact> */
-var421 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce422) {
-var423 = varonce422;
+var450 = "--no-check-autocast";
+var451 = 19;
+var452 = string__NativeString__to_s_with_length(var450, var451);
+var449 = var452;
+varonce448 = var449;
+}
+var453 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var453 = array_instance Array[String] */
+var454 = 1;
+var455 = NEW_array__NativeArray(var454, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var455)->values[0] = (val*) var449;
+((void (*)(val*, val*, long))(var453->class->vft[COLOR_array__Array__with_native]))(var453, var455, var454) /* with_native on <var453:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var442->class->vft[COLOR_opts__OptionBool__init]))(var442, var444, var453) /* init on <var442:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_autocast].val = var442; /* @opt_no_check_autocast on <self:ToolContext exact> */
+var456 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce457) {
+var458 = varonce457;
 } else {
-var424 = "Disable implicit tests: unset attribute, null receiver (dangerous)";
-var425 = 66;
-var426 = string__NativeString__to_s_with_length(var424, var425);
-var423 = var426;
-varonce422 = var423;
-}
-if (varonce427) {
-var428 = varonce427;
+var459 = "Disable implicit tests: unset attribute, null receiver (dangerous)";
+var460 = 66;
+var461 = string__NativeString__to_s_with_length(var459, var460);
+var458 = var461;
+varonce457 = var458;
+}
+if (varonce462) {
+var463 = varonce462;
 } else {
-var429 = "--no-check-other";
-var430 = 16;
-var431 = string__NativeString__to_s_with_length(var429, var430);
-var428 = var431;
-varonce427 = var428;
-}
-var432 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var432 = array_instance Array[String] */
-var433 = 1;
-var434 = NEW_array__NativeArray(var433, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var434)->values[0] = (val*) var428;
-((void (*)(val*, val*, long))(var432->class->vft[COLOR_array__Array__with_native]))(var432, var434, var433) /* with_native on <var432:Array[String]>*/;
-CHECK_NEW_array__Array(var432);
-}
-((void (*)(val*, val*, val*))(var421->class->vft[COLOR_opts__OptionBool__init]))(var421, var423, var432) /* init on <var421:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var421);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_other].val = var421; /* @opt_no_check_other on <self:ToolContext exact> */
-var435 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce436) {
-var437 = varonce436;
+var464 = "--no-check-other";
+var465 = 16;
+var466 = string__NativeString__to_s_with_length(var464, var465);
+var463 = var466;
+varonce462 = var463;
+}
+var467 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var467 = array_instance Array[String] */
+var468 = 1;
+var469 = NEW_array__NativeArray(var468, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var469)->values[0] = (val*) var463;
+((void (*)(val*, val*, long))(var467->class->vft[COLOR_array__Array__with_native]))(var467, var469, var468) /* with_native on <var467:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var456->class->vft[COLOR_opts__OptionBool__init]))(var456, var458, var467) /* init on <var456:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_check_other].val = var456; /* @opt_no_check_other on <self:ToolContext exact> */
+var470 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce471) {
+var472 = varonce471;
 } else {
-var438 = "Enable static and dynamic count of all type tests";
-var439 = 49;
-var440 = string__NativeString__to_s_with_length(var438, var439);
-var437 = var440;
-varonce436 = var437;
-}
-if (varonce441) {
-var442 = varonce441;
+var473 = "Enable static and dynamic count of all type tests";
+var474 = 49;
+var475 = string__NativeString__to_s_with_length(var473, var474);
+var472 = var475;
+varonce471 = var472;
+}
+if (varonce476) {
+var477 = varonce476;
 } else {
-var443 = "--typing-test-metrics";
-var444 = 21;
-var445 = string__NativeString__to_s_with_length(var443, var444);
-var442 = var445;
-varonce441 = var442;
-}
-var446 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var446 = array_instance Array[String] */
-var447 = 1;
-var448 = NEW_array__NativeArray(var447, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var448)->values[0] = (val*) var442;
-((void (*)(val*, val*, long))(var446->class->vft[COLOR_array__Array__with_native]))(var446, var448, var447) /* with_native on <var446:Array[String]>*/;
-CHECK_NEW_array__Array(var446);
-}
-((void (*)(val*, val*, val*))(var435->class->vft[COLOR_opts__OptionBool__init]))(var435, var437, var446) /* init on <var435:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var435);
-self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_typing_test_metrics].val = var435; /* @opt_typing_test_metrics on <self:ToolContext exact> */
-var449 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce450) {
-var451 = varonce450;
+var478 = "--typing-test-metrics";
+var479 = 21;
+var480 = string__NativeString__to_s_with_length(var478, var479);
+var477 = var480;
+varonce476 = var477;
+}
+var481 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var481 = array_instance Array[String] */
+var482 = 1;
+var483 = NEW_array__NativeArray(var482, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var483)->values[0] = (val*) var477;
+((void (*)(val*, val*, long))(var481->class->vft[COLOR_array__Array__with_native]))(var481, var483, var482) /* with_native on <var481:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var470->class->vft[COLOR_opts__OptionBool__init]))(var470, var472, var481) /* init on <var470:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_typing_test_metrics].val = var470; /* @opt_typing_test_metrics on <self:ToolContext exact> */
+var484 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce485) {
+var486 = varonce485;
 } else {
-var452 = "Use separate compilation";
-var453 = 24;
-var454 = string__NativeString__to_s_with_length(var452, var453);
-var451 = var454;
-varonce450 = var451;
-}
-if (varonce455) {
-var456 = varonce455;
+var487 = "Disables libunwind and generation of C stack traces (can be problematic when compiling to targets such as Android or NaCl)";
+var488 = 122;
+var489 = string__NativeString__to_s_with_length(var487, var488);
+var486 = var489;
+varonce485 = var486;
+}
+if (varonce490) {
+var491 = varonce490;
 } else {
-var457 = "--separate";
-var458 = 10;
-var459 = string__NativeString__to_s_with_length(var457, var458);
-var456 = var459;
-varonce455 = var456;
-}
-var460 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var460 = array_instance Array[String] */
-var461 = 1;
-var462 = NEW_array__NativeArray(var461, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var462)->values[0] = (val*) var456;
-((void (*)(val*, val*, long))(var460->class->vft[COLOR_array__Array__with_native]))(var460, var462, var461) /* with_native on <var460:Array[String]>*/;
-CHECK_NEW_array__Array(var460);
-}
-((void (*)(val*, val*, val*))(var449->class->vft[COLOR_opts__OptionBool__init]))(var449, var451, var460) /* init on <var449:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var449);
-self->attrs[COLOR_separate_compiler__ToolContext___64dopt_separate].val = var449; /* @opt_separate on <self:ToolContext exact> */
-var463 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce464) {
-var465 = varonce464;
+var492 = "--no-stacktrace";
+var493 = 15;
+var494 = string__NativeString__to_s_with_length(var492, var493);
+var491 = var494;
+varonce490 = var491;
+}
+var495 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var495 = array_instance Array[String] */
+var496 = 1;
+var497 = NEW_array__NativeArray(var496, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var497)->values[0] = (val*) var491;
+((void (*)(val*, val*, long))(var495->class->vft[COLOR_array__Array__with_native]))(var495, var497, var496) /* with_native on <var495:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var484->class->vft[COLOR_opts__OptionBool__init]))(var484, var486, var495) /* init on <var484:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_no_stacktrace].val = var484; /* @opt_no_stacktrace on <self:ToolContext exact> */
+var498 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce499) {
+var500 = varonce499;
 } else {
-var466 = "Do not inline call to intern methods";
-var467 = 36;
-var468 = string__NativeString__to_s_with_length(var466, var467);
-var465 = var468;
-varonce464 = var465;
-}
-if (varonce469) {
-var470 = varonce469;
+var501 = "Enables the use of gperf to bind C to Nit function names when encountering a Stack trace at runtime";
+var502 = 99;
+var503 = string__NativeString__to_s_with_length(var501, var502);
+var500 = var503;
+varonce499 = var500;
+}
+if (varonce504) {
+var505 = varonce504;
 } else {
-var471 = "--no-inline-intern";
-var472 = 18;
-var473 = string__NativeString__to_s_with_length(var471, var472);
-var470 = var473;
-varonce469 = var470;
-}
-var474 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var474 = array_instance Array[String] */
-var475 = 1;
-var476 = NEW_array__NativeArray(var475, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var476)->values[0] = (val*) var470;
-((void (*)(val*, val*, long))(var474->class->vft[COLOR_array__Array__with_native]))(var474, var476, var475) /* with_native on <var474:Array[String]>*/;
-CHECK_NEW_array__Array(var474);
-}
-((void (*)(val*, val*, val*))(var463->class->vft[COLOR_opts__OptionBool__init]))(var463, var465, var474) /* init on <var463:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var463);
-self->attrs[COLOR_separate_compiler__ToolContext___64dopt_no_inline_intern].val = var463; /* @opt_no_inline_intern on <self:ToolContext exact> */
-var477 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce478) {
-var479 = varonce478;
+var506 = "--nit-stacktrace";
+var507 = 16;
+var508 = string__NativeString__to_s_with_length(var506, var507);
+var505 = var508;
+varonce504 = var505;
+}
+var509 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var509 = array_instance Array[String] */
+var510 = 1;
+var511 = NEW_array__NativeArray(var510, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var511)->values[0] = (val*) var505;
+((void (*)(val*, val*, long))(var509->class->vft[COLOR_array__Array__with_native]))(var509, var511, var510) /* with_native on <var509:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var498->class->vft[COLOR_opts__OptionBool__init]))(var498, var500, var509) /* init on <var498:OptionBool>*/;
+self->attrs[COLOR_abstract_compiler__ToolContext___64dopt_stacktrace].val = var498; /* @opt_stacktrace on <self:ToolContext exact> */
+var512 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce513) {
+var514 = varonce513;
 } else {
-var480 = "Put primitive attibutes in a box instead of an union";
-var481 = 52;
-var482 = string__NativeString__to_s_with_length(var480, var481);
-var479 = var482;
-varonce478 = var479;
-}
-if (varonce483) {
-var484 = varonce483;
+var515 = "Use separate compilation";
+var516 = 24;
+var517 = string__NativeString__to_s_with_length(var515, var516);
+var514 = var517;
+varonce513 = var514;
+}
+if (varonce518) {
+var519 = varonce518;
 } else {
-var485 = "--no-union-attribute";
-var486 = 20;
-var487 = string__NativeString__to_s_with_length(var485, var486);
-var484 = var487;
-varonce483 = var484;
-}
-var488 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var488 = array_instance Array[String] */
-var489 = 1;
-var490 = NEW_array__NativeArray(var489, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var490)->values[0] = (val*) var484;
-((void (*)(val*, val*, long))(var488->class->vft[COLOR_array__Array__with_native]))(var488, var490, var489) /* with_native on <var488:Array[String]>*/;
-CHECK_NEW_array__Array(var488);
-}
-((void (*)(val*, val*, val*))(var477->class->vft[COLOR_opts__OptionBool__init]))(var477, var479, var488) /* init on <var477:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var477);
-self->attrs[COLOR_separate_compiler__ToolContext___64dopt_no_union_attribute].val = var477; /* @opt_no_union_attribute on <self:ToolContext exact> */
-var491 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce492) {
-var493 = varonce492;
+var520 = "--separate";
+var521 = 10;
+var522 = string__NativeString__to_s_with_length(var520, var521);
+var519 = var522;
+varonce518 = var519;
+}
+var523 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var523 = array_instance Array[String] */
+var524 = 1;
+var525 = NEW_array__NativeArray(var524, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var525)->values[0] = (val*) var519;
+((void (*)(val*, val*, long))(var523->class->vft[COLOR_array__Array__with_native]))(var523, var525, var524) /* with_native on <var523:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var512->class->vft[COLOR_opts__OptionBool__init]))(var512, var514, var523) /* init on <var512:OptionBool>*/;
+self->attrs[COLOR_separate_compiler__ToolContext___64dopt_separate].val = var512; /* @opt_separate on <self:ToolContext exact> */
+var526 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce527) {
+var528 = varonce527;
 } else {
-var494 = "Always call == in a polymorphic way";
-var495 = 35;
-var496 = string__NativeString__to_s_with_length(var494, var495);
-var493 = var496;
-varonce492 = var493;
-}
-if (varonce497) {
-var498 = varonce497;
+var529 = "Do not inline call to intern methods";
+var530 = 36;
+var531 = string__NativeString__to_s_with_length(var529, var530);
+var528 = var531;
+varonce527 = var528;
+}
+if (varonce532) {
+var533 = varonce532;
 } else {
-var499 = "--no-shortcut-equal";
-var500 = 19;
-var501 = string__NativeString__to_s_with_length(var499, var500);
-var498 = var501;
-varonce497 = var498;
-}
-var502 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var502 = array_instance Array[String] */
-var503 = 1;
-var504 = NEW_array__NativeArray(var503, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var504)->values[0] = (val*) var498;
-((void (*)(val*, val*, long))(var502->class->vft[COLOR_array__Array__with_native]))(var502, var504, var503) /* with_native on <var502:Array[String]>*/;
-CHECK_NEW_array__Array(var502);
-}
-((void (*)(val*, val*, val*))(var491->class->vft[COLOR_opts__OptionBool__init]))(var491, var493, var502) /* init on <var491:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var491);
-self->attrs[COLOR_separate_compiler__ToolContext___64dopt_no_shortcut_equate].val = var491; /* @opt_no_shortcut_equate on <self:ToolContext exact> */
-var505 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce506) {
-var507 = varonce506;
+var534 = "--no-inline-intern";
+var535 = 18;
+var536 = string__NativeString__to_s_with_length(var534, var535);
+var533 = var536;
+varonce532 = var533;
+}
+var537 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var537 = array_instance Array[String] */
+var538 = 1;
+var539 = NEW_array__NativeArray(var538, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var539)->values[0] = (val*) var533;
+((void (*)(val*, val*, long))(var537->class->vft[COLOR_array__Array__with_native]))(var537, var539, var538) /* with_native on <var537:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var526->class->vft[COLOR_opts__OptionBool__init]))(var526, var528, var537) /* init on <var526:OptionBool>*/;
+self->attrs[COLOR_separate_compiler__ToolContext___64dopt_no_inline_intern].val = var526; /* @opt_no_inline_intern on <self:ToolContext exact> */
+var540 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce541) {
+var542 = varonce541;
 } else {
-var508 = "Inline colors and ids";
-var509 = 21;
-var510 = string__NativeString__to_s_with_length(var508, var509);
-var507 = var510;
-varonce506 = var507;
-}
-if (varonce511) {
-var512 = varonce511;
+var543 = "Put primitive attibutes in a box instead of an union";
+var544 = 52;
+var545 = string__NativeString__to_s_with_length(var543, var544);
+var542 = var545;
+varonce541 = var542;
+}
+if (varonce546) {
+var547 = varonce546;
 } else {
-var513 = "--inline-coloring-numbers";
-var514 = 25;
-var515 = string__NativeString__to_s_with_length(var513, var514);
-var512 = var515;
-varonce511 = var512;
-}
-var516 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var516 = array_instance Array[String] */
-var517 = 1;
-var518 = NEW_array__NativeArray(var517, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var518)->values[0] = (val*) var512;
-((void (*)(val*, val*, long))(var516->class->vft[COLOR_array__Array__with_native]))(var516, var518, var517) /* with_native on <var516:Array[String]>*/;
-CHECK_NEW_array__Array(var516);
-}
-((void (*)(val*, val*, val*))(var505->class->vft[COLOR_opts__OptionBool__init]))(var505, var507, var516) /* init on <var505:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var505);
-self->attrs[COLOR_separate_compiler__ToolContext___64dopt_inline_coloring_numbers].val = var505; /* @opt_inline_coloring_numbers on <self:ToolContext exact> */
-var519 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce520) {
-var521 = varonce520;
+var548 = "--no-union-attribute";
+var549 = 20;
+var550 = string__NativeString__to_s_with_length(var548, var549);
+var547 = var550;
+varonce546 = var547;
+}
+var551 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var551 = array_instance Array[String] */
+var552 = 1;
+var553 = NEW_array__NativeArray(var552, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var553)->values[0] = (val*) var547;
+((void (*)(val*, val*, long))(var551->class->vft[COLOR_array__Array__with_native]))(var551, var553, var552) /* with_native on <var551:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var540->class->vft[COLOR_opts__OptionBool__init]))(var540, var542, var551) /* init on <var540:OptionBool>*/;
+self->attrs[COLOR_separate_compiler__ToolContext___64dopt_no_union_attribute].val = var540; /* @opt_no_union_attribute on <self:ToolContext exact> */
+var554 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce555) {
+var556 = varonce555;
 } else {
-var522 = "Colorize items incrementaly, used to simulate binary matrix typing";
-var523 = 66;
-var524 = string__NativeString__to_s_with_length(var522, var523);
-var521 = var524;
-varonce520 = var521;
-}
-if (varonce525) {
-var526 = varonce525;
+var557 = "Always call == in a polymorphic way";
+var558 = 35;
+var559 = string__NativeString__to_s_with_length(var557, var558);
+var556 = var559;
+varonce555 = var556;
+}
+if (varonce560) {
+var561 = varonce560;
 } else {
-var527 = "--bm-typing";
-var528 = 11;
-var529 = string__NativeString__to_s_with_length(var527, var528);
-var526 = var529;
-varonce525 = var526;
-}
-var530 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var530 = array_instance Array[String] */
-var531 = 1;
-var532 = NEW_array__NativeArray(var531, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var532)->values[0] = (val*) var526;
-((void (*)(val*, val*, long))(var530->class->vft[COLOR_array__Array__with_native]))(var530, var532, var531) /* with_native on <var530:Array[String]>*/;
-CHECK_NEW_array__Array(var530);
-}
-((void (*)(val*, val*, val*))(var519->class->vft[COLOR_opts__OptionBool__init]))(var519, var521, var530) /* init on <var519:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var519);
-self->attrs[COLOR_separate_compiler__ToolContext___64dopt_bm_typing].val = var519; /* @opt_bm_typing on <self:ToolContext exact> */
-var533 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce534) {
-var535 = varonce534;
+var562 = "--no-shortcut-equal";
+var563 = 19;
+var564 = string__NativeString__to_s_with_length(var562, var563);
+var561 = var564;
+varonce560 = var561;
+}
+var565 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var565 = array_instance Array[String] */
+var566 = 1;
+var567 = NEW_array__NativeArray(var566, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var567)->values[0] = (val*) var561;
+((void (*)(val*, val*, long))(var565->class->vft[COLOR_array__Array__with_native]))(var565, var567, var566) /* with_native on <var565:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var554->class->vft[COLOR_opts__OptionBool__init]))(var554, var556, var565) /* init on <var554:OptionBool>*/;
+self->attrs[COLOR_separate_compiler__ToolContext___64dopt_no_shortcut_equate].val = var554; /* @opt_no_shortcut_equate on <self:ToolContext exact> */
+var568 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce569) {
+var570 = varonce569;
 } else {
-var536 = "Replace coloration by perfect hashing (with mod operator)";
-var537 = 57;
-var538 = string__NativeString__to_s_with_length(var536, var537);
-var535 = var538;
-varonce534 = var535;
-}
-if (varonce539) {
-var540 = varonce539;
+var571 = "Inline colors and ids";
+var572 = 21;
+var573 = string__NativeString__to_s_with_length(var571, var572);
+var570 = var573;
+varonce569 = var570;
+}
+if (varonce574) {
+var575 = varonce574;
 } else {
-var541 = "--phmod-typing";
-var542 = 14;
-var543 = string__NativeString__to_s_with_length(var541, var542);
-var540 = var543;
-varonce539 = var540;
-}
-var544 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var544 = array_instance Array[String] */
-var545 = 1;
-var546 = NEW_array__NativeArray(var545, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var546)->values[0] = (val*) var540;
-((void (*)(val*, val*, long))(var544->class->vft[COLOR_array__Array__with_native]))(var544, var546, var545) /* with_native on <var544:Array[String]>*/;
-CHECK_NEW_array__Array(var544);
-}
-((void (*)(val*, val*, val*))(var533->class->vft[COLOR_opts__OptionBool__init]))(var533, var535, var544) /* init on <var533:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var533);
-self->attrs[COLOR_separate_compiler__ToolContext___64dopt_phmod_typing].val = var533; /* @opt_phmod_typing on <self:ToolContext exact> */
-var547 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce548) {
-var549 = varonce548;
+var576 = "--inline-coloring-numbers";
+var577 = 25;
+var578 = string__NativeString__to_s_with_length(var576, var577);
+var575 = var578;
+varonce574 = var575;
+}
+var579 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var579 = array_instance Array[String] */
+var580 = 1;
+var581 = NEW_array__NativeArray(var580, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var581)->values[0] = (val*) var575;
+((void (*)(val*, val*, long))(var579->class->vft[COLOR_array__Array__with_native]))(var579, var581, var580) /* with_native on <var579:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var568->class->vft[COLOR_opts__OptionBool__init]))(var568, var570, var579) /* init on <var568:OptionBool>*/;
+self->attrs[COLOR_separate_compiler__ToolContext___64dopt_inline_coloring_numbers].val = var568; /* @opt_inline_coloring_numbers on <self:ToolContext exact> */
+var582 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce583) {
+var584 = varonce583;
 } else {
-var550 = "Replace coloration by perfect hashing (with and operator)";
-var551 = 57;
-var552 = string__NativeString__to_s_with_length(var550, var551);
-var549 = var552;
-varonce548 = var549;
-}
-if (varonce553) {
-var554 = varonce553;
+var585 = "Colorize items incrementaly, used to simulate binary matrix typing";
+var586 = 66;
+var587 = string__NativeString__to_s_with_length(var585, var586);
+var584 = var587;
+varonce583 = var584;
+}
+if (varonce588) {
+var589 = varonce588;
 } else {
-var555 = "--phand-typing";
-var556 = 14;
-var557 = string__NativeString__to_s_with_length(var555, var556);
-var554 = var557;
-varonce553 = var554;
-}
-var558 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var558 = array_instance Array[String] */
-var559 = 1;
-var560 = NEW_array__NativeArray(var559, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var560)->values[0] = (val*) var554;
-((void (*)(val*, val*, long))(var558->class->vft[COLOR_array__Array__with_native]))(var558, var560, var559) /* with_native on <var558:Array[String]>*/;
-CHECK_NEW_array__Array(var558);
-}
-((void (*)(val*, val*, val*))(var547->class->vft[COLOR_opts__OptionBool__init]))(var547, var549, var558) /* init on <var547:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var547);
-self->attrs[COLOR_separate_compiler__ToolContext___64dopt_phand_typing].val = var547; /* @opt_phand_typing on <self:ToolContext exact> */
-var561 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce562) {
-var563 = varonce562;
+var590 = "--bm-typing";
+var591 = 11;
+var592 = string__NativeString__to_s_with_length(var590, var591);
+var589 = var592;
+varonce588 = var589;
+}
+var593 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var593 = array_instance Array[String] */
+var594 = 1;
+var595 = NEW_array__NativeArray(var594, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var595)->values[0] = (val*) var589;
+((void (*)(val*, val*, long))(var593->class->vft[COLOR_array__Array__with_native]))(var593, var595, var594) /* with_native on <var593:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var582->class->vft[COLOR_opts__OptionBool__init]))(var582, var584, var593) /* init on <var582:OptionBool>*/;
+self->attrs[COLOR_separate_compiler__ToolContext___64dopt_bm_typing].val = var582; /* @opt_bm_typing on <self:ToolContext exact> */
+var596 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce597) {
+var598 = varonce597;
 } else {
-var564 = "Enable static size measuring of tables used for vft, typing and resolution";
-var565 = 74;
-var566 = string__NativeString__to_s_with_length(var564, var565);
-var563 = var566;
-varonce562 = var563;
-}
-if (varonce567) {
-var568 = varonce567;
+var599 = "Replace coloration by perfect hashing (with mod operator)";
+var600 = 57;
+var601 = string__NativeString__to_s_with_length(var599, var600);
+var598 = var601;
+varonce597 = var598;
+}
+if (varonce602) {
+var603 = varonce602;
 } else {
-var569 = "--tables-metrics";
-var570 = 16;
-var571 = string__NativeString__to_s_with_length(var569, var570);
-var568 = var571;
-varonce567 = var568;
-}
-var572 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var572 = array_instance Array[String] */
-var573 = 1;
-var574 = NEW_array__NativeArray(var573, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var574)->values[0] = (val*) var568;
-((void (*)(val*, val*, long))(var572->class->vft[COLOR_array__Array__with_native]))(var572, var574, var573) /* with_native on <var572:Array[String]>*/;
-CHECK_NEW_array__Array(var572);
-}
-((void (*)(val*, val*, val*))(var561->class->vft[COLOR_opts__OptionBool__init]))(var561, var563, var572) /* init on <var561:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var561);
-self->attrs[COLOR_separate_compiler__ToolContext___64dopt_tables_metrics].val = var561; /* @opt_tables_metrics on <self:ToolContext exact> */
-var575 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce576) {
-var577 = varonce576;
+var604 = "--phmod-typing";
+var605 = 14;
+var606 = string__NativeString__to_s_with_length(var604, var605);
+var603 = var606;
+varonce602 = var603;
+}
+var607 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var607 = array_instance Array[String] */
+var608 = 1;
+var609 = NEW_array__NativeArray(var608, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var609)->values[0] = (val*) var603;
+((void (*)(val*, val*, long))(var607->class->vft[COLOR_array__Array__with_native]))(var607, var609, var608) /* with_native on <var607:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var596->class->vft[COLOR_opts__OptionBool__init]))(var596, var598, var607) /* init on <var596:OptionBool>*/;
+self->attrs[COLOR_separate_compiler__ToolContext___64dopt_phmod_typing].val = var596; /* @opt_phmod_typing on <self:ToolContext exact> */
+var610 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce611) {
+var612 = varonce611;
 } else {
-var578 = "Erase generic types";
-var579 = 19;
-var580 = string__NativeString__to_s_with_length(var578, var579);
-var577 = var580;
-varonce576 = var577;
-}
-if (varonce581) {
-var582 = varonce581;
+var613 = "Replace coloration by perfect hashing (with and operator)";
+var614 = 57;
+var615 = string__NativeString__to_s_with_length(var613, var614);
+var612 = var615;
+varonce611 = var612;
+}
+if (varonce616) {
+var617 = varonce616;
 } else {
-var583 = "--erasure";
-var584 = 9;
-var585 = string__NativeString__to_s_with_length(var583, var584);
-var582 = var585;
-varonce581 = var582;
-}
-var586 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var586 = array_instance Array[String] */
-var587 = 1;
-var588 = NEW_array__NativeArray(var587, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var588)->values[0] = (val*) var582;
-((void (*)(val*, val*, long))(var586->class->vft[COLOR_array__Array__with_native]))(var586, var588, var587) /* with_native on <var586:Array[String]>*/;
-CHECK_NEW_array__Array(var586);
-}
-((void (*)(val*, val*, val*))(var575->class->vft[COLOR_opts__OptionBool__init]))(var575, var577, var586) /* init on <var575:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var575);
-self->attrs[COLOR_separate_erasure_compiler__ToolContext___64dopt_erasure].val = var575; /* @opt_erasure on <self:ToolContext exact> */
-var589 = NEW_opts__OptionBool(&type_opts__OptionBool);
-if (varonce590) {
-var591 = varonce590;
+var618 = "--phand-typing";
+var619 = 14;
+var620 = string__NativeString__to_s_with_length(var618, var619);
+var617 = var620;
+varonce616 = var617;
+}
+var621 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var621 = array_instance Array[String] */
+var622 = 1;
+var623 = NEW_array__NativeArray(var622, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var623)->values[0] = (val*) var617;
+((void (*)(val*, val*, long))(var621->class->vft[COLOR_array__Array__with_native]))(var621, var623, var622) /* with_native on <var621:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var610->class->vft[COLOR_opts__OptionBool__init]))(var610, var612, var621) /* init on <var610:OptionBool>*/;
+self->attrs[COLOR_separate_compiler__ToolContext___64dopt_phand_typing].val = var610; /* @opt_phand_typing on <self:ToolContext exact> */
+var624 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce625) {
+var626 = varonce625;
 } else {
-var592 = "Disable implicit casts on unsafe return with erasure-typing policy (dangerous)";
-var593 = 78;
-var594 = string__NativeString__to_s_with_length(var592, var593);
-var591 = var594;
-varonce590 = var591;
-}
-if (varonce595) {
-var596 = varonce595;
+var627 = "Enable static size measuring of tables used for vft, typing and resolution";
+var628 = 74;
+var629 = string__NativeString__to_s_with_length(var627, var628);
+var626 = var629;
+varonce625 = var626;
+}
+if (varonce630) {
+var631 = varonce630;
 } else {
-var597 = "--no-check-erasure-cast";
-var598 = 23;
-var599 = string__NativeString__to_s_with_length(var597, var598);
-var596 = var599;
-varonce595 = var596;
-}
-var600 = NEW_array__Array(&type_array__Arraystring__String);
-{ /* var600 = array_instance Array[String] */
-var601 = 1;
-var602 = NEW_array__NativeArray(var601, &type_array__NativeArraystring__String);
-((struct instance_array__NativeArray*)var602)->values[0] = (val*) var596;
-((void (*)(val*, val*, long))(var600->class->vft[COLOR_array__Array__with_native]))(var600, var602, var601) /* with_native on <var600:Array[String]>*/;
-CHECK_NEW_array__Array(var600);
-}
-((void (*)(val*, val*, val*))(var589->class->vft[COLOR_opts__OptionBool__init]))(var589, var591, var600) /* init on <var589:OptionBool>*/;
-CHECK_NEW_opts__OptionBool(var589);
-self->attrs[COLOR_separate_erasure_compiler__ToolContext___64dopt_no_check_erasure_cast].val = var589; /* @opt_no_check_erasure_cast on <self:ToolContext exact> */
+var632 = "--tables-metrics";
+var633 = 16;
+var634 = string__NativeString__to_s_with_length(var632, var633);
+var631 = var634;
+varonce630 = var631;
+}
+var635 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var635 = array_instance Array[String] */
+var636 = 1;
+var637 = NEW_array__NativeArray(var636, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var637)->values[0] = (val*) var631;
+((void (*)(val*, val*, long))(var635->class->vft[COLOR_array__Array__with_native]))(var635, var637, var636) /* with_native on <var635:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var624->class->vft[COLOR_opts__OptionBool__init]))(var624, var626, var635) /* init on <var624:OptionBool>*/;
+self->attrs[COLOR_separate_compiler__ToolContext___64dopt_tables_metrics].val = var624; /* @opt_tables_metrics on <self:ToolContext exact> */
+var638 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce639) {
+var640 = varonce639;
+} else {
+var641 = "Erase generic types";
+var642 = 19;
+var643 = string__NativeString__to_s_with_length(var641, var642);
+var640 = var643;
+varonce639 = var640;
+}
+if (varonce644) {
+var645 = varonce644;
+} else {
+var646 = "--erasure";
+var647 = 9;
+var648 = string__NativeString__to_s_with_length(var646, var647);
+var645 = var648;
+varonce644 = var645;
+}
+var649 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var649 = array_instance Array[String] */
+var650 = 1;
+var651 = NEW_array__NativeArray(var650, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var651)->values[0] = (val*) var645;
+((void (*)(val*, val*, long))(var649->class->vft[COLOR_array__Array__with_native]))(var649, var651, var650) /* with_native on <var649:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var638->class->vft[COLOR_opts__OptionBool__init]))(var638, var640, var649) /* init on <var638:OptionBool>*/;
+self->attrs[COLOR_separate_erasure_compiler__ToolContext___64dopt_erasure].val = var638; /* @opt_erasure on <self:ToolContext exact> */
+var652 = NEW_opts__OptionBool(&type_opts__OptionBool);
+if (varonce653) {
+var654 = varonce653;
+} else {
+var655 = "Disable implicit casts on unsafe return with erasure-typing policy (dangerous)";
+var656 = 78;
+var657 = string__NativeString__to_s_with_length(var655, var656);
+var654 = var657;
+varonce653 = var654;
+}
+if (varonce658) {
+var659 = varonce658;
+} else {
+var660 = "--no-check-erasure-cast";
+var661 = 23;
+var662 = string__NativeString__to_s_with_length(var660, var661);
+var659 = var662;
+varonce658 = var659;
+}
+var663 = NEW_array__Array(&type_array__Arraystring__String);
+{ /* var663 = array_instance Array[String] */
+var664 = 1;
+var665 = NEW_array__NativeArray(var664, &type_array__NativeArraystring__String);
+((struct instance_array__NativeArray*)var665)->values[0] = (val*) var659;
+((void (*)(val*, val*, long))(var663->class->vft[COLOR_array__Array__with_native]))(var663, var665, var664) /* with_native on <var663:Array[String]>*/;
+}
+((void (*)(val*, val*, val*))(var652->class->vft[COLOR_opts__OptionBool__init]))(var652, var654, var663) /* init on <var652:OptionBool>*/;
+self->attrs[COLOR_separate_erasure_compiler__ToolContext___64dopt_no_check_erasure_cast].val = var652; /* @opt_no_check_erasure_cast on <self:ToolContext exact> */
 return self;
 }
-/* allocate ToolContext */
-void CHECK_NEW_toolcontext__ToolContext(val* self) {
-}
 /* runtime class phase__AnnotationPhaseVisitor */
 const struct class class_phase__AnnotationPhaseVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to phase:AnnotationPhaseVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to phase:AnnotationPhaseVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to phase:AnnotationPhaseVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to phase:AnnotationPhaseVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to phase:AnnotationPhaseVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to phase:AnnotationPhaseVisitor:kernel#Object#output */
@@ -2115,16 +2236,17 @@ const struct class class_phase__AnnotationPhaseVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to phase:AnnotationPhaseVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to phase:AnnotationPhaseVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to phase:AnnotationPhaseVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to phase:AnnotationPhaseVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to phase:AnnotationPhaseVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to phase:AnnotationPhaseVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to phase:AnnotationPhaseVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to phase:AnnotationPhaseVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to phase:AnnotationPhaseVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to phase:AnnotationPhaseVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to phase:AnnotationPhaseVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to phase:AnnotationPhaseVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to phase:AnnotationPhaseVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to phase:AnnotationPhaseVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to phase:AnnotationPhaseVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to phase:AnnotationPhaseVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to phase:AnnotationPhaseVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to phase:AnnotationPhaseVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to phase:AnnotationPhaseVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to phase:AnnotationPhaseVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to phase:AnnotationPhaseVisitor:time#Object#get_time */
@@ -2147,6 +2269,14 @@ const struct class class_phase__AnnotationPhaseVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to phase:AnnotationPhaseVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to phase:AnnotationPhaseVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to phase:AnnotationPhaseVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to phase:AnnotationPhaseVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to phase:AnnotationPhaseVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to phase:AnnotationPhaseVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to phase:AnnotationPhaseVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to phase:AnnotationPhaseVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to phase:AnnotationPhaseVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to phase:AnnotationPhaseVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to phase:AnnotationPhaseVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__AnnotationPhaseVisitor__visit, /* pointer to phase:AnnotationPhaseVisitor:phase#AnnotationPhaseVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to phase:AnnotationPhaseVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to phase:AnnotationPhaseVisitor:parser_nodes#Visitor#current_node */
@@ -2168,21 +2298,13 @@ var = NULL;
 self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:AnnotationPhaseVisitor exact> */
 return self;
 }
-/* allocate AnnotationPhaseVisitor */
-void CHECK_NEW_phase__AnnotationPhaseVisitor(val* self) {
-val* var /* : Phase */;
-var = self->attrs[COLOR_phase__AnnotationPhaseVisitor___64dphase].val; /* @phase on <self:AnnotationPhaseVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @phase", "src/phase.nit", 93);
-exit(1);
-}
-}
 /* runtime class simple_misc_analysis__SimpleMiscAnalysisPhase */
 const struct class class_simple_misc_analysis__SimpleMiscAnalysisPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:kernel#Object#output */
@@ -2190,16 +2312,17 @@ const struct class class_simple_misc_analysis__SimpleMiscAnalysisPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:time#Object#get_time */
@@ -2222,6 +2345,14 @@ const struct class class_simple_misc_analysis__SimpleMiscAnalysisPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:phase#Phase#in_hierarchy */
@@ -2231,7 +2362,7 @@ const struct class class_simple_misc_analysis__SimpleMiscAnalysisPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:phase#Phase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to simple_misc_analysis:SimpleMiscAnalysisPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate SimpleMiscAnalysisPhase */
@@ -2242,27 +2373,13 @@ self->type = type;
 self->class = &class_simple_misc_analysis__SimpleMiscAnalysisPhase;
 return self;
 }
-/* allocate SimpleMiscAnalysisPhase */
-void CHECK_NEW_simple_misc_analysis__SimpleMiscAnalysisPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:SimpleMiscAnalysisPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:SimpleMiscAnalysisPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class simple_misc_analysis__SimpleMiscVisitor */
 const struct class class_simple_misc_analysis__SimpleMiscVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to simple_misc_analysis:SimpleMiscVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to simple_misc_analysis:SimpleMiscVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to simple_misc_analysis:SimpleMiscVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to simple_misc_analysis:SimpleMiscVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to simple_misc_analysis:SimpleMiscVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to simple_misc_analysis:SimpleMiscVisitor:kernel#Object#output */
@@ -2270,16 +2387,17 @@ const struct class class_simple_misc_analysis__SimpleMiscVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to simple_misc_analysis:SimpleMiscVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to simple_misc_analysis:SimpleMiscVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to simple_misc_analysis:SimpleMiscVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to simple_misc_analysis:SimpleMiscVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to simple_misc_analysis:SimpleMiscVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to simple_misc_analysis:SimpleMiscVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to simple_misc_analysis:SimpleMiscVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to simple_misc_analysis:SimpleMiscVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to simple_misc_analysis:SimpleMiscVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to simple_misc_analysis:SimpleMiscVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to simple_misc_analysis:SimpleMiscVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to simple_misc_analysis:SimpleMiscVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to simple_misc_analysis:SimpleMiscVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to simple_misc_analysis:SimpleMiscVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to simple_misc_analysis:SimpleMiscVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to simple_misc_analysis:SimpleMiscVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to simple_misc_analysis:SimpleMiscVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to simple_misc_analysis:SimpleMiscVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to simple_misc_analysis:SimpleMiscVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to simple_misc_analysis:SimpleMiscVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to simple_misc_analysis:SimpleMiscVisitor:time#Object#get_time */
@@ -2302,6 +2420,14 @@ const struct class class_simple_misc_analysis__SimpleMiscVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to simple_misc_analysis:SimpleMiscVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to simple_misc_analysis:SimpleMiscVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to simple_misc_analysis:SimpleMiscVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to simple_misc_analysis:SimpleMiscVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to simple_misc_analysis:SimpleMiscVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to simple_misc_analysis:SimpleMiscVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to simple_misc_analysis:SimpleMiscVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to simple_misc_analysis:SimpleMiscVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to simple_misc_analysis:SimpleMiscVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to simple_misc_analysis:SimpleMiscVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to simple_misc_analysis:SimpleMiscVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_simple_misc_analysis__SimpleMiscVisitor__visit, /* pointer to simple_misc_analysis:SimpleMiscVisitor:simple_misc_analysis#SimpleMiscVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to simple_misc_analysis:SimpleMiscVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to simple_misc_analysis:SimpleMiscVisitor:parser_nodes#Visitor#current_node */
@@ -2329,21 +2455,13 @@ var1 = 0;
 self->attrs[COLOR_simple_misc_analysis__SimpleMiscVisitor___64donce_count].l = var1; /* @once_count on <self:SimpleMiscVisitor exact> */
 return self;
 }
-/* allocate SimpleMiscVisitor */
-void CHECK_NEW_simple_misc_analysis__SimpleMiscVisitor(val* self) {
-val* var /* : ToolContext */;
-var = self->attrs[COLOR_simple_misc_analysis__SimpleMiscVisitor___64dtoolcontext].val; /* @toolcontext on <self:SimpleMiscVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/simple_misc_analysis.nit", 57);
-exit(1);
-}
-}
 /* runtime class literal__LiteralPhase */
 const struct class class_literal__LiteralPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to literal:LiteralPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to literal:LiteralPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to literal:LiteralPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to literal:LiteralPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to literal:LiteralPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to literal:LiteralPhase:kernel#Object#output */
@@ -2351,16 +2469,17 @@ const struct class class_literal__LiteralPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to literal:LiteralPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to literal:LiteralPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to literal:LiteralPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to literal:LiteralPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to literal:LiteralPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to literal:LiteralPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to literal:LiteralPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to literal:LiteralPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to literal:LiteralPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to literal:LiteralPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to literal:LiteralPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to literal:LiteralPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to literal:LiteralPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to literal:LiteralPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to literal:LiteralPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to literal:LiteralPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to literal:LiteralPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to literal:LiteralPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to literal:LiteralPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to literal:LiteralPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to literal:LiteralPhase:time#Object#get_time */
@@ -2383,6 +2502,14 @@ const struct class class_literal__LiteralPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to literal:LiteralPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to literal:LiteralPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to literal:LiteralPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to literal:LiteralPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to literal:LiteralPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to literal:LiteralPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to literal:LiteralPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to literal:LiteralPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to literal:LiteralPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to literal:LiteralPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to literal:LiteralPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to literal:LiteralPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to literal:LiteralPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to literal:LiteralPhase:phase#Phase#in_hierarchy */
@@ -2392,7 +2519,7 @@ const struct class class_literal__LiteralPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to literal:LiteralPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to literal:LiteralPhase:phase#Phase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to literal:LiteralPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to literal:LiteralPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to literal:LiteralPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate LiteralPhase */
@@ -2403,27 +2530,13 @@ self->type = type;
 self->class = &class_literal__LiteralPhase;
 return self;
 }
-/* allocate LiteralPhase */
-void CHECK_NEW_literal__LiteralPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:LiteralPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:LiteralPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class literal__LiteralVisitor */
 const struct class class_literal__LiteralVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to literal:LiteralVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to literal:LiteralVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to literal:LiteralVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to literal:LiteralVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to literal:LiteralVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to literal:LiteralVisitor:kernel#Object#output */
@@ -2431,16 +2544,17 @@ const struct class class_literal__LiteralVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to literal:LiteralVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to literal:LiteralVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to literal:LiteralVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to literal:LiteralVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to literal:LiteralVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to literal:LiteralVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to literal:LiteralVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to literal:LiteralVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to literal:LiteralVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to literal:LiteralVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to literal:LiteralVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to literal:LiteralVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to literal:LiteralVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to literal:LiteralVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to literal:LiteralVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to literal:LiteralVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to literal:LiteralVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to literal:LiteralVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to literal:LiteralVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to literal:LiteralVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to literal:LiteralVisitor:time#Object#get_time */
@@ -2463,6 +2577,14 @@ const struct class class_literal__LiteralVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to literal:LiteralVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to literal:LiteralVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to literal:LiteralVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to literal:LiteralVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to literal:LiteralVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to literal:LiteralVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to literal:LiteralVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to literal:LiteralVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to literal:LiteralVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to literal:LiteralVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to literal:LiteralVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_literal__LiteralVisitor__visit, /* pointer to literal:LiteralVisitor:literal#LiteralVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to literal:LiteralVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to literal:LiteralVisitor:parser_nodes#Visitor#current_node */
@@ -2484,21 +2606,13 @@ var = NULL;
 self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:LiteralVisitor exact> */
 return self;
 }
-/* allocate LiteralVisitor */
-void CHECK_NEW_literal__LiteralVisitor(val* self) {
-val* var /* : ToolContext */;
-var = self->attrs[COLOR_literal__LiteralVisitor___64dtoolcontext].val; /* @toolcontext on <self:LiteralVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/literal.nit", 47);
-exit(1);
-}
-}
 /* runtime class scope__ScopePhase */
 const struct class class_scope__ScopePhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to scope:ScopePhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to scope:ScopePhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to scope:ScopePhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to scope:ScopePhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to scope:ScopePhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to scope:ScopePhase:kernel#Object#output */
@@ -2506,16 +2620,17 @@ const struct class class_scope__ScopePhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to scope:ScopePhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to scope:ScopePhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to scope:ScopePhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:ScopePhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:ScopePhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:ScopePhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:ScopePhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to scope:ScopePhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to scope:ScopePhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to scope:ScopePhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to scope:ScopePhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to scope:ScopePhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to scope:ScopePhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:ScopePhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:ScopePhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:ScopePhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:ScopePhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to scope:ScopePhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to scope:ScopePhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to scope:ScopePhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to scope:ScopePhase:time#Object#get_time */
@@ -2538,6 +2653,14 @@ const struct class class_scope__ScopePhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to scope:ScopePhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to scope:ScopePhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to scope:ScopePhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to scope:ScopePhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to scope:ScopePhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to scope:ScopePhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to scope:ScopePhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to scope:ScopePhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to scope:ScopePhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to scope:ScopePhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to scope:ScopePhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to scope:ScopePhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to scope:ScopePhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to scope:ScopePhase:phase#Phase#in_hierarchy */
@@ -2547,7 +2670,7 @@ const struct class class_scope__ScopePhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to scope:ScopePhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_scope__ScopePhase__process_npropdef, /* pointer to scope:ScopePhase:scope#ScopePhase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to scope:ScopePhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to scope:ScopePhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to scope:ScopePhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate ScopePhase */
@@ -2558,27 +2681,13 @@ self->type = type;
 self->class = &class_scope__ScopePhase;
 return self;
 }
-/* allocate ScopePhase */
-void CHECK_NEW_scope__ScopePhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:ScopePhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:ScopePhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class scope__Variable */
 const struct class class_scope__Variable = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to scope:Variable:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to scope:Variable:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to scope:Variable:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to scope:Variable:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to scope:Variable:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to scope:Variable:kernel#Object#output */
@@ -2586,16 +2695,17 @@ const struct class class_scope__Variable = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to scope:Variable:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to scope:Variable:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to scope:Variable:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:Variable:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:Variable:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:Variable:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:Variable:math#Object#srand */
 (nitmethod_t)VIRTUAL_scope__Variable__to_s, /* pointer to scope:Variable:scope#Variable#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to scope:Variable:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to scope:Variable:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to scope:Variable:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to scope:Variable:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to scope:Variable:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:Variable:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:Variable:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:Variable:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:Variable:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to scope:Variable:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to scope:Variable:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to scope:Variable:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to scope:Variable:time#Object#get_time */
@@ -2618,6 +2728,14 @@ const struct class class_scope__Variable = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to scope:Variable:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to scope:Variable:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to scope:Variable:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to scope:Variable:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to scope:Variable:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to scope:Variable:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to scope:Variable:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to scope:Variable:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to scope:Variable:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to scope:Variable:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to scope:Variable:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_scope__Variable__name, /* pointer to scope:Variable:scope#Variable#name */
 (nitmethod_t)VIRTUAL_scope__Variable__name_61d, /* pointer to scope:Variable:scope#Variable#name= */
 (nitmethod_t)VIRTUAL_scope__Variable__init, /* pointer to scope:Variable:scope#Variable#init */
@@ -2633,94 +2751,13 @@ self->type = type;
 self->class = &class_scope__Variable;
 return self;
 }
-/* allocate Variable */
-void CHECK_NEW_scope__Variable(val* self) {
-val* var /* : String */;
-val* var1 /* : nullable MType */;
-var = self->attrs[COLOR_scope__Variable___64dname].val; /* @name on <self:Variable> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/scope.nit", 36);
-exit(1);
-}
-var1 = self->attrs[COLOR_typing__Variable___64ddeclared_type].val; /* @declared_type on <self:Variable> */
-}
-/* runtime class scope__ClosureVariable */
-const struct class class_scope__ClosureVariable = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to scope:ClosureVariable:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to scope:ClosureVariable:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to scope:ClosureVariable:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to scope:ClosureVariable:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to scope:ClosureVariable:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to scope:ClosureVariable:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to scope:ClosureVariable:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to scope:ClosureVariable:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to scope:ClosureVariable:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_scope__Variable__to_s, /* pointer to scope:ClosureVariable:scope#Variable#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to scope:ClosureVariable:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to scope:ClosureVariable:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to scope:ClosureVariable:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to scope:ClosureVariable:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to scope:ClosureVariable:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:ClosureVariable:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:ClosureVariable:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:ClosureVariable:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:ClosureVariable:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to scope:ClosureVariable:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to scope:ClosureVariable:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to scope:ClosureVariable:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to scope:ClosureVariable:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to scope:ClosureVariable:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to scope:ClosureVariable:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to scope:ClosureVariable:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to scope:ClosureVariable:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to scope:ClosureVariable:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to scope:ClosureVariable:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to scope:ClosureVariable:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to scope:ClosureVariable:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to scope:ClosureVariable:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to scope:ClosureVariable:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to scope:ClosureVariable:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to scope:ClosureVariable:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to scope:ClosureVariable:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to scope:ClosureVariable:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to scope:ClosureVariable:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to scope:ClosureVariable:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to scope:ClosureVariable:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to scope:ClosureVariable:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_scope__Variable__name, /* pointer to scope:ClosureVariable:scope#Variable#name */
-(nitmethod_t)VIRTUAL_scope__Variable__name_61d, /* pointer to scope:ClosureVariable:scope#Variable#name= */
-(nitmethod_t)VIRTUAL_scope__Variable__init, /* pointer to scope:ClosureVariable:scope#Variable#init */
-(nitmethod_t)VIRTUAL_typing__Variable__declared_type, /* pointer to scope:ClosureVariable:typing#Variable#declared_type */
-(nitmethod_t)VIRTUAL_typing__Variable__declared_type_61d, /* pointer to scope:ClosureVariable:typing#Variable#declared_type= */
-}
-};
-/* allocate ClosureVariable */
-val* NEW_scope__ClosureVariable(const struct type* type) {
-val* self /* : ClosureVariable */;
-self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_scope__ClosureVariable;
-return self;
-}
-/* allocate ClosureVariable */
-void CHECK_NEW_scope__ClosureVariable(val* self) {
-val* var /* : String */;
-val* var1 /* : nullable MType */;
-var = self->attrs[COLOR_scope__Variable___64dname].val; /* @name on <self:ClosureVariable> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/scope.nit", 36);
-exit(1);
-}
-var1 = self->attrs[COLOR_typing__Variable___64ddeclared_type].val; /* @declared_type on <self:ClosureVariable> */
-}
 /* runtime class scope__EscapeMark */
 const struct class class_scope__EscapeMark = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to scope:EscapeMark:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to scope:EscapeMark:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to scope:EscapeMark:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to scope:EscapeMark:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to scope:EscapeMark:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to scope:EscapeMark:kernel#Object#output */
@@ -2728,16 +2765,17 @@ const struct class class_scope__EscapeMark = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to scope:EscapeMark:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to scope:EscapeMark:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to scope:EscapeMark:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:EscapeMark:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:EscapeMark:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:EscapeMark:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:EscapeMark:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to scope:EscapeMark:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to scope:EscapeMark:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to scope:EscapeMark:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to scope:EscapeMark:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to scope:EscapeMark:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to scope:EscapeMark:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:EscapeMark:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:EscapeMark:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:EscapeMark:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:EscapeMark:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to scope:EscapeMark:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to scope:EscapeMark:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to scope:EscapeMark:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to scope:EscapeMark:time#Object#get_time */
@@ -2760,6 +2798,14 @@ const struct class class_scope__EscapeMark = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to scope:EscapeMark:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to scope:EscapeMark:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to scope:EscapeMark:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to scope:EscapeMark:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to scope:EscapeMark:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to scope:EscapeMark:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to scope:EscapeMark:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to scope:EscapeMark:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to scope:EscapeMark:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to scope:EscapeMark:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to scope:EscapeMark:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_scope__EscapeMark__name, /* pointer to scope:EscapeMark:scope#EscapeMark#name */
 (nitmethod_t)VIRTUAL_scope__EscapeMark__name_61d, /* pointer to scope:EscapeMark:scope#EscapeMark#name= */
 (nitmethod_t)VIRTUAL_scope__EscapeMark__for_loop, /* pointer to scope:EscapeMark:scope#EscapeMark#for_loop */
@@ -2781,27 +2827,19 @@ self->type = type;
 self->class = &class_scope__EscapeMark;
 var = NEW_array__Array(&type_array__Arrayparser_nodes__AContinueExpr);
 ((void (*)(val*))(var->class->vft[COLOR_array__Array__init]))(var) /* init on <var:Array[AContinueExpr]>*/;
-CHECK_NEW_array__Array(var);
 self->attrs[COLOR_scope__EscapeMark___64dcontinues].val = var; /* @continues on <self:EscapeMark exact> */
 var1 = NEW_array__Array(&type_array__Arrayparser_nodes__ABreakExpr);
 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[ABreakExpr]>*/;
-CHECK_NEW_array__Array(var1);
 self->attrs[COLOR_scope__EscapeMark___64dbreaks].val = var1; /* @breaks on <self:EscapeMark exact> */
 return self;
 }
-/* allocate EscapeMark */
-void CHECK_NEW_scope__EscapeMark(val* self) {
-val* var /* : nullable String */;
-short int var1 /* : Bool */;
-var = self->attrs[COLOR_scope__EscapeMark___64dname].val; /* @name on <self:EscapeMark> */
-var1 = self->attrs[COLOR_scope__EscapeMark___64dfor_loop].s; /* @for_loop on <self:EscapeMark> */
-}
 /* runtime class scope__ScopeVisitor */
 const struct class class_scope__ScopeVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to scope:ScopeVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to scope:ScopeVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to scope:ScopeVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to scope:ScopeVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to scope:ScopeVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to scope:ScopeVisitor:kernel#Object#output */
@@ -2809,16 +2847,17 @@ const struct class class_scope__ScopeVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to scope:ScopeVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to scope:ScopeVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to scope:ScopeVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:ScopeVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:ScopeVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:ScopeVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:ScopeVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to scope:ScopeVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to scope:ScopeVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to scope:ScopeVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to scope:ScopeVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to scope:ScopeVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to scope:ScopeVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:ScopeVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:ScopeVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:ScopeVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:ScopeVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to scope:ScopeVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to scope:ScopeVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to scope:ScopeVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to scope:ScopeVisitor:time#Object#get_time */
@@ -2841,6 +2880,14 @@ const struct class class_scope__ScopeVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to scope:ScopeVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to scope:ScopeVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to scope:ScopeVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to scope:ScopeVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to scope:ScopeVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to scope:ScopeVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to scope:ScopeVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to scope:ScopeVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to scope:ScopeVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to scope:ScopeVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to scope:ScopeVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_scope__ScopeVisitor__visit, /* pointer to scope:ScopeVisitor:scope#ScopeVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to scope:ScopeVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to scope:ScopeVisitor:parser_nodes#Visitor#current_node */
@@ -2889,29 +2936,19 @@ var2 = var5;
 varonce = var2;
 }
 ((void (*)(val*, val*))(var1->class->vft[COLOR_scope__Variable__init]))(var1, var2) /* init on <var1:Variable>*/;
-CHECK_NEW_scope__Variable(var1);
 self->attrs[COLOR_scope__ScopeVisitor___64dselfvariable].val = var1; /* @selfvariable on <self:ScopeVisitor exact> */
 var6 = NEW_list__List(&type_list__Listscope__Scope);
 ((void (*)(val*))(var6->class->vft[COLOR_list__List__init]))(var6) /* init on <var6:List[Scope]>*/;
-CHECK_NEW_list__List(var6);
 self->attrs[COLOR_scope__ScopeVisitor___64dscopes].val = var6; /* @scopes on <self:ScopeVisitor exact> */
 return self;
 }
-/* allocate ScopeVisitor */
-void CHECK_NEW_scope__ScopeVisitor(val* self) {
-val* var /* : ToolContext */;
-var = self->attrs[COLOR_scope__ScopeVisitor___64dtoolcontext].val; /* @toolcontext on <self:ScopeVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/scope.nit", 74);
-exit(1);
-}
-}
 /* runtime class scope__Scope */
 const struct class class_scope__Scope = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to scope:Scope:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to scope:Scope:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to scope:Scope:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to scope:Scope:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to scope:Scope:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to scope:Scope:kernel#Object#output */
@@ -2919,16 +2956,17 @@ const struct class class_scope__Scope = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to scope:Scope:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to scope:Scope:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to scope:Scope:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:Scope:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:Scope:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:Scope:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:Scope:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to scope:Scope:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to scope:Scope:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to scope:Scope:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to scope:Scope:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to scope:Scope:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to scope:Scope:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to scope:Scope:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to scope:Scope:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to scope:Scope:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to scope:Scope:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to scope:Scope:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to scope:Scope:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to scope:Scope:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to scope:Scope:time#Object#get_time */
@@ -2951,6 +2989,14 @@ const struct class class_scope__Scope = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to scope:Scope:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to scope:Scope:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to scope:Scope:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to scope:Scope:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to scope:Scope:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to scope:Scope:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to scope:Scope:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to scope:Scope:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to scope:Scope:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to scope:Scope:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to scope:Scope:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_scope__Scope__variables, /* pointer to scope:Scope:scope#Scope#variables */
 (nitmethod_t)VIRTUAL_scope__Scope__variables_61d, /* pointer to scope:Scope:scope#Scope#variables= */
 (nitmethod_t)VIRTUAL_scope__Scope__escapemark, /* pointer to scope:Scope:scope#Scope#escapemark */
@@ -2969,21 +3015,18 @@ self->type = type;
 self->class = &class_scope__Scope;
 var = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringscope__Variable);
 ((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashMap__init]))(var) /* init on <var:HashMap[String, Variable]>*/;
-CHECK_NEW_hash_collection__HashMap(var);
 self->attrs[COLOR_scope__Scope___64dvariables].val = var; /* @variables on <self:Scope exact> */
 var1 = NULL;
 self->attrs[COLOR_scope__Scope___64descapemark].val = var1; /* @escapemark on <self:Scope exact> */
 return self;
 }
-/* allocate Scope */
-void CHECK_NEW_scope__Scope(val* self) {
-}
 /* runtime class flow__FlowPhase */
 const struct class class_flow__FlowPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to flow:FlowPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to flow:FlowPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to flow:FlowPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to flow:FlowPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to flow:FlowPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to flow:FlowPhase:kernel#Object#output */
@@ -2991,16 +3034,17 @@ const struct class class_flow__FlowPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to flow:FlowPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to flow:FlowPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to flow:FlowPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to flow:FlowPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to flow:FlowPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to flow:FlowPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to flow:FlowPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to flow:FlowPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to flow:FlowPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to flow:FlowPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to flow:FlowPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to flow:FlowPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to flow:FlowPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to flow:FlowPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to flow:FlowPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to flow:FlowPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to flow:FlowPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to flow:FlowPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to flow:FlowPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to flow:FlowPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to flow:FlowPhase:time#Object#get_time */
@@ -3023,6 +3067,14 @@ const struct class class_flow__FlowPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to flow:FlowPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to flow:FlowPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to flow:FlowPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to flow:FlowPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to flow:FlowPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to flow:FlowPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to flow:FlowPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to flow:FlowPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to flow:FlowPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to flow:FlowPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to flow:FlowPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to flow:FlowPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to flow:FlowPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to flow:FlowPhase:phase#Phase#in_hierarchy */
@@ -3032,7 +3084,7 @@ const struct class class_flow__FlowPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to flow:FlowPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_flow__FlowPhase__process_npropdef, /* pointer to flow:FlowPhase:flow#FlowPhase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to flow:FlowPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to flow:FlowPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to flow:FlowPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate FlowPhase */
@@ -3043,27 +3095,13 @@ self->type = type;
 self->class = &class_flow__FlowPhase;
 return self;
 }
-/* allocate FlowPhase */
-void CHECK_NEW_flow__FlowPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:FlowPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:FlowPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class flow__FlowVisitor */
 const struct class class_flow__FlowVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to flow:FlowVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to flow:FlowVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to flow:FlowVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to flow:FlowVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to flow:FlowVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to flow:FlowVisitor:kernel#Object#output */
@@ -3071,16 +3109,17 @@ const struct class class_flow__FlowVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to flow:FlowVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to flow:FlowVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to flow:FlowVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to flow:FlowVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to flow:FlowVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to flow:FlowVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to flow:FlowVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to flow:FlowVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to flow:FlowVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to flow:FlowVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to flow:FlowVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to flow:FlowVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to flow:FlowVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to flow:FlowVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to flow:FlowVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to flow:FlowVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to flow:FlowVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to flow:FlowVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to flow:FlowVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to flow:FlowVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to flow:FlowVisitor:time#Object#get_time */
@@ -3103,6 +3142,14 @@ const struct class class_flow__FlowVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to flow:FlowVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to flow:FlowVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to flow:FlowVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to flow:FlowVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to flow:FlowVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to flow:FlowVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to flow:FlowVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to flow:FlowVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to flow:FlowVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to flow:FlowVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to flow:FlowVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_flow__FlowVisitor__visit, /* pointer to flow:FlowVisitor:flow#FlowVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to flow:FlowVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to flow:FlowVisitor:parser_nodes#Visitor#current_node */
@@ -3140,33 +3187,16 @@ var = NULL;
 self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:FlowVisitor exact> */
 var1 = NEW_array__Array(&type_array__Arrayflow__FlowContext);
 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[FlowContext]>*/;
-CHECK_NEW_array__Array(var1);
 self->attrs[COLOR_flow__FlowVisitor___64dflows].val = var1; /* @flows on <self:FlowVisitor exact> */
 return self;
 }
-/* allocate FlowVisitor */
-void CHECK_NEW_flow__FlowVisitor(val* self) {
-val* var /* : FlowContext */;
-val* var1 /* : ToolContext */;
-val* var2 /* : nullable ANode */;
-var = self->attrs[COLOR_flow__FlowVisitor___64dcurrent_flow_context].val; /* @current_flow_context on <self:FlowVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @current_flow_context", "src/flow.nit", 39);
-exit(1);
-}
-var1 = self->attrs[COLOR_flow__FlowVisitor___64dtoolcontext].val; /* @toolcontext on <self:FlowVisitor> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/flow.nit", 41);
-exit(1);
-}
-var2 = self->attrs[COLOR_flow__FlowVisitor___64dfirst].val; /* @first on <self:FlowVisitor> */
-}
 /* runtime class flow__FlowContext */
 const struct class class_flow__FlowContext = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to flow:FlowContext:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to flow:FlowContext:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to flow:FlowContext:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to flow:FlowContext:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to flow:FlowContext:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to flow:FlowContext:kernel#Object#output */
@@ -3174,16 +3204,17 @@ const struct class class_flow__FlowContext = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to flow:FlowContext:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to flow:FlowContext:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to flow:FlowContext:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to flow:FlowContext:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to flow:FlowContext:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to flow:FlowContext:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to flow:FlowContext:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to flow:FlowContext:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to flow:FlowContext:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to flow:FlowContext:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to flow:FlowContext:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to flow:FlowContext:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to flow:FlowContext:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to flow:FlowContext:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to flow:FlowContext:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to flow:FlowContext:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to flow:FlowContext:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to flow:FlowContext:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to flow:FlowContext:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to flow:FlowContext:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to flow:FlowContext:time#Object#get_time */
@@ -3206,6 +3237,14 @@ const struct class class_flow__FlowContext = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to flow:FlowContext:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to flow:FlowContext:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to flow:FlowContext:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to flow:FlowContext:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to flow:FlowContext:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to flow:FlowContext:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to flow:FlowContext:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to flow:FlowContext:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to flow:FlowContext:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to flow:FlowContext:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to flow:FlowContext:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_flow__FlowContext__previous, /* pointer to flow:FlowContext:flow#FlowContext#previous */
 (nitmethod_t)VIRTUAL_flow__FlowContext__previous_61d, /* pointer to flow:FlowContext:flow#FlowContext#previous= */
 (nitmethod_t)VIRTUAL_flow__FlowContext__loops, /* pointer to flow:FlowContext:flow#FlowContext#loops */
@@ -3261,11 +3300,9 @@ self->type = type;
 self->class = &class_flow__FlowContext;
 var = NEW_array__Array(&type_array__Arrayflow__FlowContext);
 ((void (*)(val*))(var->class->vft[COLOR_array__Array__init]))(var) /* init on <var:Array[FlowContext]>*/;
-CHECK_NEW_array__Array(var);
 self->attrs[COLOR_flow__FlowContext___64dprevious].val = var; /* @previous on <self:FlowContext exact> */
 var1 = NEW_array__Array(&type_array__Arrayflow__FlowContext);
 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[FlowContext]>*/;
-CHECK_NEW_array__Array(var1);
 self->attrs[COLOR_flow__FlowContext___64dloops].val = var1; /* @loops on <self:FlowContext exact> */
 var2 = 0;
 self->attrs[COLOR_flow__FlowContext___64dis_marked_unreachable].s = var2; /* @is_marked_unreachable on <self:FlowContext exact> */
@@ -3289,27 +3326,22 @@ self->attrs[COLOR_flow__FlowContext___64dwhen_true].val = self; /* @when_true on
 self->attrs[COLOR_flow__FlowContext___64dwhen_false].val = self; /* @when_false on <self:FlowContext exact> */
 var10 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetscope__Variable);
 ((void (*)(val*))(var10->class->vft[COLOR_hash_collection__HashSet__init]))(var10) /* init on <var10:HashSet[Variable]>*/;
-CHECK_NEW_hash_collection__HashSet(var10);
 self->attrs[COLOR_local_var_init__FlowContext___64dset_vars].val = var10; /* @set_vars on <self:FlowContext exact> */
 var11 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapscope__Variablenullable_model__MType);
 ((void (*)(val*))(var11->class->vft[COLOR_hash_collection__HashMap__init]))(var11) /* init on <var11:HashMap[Variable, nullable MType]>*/;
-CHECK_NEW_hash_collection__HashMap(var11);
 self->attrs[COLOR_typing__FlowContext___64dvars].val = var11; /* @vars on <self:FlowContext exact> */
 var12 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapscope__Variablenullable_array__Arraynullable_model__MType);
 ((void (*)(val*))(var12->class->vft[COLOR_hash_collection__HashMap__init]))(var12) /* init on <var12:HashMap[Variable, nullable Array[nullable MType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var12);
 self->attrs[COLOR_typing__FlowContext___64dcache].val = var12; /* @cache on <self:FlowContext exact> */
 return self;
 }
-/* allocate FlowContext */
-void CHECK_NEW_flow__FlowContext(val* self) {
-}
 /* runtime class local_var_init__LocalVarInitPhase */
 const struct class class_local_var_init__LocalVarInitPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to local_var_init:LocalVarInitPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to local_var_init:LocalVarInitPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to local_var_init:LocalVarInitPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to local_var_init:LocalVarInitPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to local_var_init:LocalVarInitPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to local_var_init:LocalVarInitPhase:kernel#Object#output */
@@ -3317,16 +3349,17 @@ const struct class class_local_var_init__LocalVarInitPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to local_var_init:LocalVarInitPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to local_var_init:LocalVarInitPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to local_var_init:LocalVarInitPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to local_var_init:LocalVarInitPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to local_var_init:LocalVarInitPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to local_var_init:LocalVarInitPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to local_var_init:LocalVarInitPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to local_var_init:LocalVarInitPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to local_var_init:LocalVarInitPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to local_var_init:LocalVarInitPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to local_var_init:LocalVarInitPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to local_var_init:LocalVarInitPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to local_var_init:LocalVarInitPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to local_var_init:LocalVarInitPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to local_var_init:LocalVarInitPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to local_var_init:LocalVarInitPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to local_var_init:LocalVarInitPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to local_var_init:LocalVarInitPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to local_var_init:LocalVarInitPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to local_var_init:LocalVarInitPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to local_var_init:LocalVarInitPhase:time#Object#get_time */
@@ -3349,6 +3382,14 @@ const struct class class_local_var_init__LocalVarInitPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to local_var_init:LocalVarInitPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to local_var_init:LocalVarInitPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to local_var_init:LocalVarInitPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to local_var_init:LocalVarInitPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to local_var_init:LocalVarInitPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to local_var_init:LocalVarInitPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to local_var_init:LocalVarInitPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to local_var_init:LocalVarInitPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to local_var_init:LocalVarInitPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to local_var_init:LocalVarInitPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to local_var_init:LocalVarInitPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to local_var_init:LocalVarInitPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to local_var_init:LocalVarInitPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to local_var_init:LocalVarInitPhase:phase#Phase#in_hierarchy */
@@ -3358,7 +3399,7 @@ const struct class class_local_var_init__LocalVarInitPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to local_var_init:LocalVarInitPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_local_var_init__LocalVarInitPhase__process_npropdef, /* pointer to local_var_init:LocalVarInitPhase:local_var_init#LocalVarInitPhase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to local_var_init:LocalVarInitPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to local_var_init:LocalVarInitPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to local_var_init:LocalVarInitPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate LocalVarInitPhase */
@@ -3369,27 +3410,13 @@ self->type = type;
 self->class = &class_local_var_init__LocalVarInitPhase;
 return self;
 }
-/* allocate LocalVarInitPhase */
-void CHECK_NEW_local_var_init__LocalVarInitPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:LocalVarInitPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:LocalVarInitPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class local_var_init__LocalVarInitVisitor */
 const struct class class_local_var_init__LocalVarInitVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to local_var_init:LocalVarInitVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to local_var_init:LocalVarInitVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to local_var_init:LocalVarInitVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to local_var_init:LocalVarInitVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to local_var_init:LocalVarInitVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to local_var_init:LocalVarInitVisitor:kernel#Object#output */
@@ -3397,16 +3424,17 @@ const struct class class_local_var_init__LocalVarInitVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to local_var_init:LocalVarInitVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to local_var_init:LocalVarInitVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to local_var_init:LocalVarInitVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to local_var_init:LocalVarInitVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to local_var_init:LocalVarInitVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to local_var_init:LocalVarInitVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to local_var_init:LocalVarInitVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to local_var_init:LocalVarInitVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to local_var_init:LocalVarInitVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to local_var_init:LocalVarInitVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to local_var_init:LocalVarInitVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to local_var_init:LocalVarInitVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to local_var_init:LocalVarInitVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to local_var_init:LocalVarInitVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to local_var_init:LocalVarInitVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to local_var_init:LocalVarInitVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to local_var_init:LocalVarInitVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to local_var_init:LocalVarInitVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to local_var_init:LocalVarInitVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to local_var_init:LocalVarInitVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to local_var_init:LocalVarInitVisitor:time#Object#get_time */
@@ -3429,6 +3457,14 @@ const struct class class_local_var_init__LocalVarInitVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to local_var_init:LocalVarInitVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to local_var_init:LocalVarInitVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to local_var_init:LocalVarInitVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to local_var_init:LocalVarInitVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to local_var_init:LocalVarInitVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to local_var_init:LocalVarInitVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to local_var_init:LocalVarInitVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to local_var_init:LocalVarInitVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to local_var_init:LocalVarInitVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to local_var_init:LocalVarInitVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to local_var_init:LocalVarInitVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_local_var_init__LocalVarInitVisitor__visit, /* pointer to local_var_init:LocalVarInitVisitor:local_var_init#LocalVarInitVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to local_var_init:LocalVarInitVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to local_var_init:LocalVarInitVisitor:parser_nodes#Visitor#current_node */
@@ -3456,25 +3492,16 @@ var = NULL;
 self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:LocalVarInitVisitor exact> */
 var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetscope__Variable);
 ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[Variable]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
 self->attrs[COLOR_local_var_init__LocalVarInitVisitor___64dmaybe_unset_vars].val = var1; /* @maybe_unset_vars on <self:LocalVarInitVisitor exact> */
 return self;
 }
-/* allocate LocalVarInitVisitor */
-void CHECK_NEW_local_var_init__LocalVarInitVisitor(val* self) {
-val* var /* : ToolContext */;
-var = self->attrs[COLOR_local_var_init__LocalVarInitVisitor___64dtoolcontext].val; /* @toolcontext on <self:LocalVarInitVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/local_var_init.nit", 47);
-exit(1);
-}
-}
 /* runtime class typing__TypingPhase */
 const struct class class_typing__TypingPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to typing:TypingPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to typing:TypingPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to typing:TypingPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to typing:TypingPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to typing:TypingPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to typing:TypingPhase:kernel#Object#output */
@@ -3482,16 +3509,17 @@ const struct class class_typing__TypingPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to typing:TypingPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to typing:TypingPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to typing:TypingPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to typing:TypingPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to typing:TypingPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to typing:TypingPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to typing:TypingPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to typing:TypingPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to typing:TypingPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to typing:TypingPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to typing:TypingPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to typing:TypingPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to typing:TypingPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to typing:TypingPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to typing:TypingPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to typing:TypingPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to typing:TypingPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to typing:TypingPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to typing:TypingPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to typing:TypingPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to typing:TypingPhase:time#Object#get_time */
@@ -3514,6 +3542,14 @@ const struct class class_typing__TypingPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to typing:TypingPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to typing:TypingPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to typing:TypingPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to typing:TypingPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to typing:TypingPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to typing:TypingPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to typing:TypingPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to typing:TypingPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to typing:TypingPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to typing:TypingPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to typing:TypingPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to typing:TypingPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to typing:TypingPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to typing:TypingPhase:phase#Phase#in_hierarchy */
@@ -3523,7 +3559,7 @@ const struct class class_typing__TypingPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to typing:TypingPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_typing__TypingPhase__process_npropdef, /* pointer to typing:TypingPhase:typing#TypingPhase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to typing:TypingPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to typing:TypingPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to typing:TypingPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate TypingPhase */
@@ -3534,27 +3570,13 @@ self->type = type;
 self->class = &class_typing__TypingPhase;
 return self;
 }
-/* allocate TypingPhase */
-void CHECK_NEW_typing__TypingPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:TypingPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:TypingPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class typing__TypeVisitor */
 const struct class class_typing__TypeVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to typing:TypeVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to typing:TypeVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to typing:TypeVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to typing:TypeVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to typing:TypeVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to typing:TypeVisitor:kernel#Object#output */
@@ -3562,16 +3584,17 @@ const struct class class_typing__TypeVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to typing:TypeVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to typing:TypeVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to typing:TypeVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to typing:TypeVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to typing:TypeVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to typing:TypeVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to typing:TypeVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to typing:TypeVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to typing:TypeVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to typing:TypeVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to typing:TypeVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to typing:TypeVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to typing:TypeVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to typing:TypeVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to typing:TypeVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to typing:TypeVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to typing:TypeVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to typing:TypeVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to typing:TypeVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to typing:TypeVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to typing:TypeVisitor:time#Object#get_time */
@@ -3594,6 +3617,14 @@ const struct class class_typing__TypeVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to typing:TypeVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to typing:TypeVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to typing:TypeVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to typing:TypeVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to typing:TypeVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to typing:TypeVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to typing:TypeVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to typing:TypeVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to typing:TypeVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to typing:TypeVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to typing:TypeVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_typing__TypeVisitor__modelbuilder, /* pointer to typing:TypeVisitor:typing#TypeVisitor#modelbuilder */
 (nitmethod_t)VIRTUAL_typing__TypeVisitor__modelbuilder_61d, /* pointer to typing:TypeVisitor:typing#TypeVisitor#modelbuilder= */
 (nitmethod_t)VIRTUAL_typing__TypeVisitor__nclassdef, /* pointer to typing:TypeVisitor:typing#TypeVisitor#nclassdef */
@@ -3651,37 +3682,16 @@ var1 = var4;
 varonce = var1;
 }
 ((void (*)(val*, val*))(var->class->vft[COLOR_scope__Variable__init]))(var, var1) /* init on <var:Variable>*/;
-CHECK_NEW_scope__Variable(var);
 self->attrs[COLOR_typing__TypeVisitor___64dselfvariable].val = var; /* @selfvariable on <self:TypeVisitor exact> */
 return self;
 }
-/* allocate TypeVisitor */
-void CHECK_NEW_typing__TypeVisitor(val* self) {
-val* var /* : ModelBuilder */;
-val* var1 /* : AClassdef */;
-val* var2 /* : MPropDef */;
-var = self->attrs[COLOR_typing__TypeVisitor___64dmodelbuilder].val; /* @modelbuilder on <self:TypeVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @modelbuilder", "src/typing.nit", 41);
-exit(1);
-}
-var1 = self->attrs[COLOR_typing__TypeVisitor___64dnclassdef].val; /* @nclassdef on <self:TypeVisitor> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @nclassdef", "src/typing.nit", 42);
-exit(1);
-}
-var2 = self->attrs[COLOR_typing__TypeVisitor___64dmpropdef].val; /* @mpropdef on <self:TypeVisitor> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/typing.nit", 43);
-exit(1);
-}
-}
 /* runtime class typing__CallSite */
 const struct class class_typing__CallSite = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to typing:CallSite:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to typing:CallSite:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to typing:CallSite:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to typing:CallSite:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to typing:CallSite:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to typing:CallSite:kernel#Object#output */
@@ -3689,16 +3699,17 @@ const struct class class_typing__CallSite = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to typing:CallSite:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to typing:CallSite:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to typing:CallSite:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to typing:CallSite:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to typing:CallSite:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to typing:CallSite:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to typing:CallSite:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to typing:CallSite:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to typing:CallSite:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to typing:CallSite:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to typing:CallSite:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to typing:CallSite:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to typing:CallSite:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to typing:CallSite:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to typing:CallSite:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to typing:CallSite:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to typing:CallSite:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to typing:CallSite:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to typing:CallSite:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to typing:CallSite:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to typing:CallSite:time#Object#get_time */
@@ -3721,6 +3732,14 @@ const struct class class_typing__CallSite = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to typing:CallSite:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to typing:CallSite:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to typing:CallSite:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to typing:CallSite:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to typing:CallSite:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to typing:CallSite:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to typing:CallSite:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to typing:CallSite:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to typing:CallSite:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to typing:CallSite:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to typing:CallSite:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_typing__CallSite__node, /* pointer to typing:CallSite:typing#CallSite#node */
 (nitmethod_t)VIRTUAL_typing__CallSite__node_61d, /* pointer to typing:CallSite:typing#CallSite#node= */
 (nitmethod_t)VIRTUAL_typing__CallSite__recv, /* pointer to typing:CallSite:typing#CallSite#recv */
@@ -3747,49 +3766,13 @@ self->type = type;
 self->class = &class_typing__CallSite;
 return self;
 }
-/* allocate CallSite */
-void CHECK_NEW_typing__CallSite(val* self) {
-val* var /* : ANode */;
-val* var1 /* : MType */;
-short int var2 /* : Bool */;
-val* var3 /* : MMethod */;
-val* var4 /* : MMethodDef */;
-val* var5 /* : MSignature */;
-short int var6 /* : Bool */;
-var = self->attrs[COLOR_typing__CallSite___64dnode].val; /* @node on <self:CallSite> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @node", "src/typing.nit", 391);
-exit(1);
-}
-var1 = self->attrs[COLOR_typing__CallSite___64drecv].val; /* @recv on <self:CallSite> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @recv", "src/typing.nit", 394);
-exit(1);
-}
-var2 = self->attrs[COLOR_typing__CallSite___64drecv_is_self].s; /* @recv_is_self on <self:CallSite> */
-var3 = self->attrs[COLOR_typing__CallSite___64dmproperty].val; /* @mproperty on <self:CallSite> */
-if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mproperty", "src/typing.nit", 402);
-exit(1);
-}
-var4 = self->attrs[COLOR_typing__CallSite___64dmpropdef].val; /* @mpropdef on <self:CallSite> */
-if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/typing.nit", 405);
-exit(1);
-}
-var5 = self->attrs[COLOR_typing__CallSite___64dmsignature].val; /* @msignature on <self:CallSite> */
-if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @msignature", "src/typing.nit", 409);
-exit(1);
-}
-var6 = self->attrs[COLOR_typing__CallSite___64derasure_cast].s; /* @erasure_cast on <self:CallSite> */
-}
 /* runtime class modelize_property__ModelizePropertyPhase */
 const struct class class_modelize_property__ModelizePropertyPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to modelize_property:ModelizePropertyPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to modelize_property:ModelizePropertyPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to modelize_property:ModelizePropertyPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to modelize_property:ModelizePropertyPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to modelize_property:ModelizePropertyPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to modelize_property:ModelizePropertyPhase:kernel#Object#output */
@@ -3797,16 +3780,17 @@ const struct class class_modelize_property__ModelizePropertyPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to modelize_property:ModelizePropertyPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to modelize_property:ModelizePropertyPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to modelize_property:ModelizePropertyPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to modelize_property:ModelizePropertyPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to modelize_property:ModelizePropertyPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to modelize_property:ModelizePropertyPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to modelize_property:ModelizePropertyPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to modelize_property:ModelizePropertyPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to modelize_property:ModelizePropertyPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to modelize_property:ModelizePropertyPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to modelize_property:ModelizePropertyPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to modelize_property:ModelizePropertyPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to modelize_property:ModelizePropertyPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to modelize_property:ModelizePropertyPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to modelize_property:ModelizePropertyPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to modelize_property:ModelizePropertyPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to modelize_property:ModelizePropertyPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to modelize_property:ModelizePropertyPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to modelize_property:ModelizePropertyPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to modelize_property:ModelizePropertyPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to modelize_property:ModelizePropertyPhase:time#Object#get_time */
@@ -3829,6 +3813,14 @@ const struct class class_modelize_property__ModelizePropertyPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to modelize_property:ModelizePropertyPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to modelize_property:ModelizePropertyPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to modelize_property:ModelizePropertyPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to modelize_property:ModelizePropertyPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to modelize_property:ModelizePropertyPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to modelize_property:ModelizePropertyPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to modelize_property:ModelizePropertyPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to modelize_property:ModelizePropertyPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to modelize_property:ModelizePropertyPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to modelize_property:ModelizePropertyPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to modelize_property:ModelizePropertyPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to modelize_property:ModelizePropertyPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to modelize_property:ModelizePropertyPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to modelize_property:ModelizePropertyPhase:phase#Phase#in_hierarchy */
@@ -3838,7 +3830,7 @@ const struct class class_modelize_property__ModelizePropertyPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to modelize_property:ModelizePropertyPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to modelize_property:ModelizePropertyPhase:phase#Phase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to modelize_property:ModelizePropertyPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to modelize_property:ModelizePropertyPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to modelize_property:ModelizePropertyPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate ModelizePropertyPhase */
@@ -3849,27 +3841,13 @@ self->type = type;
 self->class = &class_modelize_property__ModelizePropertyPhase;
 return self;
 }
-/* allocate ModelizePropertyPhase */
-void CHECK_NEW_modelize_property__ModelizePropertyPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:ModelizePropertyPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:ModelizePropertyPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class modelize_property__TextCollectorVisitor */
 const struct class class_modelize_property__TextCollectorVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to modelize_property:TextCollectorVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to modelize_property:TextCollectorVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to modelize_property:TextCollectorVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to modelize_property:TextCollectorVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to modelize_property:TextCollectorVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to modelize_property:TextCollectorVisitor:kernel#Object#output */
@@ -3877,16 +3855,17 @@ const struct class class_modelize_property__TextCollectorVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to modelize_property:TextCollectorVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to modelize_property:TextCollectorVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to modelize_property:TextCollectorVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to modelize_property:TextCollectorVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to modelize_property:TextCollectorVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to modelize_property:TextCollectorVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to modelize_property:TextCollectorVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to modelize_property:TextCollectorVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to modelize_property:TextCollectorVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to modelize_property:TextCollectorVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to modelize_property:TextCollectorVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to modelize_property:TextCollectorVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to modelize_property:TextCollectorVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to modelize_property:TextCollectorVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to modelize_property:TextCollectorVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to modelize_property:TextCollectorVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to modelize_property:TextCollectorVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to modelize_property:TextCollectorVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to modelize_property:TextCollectorVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to modelize_property:TextCollectorVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to modelize_property:TextCollectorVisitor:time#Object#get_time */
@@ -3909,6 +3888,14 @@ const struct class class_modelize_property__TextCollectorVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to modelize_property:TextCollectorVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to modelize_property:TextCollectorVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to modelize_property:TextCollectorVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to modelize_property:TextCollectorVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to modelize_property:TextCollectorVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to modelize_property:TextCollectorVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to modelize_property:TextCollectorVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to modelize_property:TextCollectorVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to modelize_property:TextCollectorVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to modelize_property:TextCollectorVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to modelize_property:TextCollectorVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_modelize_property__TextCollectorVisitor__visit, /* pointer to modelize_property:TextCollectorVisitor:modelize_property#TextCollectorVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to modelize_property:TextCollectorVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to modelize_property:TextCollectorVisitor:parser_nodes#Visitor#current_node */
@@ -3945,15 +3932,13 @@ varonce = var1;
 self->attrs[COLOR_modelize_property__TextCollectorVisitor___64dtext].val = var1; /* @text on <self:TextCollectorVisitor exact> */
 return self;
 }
-/* allocate TextCollectorVisitor */
-void CHECK_NEW_modelize_property__TextCollectorVisitor(val* self) {
-}
 /* runtime class modelize_class__ModelizeClassPhase */
 const struct class class_modelize_class__ModelizeClassPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to modelize_class:ModelizeClassPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to modelize_class:ModelizeClassPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to modelize_class:ModelizeClassPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to modelize_class:ModelizeClassPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to modelize_class:ModelizeClassPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to modelize_class:ModelizeClassPhase:kernel#Object#output */
@@ -3961,16 +3946,17 @@ const struct class class_modelize_class__ModelizeClassPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to modelize_class:ModelizeClassPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to modelize_class:ModelizeClassPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to modelize_class:ModelizeClassPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to modelize_class:ModelizeClassPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to modelize_class:ModelizeClassPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to modelize_class:ModelizeClassPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to modelize_class:ModelizeClassPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to modelize_class:ModelizeClassPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to modelize_class:ModelizeClassPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to modelize_class:ModelizeClassPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to modelize_class:ModelizeClassPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to modelize_class:ModelizeClassPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to modelize_class:ModelizeClassPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to modelize_class:ModelizeClassPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to modelize_class:ModelizeClassPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to modelize_class:ModelizeClassPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to modelize_class:ModelizeClassPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to modelize_class:ModelizeClassPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to modelize_class:ModelizeClassPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to modelize_class:ModelizeClassPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to modelize_class:ModelizeClassPhase:time#Object#get_time */
@@ -3993,6 +3979,14 @@ const struct class class_modelize_class__ModelizeClassPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to modelize_class:ModelizeClassPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to modelize_class:ModelizeClassPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to modelize_class:ModelizeClassPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to modelize_class:ModelizeClassPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to modelize_class:ModelizeClassPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to modelize_class:ModelizeClassPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to modelize_class:ModelizeClassPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to modelize_class:ModelizeClassPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to modelize_class:ModelizeClassPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to modelize_class:ModelizeClassPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to modelize_class:ModelizeClassPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to modelize_class:ModelizeClassPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to modelize_class:ModelizeClassPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to modelize_class:ModelizeClassPhase:phase#Phase#in_hierarchy */
@@ -4002,7 +3996,7 @@ const struct class class_modelize_class__ModelizeClassPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to modelize_class:ModelizeClassPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to modelize_class:ModelizeClassPhase:phase#Phase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to modelize_class:ModelizeClassPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to modelize_class:ModelizeClassPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to modelize_class:ModelizeClassPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate ModelizeClassPhase */
@@ -4013,27 +4007,13 @@ self->type = type;
 self->class = &class_modelize_class__ModelizeClassPhase;
 return self;
 }
-/* allocate ModelizeClassPhase */
-void CHECK_NEW_modelize_class__ModelizeClassPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:ModelizeClassPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:ModelizeClassPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class auto_super_init__AutoSuperInitPhase */
 const struct class class_auto_super_init__AutoSuperInitPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to auto_super_init:AutoSuperInitPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to auto_super_init:AutoSuperInitPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to auto_super_init:AutoSuperInitPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to auto_super_init:AutoSuperInitPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to auto_super_init:AutoSuperInitPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to auto_super_init:AutoSuperInitPhase:kernel#Object#output */
@@ -4041,16 +4021,17 @@ const struct class class_auto_super_init__AutoSuperInitPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to auto_super_init:AutoSuperInitPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to auto_super_init:AutoSuperInitPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to auto_super_init:AutoSuperInitPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to auto_super_init:AutoSuperInitPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to auto_super_init:AutoSuperInitPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to auto_super_init:AutoSuperInitPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to auto_super_init:AutoSuperInitPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to auto_super_init:AutoSuperInitPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to auto_super_init:AutoSuperInitPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to auto_super_init:AutoSuperInitPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to auto_super_init:AutoSuperInitPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to auto_super_init:AutoSuperInitPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to auto_super_init:AutoSuperInitPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to auto_super_init:AutoSuperInitPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to auto_super_init:AutoSuperInitPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to auto_super_init:AutoSuperInitPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to auto_super_init:AutoSuperInitPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to auto_super_init:AutoSuperInitPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to auto_super_init:AutoSuperInitPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to auto_super_init:AutoSuperInitPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to auto_super_init:AutoSuperInitPhase:time#Object#get_time */
@@ -4073,6 +4054,14 @@ const struct class class_auto_super_init__AutoSuperInitPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to auto_super_init:AutoSuperInitPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to auto_super_init:AutoSuperInitPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to auto_super_init:AutoSuperInitPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to auto_super_init:AutoSuperInitPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to auto_super_init:AutoSuperInitPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to auto_super_init:AutoSuperInitPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to auto_super_init:AutoSuperInitPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to auto_super_init:AutoSuperInitPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to auto_super_init:AutoSuperInitPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to auto_super_init:AutoSuperInitPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to auto_super_init:AutoSuperInitPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to auto_super_init:AutoSuperInitPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to auto_super_init:AutoSuperInitPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to auto_super_init:AutoSuperInitPhase:phase#Phase#in_hierarchy */
@@ -4082,7 +4071,7 @@ const struct class class_auto_super_init__AutoSuperInitPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to auto_super_init:AutoSuperInitPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_auto_super_init__AutoSuperInitPhase__process_npropdef, /* pointer to auto_super_init:AutoSuperInitPhase:auto_super_init#AutoSuperInitPhase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to auto_super_init:AutoSuperInitPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to auto_super_init:AutoSuperInitPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to auto_super_init:AutoSuperInitPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate AutoSuperInitPhase */
@@ -4093,27 +4082,13 @@ self->type = type;
 self->class = &class_auto_super_init__AutoSuperInitPhase;
 return self;
 }
-/* allocate AutoSuperInitPhase */
-void CHECK_NEW_auto_super_init__AutoSuperInitPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:AutoSuperInitPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:AutoSuperInitPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class auto_super_init__AutoSuperInitVisitor */
 const struct class class_auto_super_init__AutoSuperInitVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to auto_super_init:AutoSuperInitVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to auto_super_init:AutoSuperInitVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to auto_super_init:AutoSuperInitVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to auto_super_init:AutoSuperInitVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to auto_super_init:AutoSuperInitVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to auto_super_init:AutoSuperInitVisitor:kernel#Object#output */
@@ -4121,16 +4096,17 @@ const struct class class_auto_super_init__AutoSuperInitVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to auto_super_init:AutoSuperInitVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to auto_super_init:AutoSuperInitVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to auto_super_init:AutoSuperInitVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to auto_super_init:AutoSuperInitVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to auto_super_init:AutoSuperInitVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to auto_super_init:AutoSuperInitVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to auto_super_init:AutoSuperInitVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to auto_super_init:AutoSuperInitVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to auto_super_init:AutoSuperInitVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to auto_super_init:AutoSuperInitVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to auto_super_init:AutoSuperInitVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to auto_super_init:AutoSuperInitVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to auto_super_init:AutoSuperInitVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to auto_super_init:AutoSuperInitVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to auto_super_init:AutoSuperInitVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to auto_super_init:AutoSuperInitVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to auto_super_init:AutoSuperInitVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to auto_super_init:AutoSuperInitVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to auto_super_init:AutoSuperInitVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to auto_super_init:AutoSuperInitVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to auto_super_init:AutoSuperInitVisitor:time#Object#get_time */
@@ -4153,6 +4129,14 @@ const struct class class_auto_super_init__AutoSuperInitVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to auto_super_init:AutoSuperInitVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to auto_super_init:AutoSuperInitVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to auto_super_init:AutoSuperInitVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to auto_super_init:AutoSuperInitVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to auto_super_init:AutoSuperInitVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to auto_super_init:AutoSuperInitVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to auto_super_init:AutoSuperInitVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to auto_super_init:AutoSuperInitVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to auto_super_init:AutoSuperInitVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to auto_super_init:AutoSuperInitVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to auto_super_init:AutoSuperInitVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_auto_super_init__AutoSuperInitVisitor__visit, /* pointer to auto_super_init:AutoSuperInitVisitor:auto_super_init#AutoSuperInitVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to auto_super_init:AutoSuperInitVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to auto_super_init:AutoSuperInitVisitor:parser_nodes#Visitor#current_node */
@@ -4177,15 +4161,13 @@ var1 = 0;
 self->attrs[COLOR_auto_super_init__AutoSuperInitVisitor___64dhas_explicit_super_init].s = var1; /* @has_explicit_super_init on <self:AutoSuperInitVisitor exact> */
 return self;
 }
-/* allocate AutoSuperInitVisitor */
-void CHECK_NEW_auto_super_init__AutoSuperInitVisitor(val* self) {
-}
 /* runtime class div_by_zero__DivByZeroPhase */
 const struct class class_div_by_zero__DivByZeroPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to div_by_zero:DivByZeroPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to div_by_zero:DivByZeroPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to div_by_zero:DivByZeroPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to div_by_zero:DivByZeroPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to div_by_zero:DivByZeroPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to div_by_zero:DivByZeroPhase:kernel#Object#output */
@@ -4193,16 +4175,17 @@ const struct class class_div_by_zero__DivByZeroPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to div_by_zero:DivByZeroPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to div_by_zero:DivByZeroPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to div_by_zero:DivByZeroPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to div_by_zero:DivByZeroPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to div_by_zero:DivByZeroPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to div_by_zero:DivByZeroPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to div_by_zero:DivByZeroPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to div_by_zero:DivByZeroPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to div_by_zero:DivByZeroPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to div_by_zero:DivByZeroPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to div_by_zero:DivByZeroPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to div_by_zero:DivByZeroPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to div_by_zero:DivByZeroPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to div_by_zero:DivByZeroPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to div_by_zero:DivByZeroPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to div_by_zero:DivByZeroPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to div_by_zero:DivByZeroPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to div_by_zero:DivByZeroPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to div_by_zero:DivByZeroPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to div_by_zero:DivByZeroPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to div_by_zero:DivByZeroPhase:time#Object#get_time */
@@ -4225,6 +4208,14 @@ const struct class class_div_by_zero__DivByZeroPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to div_by_zero:DivByZeroPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to div_by_zero:DivByZeroPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to div_by_zero:DivByZeroPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to div_by_zero:DivByZeroPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to div_by_zero:DivByZeroPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to div_by_zero:DivByZeroPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to div_by_zero:DivByZeroPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to div_by_zero:DivByZeroPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to div_by_zero:DivByZeroPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to div_by_zero:DivByZeroPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to div_by_zero:DivByZeroPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to div_by_zero:DivByZeroPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to div_by_zero:DivByZeroPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to div_by_zero:DivByZeroPhase:phase#Phase#in_hierarchy */
@@ -4234,7 +4225,7 @@ const struct class class_div_by_zero__DivByZeroPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to div_by_zero:DivByZeroPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to div_by_zero:DivByZeroPhase:phase#Phase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to div_by_zero:DivByZeroPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to div_by_zero:DivByZeroPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to div_by_zero:DivByZeroPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate DivByZeroPhase */
@@ -4245,27 +4236,13 @@ self->type = type;
 self->class = &class_div_by_zero__DivByZeroPhase;
 return self;
 }
-/* allocate DivByZeroPhase */
-void CHECK_NEW_div_by_zero__DivByZeroPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:DivByZeroPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:DivByZeroPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class div_by_zero__DivByZeroVisitor */
 const struct class class_div_by_zero__DivByZeroVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to div_by_zero:DivByZeroVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to div_by_zero:DivByZeroVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to div_by_zero:DivByZeroVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to div_by_zero:DivByZeroVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to div_by_zero:DivByZeroVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to div_by_zero:DivByZeroVisitor:kernel#Object#output */
@@ -4273,16 +4250,17 @@ const struct class class_div_by_zero__DivByZeroVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to div_by_zero:DivByZeroVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to div_by_zero:DivByZeroVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to div_by_zero:DivByZeroVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to div_by_zero:DivByZeroVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to div_by_zero:DivByZeroVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to div_by_zero:DivByZeroVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to div_by_zero:DivByZeroVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to div_by_zero:DivByZeroVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to div_by_zero:DivByZeroVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to div_by_zero:DivByZeroVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to div_by_zero:DivByZeroVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to div_by_zero:DivByZeroVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to div_by_zero:DivByZeroVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to div_by_zero:DivByZeroVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to div_by_zero:DivByZeroVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to div_by_zero:DivByZeroVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to div_by_zero:DivByZeroVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to div_by_zero:DivByZeroVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to div_by_zero:DivByZeroVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to div_by_zero:DivByZeroVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to div_by_zero:DivByZeroVisitor:time#Object#get_time */
@@ -4305,6 +4283,14 @@ const struct class class_div_by_zero__DivByZeroVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to div_by_zero:DivByZeroVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to div_by_zero:DivByZeroVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to div_by_zero:DivByZeroVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to div_by_zero:DivByZeroVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to div_by_zero:DivByZeroVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to div_by_zero:DivByZeroVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to div_by_zero:DivByZeroVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to div_by_zero:DivByZeroVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to div_by_zero:DivByZeroVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to div_by_zero:DivByZeroVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to div_by_zero:DivByZeroVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_div_by_zero__DivByZeroVisitor__visit, /* pointer to div_by_zero:DivByZeroVisitor:div_by_zero#DivByZeroVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to div_by_zero:DivByZeroVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to div_by_zero:DivByZeroVisitor:parser_nodes#Visitor#current_node */
@@ -4328,27 +4314,13 @@ var = NULL;
 self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:DivByZeroVisitor exact> */
 return self;
 }
-/* allocate DivByZeroVisitor */
-void CHECK_NEW_div_by_zero__DivByZeroVisitor(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : MModule */;
-var = self->attrs[COLOR_div_by_zero__DivByZeroVisitor___64dtoolcontext].val; /* @toolcontext on <self:DivByZeroVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/div_by_zero.nit", 53);
-exit(1);
-}
-var1 = self->attrs[COLOR_div_by_zero__DivByZeroVisitor___64dmmodule].val; /* @mmodule on <self:DivByZeroVisitor> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/div_by_zero.nit", 56);
-exit(1);
-}
-}
 /* runtime class cached__CachedPhase */
 const struct class class_cached__CachedPhase = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to cached:CachedPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to cached:CachedPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to cached:CachedPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to cached:CachedPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to cached:CachedPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to cached:CachedPhase:kernel#Object#output */
@@ -4356,16 +4328,17 @@ const struct class class_cached__CachedPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to cached:CachedPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to cached:CachedPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to cached:CachedPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to cached:CachedPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to cached:CachedPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to cached:CachedPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to cached:CachedPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to cached:CachedPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to cached:CachedPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to cached:CachedPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to cached:CachedPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to cached:CachedPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to cached:CachedPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to cached:CachedPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to cached:CachedPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to cached:CachedPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to cached:CachedPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to cached:CachedPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to cached:CachedPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to cached:CachedPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to cached:CachedPhase:time#Object#get_time */
@@ -4388,6 +4361,14 @@ const struct class class_cached__CachedPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to cached:CachedPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to cached:CachedPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to cached:CachedPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to cached:CachedPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to cached:CachedPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to cached:CachedPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to cached:CachedPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to cached:CachedPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to cached:CachedPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to cached:CachedPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to cached:CachedPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to cached:CachedPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to cached:CachedPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to cached:CachedPhase:phase#Phase#in_hierarchy */
@@ -4397,7 +4378,7 @@ const struct class class_cached__CachedPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to cached:CachedPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to cached:CachedPhase:phase#Phase#process_npropdef */
 (nitmethod_t)VIRTUAL_cached__CachedPhase__process_annotated_node, /* pointer to cached:CachedPhase:cached#CachedPhase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to cached:CachedPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to cached:CachedPhase:modelbuilder#Phase#process_mainmodule */
 (nitmethod_t)VIRTUAL_cached__CachedPhase__init, /* pointer to cached:CachedPhase:cached#CachedPhase#init */
 (nitmethod_t)VIRTUAL_cached__CachedPhase__associate_propdef, /* pointer to cached:CachedPhase:cached#CachedPhase#associate_propdef */
 }
@@ -4410,31 +4391,12 @@ self->type = type;
 self->class = &class_cached__CachedPhase;
 return self;
 }
-/* allocate CachedPhase */
-void CHECK_NEW_cached__CachedPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:CachedPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:CachedPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class parser_util__InjectedLexer */
 /* allocate InjectedLexer */
 val* NEW_parser_util__InjectedLexer(const struct type* type) {
-fprintf(stderr, "Runtime error: %s\n", "InjectedLexer is DEAD");
-exit(1);
-}
-/* allocate InjectedLexer */
-void CHECK_NEW_parser_util__InjectedLexer(val* self) {
-fprintf(stderr, "Runtime error: %s\n", "InjectedLexer is DEAD");
-exit(1);
+fprintf(stderr, "Runtime error: %s", "InjectedLexer is DEAD");
+fprintf(stderr, "\n");
+show_backtrace(1);
 }
 /* runtime class parser_util__CollectTokensByTextVisitor */
 const struct class class_parser_util__CollectTokensByTextVisitor = {
@@ -4442,6 +4404,7 @@ const struct class class_parser_util__CollectTokensByTextVisitor = {
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to parser_util:CollectTokensByTextVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to parser_util:CollectTokensByTextVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to parser_util:CollectTokensByTextVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to parser_util:CollectTokensByTextVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to parser_util:CollectTokensByTextVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to parser_util:CollectTokensByTextVisitor:kernel#Object#output */
@@ -4449,16 +4412,17 @@ const struct class class_parser_util__CollectTokensByTextVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to parser_util:CollectTokensByTextVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to parser_util:CollectTokensByTextVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to parser_util:CollectTokensByTextVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to parser_util:CollectTokensByTextVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to parser_util:CollectTokensByTextVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to parser_util:CollectTokensByTextVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to parser_util:CollectTokensByTextVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to parser_util:CollectTokensByTextVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to parser_util:CollectTokensByTextVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to parser_util:CollectTokensByTextVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to parser_util:CollectTokensByTextVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to parser_util:CollectTokensByTextVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to parser_util:CollectTokensByTextVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to parser_util:CollectTokensByTextVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to parser_util:CollectTokensByTextVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to parser_util:CollectTokensByTextVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to parser_util:CollectTokensByTextVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to parser_util:CollectTokensByTextVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to parser_util:CollectTokensByTextVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to parser_util:CollectTokensByTextVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to parser_util:CollectTokensByTextVisitor:time#Object#get_time */
@@ -4481,6 +4445,14 @@ const struct class class_parser_util__CollectTokensByTextVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to parser_util:CollectTokensByTextVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to parser_util:CollectTokensByTextVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to parser_util:CollectTokensByTextVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to parser_util:CollectTokensByTextVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to parser_util:CollectTokensByTextVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to parser_util:CollectTokensByTextVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to parser_util:CollectTokensByTextVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to parser_util:CollectTokensByTextVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to parser_util:CollectTokensByTextVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to parser_util:CollectTokensByTextVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to parser_util:CollectTokensByTextVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_parser_util__CollectTokensByTextVisitor__visit, /* pointer to parser_util:CollectTokensByTextVisitor:parser_util#CollectTokensByTextVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to parser_util:CollectTokensByTextVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to parser_util:CollectTokensByTextVisitor:parser_nodes#Visitor#current_node */
@@ -4505,29 +4477,168 @@ var = NULL;
 self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:CollectTokensByTextVisitor exact> */
 var1 = NEW_array__Array(&type_array__Arrayparser_nodes__Token);
 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Token]>*/;
-CHECK_NEW_array__Array(var1);
 self->attrs[COLOR_parser_util__CollectTokensByTextVisitor___64dresult].val = var1; /* @result on <self:CollectTokensByTextVisitor exact> */
 return self;
 }
-/* allocate CollectTokensByTextVisitor */
-void CHECK_NEW_parser_util__CollectTokensByTextVisitor(val* self) {
-val* var /* : String */;
-var = self->attrs[COLOR_parser_util__CollectTokensByTextVisitor___64dtext].val; /* @text on <self:CollectTokensByTextVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @text", "src/parser_util.nit", 213);
-exit(1);
-}
-}
 /* runtime class parser_util__CollectAnnotationsByNameVisitor */
+const struct class class_parser_util__CollectAnnotationsByNameVisitor = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to parser_util:CollectAnnotationsByNameVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to parser_util:CollectAnnotationsByNameVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to parser_util:CollectAnnotationsByNameVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to parser_util:CollectAnnotationsByNameVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to parser_util:CollectAnnotationsByNameVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to parser_util:CollectAnnotationsByNameVisitor:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to parser_util:CollectAnnotationsByNameVisitor:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to parser_util:CollectAnnotationsByNameVisitor:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to parser_util:CollectAnnotationsByNameVisitor:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to parser_util:CollectAnnotationsByNameVisitor:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to parser_util:CollectAnnotationsByNameVisitor:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to parser_util:CollectAnnotationsByNameVisitor:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to parser_util:CollectAnnotationsByNameVisitor:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to parser_util:CollectAnnotationsByNameVisitor:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to parser_util:CollectAnnotationsByNameVisitor:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to parser_util:CollectAnnotationsByNameVisitor:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to parser_util:CollectAnnotationsByNameVisitor:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to parser_util:CollectAnnotationsByNameVisitor:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to parser_util:CollectAnnotationsByNameVisitor:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to parser_util:CollectAnnotationsByNameVisitor:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to parser_util:CollectAnnotationsByNameVisitor:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to parser_util:CollectAnnotationsByNameVisitor:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to parser_util:CollectAnnotationsByNameVisitor:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to parser_util:CollectAnnotationsByNameVisitor:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to parser_util:CollectAnnotationsByNameVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to parser_util:CollectAnnotationsByNameVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to parser_util:CollectAnnotationsByNameVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to parser_util:CollectAnnotationsByNameVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to parser_util:CollectAnnotationsByNameVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to parser_util:CollectAnnotationsByNameVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to parser_util:CollectAnnotationsByNameVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to parser_util:CollectAnnotationsByNameVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to parser_util:CollectAnnotationsByNameVisitor:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__visit, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_util#CollectAnnotationsByNameVisitor#visit */
+(nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_nodes#Visitor#enter_visit */
+(nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_nodes#Visitor#current_node */
+(nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node_61d, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_nodes#Visitor#current_node= */
+(nitmethod_t)VIRTUAL_parser_nodes__Visitor__init, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_nodes#Visitor#init */
+(nitmethod_t)VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__name, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_util#CollectAnnotationsByNameVisitor#name */
+(nitmethod_t)VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__name_61d, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_util#CollectAnnotationsByNameVisitor#name= */
+(nitmethod_t)VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__init, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_util#CollectAnnotationsByNameVisitor#init */
+(nitmethod_t)VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__result, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_util#CollectAnnotationsByNameVisitor#result */
+(nitmethod_t)VIRTUAL_parser_util__CollectAnnotationsByNameVisitor__result_61d, /* pointer to parser_util:CollectAnnotationsByNameVisitor:parser_util#CollectAnnotationsByNameVisitor#result= */
+}
+};
 /* allocate CollectAnnotationsByNameVisitor */
 val* NEW_parser_util__CollectAnnotationsByNameVisitor(const struct type* type) {
-fprintf(stderr, "Runtime error: %s\n", "CollectAnnotationsByNameVisitor is DEAD");
-exit(1);
+val* self /* : CollectAnnotationsByNameVisitor */;
+val* var /* : null */;
+val* var1 /* : Array[AAnnotation] */;
+self = nit_alloc(sizeof(struct instance) + 3*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_parser_util__CollectAnnotationsByNameVisitor;
+var = NULL;
+self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:CollectAnnotationsByNameVisitor exact> */
+var1 = NEW_array__Array(&type_array__Arrayparser_nodes__AAnnotation);
+((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[AAnnotation]>*/;
+self->attrs[COLOR_parser_util__CollectAnnotationsByNameVisitor___64dresult].val = var1; /* @result on <self:CollectAnnotationsByNameVisitor exact> */
+return self;
 }
-/* allocate CollectAnnotationsByNameVisitor */
-void CHECK_NEW_parser_util__CollectAnnotationsByNameVisitor(val* self) {
-fprintf(stderr, "Runtime error: %s\n", "CollectAnnotationsByNameVisitor is DEAD");
-exit(1);
+/* runtime class serialization_phase__SerializationPhase */
+const struct class class_serialization_phase__SerializationPhase = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to serialization_phase:SerializationPhase:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to serialization_phase:SerializationPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to serialization_phase:SerializationPhase:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to serialization_phase:SerializationPhase:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to serialization_phase:SerializationPhase:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to serialization_phase:SerializationPhase:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to serialization_phase:SerializationPhase:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to serialization_phase:SerializationPhase:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to serialization_phase:SerializationPhase:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to serialization_phase:SerializationPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to serialization_phase:SerializationPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to serialization_phase:SerializationPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to serialization_phase:SerializationPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to serialization_phase:SerializationPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to serialization_phase:SerializationPhase:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to serialization_phase:SerializationPhase:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to serialization_phase:SerializationPhase:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to serialization_phase:SerializationPhase:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to serialization_phase:SerializationPhase:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to serialization_phase:SerializationPhase:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to serialization_phase:SerializationPhase:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to serialization_phase:SerializationPhase:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to serialization_phase:SerializationPhase:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to serialization_phase:SerializationPhase:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to serialization_phase:SerializationPhase:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to serialization_phase:SerializationPhase:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to serialization_phase:SerializationPhase:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to serialization_phase:SerializationPhase:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to serialization_phase:SerializationPhase:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to serialization_phase:SerializationPhase:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to serialization_phase:SerializationPhase:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to serialization_phase:SerializationPhase:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to serialization_phase:SerializationPhase:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to serialization_phase:SerializationPhase:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to serialization_phase:SerializationPhase:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to serialization_phase:SerializationPhase:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to serialization_phase:SerializationPhase:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to serialization_phase:SerializationPhase:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to serialization_phase:SerializationPhase:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to serialization_phase:SerializationPhase:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to serialization_phase:SerializationPhase:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to serialization_phase:SerializationPhase:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to serialization_phase:SerializationPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to serialization_phase:SerializationPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to serialization_phase:SerializationPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to serialization_phase:SerializationPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to serialization_phase:SerializationPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to serialization_phase:SerializationPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to serialization_phase:SerializationPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to serialization_phase:SerializationPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to serialization_phase:SerializationPhase:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to serialization_phase:SerializationPhase:phase#Phase#toolcontext */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to serialization_phase:SerializationPhase:phase#Phase#toolcontext= */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to serialization_phase:SerializationPhase:phase#Phase#in_hierarchy */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy_61d, /* pointer to serialization_phase:SerializationPhase:phase#Phase#in_hierarchy= */
+(nitmethod_t)VIRTUAL_phase__Phase__init, /* pointer to serialization_phase:SerializationPhase:phase#Phase#init */
+(nitmethod_t)VIRTUAL_serialization_phase__SerializationPhase__process_nmodule, /* pointer to serialization_phase:SerializationPhase:serialization_phase#SerializationPhase#process_nmodule */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to serialization_phase:SerializationPhase:phase#Phase#process_nclassdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to serialization_phase:SerializationPhase:phase#Phase#process_npropdef */
+(nitmethod_t)VIRTUAL_serialization_phase__SerializationPhase__process_annotated_node, /* pointer to serialization_phase:SerializationPhase:serialization_phase#SerializationPhase#process_annotated_node */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to serialization_phase:SerializationPhase:modelbuilder#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_serialization_phase__SerializationPhase__generate_serialization_method, /* pointer to serialization_phase:SerializationPhase:serialization_phase#SerializationPhase#generate_serialization_method */
+(nitmethod_t)VIRTUAL_serialization_phase__SerializationPhase__generate_deserialization_init, /* pointer to serialization_phase:SerializationPhase:serialization_phase#SerializationPhase#generate_deserialization_init */
+(nitmethod_t)VIRTUAL_serialization_phase__SerializationPhase__generate_deserialization_method, /* pointer to serialization_phase:SerializationPhase:serialization_phase#SerializationPhase#generate_deserialization_method */
+}
+};
+/* allocate SerializationPhase */
+val* NEW_serialization_phase__SerializationPhase(const struct type* type) {
+val* self /* : SerializationPhase */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_serialization_phase__SerializationPhase;
+return self;
 }
 /* runtime class transform__TransformPhase */
 const struct class class_transform__TransformPhase = {
@@ -4535,6 +4646,7 @@ const struct class class_transform__TransformPhase = {
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to transform:TransformPhase:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to transform:TransformPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to transform:TransformPhase:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to transform:TransformPhase:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to transform:TransformPhase:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to transform:TransformPhase:kernel#Object#output */
@@ -4542,16 +4654,17 @@ const struct class class_transform__TransformPhase = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to transform:TransformPhase:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to transform:TransformPhase:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to transform:TransformPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to transform:TransformPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to transform:TransformPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to transform:TransformPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to transform:TransformPhase:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to transform:TransformPhase:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to transform:TransformPhase:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to transform:TransformPhase:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to transform:TransformPhase:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to transform:TransformPhase:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to transform:TransformPhase:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to transform:TransformPhase:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to transform:TransformPhase:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to transform:TransformPhase:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to transform:TransformPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to transform:TransformPhase:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to transform:TransformPhase:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to transform:TransformPhase:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to transform:TransformPhase:time#Object#get_time */
@@ -4574,6 +4687,14 @@ const struct class class_transform__TransformPhase = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to transform:TransformPhase:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to transform:TransformPhase:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to transform:TransformPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to transform:TransformPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to transform:TransformPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to transform:TransformPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to transform:TransformPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to transform:TransformPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to transform:TransformPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to transform:TransformPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to transform:TransformPhase:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to transform:TransformPhase:phase#Phase#toolcontext */
 (nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to transform:TransformPhase:phase#Phase#toolcontext= */
 (nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to transform:TransformPhase:phase#Phase#in_hierarchy */
@@ -4583,7 +4704,7 @@ const struct class class_transform__TransformPhase = {
 (nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to transform:TransformPhase:phase#Phase#process_nclassdef */
 (nitmethod_t)VIRTUAL_transform__TransformPhase__process_npropdef, /* pointer to transform:TransformPhase:transform#TransformPhase#process_npropdef */
 (nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to transform:TransformPhase:phase#Phase#process_annotated_node */
-(nitmethod_t)VIRTUAL_frontend__Phase__process_mainmodule, /* pointer to transform:TransformPhase:frontend#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to transform:TransformPhase:modelbuilder#Phase#process_mainmodule */
 }
 };
 /* allocate TransformPhase */
@@ -4594,27 +4715,13 @@ self->type = type;
 self->class = &class_transform__TransformPhase;
 return self;
 }
-/* allocate TransformPhase */
-void CHECK_NEW_transform__TransformPhase(val* self) {
-val* var /* : ToolContext */;
-val* var1 /* : POSetElement[Phase] */;
-var = self->attrs[COLOR_phase__Phase___64dtoolcontext].val; /* @toolcontext on <self:TransformPhase> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @toolcontext", "src/phase.nit", 107);
-exit(1);
-}
-var1 = self->attrs[COLOR_phase__Phase___64din_hierarchy].val; /* @in_hierarchy on <self:TransformPhase> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @in_hierarchy", "src/phase.nit", 110);
-exit(1);
-}
-}
 /* runtime class transform__TransformVisitor */
 const struct class class_transform__TransformVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to transform:TransformVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to transform:TransformVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to transform:TransformVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to transform:TransformVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to transform:TransformVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to transform:TransformVisitor:kernel#Object#output */
@@ -4622,16 +4729,17 @@ const struct class class_transform__TransformVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to transform:TransformVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to transform:TransformVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to transform:TransformVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to transform:TransformVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to transform:TransformVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to transform:TransformVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to transform:TransformVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to transform:TransformVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to transform:TransformVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to transform:TransformVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to transform:TransformVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to transform:TransformVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to transform:TransformVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to transform:TransformVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to transform:TransformVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to transform:TransformVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to transform:TransformVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to transform:TransformVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to transform:TransformVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to transform:TransformVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to transform:TransformVisitor:time#Object#get_time */
@@ -4654,6 +4762,14 @@ const struct class class_transform__TransformVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to transform:TransformVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to transform:TransformVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to transform:TransformVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to transform:TransformVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to transform:TransformVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to transform:TransformVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to transform:TransformVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to transform:TransformVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to transform:TransformVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to transform:TransformVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to transform:TransformVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_transform__TransformVisitor__visit, /* pointer to transform:TransformVisitor:transform#TransformVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to transform:TransformVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to transform:TransformVisitor:parser_nodes#Visitor#current_node */
@@ -4685,45 +4801,13 @@ var = NULL;
 self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:TransformVisitor exact> */
 return self;
 }
-/* allocate TransformVisitor */
-void CHECK_NEW_transform__TransformVisitor(val* self) {
-val* var /* : TransformPhase */;
-val* var1 /* : MModule */;
-val* var2 /* : MClassDef */;
-val* var3 /* : MPropDef */;
-val* var4 /* : ASTBuilder */;
-var = self->attrs[COLOR_transform__TransformVisitor___64dphase].val; /* @phase on <self:TransformVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @phase", "src/transform.nit", 45);
-exit(1);
-}
-var1 = self->attrs[COLOR_transform__TransformVisitor___64dmmodule].val; /* @mmodule on <self:TransformVisitor> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/transform.nit", 46);
-exit(1);
-}
-var2 = self->attrs[COLOR_transform__TransformVisitor___64dmclassdef].val; /* @mclassdef on <self:TransformVisitor> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclassdef", "src/transform.nit", 47);
-exit(1);
-}
-var3 = self->attrs[COLOR_transform__TransformVisitor___64dmpropdef].val; /* @mpropdef on <self:TransformVisitor> */
-if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/transform.nit", 48);
-exit(1);
-}
-var4 = self->attrs[COLOR_transform__TransformVisitor___64dbuilder].val; /* @builder on <self:TransformVisitor> */
-if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @builder", "src/transform.nit", 49);
-exit(1);
-}
-}
 /* runtime class astbuilder__ASTBuilder */
 const struct class class_astbuilder__ASTBuilder = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to astbuilder:ASTBuilder:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to astbuilder:ASTBuilder:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to astbuilder:ASTBuilder:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to astbuilder:ASTBuilder:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to astbuilder:ASTBuilder:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to astbuilder:ASTBuilder:kernel#Object#output */
@@ -4731,16 +4815,17 @@ const struct class class_astbuilder__ASTBuilder = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to astbuilder:ASTBuilder:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to astbuilder:ASTBuilder:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to astbuilder:ASTBuilder:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to astbuilder:ASTBuilder:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to astbuilder:ASTBuilder:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to astbuilder:ASTBuilder:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to astbuilder:ASTBuilder:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to astbuilder:ASTBuilder:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to astbuilder:ASTBuilder:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to astbuilder:ASTBuilder:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to astbuilder:ASTBuilder:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to astbuilder:ASTBuilder:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to astbuilder:ASTBuilder:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to astbuilder:ASTBuilder:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to astbuilder:ASTBuilder:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to astbuilder:ASTBuilder:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to astbuilder:ASTBuilder:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to astbuilder:ASTBuilder:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to astbuilder:ASTBuilder:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to astbuilder:ASTBuilder:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to astbuilder:ASTBuilder:time#Object#get_time */
@@ -4763,6 +4848,14 @@ const struct class class_astbuilder__ASTBuilder = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to astbuilder:ASTBuilder:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to astbuilder:ASTBuilder:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to astbuilder:ASTBuilder:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to astbuilder:ASTBuilder:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to astbuilder:ASTBuilder:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to astbuilder:ASTBuilder:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to astbuilder:ASTBuilder:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to astbuilder:ASTBuilder:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to astbuilder:ASTBuilder:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to astbuilder:ASTBuilder:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to astbuilder:ASTBuilder:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_astbuilder__ASTBuilder__mmodule, /* pointer to astbuilder:ASTBuilder:astbuilder#ASTBuilder#mmodule */
 (nitmethod_t)VIRTUAL_astbuilder__ASTBuilder__mmodule_61d, /* pointer to astbuilder:ASTBuilder:astbuilder#ASTBuilder#mmodule= */
 (nitmethod_t)VIRTUAL_astbuilder__ASTBuilder__anchor, /* pointer to astbuilder:ASTBuilder:astbuilder#ASTBuilder#anchor */
@@ -4788,23 +4881,13 @@ self->type = type;
 self->class = &class_astbuilder__ASTBuilder;
 return self;
 }
-/* allocate ASTBuilder */
-void CHECK_NEW_astbuilder__ASTBuilder(val* self) {
-val* var /* : MModule */;
-val* var1 /* : nullable MClassType */;
-var = self->attrs[COLOR_astbuilder__ASTBuilder___64dmmodule].val; /* @mmodule on <self:ASTBuilder> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/astbuilder.nit", 25);
-exit(1);
-}
-var1 = self->attrs[COLOR_astbuilder__ASTBuilder___64danchor].val; /* @anchor on <self:ASTBuilder> */
-}
 /* runtime class astbuilder__APlaceholderExpr */
 const struct class class_astbuilder__APlaceholderExpr = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to astbuilder:APlaceholderExpr:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to astbuilder:APlaceholderExpr:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to astbuilder:APlaceholderExpr:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to astbuilder:APlaceholderExpr:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to astbuilder:APlaceholderExpr:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to astbuilder:APlaceholderExpr:kernel#Object#output */
@@ -4812,16 +4895,17 @@ const struct class class_astbuilder__APlaceholderExpr = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to astbuilder:APlaceholderExpr:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to astbuilder:APlaceholderExpr:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to astbuilder:APlaceholderExpr:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to astbuilder:APlaceholderExpr:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to astbuilder:APlaceholderExpr:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to astbuilder:APlaceholderExpr:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to astbuilder:APlaceholderExpr:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to astbuilder:APlaceholderExpr:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to astbuilder:APlaceholderExpr:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to astbuilder:APlaceholderExpr:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to astbuilder:APlaceholderExpr:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to astbuilder:APlaceholderExpr:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to astbuilder:APlaceholderExpr:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to astbuilder:APlaceholderExpr:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to astbuilder:APlaceholderExpr:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to astbuilder:APlaceholderExpr:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to astbuilder:APlaceholderExpr:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to astbuilder:APlaceholderExpr:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to astbuilder:APlaceholderExpr:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to astbuilder:APlaceholderExpr:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to astbuilder:APlaceholderExpr:time#Object#get_time */
@@ -4844,6 +4928,14 @@ const struct class class_astbuilder__APlaceholderExpr = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to astbuilder:APlaceholderExpr:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to astbuilder:APlaceholderExpr:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to astbuilder:APlaceholderExpr:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to astbuilder:APlaceholderExpr:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to astbuilder:APlaceholderExpr:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to astbuilder:APlaceholderExpr:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to astbuilder:APlaceholderExpr:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to astbuilder:APlaceholderExpr:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to astbuilder:APlaceholderExpr:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to astbuilder:APlaceholderExpr:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to astbuilder:APlaceholderExpr:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_parser_nodes__ANode__location, /* pointer to astbuilder:APlaceholderExpr:parser_nodes#ANode#location */
 (nitmethod_t)VIRTUAL_parser_nodes__ANode__hot_location, /* pointer to astbuilder:APlaceholderExpr:parser_nodes#ANode#hot_location */
 (nitmethod_t)VIRTUAL_parser_nodes__ANode__debug, /* pointer to astbuilder:APlaceholderExpr:parser_nodes#ANode#debug */
@@ -4863,8 +4955,8 @@ const struct class class_astbuilder__APlaceholderExpr = {
 (nitmethod_t)VIRTUAL_flow__ANode__accept_flow_visitor, /* pointer to astbuilder:APlaceholderExpr:flow#ANode#accept_flow_visitor */
 (nitmethod_t)VIRTUAL_local_var_init__ANode__accept_local_var_visitor, /* pointer to astbuilder:APlaceholderExpr:local_var_init#ANode#accept_local_var_visitor */
 (nitmethod_t)VIRTUAL_auto_super_init__ANode__accept_auto_super_init, /* pointer to astbuilder:APlaceholderExpr:auto_super_init#ANode#accept_auto_super_init */
-(nitmethod_t)VIRTUAL_rapid_type_analysis__ANode__accept_rapid_type_visitor, /* pointer to astbuilder:APlaceholderExpr:rapid_type_analysis#ANode#accept_rapid_type_visitor */
 (nitmethod_t)VIRTUAL_astvalidation__APlaceholderExpr__accept_ast_validation, /* pointer to astbuilder:APlaceholderExpr:astvalidation#APlaceholderExpr#accept_ast_validation */
+(nitmethod_t)VIRTUAL_rapid_type_analysis__ANode__accept_rapid_type_visitor, /* pointer to astbuilder:APlaceholderExpr:rapid_type_analysis#ANode#accept_rapid_type_visitor */
 (nitmethod_t)VIRTUAL_transform__ANode__accept_transform_visitor, /* pointer to astbuilder:APlaceholderExpr:transform#ANode#accept_transform_visitor */
 (nitmethod_t)VIRTUAL_parser_nodes__Prod__location_61d, /* pointer to astbuilder:APlaceholderExpr:parser_nodes#Prod#location= */
 (nitmethod_t)VIRTUAL_parser_nodes__Prod__n_annotations, /* pointer to astbuilder:APlaceholderExpr:parser_nodes#Prod#n_annotations */
@@ -4922,21 +5014,13 @@ var5 = NULL;
 self->attrs[COLOR_typing__AExpr___64dimplicit_cast_to].val = var5; /* @implicit_cast_to on <self:APlaceholderExpr exact> */
 return self;
 }
-/* allocate APlaceholderExpr */
-void CHECK_NEW_astbuilder__APlaceholderExpr(val* self) {
-val* var /* : nullable Location */;
-val* var1 /* : nullable FlowContext */;
-val* var2 /* : nullable Variable */;
-var = self->attrs[COLOR_parser__Prod___first_location].val; /* _first_location on <self:APlaceholderExpr> */
-var1 = self->attrs[COLOR_flow__AExpr___64dafter_flow_context].val; /* @after_flow_context on <self:APlaceholderExpr> */
-var2 = self->attrs[COLOR_astbuilder__AExpr___64dvariable_cache].val; /* @variable_cache on <self:APlaceholderExpr> */
-}
 /* runtime class astvalidation__ASTValidationVisitor */
 const struct class class_astvalidation__ASTValidationVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to astvalidation:ASTValidationVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to astvalidation:ASTValidationVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to astvalidation:ASTValidationVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to astvalidation:ASTValidationVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to astvalidation:ASTValidationVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to astvalidation:ASTValidationVisitor:kernel#Object#output */
@@ -4944,16 +5028,17 @@ const struct class class_astvalidation__ASTValidationVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to astvalidation:ASTValidationVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to astvalidation:ASTValidationVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to astvalidation:ASTValidationVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to astvalidation:ASTValidationVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to astvalidation:ASTValidationVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to astvalidation:ASTValidationVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to astvalidation:ASTValidationVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to astvalidation:ASTValidationVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to astvalidation:ASTValidationVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to astvalidation:ASTValidationVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to astvalidation:ASTValidationVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to astvalidation:ASTValidationVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to astvalidation:ASTValidationVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to astvalidation:ASTValidationVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to astvalidation:ASTValidationVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to astvalidation:ASTValidationVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to astvalidation:ASTValidationVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to astvalidation:ASTValidationVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to astvalidation:ASTValidationVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to astvalidation:ASTValidationVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to astvalidation:ASTValidationVisitor:time#Object#get_time */
@@ -4976,6 +5061,14 @@ const struct class class_astvalidation__ASTValidationVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to astvalidation:ASTValidationVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to astvalidation:ASTValidationVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to astvalidation:ASTValidationVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to astvalidation:ASTValidationVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to astvalidation:ASTValidationVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to astvalidation:ASTValidationVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to astvalidation:ASTValidationVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to astvalidation:ASTValidationVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to astvalidation:ASTValidationVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to astvalidation:ASTValidationVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to astvalidation:ASTValidationVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_astvalidation__ASTValidationVisitor__visit, /* pointer to astvalidation:ASTValidationVisitor:astvalidation#ASTValidationVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to astvalidation:ASTValidationVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to astvalidation:ASTValidationVisitor:parser_nodes#Visitor#current_node */
@@ -5001,23 +5094,19 @@ var = NULL;
 self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:ASTValidationVisitor exact> */
 var1 = NEW_list__List(&type_list__Listparser_nodes__ANode);
 ((void (*)(val*))(var1->class->vft[COLOR_list__List__init]))(var1) /* init on <var1:List[ANode]>*/;
-CHECK_NEW_list__List(var1);
 self->attrs[COLOR_astvalidation__ASTValidationVisitor___64dpath].val = var1; /* @path on <self:ASTValidationVisitor exact> */
 var2 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetparser_nodes__ANode);
 ((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashSet__init]))(var2) /* init on <var2:HashSet[ANode]>*/;
-CHECK_NEW_hash_collection__HashSet(var2);
 self->attrs[COLOR_astvalidation__ASTValidationVisitor___64dseen].val = var2; /* @seen on <self:ASTValidationVisitor exact> */
 return self;
 }
-/* allocate ASTValidationVisitor */
-void CHECK_NEW_astvalidation__ASTValidationVisitor(val* self) {
-}
 /* runtime class rapid_type_analysis__RapidTypeAnalysis */
 const struct class class_rapid_type_analysis__RapidTypeAnalysis = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to rapid_type_analysis:RapidTypeAnalysis:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to rapid_type_analysis:RapidTypeAnalysis:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to rapid_type_analysis:RapidTypeAnalysis:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to rapid_type_analysis:RapidTypeAnalysis:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to rapid_type_analysis:RapidTypeAnalysis:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to rapid_type_analysis:RapidTypeAnalysis:kernel#Object#output */
@@ -5025,16 +5114,17 @@ const struct class class_rapid_type_analysis__RapidTypeAnalysis = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to rapid_type_analysis:RapidTypeAnalysis:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to rapid_type_analysis:RapidTypeAnalysis:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to rapid_type_analysis:RapidTypeAnalysis:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to rapid_type_analysis:RapidTypeAnalysis:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to rapid_type_analysis:RapidTypeAnalysis:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to rapid_type_analysis:RapidTypeAnalysis:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to rapid_type_analysis:RapidTypeAnalysis:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to rapid_type_analysis:RapidTypeAnalysis:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to rapid_type_analysis:RapidTypeAnalysis:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to rapid_type_analysis:RapidTypeAnalysis:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to rapid_type_analysis:RapidTypeAnalysis:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to rapid_type_analysis:RapidTypeAnalysis:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to rapid_type_analysis:RapidTypeAnalysis:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to rapid_type_analysis:RapidTypeAnalysis:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to rapid_type_analysis:RapidTypeAnalysis:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to rapid_type_analysis:RapidTypeAnalysis:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to rapid_type_analysis:RapidTypeAnalysis:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to rapid_type_analysis:RapidTypeAnalysis:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to rapid_type_analysis:RapidTypeAnalysis:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to rapid_type_analysis:RapidTypeAnalysis:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to rapid_type_analysis:RapidTypeAnalysis:time#Object#get_time */
@@ -5057,6 +5147,14 @@ const struct class class_rapid_type_analysis__RapidTypeAnalysis = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to rapid_type_analysis:RapidTypeAnalysis:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to rapid_type_analysis:RapidTypeAnalysis:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to rapid_type_analysis:RapidTypeAnalysis:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to rapid_type_analysis:RapidTypeAnalysis:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to rapid_type_analysis:RapidTypeAnalysis:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to rapid_type_analysis:RapidTypeAnalysis:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to rapid_type_analysis:RapidTypeAnalysis:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to rapid_type_analysis:RapidTypeAnalysis:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to rapid_type_analysis:RapidTypeAnalysis:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to rapid_type_analysis:RapidTypeAnalysis:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to rapid_type_analysis:RapidTypeAnalysis:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__modelbuilder, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#modelbuilder */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__modelbuilder_61d, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#modelbuilder= */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__mainmodule, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#mainmodule */
@@ -5077,10 +5175,13 @@ const struct class class_rapid_type_analysis__RapidTypeAnalysis = {
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methods_61d, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#live_methods= */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_super_sends, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#live_super_sends */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_super_sends_61d, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#live_super_sends= */
+(nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_types_to_csv, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#live_types_to_csv */
+(nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__live_methods_to_tree, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#live_methods_to_tree */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__totry_methods, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#totry_methods */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__totry_methods_61d, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#totry_methods= */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__todo, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#todo */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__todo_61d, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#todo= */
+(nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__force_alive, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#force_alive */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__run_analysis, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#run_analysis */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__check_depth, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#check_depth */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeAnalysis__add_new, /* pointer to rapid_type_analysis:RapidTypeAnalysis:rapid_type_analysis#RapidTypeAnalysis#add_new */
@@ -5099,7 +5200,7 @@ val* self /* : RapidTypeAnalysis */;
 val* var /* : HashSet[MClassType] */;
 val* var1 /* : HashSet[MClassType] */;
 val* var2 /* : HashSet[MClass] */;
-val* var3 /* : HashSet[MClassType] */;
+val* var3 /* : HashSet[MType] */;
 val* var4 /* : HashSet[MType] */;
 val* var5 /* : HashSet[MMethodDef] */;
 val* var6 /* : HashSet[MMethod] */;
@@ -5111,67 +5212,43 @@ self->type = type;
 self->class = &class_rapid_type_analysis__RapidTypeAnalysis;
 var = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType);
 ((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashSet__init]))(var) /* init on <var:HashSet[MClassType]>*/;
-CHECK_NEW_hash_collection__HashSet(var);
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_types].val = var; /* @live_types on <self:RapidTypeAnalysis exact> */
 var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType);
 ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[MClassType]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_open_types].val = var1; /* @live_open_types on <self:RapidTypeAnalysis exact> */
 var2 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass);
 ((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashSet__init]))(var2) /* init on <var2:HashSet[MClass]>*/;
-CHECK_NEW_hash_collection__HashSet(var2);
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_classes].val = var2; /* @live_classes on <self:RapidTypeAnalysis exact> */
-var3 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType);
-((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashSet__init]))(var3) /* init on <var3:HashSet[MClassType]>*/;
-CHECK_NEW_hash_collection__HashSet(var3);
+var3 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType);
+((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashSet__init]))(var3) /* init on <var3:HashSet[MType]>*/;
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_cast_types].val = var3; /* @live_cast_types on <self:RapidTypeAnalysis exact> */
 var4 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType);
 ((void (*)(val*))(var4->class->vft[COLOR_hash_collection__HashSet__init]))(var4) /* init on <var4:HashSet[MType]>*/;
-CHECK_NEW_hash_collection__HashSet(var4);
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_open_cast_types].val = var4; /* @live_open_cast_types on <self:RapidTypeAnalysis exact> */
 var5 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MMethodDef);
 ((void (*)(val*))(var5->class->vft[COLOR_hash_collection__HashSet__init]))(var5) /* init on <var5:HashSet[MMethodDef]>*/;
-CHECK_NEW_hash_collection__HashSet(var5);
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_methoddefs].val = var5; /* @live_methoddefs on <self:RapidTypeAnalysis exact> */
 var6 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MMethod);
 ((void (*)(val*))(var6->class->vft[COLOR_hash_collection__HashSet__init]))(var6) /* init on <var6:HashSet[MMethod]>*/;
-CHECK_NEW_hash_collection__HashSet(var6);
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_methods].val = var6; /* @live_methods on <self:RapidTypeAnalysis exact> */
 var7 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MMethodDef);
 ((void (*)(val*))(var7->class->vft[COLOR_hash_collection__HashSet__init]))(var7) /* init on <var7:HashSet[MMethodDef]>*/;
-CHECK_NEW_hash_collection__HashSet(var7);
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dlive_super_sends].val = var7; /* @live_super_sends on <self:RapidTypeAnalysis exact> */
 var8 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MMethod);
 ((void (*)(val*))(var8->class->vft[COLOR_hash_collection__HashSet__init]))(var8) /* init on <var8:HashSet[MMethod]>*/;
-CHECK_NEW_hash_collection__HashSet(var8);
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dtotry_methods].val = var8; /* @totry_methods on <self:RapidTypeAnalysis exact> */
 var9 = NEW_list__List(&type_list__Listmodel__MMethodDef);
 ((void (*)(val*))(var9->class->vft[COLOR_list__List__init]))(var9) /* init on <var9:List[MMethodDef]>*/;
-CHECK_NEW_list__List(var9);
 self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dtodo].val = var9; /* @todo on <self:RapidTypeAnalysis exact> */
 return self;
 }
-/* allocate RapidTypeAnalysis */
-void CHECK_NEW_rapid_type_analysis__RapidTypeAnalysis(val* self) {
-val* var /* : ModelBuilder */;
-val* var1 /* : MModule */;
-var = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dmodelbuilder].val; /* @modelbuilder on <self:RapidTypeAnalysis> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @modelbuilder", "src/rapid_type_analysis.nit", 43);
-exit(1);
-}
-var1 = self->attrs[COLOR_rapid_type_analysis__RapidTypeAnalysis___64dmainmodule].val; /* @mainmodule on <self:RapidTypeAnalysis> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mainmodule", "src/rapid_type_analysis.nit", 46);
-exit(1);
-}
-}
 /* runtime class rapid_type_analysis__RapidTypeVisitor */
 const struct class class_rapid_type_analysis__RapidTypeVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to rapid_type_analysis:RapidTypeVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to rapid_type_analysis:RapidTypeVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to rapid_type_analysis:RapidTypeVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to rapid_type_analysis:RapidTypeVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to rapid_type_analysis:RapidTypeVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to rapid_type_analysis:RapidTypeVisitor:kernel#Object#output */
@@ -5179,16 +5256,17 @@ const struct class class_rapid_type_analysis__RapidTypeVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to rapid_type_analysis:RapidTypeVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to rapid_type_analysis:RapidTypeVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to rapid_type_analysis:RapidTypeVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to rapid_type_analysis:RapidTypeVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to rapid_type_analysis:RapidTypeVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to rapid_type_analysis:RapidTypeVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to rapid_type_analysis:RapidTypeVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to rapid_type_analysis:RapidTypeVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to rapid_type_analysis:RapidTypeVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to rapid_type_analysis:RapidTypeVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to rapid_type_analysis:RapidTypeVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to rapid_type_analysis:RapidTypeVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to rapid_type_analysis:RapidTypeVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to rapid_type_analysis:RapidTypeVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to rapid_type_analysis:RapidTypeVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to rapid_type_analysis:RapidTypeVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to rapid_type_analysis:RapidTypeVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to rapid_type_analysis:RapidTypeVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to rapid_type_analysis:RapidTypeVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to rapid_type_analysis:RapidTypeVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to rapid_type_analysis:RapidTypeVisitor:time#Object#get_time */
@@ -5211,6 +5289,14 @@ const struct class class_rapid_type_analysis__RapidTypeVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to rapid_type_analysis:RapidTypeVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to rapid_type_analysis:RapidTypeVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to rapid_type_analysis:RapidTypeVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to rapid_type_analysis:RapidTypeVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to rapid_type_analysis:RapidTypeVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to rapid_type_analysis:RapidTypeVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to rapid_type_analysis:RapidTypeVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to rapid_type_analysis:RapidTypeVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to rapid_type_analysis:RapidTypeVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to rapid_type_analysis:RapidTypeVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to rapid_type_analysis:RapidTypeVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeVisitor__visit, /* pointer to rapid_type_analysis:RapidTypeVisitor:rapid_type_analysis#RapidTypeVisitor#visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__enter_visit, /* pointer to rapid_type_analysis:RapidTypeVisitor:parser_nodes#Visitor#enter_visit */
 (nitmethod_t)VIRTUAL_parser_nodes__Visitor__current_node, /* pointer to rapid_type_analysis:RapidTypeVisitor:parser_nodes#Visitor#current_node */
@@ -5230,6 +5316,7 @@ const struct class class_rapid_type_analysis__RapidTypeVisitor = {
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_monomorphic_send, /* pointer to rapid_type_analysis:RapidTypeVisitor:rapid_type_analysis#RapidTypeVisitor#add_monomorphic_send */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_send, /* pointer to rapid_type_analysis:RapidTypeVisitor:rapid_type_analysis#RapidTypeVisitor#add_send */
 (nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_cast_type, /* pointer to rapid_type_analysis:RapidTypeVisitor:rapid_type_analysis#RapidTypeVisitor#add_cast_type */
+(nitmethod_t)VIRTUAL_rapid_type_analysis__RapidTypeVisitor__add_callsite, /* pointer to rapid_type_analysis:RapidTypeVisitor:rapid_type_analysis#RapidTypeVisitor#add_callsite */
 }
 };
 /* allocate RapidTypeVisitor */
@@ -5243,26 +5330,19 @@ var = NULL;
 self->attrs[COLOR_parser_nodes__Visitor___current_node].val = var; /* _current_node on <self:RapidTypeVisitor exact> */
 return self;
 }
-/* allocate RapidTypeVisitor */
-void CHECK_NEW_rapid_type_analysis__RapidTypeVisitor(val* self) {
-val* var /* : RapidTypeAnalysis */;
-val* var1 /* : MClassType */;
-val* var2 /* : MPropDef */;
-var = self->attrs[COLOR_rapid_type_analysis__RapidTypeVisitor___64danalysis].val; /* @analysis on <self:RapidTypeVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @analysis", "src/rapid_type_analysis.nit", 327);
-exit(1);
-}
-var1 = self->attrs[COLOR_rapid_type_analysis__RapidTypeVisitor___64dreceiver].val; /* @receiver on <self:RapidTypeVisitor> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @receiver", "src/rapid_type_analysis.nit", 328);
-exit(1);
-}
-var2 = self->attrs[COLOR_rapid_type_analysis__RapidTypeVisitor___64dmpropdef].val; /* @mpropdef on <self:RapidTypeVisitor> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/rapid_type_analysis.nit", 329);
-exit(1);
+/* runtime class csv__CSVDocument */
+/* allocate CSVDocument */
+val* NEW_csv__CSVDocument(const struct type* type) {
+fprintf(stderr, "Runtime error: %s", "CSVDocument is DEAD");
+fprintf(stderr, "\n");
+show_backtrace(1);
 }
+/* runtime class ordered_tree__OrderedTree */
+/* allocate OrderedTree[Object] */
+val* NEW_ordered_tree__OrderedTree(const struct type* type) {
+fprintf(stderr, "Runtime error: %s", "OrderedTree is DEAD");
+fprintf(stderr, "\n");
+show_backtrace(1);
 }
 /* runtime class global_compiler__GlobalCompiler */
 const struct class class_global_compiler__GlobalCompiler = {
@@ -5270,6 +5350,7 @@ const struct class class_global_compiler__GlobalCompiler = {
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to global_compiler:GlobalCompiler:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to global_compiler:GlobalCompiler:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to global_compiler:GlobalCompiler:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to global_compiler:GlobalCompiler:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to global_compiler:GlobalCompiler:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to global_compiler:GlobalCompiler:kernel#Object#output */
@@ -5277,16 +5358,17 @@ const struct class class_global_compiler__GlobalCompiler = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to global_compiler:GlobalCompiler:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to global_compiler:GlobalCompiler:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to global_compiler:GlobalCompiler:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to global_compiler:GlobalCompiler:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to global_compiler:GlobalCompiler:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to global_compiler:GlobalCompiler:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to global_compiler:GlobalCompiler:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to global_compiler:GlobalCompiler:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to global_compiler:GlobalCompiler:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to global_compiler:GlobalCompiler:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to global_compiler:GlobalCompiler:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to global_compiler:GlobalCompiler:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to global_compiler:GlobalCompiler:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to global_compiler:GlobalCompiler:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to global_compiler:GlobalCompiler:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to global_compiler:GlobalCompiler:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to global_compiler:GlobalCompiler:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to global_compiler:GlobalCompiler:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to global_compiler:GlobalCompiler:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to global_compiler:GlobalCompiler:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to global_compiler:GlobalCompiler:time#Object#get_time */
@@ -5309,6 +5391,16 @@ const struct class class_global_compiler__GlobalCompiler = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to global_compiler:GlobalCompiler:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to global_compiler:GlobalCompiler:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to global_compiler:GlobalCompiler:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to global_compiler:GlobalCompiler:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to global_compiler:GlobalCompiler:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to global_compiler:GlobalCompiler:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to global_compiler:GlobalCompiler:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to global_compiler:GlobalCompiler:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to global_compiler:GlobalCompiler:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to global_compiler:GlobalCompiler:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to global_compiler:GlobalCompiler:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__names, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#names */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__names_61d, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#names= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#mainmodule */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule_61d, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#mainmodule= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__realmainmodule, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#realmainmodule */
@@ -5326,14 +5418,19 @@ const struct class class_global_compiler__GlobalCompiler = {
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__provide_declaration, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#provide_declaration */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__provided_declarations, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#provided_declarations */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__provided_declarations_61d, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#provided_declarations= */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__requirers_of_declarations, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#requirers_of_declarations */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__requirers_of_declarations_61d, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#requirers_of_declarations= */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__build_c_to_nit_bindings, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#build_c_to_nit_bindings */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__compile_header, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#compile_header */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompiler__compile_header_structs, /* pointer to global_compiler:GlobalCompiler:global_compiler#GlobalCompiler#compile_header_structs */
+(nitmethod_t)VIRTUAL_global_compiler__GlobalCompiler__compile_nitni_structs, /* pointer to global_compiler:GlobalCompiler:global_compiler#GlobalCompiler#compile_nitni_structs */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__compile_main_function, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#compile_main_function */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__extern_bodies, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#extern_bodies */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__extern_bodies_61d, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#extern_bodies= */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__files_to_copy, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#files_to_copy */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__files_to_copy_61d, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#files_to_copy= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__seen_extern, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#seen_extern */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__seen_extern_61d, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#seen_extern= */
-(nitmethod_t)VIRTUAL_global_compiler__GlobalCompiler__generate_check_init_instance, /* pointer to global_compiler:GlobalCompiler:global_compiler#GlobalCompiler#generate_check_init_instance */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__generate_init_attr, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#generate_init_attr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__generate_check_attr, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#generate_check_attr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__count_type_test_tags, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#count_type_test_tags */
@@ -5347,6 +5444,7 @@ const struct class class_global_compiler__GlobalCompiler = {
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__init_count_type_test_tags, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#init_count_type_test_tags */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__display_stats, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#display_stats */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__div, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#div */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__finalize_ffi_for_module, /* pointer to global_compiler:GlobalCompiler:abstract_compiler#AbstractCompiler#finalize_ffi_for_module */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis, /* pointer to global_compiler:GlobalCompiler:global_compiler#GlobalCompiler#runtime_type_analysis */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompiler__runtime_type_analysis_61d, /* pointer to global_compiler:GlobalCompiler:global_compiler#GlobalCompiler#runtime_type_analysis= */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompiler__init, /* pointer to global_compiler:GlobalCompiler:global_compiler#GlobalCompiler#init */
@@ -5371,189 +5469,154 @@ const struct class class_global_compiler__GlobalCompiler = {
 /* allocate GlobalCompiler */
 val* NEW_global_compiler__GlobalCompiler(const struct type* type) {
 val* self /* : GlobalCompiler */;
-val* var /* : List[CodeFile] */;
-val* var1 /* : HashMap[String, String] */;
-val* var2 /* : Array[ExternCFile] */;
-val* var3 /* : ArraySet[String] */;
-val* var4 /* : Array[String] */;
-long var5 /* : Int */;
+val* var /* : HashMap[String, String] */;
+val* var1 /* : List[CodeFile] */;
+val* var2 /* : HashMap[String, String] */;
+val* var3 /* : HashMap[String, ANode] */;
+val* var4 /* : Array[ExternFile] */;
+val* var5 /* : Array[String] */;
+val* var6 /* : ArraySet[String] */;
+val* var7 /* : Array[String] */;
+long var8 /* : Int */;
 val* var_ /* var : Array[String] */;
 static val* varonce;
-val* var6 /* : String */;
-char* var7 /* : NativeString */;
-long var8 /* : Int */;
 val* var9 /* : String */;
-static val* varonce10;
-val* var11 /* : String */;
-char* var12 /* : NativeString */;
-long var13 /* : Int */;
+char* var10 /* : NativeString */;
+long var11 /* : Int */;
+val* var12 /* : String */;
+static val* varonce13;
 val* var14 /* : String */;
-static val* varonce15;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-long var18 /* : Int */;
+char* var15 /* : NativeString */;
+long var16 /* : Int */;
+val* var17 /* : String */;
+static val* varonce18;
 val* var19 /* : String */;
-static val* varonce20;
-val* var21 /* : String */;
-char* var22 /* : NativeString */;
-long var23 /* : Int */;
+char* var20 /* : NativeString */;
+long var21 /* : Int */;
+val* var22 /* : String */;
+static val* varonce23;
 val* var24 /* : String */;
-static val* varonce25;
-val* var26 /* : String */;
-char* var27 /* : NativeString */;
-long var28 /* : Int */;
+char* var25 /* : NativeString */;
+long var26 /* : Int */;
+val* var27 /* : String */;
+static val* varonce28;
 val* var29 /* : String */;
-val* var30 /* : HashMap[String, Int] */;
-val* var31 /* : HashMap[String, Int] */;
-val* var32 /* : HashMap[String, Int] */;
-val* var33 /* : HashMap[MClassType, String] */;
-val* var34 /* : List[AbstractRuntimeFunction] */;
-val* var35 /* : HashSet[AbstractRuntimeFunction] */;
-val* var36 /* : HashMap[MType, Array[MClassType]] */;
-self = nit_alloc(sizeof(struct instance) + 18*sizeof(nitattribute_t));
+char* var30 /* : NativeString */;
+long var31 /* : Int */;
+val* var32 /* : String */;
+val* var33 /* : HashMap[String, Int] */;
+val* var34 /* : HashMap[String, Int] */;
+val* var35 /* : HashMap[String, Int] */;
+val* var36 /* : HashMap[MClassType, String] */;
+val* var37 /* : List[AbstractRuntimeFunction] */;
+val* var38 /* : HashSet[AbstractRuntimeFunction] */;
+val* var39 /* : HashMap[MType, Array[MClassType]] */;
+self = nit_alloc(sizeof(struct instance) + 21*sizeof(nitattribute_t));
 self->type = type;
 self->class = &class_global_compiler__GlobalCompiler;
-var = NEW_list__List(&type_list__Listabstract_compiler__CodeFile);
-((void (*)(val*))(var->class->vft[COLOR_list__List__init]))(var) /* init on <var:List[CodeFile]>*/;
-CHECK_NEW_list__List(var);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dfiles].val = var; /* @files on <self:GlobalCompiler exact> */
-var1 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringstring__String);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashMap__init]))(var1) /* init on <var1:HashMap[String, String]>*/;
-CHECK_NEW_hash_collection__HashMap(var1);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dprovided_declarations].val = var1; /* @provided_declarations on <self:GlobalCompiler exact> */
-var2 = NEW_array__Array(&type_array__Arrayabstract_compiler__ExternCFile);
-((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[ExternCFile]>*/;
-CHECK_NEW_array__Array(var2);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dextern_bodies].val = var2; /* @extern_bodies on <self:GlobalCompiler exact> */
-var3 = NEW_array__ArraySet(&type_array__ArraySetstring__String);
-((void (*)(val*))(var3->class->vft[COLOR_array__ArraySet__init]))(var3) /* init on <var3:ArraySet[String]>*/;
-CHECK_NEW_array__ArraySet(var3);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dseen_extern].val = var3; /* @seen_extern on <self:GlobalCompiler exact> */
-var4 = NEW_array__Array(&type_array__Arraystring__String);
-var5 = 5;
-((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[String]>*/;
-CHECK_NEW_array__Array(var4);
-var_ = var4;
+var = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringstring__String);
+((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashMap__init]))(var) /* init on <var:HashMap[String, String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dnames].val = var; /* @names on <self:GlobalCompiler exact> */
+var1 = NEW_list__List(&type_list__Listabstract_compiler__CodeFile);
+((void (*)(val*))(var1->class->vft[COLOR_list__List__init]))(var1) /* init on <var1:List[CodeFile]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dfiles].val = var1; /* @files on <self:GlobalCompiler exact> */
+var2 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringstring__String);
+((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashMap__init]))(var2) /* init on <var2:HashMap[String, String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dprovided_declarations].val = var2; /* @provided_declarations on <self:GlobalCompiler exact> */
+var3 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringparser_nodes__ANode);
+((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[String, ANode]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64drequirers_of_declarations].val = var3; /* @requirers_of_declarations on <self:GlobalCompiler exact> */
+var4 = NEW_array__Array(&type_array__Arrayffi_base__ExternFile);
+((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[ExternFile]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dextern_bodies].val = var4; /* @extern_bodies on <self:GlobalCompiler exact> */
+var5 = NEW_array__Array(&type_array__Arraystring__String);
+((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dfiles_to_copy].val = var5; /* @files_to_copy on <self:GlobalCompiler exact> */
+var6 = NEW_array__ArraySet(&type_array__ArraySetstring__String);
+((void (*)(val*))(var6->class->vft[COLOR_array__ArraySet__init]))(var6) /* init on <var6:ArraySet[String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dseen_extern].val = var6; /* @seen_extern on <self:GlobalCompiler exact> */
+var7 = NEW_array__Array(&type_array__Arraystring__String);
+var8 = 5;
+((void (*)(val*, long))(var7->class->vft[COLOR_array__Array__with_capacity]))(var7, var8) /* with_capacity on <var7:Array[String]>*/;
+var_ = var7;
 if (varonce) {
-var6 = varonce;
+var9 = varonce;
 } else {
-var7 = "isa";
-var8 = 3;
-var9 = string__NativeString__to_s_with_length(var7, var8);
-var6 = var9;
-varonce = var6;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var6) /* push on <var_:Array[String]>*/;
-if (varonce10) {
-var11 = varonce10;
+var10 = "isa";
+var11 = 3;
+var12 = string__NativeString__to_s_with_length(var10, var11);
+var9 = var12;
+varonce = var9;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var9) /* push on <var_:Array[String]>*/;
+if (varonce13) {
+var14 = varonce13;
 } else {
-var12 = "as";
-var13 = 2;
-var14 = string__NativeString__to_s_with_length(var12, var13);
-var11 = var14;
-varonce10 = var11;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var11) /* push on <var_:Array[String]>*/;
-if (varonce15) {
-var16 = varonce15;
+var15 = "as";
+var16 = 2;
+var17 = string__NativeString__to_s_with_length(var15, var16);
+var14 = var17;
+varonce13 = var14;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var14) /* push on <var_:Array[String]>*/;
+if (varonce18) {
+var19 = varonce18;
 } else {
-var17 = "auto";
-var18 = 4;
-var19 = string__NativeString__to_s_with_length(var17, var18);
-var16 = var19;
-varonce15 = var16;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var16) /* push on <var_:Array[String]>*/;
-if (varonce20) {
-var21 = varonce20;
+var20 = "auto";
+var21 = 4;
+var22 = string__NativeString__to_s_with_length(var20, var21);
+var19 = var22;
+varonce18 = var19;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var19) /* push on <var_:Array[String]>*/;
+if (varonce23) {
+var24 = varonce23;
 } else {
-var22 = "covariance";
-var23 = 10;
-var24 = string__NativeString__to_s_with_length(var22, var23);
-var21 = var24;
-varonce20 = var21;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var21) /* push on <var_:Array[String]>*/;
-if (varonce25) {
-var26 = varonce25;
+var25 = "covariance";
+var26 = 10;
+var27 = string__NativeString__to_s_with_length(var25, var26);
+var24 = var27;
+varonce23 = var24;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var24) /* push on <var_:Array[String]>*/;
+if (varonce28) {
+var29 = varonce28;
 } else {
-var27 = "erasure";
-var28 = 7;
-var29 = string__NativeString__to_s_with_length(var27, var28);
-var26 = var29;
-varonce25 = var26;
+var30 = "erasure";
+var31 = 7;
+var32 = string__NativeString__to_s_with_length(var30, var31);
+var29 = var32;
+varonce28 = var29;
 }
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var26) /* push on <var_:Array[String]>*/;
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var29) /* push on <var_:Array[String]>*/;
 self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_tags].val = var_; /* @count_type_test_tags on <self:GlobalCompiler exact> */
-var30 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:GlobalCompiler exact>*/;
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_resolved].val = var30; /* @count_type_test_resolved on <self:GlobalCompiler exact> */
-var31 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:GlobalCompiler exact>*/;
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_unresolved].val = var31; /* @count_type_test_unresolved on <self:GlobalCompiler exact> */
-var32 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:GlobalCompiler exact>*/;
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_skipped].val = var32; /* @count_type_test_skipped on <self:GlobalCompiler exact> */
-var33 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypestring__String);
-((void (*)(val*))(var33->class->vft[COLOR_hash_collection__HashMap__init]))(var33) /* init on <var33:HashMap[MClassType, String]>*/;
-CHECK_NEW_hash_collection__HashMap(var33);
-self->attrs[COLOR_global_compiler__GlobalCompiler___64dclassids].val = var33; /* @classids on <self:GlobalCompiler exact> */
-var34 = NEW_list__List(&type_list__Listabstract_compiler__AbstractRuntimeFunction);
-((void (*)(val*))(var34->class->vft[COLOR_list__List__init]))(var34) /* init on <var34:List[AbstractRuntimeFunction]>*/;
-CHECK_NEW_list__List(var34);
-self->attrs[COLOR_global_compiler__GlobalCompiler___64dtodos].val = var34; /* @todos on <self:GlobalCompiler exact> */
-var35 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction);
-((void (*)(val*))(var35->class->vft[COLOR_hash_collection__HashSet__init]))(var35) /* init on <var35:HashSet[AbstractRuntimeFunction]>*/;
-CHECK_NEW_hash_collection__HashSet(var35);
-self->attrs[COLOR_global_compiler__GlobalCompiler___64dseen].val = var35; /* @seen on <self:GlobalCompiler exact> */
-var36 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType);
-((void (*)(val*))(var36->class->vft[COLOR_hash_collection__HashMap__init]))(var36) /* init on <var36:HashMap[MType, Array[MClassType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var36);
-self->attrs[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache].val = var36; /* @collect_types_cache on <self:GlobalCompiler exact> */
+var33 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:GlobalCompiler exact>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_resolved].val = var33; /* @count_type_test_resolved on <self:GlobalCompiler exact> */
+var34 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:GlobalCompiler exact>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_unresolved].val = var34; /* @count_type_test_unresolved on <self:GlobalCompiler exact> */
+var35 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:GlobalCompiler exact>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_skipped].val = var35; /* @count_type_test_skipped on <self:GlobalCompiler exact> */
+var36 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypestring__String);
+((void (*)(val*))(var36->class->vft[COLOR_hash_collection__HashMap__init]))(var36) /* init on <var36:HashMap[MClassType, String]>*/;
+self->attrs[COLOR_global_compiler__GlobalCompiler___64dclassids].val = var36; /* @classids on <self:GlobalCompiler exact> */
+var37 = NEW_list__List(&type_list__Listabstract_compiler__AbstractRuntimeFunction);
+((void (*)(val*))(var37->class->vft[COLOR_list__List__init]))(var37) /* init on <var37:List[AbstractRuntimeFunction]>*/;
+self->attrs[COLOR_global_compiler__GlobalCompiler___64dtodos].val = var37; /* @todos on <self:GlobalCompiler exact> */
+var38 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction);
+((void (*)(val*))(var38->class->vft[COLOR_hash_collection__HashSet__init]))(var38) /* init on <var38:HashSet[AbstractRuntimeFunction]>*/;
+self->attrs[COLOR_global_compiler__GlobalCompiler___64dseen].val = var38; /* @seen on <self:GlobalCompiler exact> */
+var39 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType);
+((void (*)(val*))(var39->class->vft[COLOR_hash_collection__HashMap__init]))(var39) /* init on <var39:HashMap[MType, Array[MClassType]]>*/;
+self->attrs[COLOR_global_compiler__GlobalCompiler___64dcollect_types_cache].val = var39; /* @collect_types_cache on <self:GlobalCompiler exact> */
 return self;
 }
-/* allocate GlobalCompiler */
-void CHECK_NEW_global_compiler__GlobalCompiler(val* self) {
-val* var /* : MModule */;
-val* var1 /* : MModule */;
-val* var2 /* : ModelBuilder */;
-val* var3 /* : CodeWriter */;
-val* var4 /* : RapidTypeAnalysis */;
-val* var5 /* : Array[MClassType] */;
-var = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dmainmodule].val; /* @mainmodule on <self:GlobalCompiler> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mainmodule", "src/abstract_compiler.nit", 259);
-exit(1);
-}
-var1 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64drealmainmodule].val; /* @realmainmodule on <self:GlobalCompiler> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @realmainmodule", "src/abstract_compiler.nit", 263);
-exit(1);
-}
-var2 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dmodelbuilder].val; /* @modelbuilder on <self:GlobalCompiler> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @modelbuilder", "src/abstract_compiler.nit", 266);
-exit(1);
-}
-var3 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dheader].val; /* @header on <self:GlobalCompiler> */
-if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @header", "src/abstract_compiler.nit", 295);
-exit(1);
-}
-var4 = self->attrs[COLOR_global_compiler__GlobalCompiler___64druntime_type_analysis].val; /* @runtime_type_analysis on <self:GlobalCompiler> */
-if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @runtime_type_analysis", "src/global_compiler.nit", 85);
-exit(1);
-}
-var5 = self->attrs[COLOR_global_compiler__GlobalCompiler___64dlive_primitive_types].val; /* @live_primitive_types on <self:GlobalCompiler> */
-if (var5 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @live_primitive_types", "src/global_compiler.nit", 135);
-exit(1);
-}
-}
 /* runtime class global_compiler__GlobalCompilerVisitor */
 const struct class class_global_compiler__GlobalCompilerVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to global_compiler:GlobalCompilerVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to global_compiler:GlobalCompilerVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to global_compiler:GlobalCompilerVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to global_compiler:GlobalCompilerVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to global_compiler:GlobalCompilerVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to global_compiler:GlobalCompilerVisitor:kernel#Object#output */
@@ -5561,16 +5624,17 @@ const struct class class_global_compiler__GlobalCompilerVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to global_compiler:GlobalCompilerVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to global_compiler:GlobalCompilerVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to global_compiler:GlobalCompilerVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to global_compiler:GlobalCompilerVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to global_compiler:GlobalCompilerVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to global_compiler:GlobalCompilerVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to global_compiler:GlobalCompilerVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to global_compiler:GlobalCompilerVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to global_compiler:GlobalCompilerVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to global_compiler:GlobalCompilerVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to global_compiler:GlobalCompilerVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to global_compiler:GlobalCompilerVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to global_compiler:GlobalCompilerVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to global_compiler:GlobalCompilerVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to global_compiler:GlobalCompilerVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to global_compiler:GlobalCompilerVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to global_compiler:GlobalCompilerVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to global_compiler:GlobalCompilerVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to global_compiler:GlobalCompilerVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to global_compiler:GlobalCompilerVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to global_compiler:GlobalCompilerVisitor:time#Object#get_time */
@@ -5593,6 +5657,14 @@ const struct class class_global_compiler__GlobalCompilerVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to global_compiler:GlobalCompilerVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to global_compiler:GlobalCompilerVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to global_compiler:GlobalCompilerVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to global_compiler:GlobalCompilerVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to global_compiler:GlobalCompilerVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to global_compiler:GlobalCompilerVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to global_compiler:GlobalCompilerVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to global_compiler:GlobalCompilerVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to global_compiler:GlobalCompilerVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to global_compiler:GlobalCompilerVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to global_compiler:GlobalCompilerVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__compiler, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#compiler */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__compiler_61d, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#compiler= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__current_node, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#current_node */
@@ -5622,11 +5694,11 @@ const struct class class_global_compiler__GlobalCompilerVisitor = {
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompilerVisitor__call, /* pointer to global_compiler:GlobalCompilerVisitor:global_compiler#GlobalCompilerVisitor#call */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompilerVisitor__send, /* pointer to global_compiler:GlobalCompilerVisitor:global_compiler#GlobalCompilerVisitor#send */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__monomorphic_send, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#monomorphic_send */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__monomorphic_super_send, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#monomorphic_super_send */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompilerVisitor__isset_attribute, /* pointer to global_compiler:GlobalCompilerVisitor:global_compiler#GlobalCompilerVisitor#isset_attribute */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompilerVisitor__read_attribute, /* pointer to global_compiler:GlobalCompilerVisitor:global_compiler#GlobalCompilerVisitor#read_attribute */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompilerVisitor__write_attribute, /* pointer to global_compiler:GlobalCompilerVisitor:global_compiler#GlobalCompilerVisitor#write_attribute */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#check_recv_notnull */
-(nitmethod_t)VIRTUAL_global_compiler__GlobalCompilerVisitor__check_init_instance, /* pointer to global_compiler:GlobalCompilerVisitor:global_compiler#GlobalCompilerVisitor#check_init_instance */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__names, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#names */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__names_61d, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#names= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__last, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#last */
@@ -5654,11 +5726,15 @@ const struct class class_global_compiler__GlobalCompilerVisitor = {
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_extern, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_extern */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__new_expr, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#new_expr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_abort, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_abort */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_raw_abort, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_raw_abort */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_cast, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_cast */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__ret, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#ret */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__stmt, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#stmt */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__expr, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#expr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__expr_bool, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#expr_bool */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__debug, /* pointer to global_compiler:GlobalCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#debug */
+(nitmethod_t)VIRTUAL_compiler_ffi__AbstractCompilerVisitor__var_from_c, /* pointer to global_compiler:GlobalCompilerVisitor:compiler_ffi#AbstractCompilerVisitor#var_from_c */
+(nitmethod_t)VIRTUAL_compiler_ffi__AbstractCompilerVisitor__ret_to_c, /* pointer to global_compiler:GlobalCompilerVisitor:compiler_ffi#AbstractCompilerVisitor#ret_to_c */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompilerVisitor__collect_types, /* pointer to global_compiler:GlobalCompilerVisitor:global_compiler#GlobalCompilerVisitor#collect_types */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompilerVisitor__check_valid_reciever, /* pointer to global_compiler:GlobalCompilerVisitor:global_compiler#GlobalCompilerVisitor#check_valid_reciever */
 (nitmethod_t)VIRTUAL_global_compiler__GlobalCompilerVisitor__get_recvtype, /* pointer to global_compiler:GlobalCompilerVisitor:global_compiler#GlobalCompilerVisitor#get_recvtype */
@@ -5683,43 +5759,24 @@ var = NULL;
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dcurrent_node].val = var; /* @current_node on <self:GlobalCompilerVisitor exact> */
 var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetstring__String);
 ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[String]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dnames].val = var1; /* @names on <self:GlobalCompilerVisitor exact> */
 var2 = 0;
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dlast].l = var2; /* @last on <self:GlobalCompilerVisitor exact> */
 var3 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapscope__EscapeMarkstring__String);
 ((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[EscapeMark, String]>*/;
-CHECK_NEW_hash_collection__HashMap(var3);
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64descapemark_names].val = var3; /* @escapemark_names on <self:GlobalCompilerVisitor exact> */
 var4 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable);
 ((void (*)(val*))(var4->class->vft[COLOR_hash_collection__HashMap__init]))(var4) /* init on <var4:HashMap[Variable, RuntimeVariable]>*/;
-CHECK_NEW_hash_collection__HashMap(var4);
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dvariables].val = var4; /* @variables on <self:GlobalCompilerVisitor exact> */
 return self;
 }
-/* allocate GlobalCompilerVisitor */
-void CHECK_NEW_global_compiler__GlobalCompilerVisitor(val* self) {
-val* var /* : AbstractCompiler */;
-val* var1 /* : nullable Frame */;
-val* var2 /* : CodeWriter */;
-var = self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dcompiler].val; /* @compiler on <self:GlobalCompilerVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @compiler", "src/abstract_compiler.nit", 533);
-exit(1);
-}
-var1 = self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dframe].val; /* @frame on <self:GlobalCompilerVisitor> */
-var2 = self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dwriter].val; /* @writer on <self:GlobalCompilerVisitor> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @writer", "src/abstract_compiler.nit", 548);
-exit(1);
-}
-}
 /* runtime class global_compiler__CustomizedRuntimeFunction */
 const struct class class_global_compiler__CustomizedRuntimeFunction = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to global_compiler:CustomizedRuntimeFunction:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to global_compiler:CustomizedRuntimeFunction:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to global_compiler:CustomizedRuntimeFunction:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_global_compiler__CustomizedRuntimeFunction___61d_61d, /* pointer to global_compiler:CustomizedRuntimeFunction:global_compiler#CustomizedRuntimeFunction#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to global_compiler:CustomizedRuntimeFunction:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to global_compiler:CustomizedRuntimeFunction:kernel#Object#output */
@@ -5727,16 +5784,17 @@ const struct class class_global_compiler__CustomizedRuntimeFunction = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to global_compiler:CustomizedRuntimeFunction:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to global_compiler:CustomizedRuntimeFunction:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_global_compiler__CustomizedRuntimeFunction__hash, /* pointer to global_compiler:CustomizedRuntimeFunction:global_compiler#CustomizedRuntimeFunction#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to global_compiler:CustomizedRuntimeFunction:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to global_compiler:CustomizedRuntimeFunction:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to global_compiler:CustomizedRuntimeFunction:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to global_compiler:CustomizedRuntimeFunction:math#Object#srand */
 (nitmethod_t)VIRTUAL_global_compiler__CustomizedRuntimeFunction__to_s, /* pointer to global_compiler:CustomizedRuntimeFunction:global_compiler#CustomizedRuntimeFunction#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to global_compiler:CustomizedRuntimeFunction:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to global_compiler:CustomizedRuntimeFunction:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to global_compiler:CustomizedRuntimeFunction:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to global_compiler:CustomizedRuntimeFunction:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to global_compiler:CustomizedRuntimeFunction:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to global_compiler:CustomizedRuntimeFunction:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to global_compiler:CustomizedRuntimeFunction:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to global_compiler:CustomizedRuntimeFunction:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to global_compiler:CustomizedRuntimeFunction:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to global_compiler:CustomizedRuntimeFunction:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to global_compiler:CustomizedRuntimeFunction:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to global_compiler:CustomizedRuntimeFunction:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to global_compiler:CustomizedRuntimeFunction:time#Object#get_time */
@@ -5759,6 +5817,14 @@ const struct class class_global_compiler__CustomizedRuntimeFunction = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to global_compiler:CustomizedRuntimeFunction:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to global_compiler:CustomizedRuntimeFunction:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to global_compiler:CustomizedRuntimeFunction:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to global_compiler:CustomizedRuntimeFunction:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to global_compiler:CustomizedRuntimeFunction:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to global_compiler:CustomizedRuntimeFunction:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to global_compiler:CustomizedRuntimeFunction:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to global_compiler:CustomizedRuntimeFunction:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to global_compiler:CustomizedRuntimeFunction:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to global_compiler:CustomizedRuntimeFunction:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to global_compiler:CustomizedRuntimeFunction:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef, /* pointer to global_compiler:CustomizedRuntimeFunction:abstract_compiler#AbstractRuntimeFunction#mmethoddef */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d, /* pointer to global_compiler:CustomizedRuntimeFunction:abstract_compiler#AbstractRuntimeFunction#mmethoddef= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractRuntimeFunction__c_name, /* pointer to global_compiler:CustomizedRuntimeFunction:abstract_compiler#AbstractRuntimeFunction#c_name */
@@ -5784,20 +5850,92 @@ var = NULL;
 self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dc_name_cache].val = var; /* @c_name_cache on <self:CustomizedRuntimeFunction exact> */
 return self;
 }
-/* allocate CustomizedRuntimeFunction */
-void CHECK_NEW_global_compiler__CustomizedRuntimeFunction(val* self) {
-val* var /* : MMethodDef */;
-val* var1 /* : MClassType */;
-var = self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef].val; /* @mmethoddef on <self:CustomizedRuntimeFunction> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmethoddef", "src/abstract_compiler.nit", 969);
-exit(1);
+/* runtime class abstract_compiler__Toolchain */
+/* allocate Toolchain */
+val* NEW_abstract_compiler__Toolchain(const struct type* type) {
+fprintf(stderr, "Runtime error: %s", "Toolchain is DEAD");
+fprintf(stderr, "\n");
+show_backtrace(1);
 }
-var1 = self->attrs[COLOR_global_compiler__CustomizedRuntimeFunction___64drecv].val; /* @recv on <self:CustomizedRuntimeFunction> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @recv", "src/global_compiler.nit", 869);
-exit(1);
+/* runtime class abstract_compiler__MakefileToolchain */
+const struct class class_abstract_compiler__MakefileToolchain = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to abstract_compiler:MakefileToolchain:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to abstract_compiler:MakefileToolchain:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to abstract_compiler:MakefileToolchain:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to abstract_compiler:MakefileToolchain:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to abstract_compiler:MakefileToolchain:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to abstract_compiler:MakefileToolchain:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to abstract_compiler:MakefileToolchain:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to abstract_compiler:MakefileToolchain:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to abstract_compiler:MakefileToolchain:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to abstract_compiler:MakefileToolchain:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to abstract_compiler:MakefileToolchain:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to abstract_compiler:MakefileToolchain:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to abstract_compiler:MakefileToolchain:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to abstract_compiler:MakefileToolchain:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to abstract_compiler:MakefileToolchain:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to abstract_compiler:MakefileToolchain:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to abstract_compiler:MakefileToolchain:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to abstract_compiler:MakefileToolchain:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to abstract_compiler:MakefileToolchain:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to abstract_compiler:MakefileToolchain:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to abstract_compiler:MakefileToolchain:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to abstract_compiler:MakefileToolchain:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to abstract_compiler:MakefileToolchain:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to abstract_compiler:MakefileToolchain:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to abstract_compiler:MakefileToolchain:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to abstract_compiler:MakefileToolchain:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to abstract_compiler:MakefileToolchain:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to abstract_compiler:MakefileToolchain:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to abstract_compiler:MakefileToolchain:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to abstract_compiler:MakefileToolchain:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to abstract_compiler:MakefileToolchain:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to abstract_compiler:MakefileToolchain:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to abstract_compiler:MakefileToolchain:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to abstract_compiler:MakefileToolchain:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to abstract_compiler:MakefileToolchain:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to abstract_compiler:MakefileToolchain:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to abstract_compiler:MakefileToolchain:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to abstract_compiler:MakefileToolchain:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to abstract_compiler:MakefileToolchain:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to abstract_compiler:MakefileToolchain:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to abstract_compiler:MakefileToolchain:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to abstract_compiler:MakefileToolchain:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_abstract_compiler__Toolchain__toolcontext, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#Toolchain#toolcontext */
+(nitmethod_t)VIRTUAL_abstract_compiler__Toolchain__toolcontext_61d, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#Toolchain#toolcontext= */
+(nitmethod_t)VIRTUAL_abstract_compiler__Toolchain__compile_dir, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#Toolchain#compile_dir */
+(nitmethod_t)VIRTUAL_abstract_compiler__MakefileToolchain__write_and_make, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#MakefileToolchain#write_and_make */
+(nitmethod_t)VIRTUAL_abstract_compiler__Toolchain__init, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#Toolchain#init */
+(nitmethod_t)VIRTUAL_abstract_compiler__MakefileToolchain__cc_paths, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#MakefileToolchain#cc_paths */
+(nitmethod_t)VIRTUAL_abstract_compiler__MakefileToolchain__cc_paths_61d, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#MakefileToolchain#cc_paths= */
+(nitmethod_t)VIRTUAL_abstract_compiler__MakefileToolchain__gather_cc_paths, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#MakefileToolchain#gather_cc_paths */
+(nitmethod_t)VIRTUAL_abstract_compiler__MakefileToolchain__write_files, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#MakefileToolchain#write_files */
+(nitmethod_t)VIRTUAL_abstract_compiler__MakefileToolchain__write_makefile, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#MakefileToolchain#write_makefile */
+(nitmethod_t)VIRTUAL_abstract_compiler__MakefileToolchain__compile_c_code, /* pointer to abstract_compiler:MakefileToolchain:abstract_compiler#MakefileToolchain#compile_c_code */
 }
+};
+/* allocate MakefileToolchain */
+val* NEW_abstract_compiler__MakefileToolchain(const struct type* type) {
+val* self /* : MakefileToolchain */;
+val* var /* : Array[String] */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_abstract_compiler__MakefileToolchain;
+var = NEW_array__Array(&type_array__Arraystring__String);
+((void (*)(val*))(var->class->vft[COLOR_array__Array__init]))(var) /* init on <var:Array[String]>*/;
+self->attrs[COLOR_abstract_compiler__MakefileToolchain___64dcc_paths].val = var; /* @cc_paths on <self:MakefileToolchain exact> */
+return self;
 }
 /* runtime class abstract_compiler__CodeFile */
 const struct class class_abstract_compiler__CodeFile = {
@@ -5805,6 +5943,7 @@ const struct class class_abstract_compiler__CodeFile = {
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to abstract_compiler:CodeFile:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to abstract_compiler:CodeFile:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to abstract_compiler:CodeFile:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to abstract_compiler:CodeFile:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to abstract_compiler:CodeFile:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to abstract_compiler:CodeFile:kernel#Object#output */
@@ -5812,16 +5951,17 @@ const struct class class_abstract_compiler__CodeFile = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to abstract_compiler:CodeFile:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to abstract_compiler:CodeFile:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to abstract_compiler:CodeFile:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to abstract_compiler:CodeFile:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to abstract_compiler:CodeFile:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to abstract_compiler:CodeFile:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to abstract_compiler:CodeFile:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to abstract_compiler:CodeFile:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to abstract_compiler:CodeFile:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to abstract_compiler:CodeFile:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to abstract_compiler:CodeFile:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to abstract_compiler:CodeFile:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to abstract_compiler:CodeFile:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to abstract_compiler:CodeFile:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to abstract_compiler:CodeFile:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to abstract_compiler:CodeFile:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to abstract_compiler:CodeFile:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to abstract_compiler:CodeFile:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to abstract_compiler:CodeFile:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to abstract_compiler:CodeFile:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to abstract_compiler:CodeFile:time#Object#get_time */
@@ -5844,6 +5984,14 @@ const struct class class_abstract_compiler__CodeFile = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to abstract_compiler:CodeFile:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to abstract_compiler:CodeFile:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to abstract_compiler:CodeFile:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to abstract_compiler:CodeFile:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to abstract_compiler:CodeFile:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to abstract_compiler:CodeFile:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to abstract_compiler:CodeFile:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to abstract_compiler:CodeFile:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to abstract_compiler:CodeFile:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to abstract_compiler:CodeFile:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to abstract_compiler:CodeFile:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__CodeFile__name, /* pointer to abstract_compiler:CodeFile:abstract_compiler#CodeFile#name */
 (nitmethod_t)VIRTUAL_abstract_compiler__CodeFile__name_61d, /* pointer to abstract_compiler:CodeFile:abstract_compiler#CodeFile#name= */
 (nitmethod_t)VIRTUAL_abstract_compiler__CodeFile__writers, /* pointer to abstract_compiler:CodeFile:abstract_compiler#CodeFile#writers */
@@ -5863,29 +6011,19 @@ self->type = type;
 self->class = &class_abstract_compiler__CodeFile;
 var = NEW_array__Array(&type_array__Arrayabstract_compiler__CodeWriter);
 ((void (*)(val*))(var->class->vft[COLOR_array__Array__init]))(var) /* init on <var:Array[CodeWriter]>*/;
-CHECK_NEW_array__Array(var);
 self->attrs[COLOR_abstract_compiler__CodeFile___64dwriters].val = var; /* @writers on <self:CodeFile exact> */
 var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetstring__String);
 ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[String]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
 self->attrs[COLOR_abstract_compiler__CodeFile___64drequired_declarations].val = var1; /* @required_declarations on <self:CodeFile exact> */
 return self;
 }
-/* allocate CodeFile */
-void CHECK_NEW_abstract_compiler__CodeFile(val* self) {
-val* var /* : String */;
-var = self->attrs[COLOR_abstract_compiler__CodeFile___64dname].val; /* @name on <self:CodeFile> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/abstract_compiler.nit", 503);
-exit(1);
-}
-}
 /* runtime class abstract_compiler__CodeWriter */
 const struct class class_abstract_compiler__CodeWriter = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to abstract_compiler:CodeWriter:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to abstract_compiler:CodeWriter:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to abstract_compiler:CodeWriter:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to abstract_compiler:CodeWriter:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to abstract_compiler:CodeWriter:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to abstract_compiler:CodeWriter:kernel#Object#output */
@@ -5893,16 +6031,17 @@ const struct class class_abstract_compiler__CodeWriter = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to abstract_compiler:CodeWriter:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to abstract_compiler:CodeWriter:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to abstract_compiler:CodeWriter:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to abstract_compiler:CodeWriter:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to abstract_compiler:CodeWriter:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to abstract_compiler:CodeWriter:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to abstract_compiler:CodeWriter:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to abstract_compiler:CodeWriter:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to abstract_compiler:CodeWriter:string#Object#args */
 (nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to abstract_compiler:CodeWriter:math#Object#atan2 */
 (nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to abstract_compiler:CodeWriter:math#Object#pi */
 (nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to abstract_compiler:CodeWriter:math#Object#srand_from */
 (nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to abstract_compiler:CodeWriter:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to abstract_compiler:CodeWriter:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to abstract_compiler:CodeWriter:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to abstract_compiler:CodeWriter:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to abstract_compiler:CodeWriter:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to abstract_compiler:CodeWriter:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to abstract_compiler:CodeWriter:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to abstract_compiler:CodeWriter:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to abstract_compiler:CodeWriter:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to abstract_compiler:CodeWriter:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to abstract_compiler:CodeWriter:time#Object#get_time */
@@ -5925,6 +6064,14 @@ const struct class class_abstract_compiler__CodeWriter = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to abstract_compiler:CodeWriter:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to abstract_compiler:CodeWriter:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to abstract_compiler:CodeWriter:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to abstract_compiler:CodeWriter:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to abstract_compiler:CodeWriter:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to abstract_compiler:CodeWriter:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to abstract_compiler:CodeWriter:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to abstract_compiler:CodeWriter:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to abstract_compiler:CodeWriter:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to abstract_compiler:CodeWriter:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to abstract_compiler:CodeWriter:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__CodeWriter__file, /* pointer to abstract_compiler:CodeWriter:abstract_compiler#CodeWriter#file */
 (nitmethod_t)VIRTUAL_abstract_compiler__CodeWriter__file_61d, /* pointer to abstract_compiler:CodeWriter:abstract_compiler#CodeWriter#file= */
 (nitmethod_t)VIRTUAL_abstract_compiler__CodeWriter__lines, /* pointer to abstract_compiler:CodeWriter:abstract_compiler#CodeWriter#lines */
@@ -5946,29 +6093,19 @@ self->type = type;
 self->class = &class_abstract_compiler__CodeWriter;
 var = NEW_list__List(&type_list__Liststring__String);
 ((void (*)(val*))(var->class->vft[COLOR_list__List__init]))(var) /* init on <var:List[String]>*/;
-CHECK_NEW_list__List(var);
 self->attrs[COLOR_abstract_compiler__CodeWriter___64dlines].val = var; /* @lines on <self:CodeWriter exact> */
 var1 = NEW_list__List(&type_list__Liststring__String);
 ((void (*)(val*))(var1->class->vft[COLOR_list__List__init]))(var1) /* init on <var1:List[String]>*/;
-CHECK_NEW_list__List(var1);
 self->attrs[COLOR_abstract_compiler__CodeWriter___64ddecl_lines].val = var1; /* @decl_lines on <self:CodeWriter exact> */
 return self;
 }
-/* allocate CodeWriter */
-void CHECK_NEW_abstract_compiler__CodeWriter(val* self) {
-val* var /* : CodeFile */;
-var = self->attrs[COLOR_abstract_compiler__CodeWriter___64dfile].val; /* @file on <self:CodeWriter> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @file", "src/abstract_compiler.nit", 510);
-exit(1);
-}
-}
 /* runtime class abstract_compiler__RuntimeVariable */
 const struct class class_abstract_compiler__RuntimeVariable = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to abstract_compiler:RuntimeVariable:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to abstract_compiler:RuntimeVariable:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to abstract_compiler:RuntimeVariable:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to abstract_compiler:RuntimeVariable:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to abstract_compiler:RuntimeVariable:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to abstract_compiler:RuntimeVariable:kernel#Object#output */
@@ -5976,16 +6113,17 @@ const struct class class_abstract_compiler__RuntimeVariable = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to abstract_compiler:RuntimeVariable:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to abstract_compiler:RuntimeVariable:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to abstract_compiler:RuntimeVariable:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to abstract_compiler:RuntimeVariable:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to abstract_compiler:RuntimeVariable:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to abstract_compiler:RuntimeVariable:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to abstract_compiler:RuntimeVariable:math#Object#srand */
 (nitmethod_t)VIRTUAL_abstract_compiler__RuntimeVariable__to_s, /* pointer to abstract_compiler:RuntimeVariable:abstract_compiler#RuntimeVariable#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to abstract_compiler:RuntimeVariable:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to abstract_compiler:RuntimeVariable:string#Object#class_name */
 (nitmethod_t)VIRTUAL_abstract_compiler__RuntimeVariable__inspect, /* pointer to abstract_compiler:RuntimeVariable:abstract_compiler#RuntimeVariable#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to abstract_compiler:RuntimeVariable:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to abstract_compiler:RuntimeVariable:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to abstract_compiler:RuntimeVariable:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to abstract_compiler:RuntimeVariable:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to abstract_compiler:RuntimeVariable:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to abstract_compiler:RuntimeVariable:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to abstract_compiler:RuntimeVariable:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to abstract_compiler:RuntimeVariable:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to abstract_compiler:RuntimeVariable:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to abstract_compiler:RuntimeVariable:time#Object#get_time */
@@ -6008,6 +6146,14 @@ const struct class class_abstract_compiler__RuntimeVariable = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to abstract_compiler:RuntimeVariable:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to abstract_compiler:RuntimeVariable:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to abstract_compiler:RuntimeVariable:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to abstract_compiler:RuntimeVariable:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to abstract_compiler:RuntimeVariable:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to abstract_compiler:RuntimeVariable:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to abstract_compiler:RuntimeVariable:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to abstract_compiler:RuntimeVariable:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to abstract_compiler:RuntimeVariable:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to abstract_compiler:RuntimeVariable:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to abstract_compiler:RuntimeVariable:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__RuntimeVariable__name, /* pointer to abstract_compiler:RuntimeVariable:abstract_compiler#RuntimeVariable#name */
 (nitmethod_t)VIRTUAL_abstract_compiler__RuntimeVariable__name_61d, /* pointer to abstract_compiler:RuntimeVariable:abstract_compiler#RuntimeVariable#name= */
 (nitmethod_t)VIRTUAL_abstract_compiler__RuntimeVariable__mtype, /* pointer to abstract_compiler:RuntimeVariable:abstract_compiler#RuntimeVariable#mtype */
@@ -6030,33 +6176,13 @@ var = 0;
 self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dis_exact].s = var; /* @is_exact on <self:RuntimeVariable exact> */
 return self;
 }
-/* allocate RuntimeVariable */
-void CHECK_NEW_abstract_compiler__RuntimeVariable(val* self) {
-val* var /* : String */;
-val* var1 /* : MType */;
-val* var2 /* : MType */;
-var = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dname].val; /* @name on <self:RuntimeVariable> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/abstract_compiler.nit", 1002);
-exit(1);
-}
-var1 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmtype].val; /* @mtype on <self:RuntimeVariable> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mtype", "src/abstract_compiler.nit", 1005);
-exit(1);
-}
-var2 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmcasttype].val; /* @mcasttype on <self:RuntimeVariable> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mcasttype", "src/abstract_compiler.nit", 1008);
-exit(1);
-}
-}
 /* runtime class abstract_compiler__Frame */
 const struct class class_abstract_compiler__Frame = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to abstract_compiler:Frame:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to abstract_compiler:Frame:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to abstract_compiler:Frame:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to abstract_compiler:Frame:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to abstract_compiler:Frame:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to abstract_compiler:Frame:kernel#Object#output */
@@ -6064,16 +6190,17 @@ const struct class class_abstract_compiler__Frame = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to abstract_compiler:Frame:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to abstract_compiler:Frame:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to abstract_compiler:Frame:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to abstract_compiler:Frame:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to abstract_compiler:Frame:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to abstract_compiler:Frame:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to abstract_compiler:Frame:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to abstract_compiler:Frame:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to abstract_compiler:Frame:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to abstract_compiler:Frame:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to abstract_compiler:Frame:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to abstract_compiler:Frame:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to abstract_compiler:Frame:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to abstract_compiler:Frame:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to abstract_compiler:Frame:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to abstract_compiler:Frame:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to abstract_compiler:Frame:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to abstract_compiler:Frame:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to abstract_compiler:Frame:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to abstract_compiler:Frame:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to abstract_compiler:Frame:time#Object#get_time */
@@ -6096,6 +6223,14 @@ const struct class class_abstract_compiler__Frame = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to abstract_compiler:Frame:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to abstract_compiler:Frame:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to abstract_compiler:Frame:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to abstract_compiler:Frame:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to abstract_compiler:Frame:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to abstract_compiler:Frame:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to abstract_compiler:Frame:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to abstract_compiler:Frame:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to abstract_compiler:Frame:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to abstract_compiler:Frame:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to abstract_compiler:Frame:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__Frame__visitor, /* pointer to abstract_compiler:Frame:abstract_compiler#Frame#visitor */
 (nitmethod_t)VIRTUAL_abstract_compiler__Frame__visitor_61d, /* pointer to abstract_compiler:Frame:abstract_compiler#Frame#visitor= */
 (nitmethod_t)VIRTUAL_abstract_compiler__Frame__mpropdef, /* pointer to abstract_compiler:Frame:abstract_compiler#Frame#mpropdef */
@@ -6125,107 +6260,2615 @@ var1 = NULL;
 self->attrs[COLOR_abstract_compiler__Frame___64dreturnlabel].val = var1; /* @returnlabel on <self:Frame exact> */
 return self;
 }
-/* allocate Frame */
-void CHECK_NEW_abstract_compiler__Frame(val* self) {
-val* var /* : AbstractCompilerVisitor */;
-val* var1 /* : MPropDef */;
-val* var2 /* : MClassType */;
-val* var3 /* : Array[RuntimeVariable] */;
-var = self->attrs[COLOR_abstract_compiler__Frame___64dvisitor].val; /* @visitor on <self:Frame> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @visitor", "src/abstract_compiler.nit", 1049);
-exit(1);
-}
-var1 = self->attrs[COLOR_abstract_compiler__Frame___64dmpropdef].val; /* @mpropdef on <self:Frame> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/abstract_compiler.nit", 1052);
-exit(1);
-}
-var2 = self->attrs[COLOR_abstract_compiler__Frame___64dreceiver].val; /* @receiver on <self:Frame> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @receiver", "src/abstract_compiler.nit", 1056);
-exit(1);
-}
-var3 = self->attrs[COLOR_abstract_compiler__Frame___64darguments].val; /* @arguments on <self:Frame> */
-if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @arguments", "src/abstract_compiler.nit", 1059);
-exit(1);
-}
-}
-/* runtime class abstract_compiler__ExternCFile */
-const struct class class_abstract_compiler__ExternCFile = {
+/* runtime class nitni_callbacks__VerifyNitniCallbacksPhase */
+const struct class class_nitni_callbacks__VerifyNitniCallbacksPhase = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:phase#Phase#toolcontext */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:phase#Phase#toolcontext= */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:phase#Phase#in_hierarchy */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy_61d, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:phase#Phase#in_hierarchy= */
+(nitmethod_t)VIRTUAL_phase__Phase__init, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:phase#Phase#init */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nmodule, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:phase#Phase#process_nmodule */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:phase#Phase#process_nclassdef */
+(nitmethod_t)VIRTUAL_common_ffi__VerifyNitniCallbacksPhase__process_npropdef, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:common_ffi#VerifyNitniCallbacksPhase#process_npropdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:phase#Phase#process_annotated_node */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:modelbuilder#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_nitni_callbacks__VerifyNitniCallbacksPhase__process_npropdef, /* pointer to nitni_callbacks:VerifyNitniCallbacksPhase:nitni_callbacks#VerifyNitniCallbacksPhase#process_npropdef */
+}
+};
+/* allocate VerifyNitniCallbacksPhase */
+val* NEW_nitni_callbacks__VerifyNitniCallbacksPhase(const struct type* type) {
+val* self /* : VerifyNitniCallbacksPhase */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_nitni_callbacks__VerifyNitniCallbacksPhase;
+return self;
+}
+/* runtime class nitni_callbacks__ForeignCallbackSet */
+const struct class class_nitni_callbacks__ForeignCallbackSet = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to nitni_callbacks:ForeignCallbackSet:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to nitni_callbacks:ForeignCallbackSet:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to nitni_callbacks:ForeignCallbackSet:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to nitni_callbacks:ForeignCallbackSet:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to nitni_callbacks:ForeignCallbackSet:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to nitni_callbacks:ForeignCallbackSet:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to nitni_callbacks:ForeignCallbackSet:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to nitni_callbacks:ForeignCallbackSet:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to nitni_callbacks:ForeignCallbackSet:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to nitni_callbacks:ForeignCallbackSet:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to nitni_callbacks:ForeignCallbackSet:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to nitni_callbacks:ForeignCallbackSet:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to nitni_callbacks:ForeignCallbackSet:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to nitni_callbacks:ForeignCallbackSet:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to nitni_callbacks:ForeignCallbackSet:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to nitni_callbacks:ForeignCallbackSet:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to nitni_callbacks:ForeignCallbackSet:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to nitni_callbacks:ForeignCallbackSet:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to nitni_callbacks:ForeignCallbackSet:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to nitni_callbacks:ForeignCallbackSet:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to nitni_callbacks:ForeignCallbackSet:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to nitni_callbacks:ForeignCallbackSet:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to nitni_callbacks:ForeignCallbackSet:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to nitni_callbacks:ForeignCallbackSet:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to nitni_callbacks:ForeignCallbackSet:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to nitni_callbacks:ForeignCallbackSet:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to nitni_callbacks:ForeignCallbackSet:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to nitni_callbacks:ForeignCallbackSet:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to nitni_callbacks:ForeignCallbackSet:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to nitni_callbacks:ForeignCallbackSet:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to nitni_callbacks:ForeignCallbackSet:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to nitni_callbacks:ForeignCallbackSet:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to nitni_callbacks:ForeignCallbackSet:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to nitni_callbacks:ForeignCallbackSet:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to nitni_callbacks:ForeignCallbackSet:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to nitni_callbacks:ForeignCallbackSet:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to nitni_callbacks:ForeignCallbackSet:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to nitni_callbacks:ForeignCallbackSet:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to nitni_callbacks:ForeignCallbackSet:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__callbacks, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#callbacks */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__callbacks_61d, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#callbacks= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__supers, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#supers */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__supers_61d, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#supers= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__types, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#types */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__types_61d, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#types= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__casts, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#casts */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__casts_61d, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#casts= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__all_cached, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#all_cached */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__all_cached_61d, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#all_cached= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__all, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#all */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__join, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#join */
+(nitmethod_t)VIRTUAL_nitni_callbacks__ForeignCallbackSet__init, /* pointer to nitni_callbacks:ForeignCallbackSet:nitni_callbacks#ForeignCallbackSet#init */
+}
+};
+/* allocate ForeignCallbackSet */
+val* NEW_nitni_callbacks__ForeignCallbackSet(const struct type* type) {
+val* self /* : ForeignCallbackSet */;
+val* var /* : HashSet[MExplicitCall] */;
+val* var1 /* : HashSet[MExplicitSuper] */;
+val* var2 /* : HashSet[MType] */;
+val* var3 /* : HashSet[MExplicitCast] */;
+val* var4 /* : null */;
+self = nit_alloc(sizeof(struct instance) + 5*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_nitni_callbacks__ForeignCallbackSet;
+var = NEW_hash_collection__HashSet(&type_hash_collection__HashSetnitni_callbacks__MExplicitCall);
+((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashSet__init]))(var) /* init on <var:HashSet[MExplicitCall]>*/;
+self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dcallbacks].val = var; /* @callbacks on <self:ForeignCallbackSet exact> */
+var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetnitni_callbacks__MExplicitSuper);
+((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[MExplicitSuper]>*/;
+self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dsupers].val = var1; /* @supers on <self:ForeignCallbackSet exact> */
+var2 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType);
+((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashSet__init]))(var2) /* init on <var2:HashSet[MType]>*/;
+self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dtypes].val = var2; /* @types on <self:ForeignCallbackSet exact> */
+var3 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetnitni_callbacks__MExplicitCast);
+((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashSet__init]))(var3) /* init on <var3:HashSet[MExplicitCast]>*/;
+self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dcasts].val = var3; /* @casts on <self:ForeignCallbackSet exact> */
+var4 = NULL;
+self->attrs[COLOR_nitni_callbacks__ForeignCallbackSet___64dall_cached].val = var4; /* @all_cached on <self:ForeignCallbackSet exact> */
+return self;
+}
+/* runtime class nitni_callbacks__MExplicitCall */
+const struct class class_nitni_callbacks__MExplicitCall = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to nitni_callbacks:MExplicitCall:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to nitni_callbacks:MExplicitCall:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to nitni_callbacks:MExplicitCall:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall___61d_61d, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to nitni_callbacks:MExplicitCall:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to nitni_callbacks:MExplicitCall:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to nitni_callbacks:MExplicitCall:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to nitni_callbacks:MExplicitCall:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to nitni_callbacks:MExplicitCall:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__hash, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to nitni_callbacks:MExplicitCall:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to nitni_callbacks:MExplicitCall:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to nitni_callbacks:MExplicitCall:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to nitni_callbacks:MExplicitCall:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to nitni_callbacks:MExplicitCall:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to nitni_callbacks:MExplicitCall:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to nitni_callbacks:MExplicitCall:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to nitni_callbacks:MExplicitCall:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to nitni_callbacks:MExplicitCall:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to nitni_callbacks:MExplicitCall:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to nitni_callbacks:MExplicitCall:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to nitni_callbacks:MExplicitCall:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to nitni_callbacks:MExplicitCall:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to nitni_callbacks:MExplicitCall:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to nitni_callbacks:MExplicitCall:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to nitni_callbacks:MExplicitCall:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to nitni_callbacks:MExplicitCall:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to nitni_callbacks:MExplicitCall:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to nitni_callbacks:MExplicitCall:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to nitni_callbacks:MExplicitCall:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to nitni_callbacks:MExplicitCall:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to nitni_callbacks:MExplicitCall:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to nitni_callbacks:MExplicitCall:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to nitni_callbacks:MExplicitCall:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to nitni_callbacks:MExplicitCall:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to nitni_callbacks:MExplicitCall:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to nitni_callbacks:MExplicitCall:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to nitni_callbacks:MExplicitCall:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to nitni_callbacks:MExplicitCall:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to nitni_callbacks:MExplicitCall:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to nitni_callbacks:MExplicitCall:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to nitni_callbacks:MExplicitCall:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to nitni_callbacks:MExplicitCall:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to nitni_callbacks:MExplicitCall:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to nitni_callbacks:MExplicitCall:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to nitni_callbacks:MExplicitCall:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to nitni_callbacks:MExplicitCall:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to nitni_callbacks:MExplicitCall:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to nitni_callbacks:MExplicitCall:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to nitni_callbacks:MExplicitCall:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to nitni_callbacks:MExplicitCall:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c__MExplicitCall__compile_callback_to_c, /* pointer to nitni_callbacks:MExplicitCall:c#MExplicitCall#compile_callback_to_c */
+(nitmethod_t)VIRTUAL_cpp__MExplicitCall__compile_callback_to_cpp, /* pointer to nitni_callbacks:MExplicitCall:cpp#MExplicitCall#compile_callback_to_cpp */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__recv_mtype, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#recv_mtype */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__recv_mtype_61d, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#recv_mtype= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__mproperty, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#mproperty */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__mproperty_61d, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#mproperty= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__from_mmodule, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#from_mmodule */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__from_mmodule_61d, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#from_mmodule= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__fill_type_for, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#fill_type_for */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__csignature, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#csignature */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCall__init, /* pointer to nitni_callbacks:MExplicitCall:nitni_callbacks#MExplicitCall#init */
+(nitmethod_t)VIRTUAL_compiler_ffi__MExplicitCall__compile_extern_callback, /* pointer to nitni_callbacks:MExplicitCall:compiler_ffi#MExplicitCall#compile_extern_callback */
+}
+};
+/* allocate MExplicitCall */
+val* NEW_nitni_callbacks__MExplicitCall(const struct type* type) {
+val* self /* : MExplicitCall */;
+self = nit_alloc(sizeof(struct instance) + 3*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_nitni_callbacks__MExplicitCall;
+return self;
+}
+/* runtime class nitni_callbacks__MExplicitSuper */
+const struct class class_nitni_callbacks__MExplicitSuper = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to nitni_callbacks:MExplicitSuper:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to nitni_callbacks:MExplicitSuper:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to nitni_callbacks:MExplicitSuper:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitSuper___61d_61d, /* pointer to nitni_callbacks:MExplicitSuper:nitni_callbacks#MExplicitSuper#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to nitni_callbacks:MExplicitSuper:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to nitni_callbacks:MExplicitSuper:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to nitni_callbacks:MExplicitSuper:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to nitni_callbacks:MExplicitSuper:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to nitni_callbacks:MExplicitSuper:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitSuper__hash, /* pointer to nitni_callbacks:MExplicitSuper:nitni_callbacks#MExplicitSuper#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to nitni_callbacks:MExplicitSuper:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to nitni_callbacks:MExplicitSuper:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to nitni_callbacks:MExplicitSuper:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to nitni_callbacks:MExplicitSuper:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to nitni_callbacks:MExplicitSuper:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to nitni_callbacks:MExplicitSuper:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to nitni_callbacks:MExplicitSuper:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to nitni_callbacks:MExplicitSuper:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to nitni_callbacks:MExplicitSuper:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to nitni_callbacks:MExplicitSuper:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to nitni_callbacks:MExplicitSuper:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to nitni_callbacks:MExplicitSuper:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to nitni_callbacks:MExplicitSuper:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to nitni_callbacks:MExplicitSuper:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to nitni_callbacks:MExplicitSuper:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to nitni_callbacks:MExplicitSuper:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to nitni_callbacks:MExplicitSuper:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to nitni_callbacks:MExplicitSuper:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to nitni_callbacks:MExplicitSuper:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to nitni_callbacks:MExplicitSuper:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to nitni_callbacks:MExplicitSuper:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to nitni_callbacks:MExplicitSuper:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to nitni_callbacks:MExplicitSuper:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to nitni_callbacks:MExplicitSuper:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to nitni_callbacks:MExplicitSuper:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to nitni_callbacks:MExplicitSuper:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to nitni_callbacks:MExplicitSuper:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to nitni_callbacks:MExplicitSuper:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to nitni_callbacks:MExplicitSuper:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to nitni_callbacks:MExplicitSuper:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to nitni_callbacks:MExplicitSuper:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to nitni_callbacks:MExplicitSuper:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to nitni_callbacks:MExplicitSuper:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to nitni_callbacks:MExplicitSuper:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to nitni_callbacks:MExplicitSuper:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to nitni_callbacks:MExplicitSuper:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to nitni_callbacks:MExplicitSuper:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to nitni_callbacks:MExplicitSuper:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to nitni_callbacks:MExplicitSuper:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to nitni_callbacks:MExplicitSuper:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to nitni_callbacks:MExplicitSuper:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c__NitniCallback__compile_callback_to_c, /* pointer to nitni_callbacks:MExplicitSuper:c#NitniCallback#compile_callback_to_c */
+(nitmethod_t)VIRTUAL_cpp__NitniCallback__compile_callback_to_cpp, /* pointer to nitni_callbacks:MExplicitSuper:cpp#NitniCallback#compile_callback_to_cpp */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitSuper__from, /* pointer to nitni_callbacks:MExplicitSuper:nitni_callbacks#MExplicitSuper#from */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitSuper__from_61d, /* pointer to nitni_callbacks:MExplicitSuper:nitni_callbacks#MExplicitSuper#from= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitSuper__init, /* pointer to nitni_callbacks:MExplicitSuper:nitni_callbacks#MExplicitSuper#init */
+(nitmethod_t)VIRTUAL_compiler_ffi__MExplicitSuper__compile_extern_callback, /* pointer to nitni_callbacks:MExplicitSuper:compiler_ffi#MExplicitSuper#compile_extern_callback */
+}
+};
+/* allocate MExplicitSuper */
+val* NEW_nitni_callbacks__MExplicitSuper(const struct type* type) {
+val* self /* : MExplicitSuper */;
+self = nit_alloc(sizeof(struct instance) + 1*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_nitni_callbacks__MExplicitSuper;
+return self;
+}
+/* runtime class nitni_callbacks__MExplicitCast */
+const struct class class_nitni_callbacks__MExplicitCast = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to nitni_callbacks:MExplicitCast:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to nitni_callbacks:MExplicitCast:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to nitni_callbacks:MExplicitCast:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCast___61d_61d, /* pointer to nitni_callbacks:MExplicitCast:nitni_callbacks#MExplicitCast#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to nitni_callbacks:MExplicitCast:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to nitni_callbacks:MExplicitCast:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to nitni_callbacks:MExplicitCast:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to nitni_callbacks:MExplicitCast:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to nitni_callbacks:MExplicitCast:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCast__hash, /* pointer to nitni_callbacks:MExplicitCast:nitni_callbacks#MExplicitCast#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to nitni_callbacks:MExplicitCast:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to nitni_callbacks:MExplicitCast:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to nitni_callbacks:MExplicitCast:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to nitni_callbacks:MExplicitCast:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to nitni_callbacks:MExplicitCast:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to nitni_callbacks:MExplicitCast:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to nitni_callbacks:MExplicitCast:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to nitni_callbacks:MExplicitCast:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to nitni_callbacks:MExplicitCast:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to nitni_callbacks:MExplicitCast:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to nitni_callbacks:MExplicitCast:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to nitni_callbacks:MExplicitCast:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to nitni_callbacks:MExplicitCast:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to nitni_callbacks:MExplicitCast:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to nitni_callbacks:MExplicitCast:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to nitni_callbacks:MExplicitCast:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to nitni_callbacks:MExplicitCast:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to nitni_callbacks:MExplicitCast:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to nitni_callbacks:MExplicitCast:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to nitni_callbacks:MExplicitCast:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to nitni_callbacks:MExplicitCast:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to nitni_callbacks:MExplicitCast:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to nitni_callbacks:MExplicitCast:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to nitni_callbacks:MExplicitCast:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to nitni_callbacks:MExplicitCast:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to nitni_callbacks:MExplicitCast:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to nitni_callbacks:MExplicitCast:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to nitni_callbacks:MExplicitCast:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to nitni_callbacks:MExplicitCast:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to nitni_callbacks:MExplicitCast:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to nitni_callbacks:MExplicitCast:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to nitni_callbacks:MExplicitCast:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to nitni_callbacks:MExplicitCast:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to nitni_callbacks:MExplicitCast:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to nitni_callbacks:MExplicitCast:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to nitni_callbacks:MExplicitCast:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to nitni_callbacks:MExplicitCast:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to nitni_callbacks:MExplicitCast:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to nitni_callbacks:MExplicitCast:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to nitni_callbacks:MExplicitCast:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to nitni_callbacks:MExplicitCast:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c__NitniCallback__compile_callback_to_c, /* pointer to nitni_callbacks:MExplicitCast:c#NitniCallback#compile_callback_to_c */
+(nitmethod_t)VIRTUAL_cpp__NitniCallback__compile_callback_to_cpp, /* pointer to nitni_callbacks:MExplicitCast:cpp#NitniCallback#compile_callback_to_cpp */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCast__from, /* pointer to nitni_callbacks:MExplicitCast:nitni_callbacks#MExplicitCast#from */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCast__from_61d, /* pointer to nitni_callbacks:MExplicitCast:nitni_callbacks#MExplicitCast#from= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCast__to, /* pointer to nitni_callbacks:MExplicitCast:nitni_callbacks#MExplicitCast#to */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCast__to_61d, /* pointer to nitni_callbacks:MExplicitCast:nitni_callbacks#MExplicitCast#to= */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCast__check_cname, /* pointer to nitni_callbacks:MExplicitCast:nitni_callbacks#MExplicitCast#check_cname */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCast__cast_cname, /* pointer to nitni_callbacks:MExplicitCast:nitni_callbacks#MExplicitCast#cast_cname */
+(nitmethod_t)VIRTUAL_nitni_callbacks__MExplicitCast__init, /* pointer to nitni_callbacks:MExplicitCast:nitni_callbacks#MExplicitCast#init */
+(nitmethod_t)VIRTUAL_compiler_ffi__MExplicitCast__compile_extern_callbacks, /* pointer to nitni_callbacks:MExplicitCast:compiler_ffi#MExplicitCast#compile_extern_callbacks */
+}
+};
+/* allocate MExplicitCast */
+val* NEW_nitni_callbacks__MExplicitCast(const struct type* type) {
+val* self /* : MExplicitCast */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_nitni_callbacks__MExplicitCast;
+return self;
+}
+/* runtime class nitni_utilities__CallContext */
+const struct class class_nitni_utilities__CallContext = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to nitni_utilities:CallContext:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to nitni_utilities:CallContext:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to nitni_utilities:CallContext:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to nitni_utilities:CallContext:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to nitni_utilities:CallContext:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to nitni_utilities:CallContext:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to nitni_utilities:CallContext:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to nitni_utilities:CallContext:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to nitni_utilities:CallContext:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to nitni_utilities:CallContext:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to nitni_utilities:CallContext:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to nitni_utilities:CallContext:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to nitni_utilities:CallContext:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to nitni_utilities:CallContext:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to nitni_utilities:CallContext:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to nitni_utilities:CallContext:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to nitni_utilities:CallContext:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to nitni_utilities:CallContext:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to nitni_utilities:CallContext:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to nitni_utilities:CallContext:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to nitni_utilities:CallContext:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to nitni_utilities:CallContext:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to nitni_utilities:CallContext:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to nitni_utilities:CallContext:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to nitni_utilities:CallContext:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to nitni_utilities:CallContext:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to nitni_utilities:CallContext:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to nitni_utilities:CallContext:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to nitni_utilities:CallContext:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to nitni_utilities:CallContext:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to nitni_utilities:CallContext:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to nitni_utilities:CallContext:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to nitni_utilities:CallContext:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to nitni_utilities:CallContext:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to nitni_utilities:CallContext:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to nitni_utilities:CallContext:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to nitni_utilities:CallContext:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to nitni_utilities:CallContext:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to nitni_utilities:CallContext:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to nitni_utilities:CallContext:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to nitni_utilities:CallContext:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to nitni_utilities:CallContext:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to nitni_utilities:CallContext:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to nitni_utilities:CallContext:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to nitni_utilities:CallContext:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to nitni_utilities:CallContext:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to nitni_utilities:CallContext:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to nitni_utilities:CallContext:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to nitni_utilities:CallContext:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to nitni_utilities:CallContext:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to nitni_utilities:CallContext:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__name_mtype, /* pointer to nitni_utilities:CallContext:nitni_utilities#CallContext#name_mtype */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__cast_from, /* pointer to nitni_utilities:CallContext:nitni_utilities#CallContext#cast_from */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__cast_to, /* pointer to nitni_utilities:CallContext:nitni_utilities#CallContext#cast_to */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__init, /* pointer to nitni_utilities:CallContext:nitni_utilities#CallContext#init */
+}
+};
+/* allocate CallContext */
+val* NEW_nitni_utilities__CallContext(const struct type* type) {
+val* self /* : CallContext */;
+self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_nitni_utilities__CallContext;
+return self;
+}
+/* runtime class nitni_utilities__SignatureLength */
+const struct class class_nitni_utilities__SignatureLength = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to nitni_utilities:SignatureLength:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to nitni_utilities:SignatureLength:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to nitni_utilities:SignatureLength:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to nitni_utilities:SignatureLength:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to nitni_utilities:SignatureLength:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to nitni_utilities:SignatureLength:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to nitni_utilities:SignatureLength:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to nitni_utilities:SignatureLength:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to nitni_utilities:SignatureLength:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to nitni_utilities:SignatureLength:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to nitni_utilities:SignatureLength:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to nitni_utilities:SignatureLength:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to nitni_utilities:SignatureLength:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to nitni_utilities:SignatureLength:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to nitni_utilities:SignatureLength:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to nitni_utilities:SignatureLength:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to nitni_utilities:SignatureLength:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to nitni_utilities:SignatureLength:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to nitni_utilities:SignatureLength:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to nitni_utilities:SignatureLength:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to nitni_utilities:SignatureLength:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to nitni_utilities:SignatureLength:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to nitni_utilities:SignatureLength:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to nitni_utilities:SignatureLength:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to nitni_utilities:SignatureLength:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to nitni_utilities:SignatureLength:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to nitni_utilities:SignatureLength:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to nitni_utilities:SignatureLength:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to nitni_utilities:SignatureLength:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to nitni_utilities:SignatureLength:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to nitni_utilities:SignatureLength:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to nitni_utilities:SignatureLength:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to nitni_utilities:SignatureLength:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to nitni_utilities:SignatureLength:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to nitni_utilities:SignatureLength:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to nitni_utilities:SignatureLength:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to nitni_utilities:SignatureLength:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to nitni_utilities:SignatureLength:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to nitni_utilities:SignatureLength:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to nitni_utilities:SignatureLength:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to nitni_utilities:SignatureLength:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to nitni_utilities:SignatureLength:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to nitni_utilities:SignatureLength:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to nitni_utilities:SignatureLength:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to nitni_utilities:SignatureLength:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to nitni_utilities:SignatureLength:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to nitni_utilities:SignatureLength:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to nitni_utilities:SignatureLength:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to nitni_utilities:SignatureLength:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to nitni_utilities:SignatureLength:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to nitni_utilities:SignatureLength:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__SignatureLength__long, /* pointer to nitni_utilities:SignatureLength:nitni_utilities#SignatureLength#long */
+(nitmethod_t)VIRTUAL_nitni_utilities__SignatureLength__long_61d, /* pointer to nitni_utilities:SignatureLength:nitni_utilities#SignatureLength#long= */
+(nitmethod_t)VIRTUAL_nitni_utilities__SignatureLength__init, /* pointer to nitni_utilities:SignatureLength:nitni_utilities#SignatureLength#init */
+}
+};
+/* allocate SignatureLength */
+val* NEW_nitni_utilities__SignatureLength(const struct type* type) {
+val* self /* : SignatureLength */;
+self = nit_alloc(sizeof(struct instance) + 1*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_nitni_utilities__SignatureLength;
+return self;
+}
+/* runtime class ffi_base__FFILanguageAssignationPhase */
+const struct class class_ffi_base__FFILanguageAssignationPhase = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to ffi_base:FFILanguageAssignationPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to ffi_base:FFILanguageAssignationPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to ffi_base:FFILanguageAssignationPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to ffi_base:FFILanguageAssignationPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to ffi_base:FFILanguageAssignationPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to ffi_base:FFILanguageAssignationPhase:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to ffi_base:FFILanguageAssignationPhase:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to ffi_base:FFILanguageAssignationPhase:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to ffi_base:FFILanguageAssignationPhase:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to ffi_base:FFILanguageAssignationPhase:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to ffi_base:FFILanguageAssignationPhase:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to ffi_base:FFILanguageAssignationPhase:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to ffi_base:FFILanguageAssignationPhase:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to ffi_base:FFILanguageAssignationPhase:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to ffi_base:FFILanguageAssignationPhase:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to ffi_base:FFILanguageAssignationPhase:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to ffi_base:FFILanguageAssignationPhase:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to ffi_base:FFILanguageAssignationPhase:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to ffi_base:FFILanguageAssignationPhase:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to ffi_base:FFILanguageAssignationPhase:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to ffi_base:FFILanguageAssignationPhase:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to ffi_base:FFILanguageAssignationPhase:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to ffi_base:FFILanguageAssignationPhase:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to ffi_base:FFILanguageAssignationPhase:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to ffi_base:FFILanguageAssignationPhase:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to ffi_base:FFILanguageAssignationPhase:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to ffi_base:FFILanguageAssignationPhase:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to ffi_base:FFILanguageAssignationPhase:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to ffi_base:FFILanguageAssignationPhase:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to ffi_base:FFILanguageAssignationPhase:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to ffi_base:FFILanguageAssignationPhase:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to ffi_base:FFILanguageAssignationPhase:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to ffi_base:FFILanguageAssignationPhase:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to ffi_base:FFILanguageAssignationPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to ffi_base:FFILanguageAssignationPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to ffi_base:FFILanguageAssignationPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to ffi_base:FFILanguageAssignationPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to ffi_base:FFILanguageAssignationPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to ffi_base:FFILanguageAssignationPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to ffi_base:FFILanguageAssignationPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to ffi_base:FFILanguageAssignationPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to ffi_base:FFILanguageAssignationPhase:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to ffi_base:FFILanguageAssignationPhase:phase#Phase#toolcontext */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to ffi_base:FFILanguageAssignationPhase:phase#Phase#toolcontext= */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to ffi_base:FFILanguageAssignationPhase:phase#Phase#in_hierarchy */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy_61d, /* pointer to ffi_base:FFILanguageAssignationPhase:phase#Phase#in_hierarchy= */
+(nitmethod_t)VIRTUAL_phase__Phase__init, /* pointer to ffi_base:FFILanguageAssignationPhase:phase#Phase#init */
+(nitmethod_t)VIRTUAL_ffi_base__FFILanguageAssignationPhase__process_nmodule, /* pointer to ffi_base:FFILanguageAssignationPhase:ffi_base#FFILanguageAssignationPhase#process_nmodule */
+(nitmethod_t)VIRTUAL_ffi_base__FFILanguageAssignationPhase__process_nclassdef, /* pointer to ffi_base:FFILanguageAssignationPhase:ffi_base#FFILanguageAssignationPhase#process_nclassdef */
+(nitmethod_t)VIRTUAL_ffi_base__FFILanguageAssignationPhase__process_npropdef, /* pointer to ffi_base:FFILanguageAssignationPhase:ffi_base#FFILanguageAssignationPhase#process_npropdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to ffi_base:FFILanguageAssignationPhase:phase#Phase#process_annotated_node */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to ffi_base:FFILanguageAssignationPhase:modelbuilder#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_ffi_base__FFILanguageAssignationPhase__languages, /* pointer to ffi_base:FFILanguageAssignationPhase:ffi_base#FFILanguageAssignationPhase#languages */
+(nitmethod_t)VIRTUAL_ffi_base__FFILanguageAssignationPhase__languages_61d, /* pointer to ffi_base:FFILanguageAssignationPhase:ffi_base#FFILanguageAssignationPhase#languages= */
+(nitmethod_t)VIRTUAL_ffi_base__FFILanguageAssignationPhase__verify_foreign_code_on_node, /* pointer to ffi_base:FFILanguageAssignationPhase:ffi_base#FFILanguageAssignationPhase#verify_foreign_code_on_node */
+(nitmethod_t)VIRTUAL_c__FFILanguageAssignationPhase__c_language, /* pointer to ffi_base:FFILanguageAssignationPhase:c#FFILanguageAssignationPhase#c_language */
+(nitmethod_t)VIRTUAL_c__FFILanguageAssignationPhase__c_language_61d, /* pointer to ffi_base:FFILanguageAssignationPhase:c#FFILanguageAssignationPhase#c_language= */
+(nitmethod_t)VIRTUAL_cpp__FFILanguageAssignationPhase__cpp_language, /* pointer to ffi_base:FFILanguageAssignationPhase:cpp#FFILanguageAssignationPhase#cpp_language */
+(nitmethod_t)VIRTUAL_cpp__FFILanguageAssignationPhase__cpp_language_61d, /* pointer to ffi_base:FFILanguageAssignationPhase:cpp#FFILanguageAssignationPhase#cpp_language= */
+}
+};
+/* allocate FFILanguageAssignationPhase */
+val* NEW_ffi_base__FFILanguageAssignationPhase(const struct type* type) {
+val* self /* : FFILanguageAssignationPhase */;
+val* var /* : Array[FFILanguage] */;
+val* var1 /* : CLanguage */;
+val* var2 /* : CPPLanguage */;
+self = nit_alloc(sizeof(struct instance) + 5*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_ffi_base__FFILanguageAssignationPhase;
+var = NEW_array__Array(&type_array__Arrayffi_base__FFILanguage);
+((void (*)(val*))(var->class->vft[COLOR_array__Array__init]))(var) /* init on <var:Array[FFILanguage]>*/;
+self->attrs[COLOR_ffi_base__FFILanguageAssignationPhase___64dlanguages].val = var; /* @languages on <self:FFILanguageAssignationPhase exact> */
+var1 = NEW_c__CLanguage(&type_c__CLanguage);
+((void (*)(val*, val*))(var1->class->vft[COLOR_ffi_base__FFILanguage__init]))(var1, self) /* init on <var1:CLanguage>*/;
+self->attrs[COLOR_c__FFILanguageAssignationPhase___64dc_language].val = var1; /* @c_language on <self:FFILanguageAssignationPhase exact> */
+var2 = NEW_cpp__CPPLanguage(&type_cpp__CPPLanguage);
+((void (*)(val*, val*))(var2->class->vft[COLOR_ffi_base__FFILanguage__init]))(var2, self) /* init on <var2:CPPLanguage>*/;
+self->attrs[COLOR_cpp__FFILanguageAssignationPhase___64dcpp_language].val = var2; /* @cpp_language on <self:FFILanguageAssignationPhase exact> */
+return self;
+}
+/* runtime class ffi_base__FFILanguage */
+/* allocate FFILanguage */
+val* NEW_ffi_base__FFILanguage(const struct type* type) {
+fprintf(stderr, "Runtime error: %s", "FFILanguage is DEAD");
+fprintf(stderr, "\n");
+show_backtrace(1);
+}
+/* runtime class ffi_base__ExternFile */
+/* allocate ExternFile */
+val* NEW_ffi_base__ExternFile(const struct type* type) {
+fprintf(stderr, "Runtime error: %s", "ExternFile is DEAD");
+fprintf(stderr, "\n");
+show_backtrace(1);
+}
+/* runtime class ffi_base__ForeignType */
+const struct class class_ffi_base__ForeignType = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to ffi_base:ForeignType:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to ffi_base:ForeignType:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to ffi_base:ForeignType:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to ffi_base:ForeignType:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to ffi_base:ForeignType:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to ffi_base:ForeignType:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to ffi_base:ForeignType:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to ffi_base:ForeignType:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to ffi_base:ForeignType:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to ffi_base:ForeignType:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to ffi_base:ForeignType:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to ffi_base:ForeignType:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to ffi_base:ForeignType:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to ffi_base:ForeignType:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to ffi_base:ForeignType:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to ffi_base:ForeignType:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to ffi_base:ForeignType:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to ffi_base:ForeignType:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to ffi_base:ForeignType:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to ffi_base:ForeignType:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to ffi_base:ForeignType:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to ffi_base:ForeignType:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to ffi_base:ForeignType:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to ffi_base:ForeignType:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to ffi_base:ForeignType:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to ffi_base:ForeignType:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to ffi_base:ForeignType:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to ffi_base:ForeignType:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to ffi_base:ForeignType:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to ffi_base:ForeignType:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to ffi_base:ForeignType:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to ffi_base:ForeignType:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to ffi_base:ForeignType:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to ffi_base:ForeignType:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to ffi_base:ForeignType:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to ffi_base:ForeignType:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to ffi_base:ForeignType:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to ffi_base:ForeignType:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to ffi_base:ForeignType:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to ffi_base:ForeignType:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to ffi_base:ForeignType:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to ffi_base:ForeignType:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to ffi_base:ForeignType:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to ffi_base:ForeignType:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to ffi_base:ForeignType:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to ffi_base:ForeignType:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to ffi_base:ForeignType:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to ffi_base:ForeignType:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to ffi_base:ForeignType:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to ffi_base:ForeignType:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to ffi_base:ForeignType:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_ffi_base__ForeignType__ctype, /* pointer to ffi_base:ForeignType:ffi_base#ForeignType#ctype */
+(nitmethod_t)VIRTUAL_ffi_base__ForeignType__init, /* pointer to ffi_base:ForeignType:ffi_base#ForeignType#init */
+}
+};
+/* allocate ForeignType */
+val* NEW_ffi_base__ForeignType(const struct type* type) {
+val* self /* : ForeignType */;
+self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_ffi_base__ForeignType;
+return self;
+}
+/* runtime class c_tools__CCompilationUnit */
+const struct class class_c_tools__CCompilationUnit = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c_tools:CCompilationUnit:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c_tools:CCompilationUnit:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c_tools:CCompilationUnit:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to c_tools:CCompilationUnit:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c_tools:CCompilationUnit:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c_tools:CCompilationUnit:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c_tools:CCompilationUnit:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c_tools:CCompilationUnit:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c_tools:CCompilationUnit:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to c_tools:CCompilationUnit:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c_tools:CCompilationUnit:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c_tools:CCompilationUnit:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c_tools:CCompilationUnit:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c_tools:CCompilationUnit:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c_tools:CCompilationUnit:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c_tools:CCompilationUnit:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c_tools:CCompilationUnit:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c_tools:CCompilationUnit:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c_tools:CCompilationUnit:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c_tools:CCompilationUnit:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c_tools:CCompilationUnit:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c_tools:CCompilationUnit:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c_tools:CCompilationUnit:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c_tools:CCompilationUnit:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c_tools:CCompilationUnit:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c_tools:CCompilationUnit:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c_tools:CCompilationUnit:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c_tools:CCompilationUnit:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c_tools:CCompilationUnit:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c_tools:CCompilationUnit:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c_tools:CCompilationUnit:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c_tools:CCompilationUnit:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c_tools:CCompilationUnit:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c_tools:CCompilationUnit:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c_tools:CCompilationUnit:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c_tools:CCompilationUnit:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c_tools:CCompilationUnit:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c_tools:CCompilationUnit:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c_tools:CCompilationUnit:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c_tools:CCompilationUnit:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c_tools:CCompilationUnit:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c_tools:CCompilationUnit:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c_tools:CCompilationUnit:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c_tools:CCompilationUnit:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c_tools:CCompilationUnit:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c_tools:CCompilationUnit:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c_tools:CCompilationUnit:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c_tools:CCompilationUnit:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c_tools:CCompilationUnit:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c_tools:CCompilationUnit:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c_tools:CCompilationUnit:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_c_base, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#header_c_base */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_c_base_61d, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#header_c_base= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_custom, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#header_custom */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_custom_61d, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#header_custom= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_c_types, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#header_c_types */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_c_types_61d, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#header_c_types= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_decl, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#header_decl */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_decl_61d, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#header_decl= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_decl, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#body_decl */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_decl_61d, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#body_decl= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_custom, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#body_custom */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_custom_61d, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#body_custom= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_impl, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#body_impl */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_impl_61d, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#body_impl= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__files, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#files */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__files_61d, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#files= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__add_local_function, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#add_local_function */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__add_exported_function, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#add_exported_function */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__compile_header_core, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#compile_header_core */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__compile_body_core, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#compile_body_core */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__init, /* pointer to c_tools:CCompilationUnit:c_tools#CCompilationUnit#init */
+(nitmethod_t)VIRTUAL_ffi_base__CCompilationUnit__write_as_impl, /* pointer to c_tools:CCompilationUnit:ffi_base#CCompilationUnit#write_as_impl */
+(nitmethod_t)VIRTUAL_ffi_base__CCompilationUnit__write_header_to_file, /* pointer to c_tools:CCompilationUnit:ffi_base#CCompilationUnit#write_header_to_file */
+(nitmethod_t)VIRTUAL_ffi_base__CCompilationUnit__write_body_to_file, /* pointer to c_tools:CCompilationUnit:ffi_base#CCompilationUnit#write_body_to_file */
+(nitmethod_t)VIRTUAL_compiler_ffi__CCompilationUnit__write_as_nitni, /* pointer to c_tools:CCompilationUnit:compiler_ffi#CCompilationUnit#write_as_nitni */
+}
+};
+/* allocate CCompilationUnit */
+val* NEW_c_tools__CCompilationUnit(const struct type* type) {
+val* self /* : CCompilationUnit */;
+val* var /* : Template */;
+val* var1 /* : Template */;
+val* var2 /* : Template */;
+val* var3 /* : Template */;
+val* var4 /* : Template */;
+val* var5 /* : Template */;
+val* var6 /* : Template */;
+val* var7 /* : Array[String] */;
+self = nit_alloc(sizeof(struct instance) + 8*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_c_tools__CCompilationUnit;
+var = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var->class->vft[COLOR_template__Template__init]))(var) /* init on <var:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dheader_c_base].val = var; /* @header_c_base on <self:CCompilationUnit exact> */
+var1 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var1->class->vft[COLOR_template__Template__init]))(var1) /* init on <var1:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dheader_custom].val = var1; /* @header_custom on <self:CCompilationUnit exact> */
+var2 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var2->class->vft[COLOR_template__Template__init]))(var2) /* init on <var2:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dheader_c_types].val = var2; /* @header_c_types on <self:CCompilationUnit exact> */
+var3 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var3->class->vft[COLOR_template__Template__init]))(var3) /* init on <var3:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dheader_decl].val = var3; /* @header_decl on <self:CCompilationUnit exact> */
+var4 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var4->class->vft[COLOR_template__Template__init]))(var4) /* init on <var4:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dbody_decl].val = var4; /* @body_decl on <self:CCompilationUnit exact> */
+var5 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var5->class->vft[COLOR_template__Template__init]))(var5) /* init on <var5:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dbody_custom].val = var5; /* @body_custom on <self:CCompilationUnit exact> */
+var6 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var6->class->vft[COLOR_template__Template__init]))(var6) /* init on <var6:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dbody_impl].val = var6; /* @body_impl on <self:CCompilationUnit exact> */
+var7 = NEW_array__Array(&type_array__Arraystring__String);
+((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[String]>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dfiles].val = var7; /* @files on <self:CCompilationUnit exact> */
+return self;
+}
+/* runtime class c_tools__CFunction */
+const struct class class_c_tools__CFunction = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c_tools:CFunction:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c_tools:CFunction:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c_tools:CFunction:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to c_tools:CFunction:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c_tools:CFunction:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c_tools:CFunction:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c_tools:CFunction:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c_tools:CFunction:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c_tools:CFunction:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to c_tools:CFunction:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c_tools:CFunction:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c_tools:CFunction:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c_tools:CFunction:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c_tools:CFunction:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c_tools:CFunction:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c_tools:CFunction:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c_tools:CFunction:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c_tools:CFunction:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c_tools:CFunction:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c_tools:CFunction:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c_tools:CFunction:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c_tools:CFunction:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c_tools:CFunction:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c_tools:CFunction:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c_tools:CFunction:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c_tools:CFunction:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c_tools:CFunction:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c_tools:CFunction:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c_tools:CFunction:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c_tools:CFunction:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c_tools:CFunction:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c_tools:CFunction:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c_tools:CFunction:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c_tools:CFunction:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c_tools:CFunction:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c_tools:CFunction:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c_tools:CFunction:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c_tools:CFunction:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c_tools:CFunction:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c_tools:CFunction:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c_tools:CFunction:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c_tools:CFunction:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c_tools:CFunction:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c_tools:CFunction:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c_tools:CFunction:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c_tools:CFunction:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c_tools:CFunction:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c_tools:CFunction:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c_tools:CFunction:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c_tools:CFunction:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c_tools:CFunction:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__signature, /* pointer to c_tools:CFunction:c_tools#CFunction#signature */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__signature_61d, /* pointer to c_tools:CFunction:c_tools#CFunction#signature= */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__decls, /* pointer to c_tools:CFunction:c_tools#CFunction#decls */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__decls_61d, /* pointer to c_tools:CFunction:c_tools#CFunction#decls= */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__exprs, /* pointer to c_tools:CFunction:c_tools#CFunction#exprs */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__exprs_61d, /* pointer to c_tools:CFunction:c_tools#CFunction#exprs= */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__to_writer, /* pointer to c_tools:CFunction:c_tools#CFunction#to_writer */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__init, /* pointer to c_tools:CFunction:c_tools#CFunction#init */
+}
+};
+/* allocate CFunction */
+val* NEW_c_tools__CFunction(const struct type* type) {
+val* self /* : CFunction */;
+val* var /* : Template */;
+val* var1 /* : Template */;
+self = nit_alloc(sizeof(struct instance) + 3*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_c_tools__CFunction;
+var = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var->class->vft[COLOR_template__Template__init]))(var) /* init on <var:Template>*/;
+self->attrs[COLOR_c_tools__CFunction___64ddecls].val = var; /* @decls on <self:CFunction exact> */
+var1 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var1->class->vft[COLOR_template__Template__init]))(var1) /* init on <var1:Template>*/;
+self->attrs[COLOR_c_tools__CFunction___64dexprs].val = var1; /* @exprs on <self:CFunction exact> */
+return self;
+}
+/* runtime class template__Template */
+const struct class class_template__Template = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to template:Template:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to template:Template:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to template:Template:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to template:Template:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to template:Template:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to template:Template:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to template:Template:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to template:Template:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to template:Template:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to template:Template:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to template:Template:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to template:Template:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to template:Template:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to template:Template:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to template:Template:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to template:Template:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to template:Template:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to template:Template:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to template:Template:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to template:Template:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to template:Template:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to template:Template:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to template:Template:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to template:Template:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to template:Template:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to template:Template:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to template:Template:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to template:Template:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to template:Template:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to template:Template:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to template:Template:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to template:Template:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to template:Template:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to template:Template:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to template:Template:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to template:Template:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to template:Template:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to template:Template:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to template:Template:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to template:Template:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to template:Template:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to template:Template:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to template:Template:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to template:Template:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to template:Template:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to template:Template:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to template:Template:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to template:Template:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to template:Template:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to template:Template:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to template:Template:cpp#Object#from_cpp_call_context */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+(nitmethod_t)VIRTUAL_template__Template__write_to, /* pointer to template:Template:template#Template#write_to */
+(nitmethod_t)VIRTUAL_template__Template__rendering, /* pointer to template:Template:template#Template#rendering */
+(nitmethod_t)VIRTUAL_template__Template__add, /* pointer to template:Template:template#Template#add */
+(nitmethod_t)VIRTUAL_template__Template__add_all, /* pointer to template:Template:template#Template#add_all */
+(nitmethod_t)VIRTUAL_template__Template__add_list, /* pointer to template:Template:template#Template#add_list */
+(nitmethod_t)VIRTUAL_template__Template__is_frozen, /* pointer to template:Template:template#Template#is_frozen */
+(nitmethod_t)VIRTUAL_template__Template__is_frozen_61d, /* pointer to template:Template:template#Template#is_frozen= */
+(nitmethod_t)VIRTUAL_template__Template__freeze, /* pointer to template:Template:template#Template#freeze */
+(nitmethod_t)VIRTUAL_template__Template__new_sub, /* pointer to template:Template:template#Template#new_sub */
+(nitmethod_t)VIRTUAL_template__Template__content, /* pointer to template:Template:template#Template#content */
+(nitmethod_t)VIRTUAL_template__Template__content_61d, /* pointer to template:Template:template#Template#content= */
+(nitmethod_t)VIRTUAL_template__Template__render_done, /* pointer to template:Template:template#Template#render_done */
+(nitmethod_t)VIRTUAL_template__Template__render_done_61d, /* pointer to template:Template:template#Template#render_done= */
+(nitmethod_t)VIRTUAL_template__Template__force_render, /* pointer to template:Template:template#Template#force_render */
+(nitmethod_t)VIRTUAL_template__Template__is_writing, /* pointer to template:Template:template#Template#is_writing */
+(nitmethod_t)VIRTUAL_template__Template__is_writing_61d, /* pointer to template:Template:template#Template#is_writing= */
+(nitmethod_t)VIRTUAL_template__Template__write_to_string, /* pointer to template:Template:template#Template#write_to_string */
+(nitmethod_t)VIRTUAL_template__Template__write_to_file, /* pointer to template:Template:template#Template#write_to_file */
+(nitmethod_t)VIRTUAL_template__Template__init, /* pointer to template:Template:template#Template#init */
+}
+};
+/* allocate Template */
+val* NEW_template__Template(const struct type* type) {
+val* self /* : Template */;
+short int var /* : Bool */;
+val* var1 /* : Array[Streamable] */;
+short int var2 /* : Bool */;
+short int var3 /* : Bool */;
+self = nit_alloc(sizeof(struct instance) + 4*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_template__Template;
+var = 0;
+self->attrs[COLOR_template__Template___64dis_frozen].s = var; /* @is_frozen on <self:Template exact> */
+var1 = NEW_array__Array(&type_array__Arraystream__Streamable);
+((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[Streamable]>*/;
+self->attrs[COLOR_template__Template___64dcontent].val = var1; /* @content on <self:Template exact> */
+var2 = 0;
+self->attrs[COLOR_template__Template___64drender_done].s = var2; /* @render_done on <self:Template exact> */
+var3 = 0;
+self->attrs[COLOR_template__Template___64dis_writing].s = var3; /* @is_writing on <self:Template exact> */
+return self;
+}
+/* runtime class extern_classes__ExternClassesTypingPhaseAst */
+const struct class class_extern_classes__ExternClassesTypingPhaseAst = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to extern_classes:ExternClassesTypingPhaseAst:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to extern_classes:ExternClassesTypingPhaseAst:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to extern_classes:ExternClassesTypingPhaseAst:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to extern_classes:ExternClassesTypingPhaseAst:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to extern_classes:ExternClassesTypingPhaseAst:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to extern_classes:ExternClassesTypingPhaseAst:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to extern_classes:ExternClassesTypingPhaseAst:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to extern_classes:ExternClassesTypingPhaseAst:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to extern_classes:ExternClassesTypingPhaseAst:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to extern_classes:ExternClassesTypingPhaseAst:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to extern_classes:ExternClassesTypingPhaseAst:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to extern_classes:ExternClassesTypingPhaseAst:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to extern_classes:ExternClassesTypingPhaseAst:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to extern_classes:ExternClassesTypingPhaseAst:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to extern_classes:ExternClassesTypingPhaseAst:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to extern_classes:ExternClassesTypingPhaseAst:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to extern_classes:ExternClassesTypingPhaseAst:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to extern_classes:ExternClassesTypingPhaseAst:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to extern_classes:ExternClassesTypingPhaseAst:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to extern_classes:ExternClassesTypingPhaseAst:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to extern_classes:ExternClassesTypingPhaseAst:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to extern_classes:ExternClassesTypingPhaseAst:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to extern_classes:ExternClassesTypingPhaseAst:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to extern_classes:ExternClassesTypingPhaseAst:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to extern_classes:ExternClassesTypingPhaseAst:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseAst:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to extern_classes:ExternClassesTypingPhaseAst:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to extern_classes:ExternClassesTypingPhaseAst:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseAst:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseAst:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseAst:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseAst:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseAst:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to extern_classes:ExternClassesTypingPhaseAst:phase#Phase#toolcontext */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to extern_classes:ExternClassesTypingPhaseAst:phase#Phase#toolcontext= */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to extern_classes:ExternClassesTypingPhaseAst:phase#Phase#in_hierarchy */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy_61d, /* pointer to extern_classes:ExternClassesTypingPhaseAst:phase#Phase#in_hierarchy= */
+(nitmethod_t)VIRTUAL_phase__Phase__init, /* pointer to extern_classes:ExternClassesTypingPhaseAst:phase#Phase#init */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nmodule, /* pointer to extern_classes:ExternClassesTypingPhaseAst:phase#Phase#process_nmodule */
+(nitmethod_t)VIRTUAL_extern_classes__ExternClassesTypingPhaseAst__process_nclassdef, /* pointer to extern_classes:ExternClassesTypingPhaseAst:extern_classes#ExternClassesTypingPhaseAst#process_nclassdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to extern_classes:ExternClassesTypingPhaseAst:phase#Phase#process_npropdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to extern_classes:ExternClassesTypingPhaseAst:phase#Phase#process_annotated_node */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to extern_classes:ExternClassesTypingPhaseAst:modelbuilder#Phase#process_mainmodule */
+}
+};
+/* allocate ExternClassesTypingPhaseAst */
+val* NEW_extern_classes__ExternClassesTypingPhaseAst(const struct type* type) {
+val* self /* : ExternClassesTypingPhaseAst */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_extern_classes__ExternClassesTypingPhaseAst;
+return self;
+}
+/* runtime class extern_classes__ExternClassesTypingPhaseModel */
+const struct class class_extern_classes__ExternClassesTypingPhaseModel = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to extern_classes:ExternClassesTypingPhaseModel:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to extern_classes:ExternClassesTypingPhaseModel:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to extern_classes:ExternClassesTypingPhaseModel:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to extern_classes:ExternClassesTypingPhaseModel:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to extern_classes:ExternClassesTypingPhaseModel:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to extern_classes:ExternClassesTypingPhaseModel:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to extern_classes:ExternClassesTypingPhaseModel:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to extern_classes:ExternClassesTypingPhaseModel:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to extern_classes:ExternClassesTypingPhaseModel:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to extern_classes:ExternClassesTypingPhaseModel:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to extern_classes:ExternClassesTypingPhaseModel:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to extern_classes:ExternClassesTypingPhaseModel:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to extern_classes:ExternClassesTypingPhaseModel:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to extern_classes:ExternClassesTypingPhaseModel:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to extern_classes:ExternClassesTypingPhaseModel:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to extern_classes:ExternClassesTypingPhaseModel:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to extern_classes:ExternClassesTypingPhaseModel:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to extern_classes:ExternClassesTypingPhaseModel:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to extern_classes:ExternClassesTypingPhaseModel:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to extern_classes:ExternClassesTypingPhaseModel:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to extern_classes:ExternClassesTypingPhaseModel:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to extern_classes:ExternClassesTypingPhaseModel:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to extern_classes:ExternClassesTypingPhaseModel:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to extern_classes:ExternClassesTypingPhaseModel:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to extern_classes:ExternClassesTypingPhaseModel:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseModel:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to extern_classes:ExternClassesTypingPhaseModel:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to extern_classes:ExternClassesTypingPhaseModel:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseModel:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseModel:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseModel:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseModel:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to extern_classes:ExternClassesTypingPhaseModel:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to extern_classes:ExternClassesTypingPhaseModel:phase#Phase#toolcontext */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to extern_classes:ExternClassesTypingPhaseModel:phase#Phase#toolcontext= */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to extern_classes:ExternClassesTypingPhaseModel:phase#Phase#in_hierarchy */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy_61d, /* pointer to extern_classes:ExternClassesTypingPhaseModel:phase#Phase#in_hierarchy= */
+(nitmethod_t)VIRTUAL_phase__Phase__init, /* pointer to extern_classes:ExternClassesTypingPhaseModel:phase#Phase#init */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nmodule, /* pointer to extern_classes:ExternClassesTypingPhaseModel:phase#Phase#process_nmodule */
+(nitmethod_t)VIRTUAL_extern_classes__ExternClassesTypingPhaseModel__process_nclassdef, /* pointer to extern_classes:ExternClassesTypingPhaseModel:extern_classes#ExternClassesTypingPhaseModel#process_nclassdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to extern_classes:ExternClassesTypingPhaseModel:phase#Phase#process_npropdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to extern_classes:ExternClassesTypingPhaseModel:phase#Phase#process_annotated_node */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to extern_classes:ExternClassesTypingPhaseModel:modelbuilder#Phase#process_mainmodule */
+}
+};
+/* allocate ExternClassesTypingPhaseModel */
+val* NEW_extern_classes__ExternClassesTypingPhaseModel(const struct type* type) {
+val* self /* : ExternClassesTypingPhaseModel */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_extern_classes__ExternClassesTypingPhaseModel;
+return self;
+}
+/* runtime class header_dependency__HeaderDependancyPhase */
+const struct class class_header_dependency__HeaderDependancyPhase = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to header_dependency:HeaderDependancyPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to header_dependency:HeaderDependancyPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to header_dependency:HeaderDependancyPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to header_dependency:HeaderDependancyPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to header_dependency:HeaderDependancyPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to header_dependency:HeaderDependancyPhase:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to header_dependency:HeaderDependancyPhase:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to header_dependency:HeaderDependancyPhase:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to header_dependency:HeaderDependancyPhase:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to header_dependency:HeaderDependancyPhase:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to header_dependency:HeaderDependancyPhase:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to header_dependency:HeaderDependancyPhase:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to header_dependency:HeaderDependancyPhase:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to header_dependency:HeaderDependancyPhase:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to header_dependency:HeaderDependancyPhase:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to header_dependency:HeaderDependancyPhase:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to header_dependency:HeaderDependancyPhase:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to header_dependency:HeaderDependancyPhase:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to header_dependency:HeaderDependancyPhase:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to header_dependency:HeaderDependancyPhase:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to header_dependency:HeaderDependancyPhase:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to header_dependency:HeaderDependancyPhase:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to header_dependency:HeaderDependancyPhase:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to header_dependency:HeaderDependancyPhase:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to header_dependency:HeaderDependancyPhase:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to header_dependency:HeaderDependancyPhase:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to header_dependency:HeaderDependancyPhase:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to header_dependency:HeaderDependancyPhase:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to header_dependency:HeaderDependancyPhase:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to header_dependency:HeaderDependancyPhase:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to header_dependency:HeaderDependancyPhase:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to header_dependency:HeaderDependancyPhase:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to header_dependency:HeaderDependancyPhase:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to header_dependency:HeaderDependancyPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to header_dependency:HeaderDependancyPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to header_dependency:HeaderDependancyPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to header_dependency:HeaderDependancyPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to header_dependency:HeaderDependancyPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to header_dependency:HeaderDependancyPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to header_dependency:HeaderDependancyPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to header_dependency:HeaderDependancyPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to header_dependency:HeaderDependancyPhase:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to header_dependency:HeaderDependancyPhase:phase#Phase#toolcontext */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to header_dependency:HeaderDependancyPhase:phase#Phase#toolcontext= */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to header_dependency:HeaderDependancyPhase:phase#Phase#in_hierarchy */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy_61d, /* pointer to header_dependency:HeaderDependancyPhase:phase#Phase#in_hierarchy= */
+(nitmethod_t)VIRTUAL_phase__Phase__init, /* pointer to header_dependency:HeaderDependancyPhase:phase#Phase#init */
+(nitmethod_t)VIRTUAL_header_dependency__HeaderDependancyPhase__process_nmodule, /* pointer to header_dependency:HeaderDependancyPhase:header_dependency#HeaderDependancyPhase#process_nmodule */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to header_dependency:HeaderDependancyPhase:phase#Phase#process_nclassdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to header_dependency:HeaderDependancyPhase:phase#Phase#process_npropdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_annotated_node, /* pointer to header_dependency:HeaderDependancyPhase:phase#Phase#process_annotated_node */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to header_dependency:HeaderDependancyPhase:modelbuilder#Phase#process_mainmodule */
+}
+};
+/* allocate HeaderDependancyPhase */
+val* NEW_header_dependency__HeaderDependancyPhase(const struct type* type) {
+val* self /* : HeaderDependancyPhase */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_header_dependency__HeaderDependancyPhase;
+return self;
+}
+/* runtime class c__CLanguage */
+const struct class class_c__CLanguage = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c:CLanguage:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c:CLanguage:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c:CLanguage:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to c:CLanguage:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c:CLanguage:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c:CLanguage:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c:CLanguage:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c:CLanguage:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c:CLanguage:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to c:CLanguage:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c:CLanguage:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c:CLanguage:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c:CLanguage:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c:CLanguage:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c:CLanguage:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c:CLanguage:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c:CLanguage:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c:CLanguage:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c:CLanguage:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c:CLanguage:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c:CLanguage:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c:CLanguage:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c:CLanguage:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c:CLanguage:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c:CLanguage:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c:CLanguage:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c:CLanguage:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c:CLanguage:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c:CLanguage:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c:CLanguage:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c:CLanguage:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c:CLanguage:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c:CLanguage:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c:CLanguage:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c:CLanguage:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c:CLanguage:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c:CLanguage:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c:CLanguage:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c:CLanguage:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c:CLanguage:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c:CLanguage:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c:CLanguage:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c:CLanguage:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c:CLanguage:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c:CLanguage:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c:CLanguage:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c:CLanguage:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c:CLanguage:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c:CLanguage:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c:CLanguage:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c:CLanguage:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_ffi_base__FFILanguage__init, /* pointer to c:CLanguage:ffi_base#FFILanguage#init */
+(nitmethod_t)VIRTUAL_c__CLanguage__identify_language, /* pointer to c:CLanguage:c#CLanguage#identify_language */
+(nitmethod_t)VIRTUAL_c__CLanguage__compile_module_block, /* pointer to c:CLanguage:c#CLanguage#compile_module_block */
+(nitmethod_t)VIRTUAL_c__CLanguage__compile_extern_method, /* pointer to c:CLanguage:c#CLanguage#compile_extern_method */
+(nitmethod_t)VIRTUAL_c__CLanguage__compile_extern_class, /* pointer to c:CLanguage:c#CLanguage#compile_extern_class */
+(nitmethod_t)VIRTUAL_c__CLanguage__get_ftype, /* pointer to c:CLanguage:c#CLanguage#get_ftype */
+(nitmethod_t)VIRTUAL_c__CLanguage__compile_callback, /* pointer to c:CLanguage:c#CLanguage#compile_callback */
+(nitmethod_t)VIRTUAL_ffi_base__FFILanguage__compile_to_files, /* pointer to c:CLanguage:ffi_base#FFILanguage#compile_to_files */
+}
+};
+/* allocate CLanguage */
+val* NEW_c__CLanguage(const struct type* type) {
+val* self /* : CLanguage */;
+self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_c__CLanguage;
+return self;
+}
+/* runtime class c__ExternCFile */
+const struct class class_c__ExternCFile = {
 0, /* box_kind */
 {
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to abstract_compiler:ExternCFile:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to abstract_compiler:ExternCFile:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to abstract_compiler:ExternCFile:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to abstract_compiler:ExternCFile:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to abstract_compiler:ExternCFile:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to abstract_compiler:ExternCFile:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to abstract_compiler:ExternCFile:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to abstract_compiler:ExternCFile:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to abstract_compiler:ExternCFile:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to abstract_compiler:ExternCFile:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to abstract_compiler:ExternCFile:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to abstract_compiler:ExternCFile:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to abstract_compiler:ExternCFile:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to abstract_compiler:ExternCFile:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to abstract_compiler:ExternCFile:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to abstract_compiler:ExternCFile:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to abstract_compiler:ExternCFile:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to abstract_compiler:ExternCFile:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to abstract_compiler:ExternCFile:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to abstract_compiler:ExternCFile:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to abstract_compiler:ExternCFile:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to abstract_compiler:ExternCFile:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to abstract_compiler:ExternCFile:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to abstract_compiler:ExternCFile:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to abstract_compiler:ExternCFile:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to abstract_compiler:ExternCFile:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to abstract_compiler:ExternCFile:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to abstract_compiler:ExternCFile:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to abstract_compiler:ExternCFile:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to abstract_compiler:ExternCFile:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to abstract_compiler:ExternCFile:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to abstract_compiler:ExternCFile:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to abstract_compiler:ExternCFile:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to abstract_compiler:ExternCFile:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to abstract_compiler:ExternCFile:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to abstract_compiler:ExternCFile:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to abstract_compiler:ExternCFile:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to abstract_compiler:ExternCFile:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to abstract_compiler:ExternCFile:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to abstract_compiler:ExternCFile:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to abstract_compiler:ExternCFile:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_abstract_compiler__ExternCFile__filename, /* pointer to abstract_compiler:ExternCFile:abstract_compiler#ExternCFile#filename */
-(nitmethod_t)VIRTUAL_abstract_compiler__ExternCFile__filename_61d, /* pointer to abstract_compiler:ExternCFile:abstract_compiler#ExternCFile#filename= */
-(nitmethod_t)VIRTUAL_abstract_compiler__ExternCFile__cflags, /* pointer to abstract_compiler:ExternCFile:abstract_compiler#ExternCFile#cflags */
-(nitmethod_t)VIRTUAL_abstract_compiler__ExternCFile__cflags_61d, /* pointer to abstract_compiler:ExternCFile:abstract_compiler#ExternCFile#cflags= */
-(nitmethod_t)VIRTUAL_abstract_compiler__ExternCFile__init, /* pointer to abstract_compiler:ExternCFile:abstract_compiler#ExternCFile#init */
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c:ExternCFile:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c:ExternCFile:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c:ExternCFile:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_c__ExternCFile___61d_61d, /* pointer to c:ExternCFile:c#ExternCFile#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c:ExternCFile:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c:ExternCFile:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c:ExternCFile:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c:ExternCFile:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c:ExternCFile:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_c__ExternCFile__hash, /* pointer to c:ExternCFile:c#ExternCFile#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c:ExternCFile:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c:ExternCFile:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c:ExternCFile:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c:ExternCFile:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c:ExternCFile:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c:ExternCFile:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c:ExternCFile:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c:ExternCFile:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c:ExternCFile:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c:ExternCFile:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c:ExternCFile:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c:ExternCFile:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c:ExternCFile:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c:ExternCFile:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c:ExternCFile:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c:ExternCFile:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c:ExternCFile:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c:ExternCFile:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c:ExternCFile:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c:ExternCFile:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c:ExternCFile:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c:ExternCFile:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c:ExternCFile:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c:ExternCFile:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c:ExternCFile:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c:ExternCFile:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c:ExternCFile:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c:ExternCFile:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c:ExternCFile:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c:ExternCFile:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c:ExternCFile:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c:ExternCFile:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c:ExternCFile:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c:ExternCFile:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c:ExternCFile:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c:ExternCFile:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c:ExternCFile:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c:ExternCFile:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c:ExternCFile:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c:ExternCFile:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c:ExternCFile:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_ffi_base__ExternFile__filename, /* pointer to c:ExternCFile:ffi_base#ExternFile#filename */
+(nitmethod_t)VIRTUAL_ffi_base__ExternFile__filename_61d, /* pointer to c:ExternCFile:ffi_base#ExternFile#filename= */
+(nitmethod_t)VIRTUAL_ffi_base__ExternFile__makefile_rule_name, /* pointer to c:ExternCFile:ffi_base#ExternFile#makefile_rule_name */
+(nitmethod_t)VIRTUAL_ffi_base__ExternFile__makefile_rule_content, /* pointer to c:ExternCFile:ffi_base#ExternFile#makefile_rule_content */
+(nitmethod_t)VIRTUAL_ffi_base__ExternFile__init, /* pointer to c:ExternCFile:ffi_base#ExternFile#init */
+(nitmethod_t)VIRTUAL_c__ExternCFile__init, /* pointer to c:ExternCFile:c#ExternCFile#init */
+(nitmethod_t)VIRTUAL_c__ExternCFile__cflags, /* pointer to c:ExternCFile:c#ExternCFile#cflags */
+(nitmethod_t)VIRTUAL_c__ExternCFile__cflags_61d, /* pointer to c:ExternCFile:c#ExternCFile#cflags= */
 }
 };
 /* allocate ExternCFile */
-val* NEW_abstract_compiler__ExternCFile(const struct type* type) {
+val* NEW_c__ExternCFile(const struct type* type) {
 val* self /* : ExternCFile */;
 self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
 self->type = type;
-self->class = &class_abstract_compiler__ExternCFile;
+self->class = &class_c__ExternCFile;
 return self;
 }
-/* allocate ExternCFile */
-void CHECK_NEW_abstract_compiler__ExternCFile(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var = self->attrs[COLOR_abstract_compiler__ExternCFile___64dfilename].val; /* @filename on <self:ExternCFile> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @filename", "src/abstract_compiler.nit", 1071);
-exit(1);
+/* runtime class c__ForeignCType */
+const struct class class_c__ForeignCType = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c:ForeignCType:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c:ForeignCType:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c:ForeignCType:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to c:ForeignCType:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c:ForeignCType:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c:ForeignCType:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c:ForeignCType:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c:ForeignCType:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c:ForeignCType:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to c:ForeignCType:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c:ForeignCType:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c:ForeignCType:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c:ForeignCType:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c:ForeignCType:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c:ForeignCType:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c:ForeignCType:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c:ForeignCType:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c:ForeignCType:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c:ForeignCType:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c:ForeignCType:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c:ForeignCType:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c:ForeignCType:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c:ForeignCType:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c:ForeignCType:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c:ForeignCType:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c:ForeignCType:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c:ForeignCType:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c:ForeignCType:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c:ForeignCType:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c:ForeignCType:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c:ForeignCType:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c:ForeignCType:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c:ForeignCType:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c:ForeignCType:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c:ForeignCType:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c:ForeignCType:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c:ForeignCType:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c:ForeignCType:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c:ForeignCType:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c:ForeignCType:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c:ForeignCType:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c:ForeignCType:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c:ForeignCType:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c:ForeignCType:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c:ForeignCType:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c:ForeignCType:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c:ForeignCType:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c:ForeignCType:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c:ForeignCType:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c:ForeignCType:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c:ForeignCType:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c__ForeignCType__ctype, /* pointer to c:ForeignCType:c#ForeignCType#ctype */
+(nitmethod_t)VIRTUAL_ffi_base__ForeignType__init, /* pointer to c:ForeignCType:ffi_base#ForeignType#init */
+(nitmethod_t)VIRTUAL_c__ForeignCType__ctype_61d, /* pointer to c:ForeignCType:c#ForeignCType#ctype= */
+(nitmethod_t)VIRTUAL_c__ForeignCType__init, /* pointer to c:ForeignCType:c#ForeignCType#init */
+}
+};
+/* allocate ForeignCType */
+val* NEW_c__ForeignCType(const struct type* type) {
+val* self /* : ForeignCType */;
+self = nit_alloc(sizeof(struct instance) + 1*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_c__ForeignCType;
+return self;
+}
+/* runtime class c__ToCCallContext */
+/* allocate ToCCallContext */
+val* NEW_c__ToCCallContext(const struct type* type) {
+fprintf(stderr, "Runtime error: %s", "ToCCallContext is DEAD");
+fprintf(stderr, "\n");
+show_backtrace(1);
+}
+/* runtime class c__FromCCallContext */
+const struct class class_c__FromCCallContext = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c:FromCCallContext:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c:FromCCallContext:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c:FromCCallContext:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to c:FromCCallContext:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c:FromCCallContext:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c:FromCCallContext:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c:FromCCallContext:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c:FromCCallContext:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c:FromCCallContext:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to c:FromCCallContext:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c:FromCCallContext:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c:FromCCallContext:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c:FromCCallContext:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c:FromCCallContext:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c:FromCCallContext:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c:FromCCallContext:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c:FromCCallContext:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c:FromCCallContext:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c:FromCCallContext:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c:FromCCallContext:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c:FromCCallContext:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c:FromCCallContext:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c:FromCCallContext:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c:FromCCallContext:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c:FromCCallContext:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c:FromCCallContext:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c:FromCCallContext:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c:FromCCallContext:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c:FromCCallContext:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c:FromCCallContext:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c:FromCCallContext:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c:FromCCallContext:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c:FromCCallContext:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c:FromCCallContext:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c:FromCCallContext:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c:FromCCallContext:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c:FromCCallContext:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c:FromCCallContext:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c:FromCCallContext:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c:FromCCallContext:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c:FromCCallContext:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c:FromCCallContext:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c:FromCCallContext:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c:FromCCallContext:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c:FromCCallContext:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c:FromCCallContext:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c:FromCCallContext:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c:FromCCallContext:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c:FromCCallContext:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c:FromCCallContext:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c:FromCCallContext:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c__FromCCallContext__name_mtype, /* pointer to c:FromCCallContext:c#FromCCallContext#name_mtype */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__cast_from, /* pointer to c:FromCCallContext:nitni_utilities#CallContext#cast_from */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__cast_to, /* pointer to c:FromCCallContext:nitni_utilities#CallContext#cast_to */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__init, /* pointer to c:FromCCallContext:nitni_utilities#CallContext#init */
+(nitmethod_t)VIRTUAL_c__FromCCallContext__init, /* pointer to c:FromCCallContext:c#FromCCallContext#init */
+}
+};
+/* allocate FromCCallContext */
+val* NEW_c__FromCCallContext(const struct type* type) {
+val* self /* : FromCCallContext */;
+self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_c__FromCCallContext;
+return self;
+}
+/* runtime class c__ExternCFunction */
+const struct class class_c__ExternCFunction = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c:ExternCFunction:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c:ExternCFunction:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c:ExternCFunction:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to c:ExternCFunction:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c:ExternCFunction:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c:ExternCFunction:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c:ExternCFunction:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c:ExternCFunction:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c:ExternCFunction:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to c:ExternCFunction:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c:ExternCFunction:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c:ExternCFunction:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c:ExternCFunction:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c:ExternCFunction:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c:ExternCFunction:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c:ExternCFunction:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c:ExternCFunction:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c:ExternCFunction:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c:ExternCFunction:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c:ExternCFunction:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c:ExternCFunction:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c:ExternCFunction:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c:ExternCFunction:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c:ExternCFunction:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c:ExternCFunction:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c:ExternCFunction:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c:ExternCFunction:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c:ExternCFunction:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c:ExternCFunction:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c:ExternCFunction:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c:ExternCFunction:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c:ExternCFunction:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c:ExternCFunction:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c:ExternCFunction:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c:ExternCFunction:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c:ExternCFunction:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c:ExternCFunction:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c:ExternCFunction:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c:ExternCFunction:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c:ExternCFunction:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c:ExternCFunction:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c:ExternCFunction:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c:ExternCFunction:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c:ExternCFunction:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c:ExternCFunction:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c:ExternCFunction:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c:ExternCFunction:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c:ExternCFunction:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c:ExternCFunction:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c:ExternCFunction:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c:ExternCFunction:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__signature, /* pointer to c:ExternCFunction:c_tools#CFunction#signature */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__signature_61d, /* pointer to c:ExternCFunction:c_tools#CFunction#signature= */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__decls, /* pointer to c:ExternCFunction:c_tools#CFunction#decls */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__decls_61d, /* pointer to c:ExternCFunction:c_tools#CFunction#decls= */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__exprs, /* pointer to c:ExternCFunction:c_tools#CFunction#exprs */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__exprs_61d, /* pointer to c:ExternCFunction:c_tools#CFunction#exprs= */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__to_writer, /* pointer to c:ExternCFunction:c_tools#CFunction#to_writer */
+(nitmethod_t)VIRTUAL_c_tools__CFunction__init, /* pointer to c:ExternCFunction:c_tools#CFunction#init */
+(nitmethod_t)VIRTUAL_c__ExternCFunction__method, /* pointer to c:ExternCFunction:c#ExternCFunction#method */
+(nitmethod_t)VIRTUAL_c__ExternCFunction__method_61d, /* pointer to c:ExternCFunction:c#ExternCFunction#method= */
+(nitmethod_t)VIRTUAL_c__ExternCFunction__init, /* pointer to c:ExternCFunction:c#ExternCFunction#init */
+}
+};
+/* allocate ExternCFunction */
+val* NEW_c__ExternCFunction(const struct type* type) {
+val* self /* : ExternCFunction */;
+val* var /* : Template */;
+val* var1 /* : Template */;
+self = nit_alloc(sizeof(struct instance) + 4*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_c__ExternCFunction;
+var = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var->class->vft[COLOR_template__Template__init]))(var) /* init on <var:Template>*/;
+self->attrs[COLOR_c_tools__CFunction___64ddecls].val = var; /* @decls on <self:ExternCFunction exact> */
+var1 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var1->class->vft[COLOR_template__Template__init]))(var1) /* init on <var1:Template>*/;
+self->attrs[COLOR_c_tools__CFunction___64dexprs].val = var1; /* @exprs on <self:ExternCFunction exact> */
+return self;
+}
+/* runtime class pkgconfig__PkgconfigPhase */
+const struct class class_pkgconfig__PkgconfigPhase = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to pkgconfig:PkgconfigPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to pkgconfig:PkgconfigPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to pkgconfig:PkgconfigPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to pkgconfig:PkgconfigPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to pkgconfig:PkgconfigPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to pkgconfig:PkgconfigPhase:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to pkgconfig:PkgconfigPhase:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to pkgconfig:PkgconfigPhase:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to pkgconfig:PkgconfigPhase:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to pkgconfig:PkgconfigPhase:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to pkgconfig:PkgconfigPhase:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to pkgconfig:PkgconfigPhase:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to pkgconfig:PkgconfigPhase:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to pkgconfig:PkgconfigPhase:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to pkgconfig:PkgconfigPhase:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to pkgconfig:PkgconfigPhase:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to pkgconfig:PkgconfigPhase:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to pkgconfig:PkgconfigPhase:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to pkgconfig:PkgconfigPhase:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to pkgconfig:PkgconfigPhase:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to pkgconfig:PkgconfigPhase:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to pkgconfig:PkgconfigPhase:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to pkgconfig:PkgconfigPhase:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to pkgconfig:PkgconfigPhase:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to pkgconfig:PkgconfigPhase:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to pkgconfig:PkgconfigPhase:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to pkgconfig:PkgconfigPhase:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to pkgconfig:PkgconfigPhase:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to pkgconfig:PkgconfigPhase:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to pkgconfig:PkgconfigPhase:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to pkgconfig:PkgconfigPhase:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to pkgconfig:PkgconfigPhase:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to pkgconfig:PkgconfigPhase:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to pkgconfig:PkgconfigPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to pkgconfig:PkgconfigPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to pkgconfig:PkgconfigPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to pkgconfig:PkgconfigPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to pkgconfig:PkgconfigPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to pkgconfig:PkgconfigPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to pkgconfig:PkgconfigPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to pkgconfig:PkgconfigPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to pkgconfig:PkgconfigPhase:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to pkgconfig:PkgconfigPhase:phase#Phase#toolcontext */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to pkgconfig:PkgconfigPhase:phase#Phase#toolcontext= */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to pkgconfig:PkgconfigPhase:phase#Phase#in_hierarchy */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy_61d, /* pointer to pkgconfig:PkgconfigPhase:phase#Phase#in_hierarchy= */
+(nitmethod_t)VIRTUAL_phase__Phase__init, /* pointer to pkgconfig:PkgconfigPhase:phase#Phase#init */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nmodule, /* pointer to pkgconfig:PkgconfigPhase:phase#Phase#process_nmodule */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to pkgconfig:PkgconfigPhase:phase#Phase#process_nclassdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to pkgconfig:PkgconfigPhase:phase#Phase#process_npropdef */
+(nitmethod_t)VIRTUAL_pkgconfig__PkgconfigPhase__process_annotated_node, /* pointer to pkgconfig:PkgconfigPhase:pkgconfig#PkgconfigPhase#process_annotated_node */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to pkgconfig:PkgconfigPhase:modelbuilder#Phase#process_mainmodule */
+}
+};
+/* allocate PkgconfigPhase */
+val* NEW_pkgconfig__PkgconfigPhase(const struct type* type) {
+val* self /* : PkgconfigPhase */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_pkgconfig__PkgconfigPhase;
+return self;
+}
+/* runtime class c_compiler_options__CCompilerOptionsPhase */
+const struct class class_c_compiler_options__CCompilerOptionsPhase = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to c_compiler_options:CCompilerOptionsPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c_compiler_options:CCompilerOptionsPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c_compiler_options:CCompilerOptionsPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c_compiler_options:CCompilerOptionsPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c_compiler_options:CCompilerOptionsPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c_compiler_options:CCompilerOptionsPhase:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c_compiler_options:CCompilerOptionsPhase:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c_compiler_options:CCompilerOptionsPhase:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c_compiler_options:CCompilerOptionsPhase:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c_compiler_options:CCompilerOptionsPhase:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c_compiler_options:CCompilerOptionsPhase:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c_compiler_options:CCompilerOptionsPhase:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c_compiler_options:CCompilerOptionsPhase:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c_compiler_options:CCompilerOptionsPhase:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c_compiler_options:CCompilerOptionsPhase:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c_compiler_options:CCompilerOptionsPhase:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c_compiler_options:CCompilerOptionsPhase:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c_compiler_options:CCompilerOptionsPhase:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c_compiler_options:CCompilerOptionsPhase:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c_compiler_options:CCompilerOptionsPhase:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c_compiler_options:CCompilerOptionsPhase:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c_compiler_options:CCompilerOptionsPhase:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c_compiler_options:CCompilerOptionsPhase:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c_compiler_options:CCompilerOptionsPhase:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c_compiler_options:CCompilerOptionsPhase:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c_compiler_options:CCompilerOptionsPhase:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c_compiler_options:CCompilerOptionsPhase:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c_compiler_options:CCompilerOptionsPhase:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c_compiler_options:CCompilerOptionsPhase:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c_compiler_options:CCompilerOptionsPhase:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c_compiler_options:CCompilerOptionsPhase:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c_compiler_options:CCompilerOptionsPhase:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c_compiler_options:CCompilerOptionsPhase:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c_compiler_options:CCompilerOptionsPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c_compiler_options:CCompilerOptionsPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c_compiler_options:CCompilerOptionsPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c_compiler_options:CCompilerOptionsPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c_compiler_options:CCompilerOptionsPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c_compiler_options:CCompilerOptionsPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c_compiler_options:CCompilerOptionsPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c_compiler_options:CCompilerOptionsPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c_compiler_options:CCompilerOptionsPhase:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to c_compiler_options:CCompilerOptionsPhase:phase#Phase#toolcontext */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to c_compiler_options:CCompilerOptionsPhase:phase#Phase#toolcontext= */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to c_compiler_options:CCompilerOptionsPhase:phase#Phase#in_hierarchy */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy_61d, /* pointer to c_compiler_options:CCompilerOptionsPhase:phase#Phase#in_hierarchy= */
+(nitmethod_t)VIRTUAL_phase__Phase__init, /* pointer to c_compiler_options:CCompilerOptionsPhase:phase#Phase#init */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nmodule, /* pointer to c_compiler_options:CCompilerOptionsPhase:phase#Phase#process_nmodule */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to c_compiler_options:CCompilerOptionsPhase:phase#Phase#process_nclassdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to c_compiler_options:CCompilerOptionsPhase:phase#Phase#process_npropdef */
+(nitmethod_t)VIRTUAL_c_compiler_options__CCompilerOptionsPhase__process_annotated_node, /* pointer to c_compiler_options:CCompilerOptionsPhase:c_compiler_options#CCompilerOptionsPhase#process_annotated_node */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to c_compiler_options:CCompilerOptionsPhase:modelbuilder#Phase#process_mainmodule */
+(nitmethod_t)VIRTUAL_c_compiler_options__CCompilerOptionsPhase__compiler_annotation_name, /* pointer to c_compiler_options:CCompilerOptionsPhase:c_compiler_options#CCompilerOptionsPhase#compiler_annotation_name */
+(nitmethod_t)VIRTUAL_c_compiler_options__CCompilerOptionsPhase__linker_annotation_name, /* pointer to c_compiler_options:CCompilerOptionsPhase:c_compiler_options#CCompilerOptionsPhase#linker_annotation_name */
+(nitmethod_t)VIRTUAL_c_compiler_options__CCompilerOptionsPhase__cpp_compiler_annotation_name, /* pointer to c_compiler_options:CCompilerOptionsPhase:c_compiler_options#CCompilerOptionsPhase#cpp_compiler_annotation_name */
+(nitmethod_t)VIRTUAL_c_compiler_options__CCompilerOptionsPhase__process_c_compiler_annotation, /* pointer to c_compiler_options:CCompilerOptionsPhase:c_compiler_options#CCompilerOptionsPhase#process_c_compiler_annotation */
+(nitmethod_t)VIRTUAL_c_compiler_options__CCompilerOptionsPhase__process_c_linker_annotation, /* pointer to c_compiler_options:CCompilerOptionsPhase:c_compiler_options#CCompilerOptionsPhase#process_c_linker_annotation */
+(nitmethod_t)VIRTUAL_c_compiler_options__CCompilerOptionsPhase__process_cpp_compiler_annotation, /* pointer to c_compiler_options:CCompilerOptionsPhase:c_compiler_options#CCompilerOptionsPhase#process_cpp_compiler_annotation */
+}
+};
+/* allocate CCompilerOptionsPhase */
+val* NEW_c_compiler_options__CCompilerOptionsPhase(const struct type* type) {
+val* self /* : CCompilerOptionsPhase */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_c_compiler_options__CCompilerOptionsPhase;
+return self;
+}
+/* runtime class c_compiler_options__DirectCCompilerOption */
+const struct class class_c_compiler_options__DirectCCompilerOption = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to c_compiler_options:DirectCCompilerOption:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c_compiler_options:DirectCCompilerOption:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c_compiler_options:DirectCCompilerOption:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c_compiler_options:DirectCCompilerOption:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c_compiler_options:DirectCCompilerOption:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c_compiler_options:DirectCCompilerOption:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c_compiler_options:DirectCCompilerOption:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c_compiler_options:DirectCCompilerOption:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c_compiler_options:DirectCCompilerOption:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c_compiler_options:DirectCCompilerOption:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c_compiler_options:DirectCCompilerOption:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c_compiler_options:DirectCCompilerOption:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c_compiler_options:DirectCCompilerOption:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c_compiler_options:DirectCCompilerOption:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c_compiler_options:DirectCCompilerOption:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c_compiler_options:DirectCCompilerOption:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c_compiler_options:DirectCCompilerOption:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c_compiler_options:DirectCCompilerOption:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c_compiler_options:DirectCCompilerOption:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c_compiler_options:DirectCCompilerOption:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c_compiler_options:DirectCCompilerOption:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c_compiler_options:DirectCCompilerOption:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c_compiler_options:DirectCCompilerOption:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c_compiler_options:DirectCCompilerOption:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c_compiler_options:DirectCCompilerOption:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c_compiler_options:DirectCCompilerOption:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c_compiler_options:DirectCCompilerOption:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c_compiler_options:DirectCCompilerOption:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c_compiler_options:DirectCCompilerOption:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c_compiler_options:DirectCCompilerOption:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c_compiler_options:DirectCCompilerOption:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c_compiler_options:DirectCCompilerOption:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c_compiler_options:DirectCCompilerOption:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c_compiler_options:DirectCCompilerOption:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c_compiler_options:DirectCCompilerOption:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c_compiler_options:DirectCCompilerOption:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c_compiler_options:DirectCCompilerOption:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c_compiler_options:DirectCCompilerOption:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c_compiler_options:DirectCCompilerOption:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c_compiler_options:DirectCCompilerOption:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c_compiler_options:DirectCCompilerOption:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c_compiler_options:DirectCCompilerOption:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c_compiler_options__CCompilerOption__init, /* pointer to c_compiler_options:DirectCCompilerOption:c_compiler_options#CCompilerOption#init */
+(nitmethod_t)VIRTUAL_c_compiler_options__DirectCCompilerOption__option, /* pointer to c_compiler_options:DirectCCompilerOption:c_compiler_options#DirectCCompilerOption#option */
+(nitmethod_t)VIRTUAL_c_compiler_options__DirectCCompilerOption__option_61d, /* pointer to c_compiler_options:DirectCCompilerOption:c_compiler_options#DirectCCompilerOption#option= */
+(nitmethod_t)VIRTUAL_c_compiler_options__DirectCCompilerOption__init, /* pointer to c_compiler_options:DirectCCompilerOption:c_compiler_options#DirectCCompilerOption#init */
+}
+};
+/* allocate DirectCCompilerOption */
+val* NEW_c_compiler_options__DirectCCompilerOption(const struct type* type) {
+val* self /* : DirectCCompilerOption */;
+self = nit_alloc(sizeof(struct instance) + 1*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_c_compiler_options__DirectCCompilerOption;
+return self;
+}
+/* runtime class c_compiler_options__ExecCCompilerOption */
+const struct class class_c_compiler_options__ExecCCompilerOption = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to c_compiler_options:ExecCCompilerOption:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to c_compiler_options:ExecCCompilerOption:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to c_compiler_options:ExecCCompilerOption:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to c_compiler_options:ExecCCompilerOption:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to c_compiler_options:ExecCCompilerOption:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to c_compiler_options:ExecCCompilerOption:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to c_compiler_options:ExecCCompilerOption:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to c_compiler_options:ExecCCompilerOption:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to c_compiler_options:ExecCCompilerOption:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to c_compiler_options:ExecCCompilerOption:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to c_compiler_options:ExecCCompilerOption:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to c_compiler_options:ExecCCompilerOption:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to c_compiler_options:ExecCCompilerOption:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to c_compiler_options:ExecCCompilerOption:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to c_compiler_options:ExecCCompilerOption:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to c_compiler_options:ExecCCompilerOption:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to c_compiler_options:ExecCCompilerOption:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to c_compiler_options:ExecCCompilerOption:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to c_compiler_options:ExecCCompilerOption:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to c_compiler_options:ExecCCompilerOption:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to c_compiler_options:ExecCCompilerOption:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to c_compiler_options:ExecCCompilerOption:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to c_compiler_options:ExecCCompilerOption:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to c_compiler_options:ExecCCompilerOption:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to c_compiler_options:ExecCCompilerOption:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to c_compiler_options:ExecCCompilerOption:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to c_compiler_options:ExecCCompilerOption:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to c_compiler_options:ExecCCompilerOption:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to c_compiler_options:ExecCCompilerOption:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to c_compiler_options:ExecCCompilerOption:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to c_compiler_options:ExecCCompilerOption:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to c_compiler_options:ExecCCompilerOption:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to c_compiler_options:ExecCCompilerOption:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to c_compiler_options:ExecCCompilerOption:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to c_compiler_options:ExecCCompilerOption:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to c_compiler_options:ExecCCompilerOption:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to c_compiler_options:ExecCCompilerOption:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to c_compiler_options:ExecCCompilerOption:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to c_compiler_options:ExecCCompilerOption:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to c_compiler_options:ExecCCompilerOption:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to c_compiler_options:ExecCCompilerOption:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to c_compiler_options:ExecCCompilerOption:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c_compiler_options__CCompilerOption__init, /* pointer to c_compiler_options:ExecCCompilerOption:c_compiler_options#CCompilerOption#init */
+(nitmethod_t)VIRTUAL_c_compiler_options__ExecCCompilerOption__command, /* pointer to c_compiler_options:ExecCCompilerOption:c_compiler_options#ExecCCompilerOption#command */
+(nitmethod_t)VIRTUAL_c_compiler_options__ExecCCompilerOption__command_61d, /* pointer to c_compiler_options:ExecCCompilerOption:c_compiler_options#ExecCCompilerOption#command= */
+(nitmethod_t)VIRTUAL_c_compiler_options__ExecCCompilerOption__exec_node, /* pointer to c_compiler_options:ExecCCompilerOption:c_compiler_options#ExecCCompilerOption#exec_node */
+(nitmethod_t)VIRTUAL_c_compiler_options__ExecCCompilerOption__exec_node_61d, /* pointer to c_compiler_options:ExecCCompilerOption:c_compiler_options#ExecCCompilerOption#exec_node= */
+(nitmethod_t)VIRTUAL_c_compiler_options__ExecCCompilerOption__init, /* pointer to c_compiler_options:ExecCCompilerOption:c_compiler_options#ExecCCompilerOption#init */
+}
+};
+/* allocate ExecCCompilerOption */
+val* NEW_c_compiler_options__ExecCCompilerOption(const struct type* type) {
+val* self /* : ExecCCompilerOption */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_c_compiler_options__ExecCCompilerOption;
+return self;
+}
+/* runtime class cpp__CPPLanguage */
+const struct class class_cpp__CPPLanguage = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to cpp:CPPLanguage:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to cpp:CPPLanguage:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to cpp:CPPLanguage:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to cpp:CPPLanguage:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to cpp:CPPLanguage:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to cpp:CPPLanguage:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to cpp:CPPLanguage:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to cpp:CPPLanguage:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to cpp:CPPLanguage:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to cpp:CPPLanguage:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to cpp:CPPLanguage:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to cpp:CPPLanguage:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to cpp:CPPLanguage:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to cpp:CPPLanguage:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to cpp:CPPLanguage:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to cpp:CPPLanguage:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to cpp:CPPLanguage:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to cpp:CPPLanguage:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to cpp:CPPLanguage:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to cpp:CPPLanguage:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to cpp:CPPLanguage:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to cpp:CPPLanguage:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to cpp:CPPLanguage:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to cpp:CPPLanguage:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to cpp:CPPLanguage:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to cpp:CPPLanguage:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to cpp:CPPLanguage:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to cpp:CPPLanguage:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to cpp:CPPLanguage:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to cpp:CPPLanguage:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to cpp:CPPLanguage:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to cpp:CPPLanguage:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to cpp:CPPLanguage:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to cpp:CPPLanguage:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to cpp:CPPLanguage:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to cpp:CPPLanguage:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to cpp:CPPLanguage:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to cpp:CPPLanguage:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to cpp:CPPLanguage:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to cpp:CPPLanguage:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to cpp:CPPLanguage:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to cpp:CPPLanguage:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to cpp:CPPLanguage:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to cpp:CPPLanguage:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to cpp:CPPLanguage:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to cpp:CPPLanguage:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to cpp:CPPLanguage:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to cpp:CPPLanguage:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to cpp:CPPLanguage:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to cpp:CPPLanguage:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to cpp:CPPLanguage:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_ffi_base__FFILanguage__init, /* pointer to cpp:CPPLanguage:ffi_base#FFILanguage#init */
+(nitmethod_t)VIRTUAL_cpp__CPPLanguage__identify_language, /* pointer to cpp:CPPLanguage:cpp#CPPLanguage#identify_language */
+(nitmethod_t)VIRTUAL_cpp__CPPLanguage__compile_module_block, /* pointer to cpp:CPPLanguage:cpp#CPPLanguage#compile_module_block */
+(nitmethod_t)VIRTUAL_cpp__CPPLanguage__compile_extern_method, /* pointer to cpp:CPPLanguage:cpp#CPPLanguage#compile_extern_method */
+(nitmethod_t)VIRTUAL_cpp__CPPLanguage__compile_extern_class, /* pointer to cpp:CPPLanguage:cpp#CPPLanguage#compile_extern_class */
+(nitmethod_t)VIRTUAL_cpp__CPPLanguage__get_ftype, /* pointer to cpp:CPPLanguage:cpp#CPPLanguage#get_ftype */
+(nitmethod_t)VIRTUAL_cpp__CPPLanguage__compile_callback, /* pointer to cpp:CPPLanguage:cpp#CPPLanguage#compile_callback */
+(nitmethod_t)VIRTUAL_cpp__CPPLanguage__compile_to_files, /* pointer to cpp:CPPLanguage:cpp#CPPLanguage#compile_to_files */
+}
+};
+/* allocate CPPLanguage */
+val* NEW_cpp__CPPLanguage(const struct type* type) {
+val* self /* : CPPLanguage */;
+self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_cpp__CPPLanguage;
+return self;
+}
+/* runtime class cpp__CPPCompilationUnit */
+const struct class class_cpp__CPPCompilationUnit = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to cpp:CPPCompilationUnit:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to cpp:CPPCompilationUnit:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to cpp:CPPCompilationUnit:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to cpp:CPPCompilationUnit:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to cpp:CPPCompilationUnit:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to cpp:CPPCompilationUnit:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to cpp:CPPCompilationUnit:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to cpp:CPPCompilationUnit:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to cpp:CPPCompilationUnit:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to cpp:CPPCompilationUnit:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to cpp:CPPCompilationUnit:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to cpp:CPPCompilationUnit:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to cpp:CPPCompilationUnit:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to cpp:CPPCompilationUnit:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to cpp:CPPCompilationUnit:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to cpp:CPPCompilationUnit:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to cpp:CPPCompilationUnit:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to cpp:CPPCompilationUnit:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to cpp:CPPCompilationUnit:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to cpp:CPPCompilationUnit:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to cpp:CPPCompilationUnit:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to cpp:CPPCompilationUnit:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to cpp:CPPCompilationUnit:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to cpp:CPPCompilationUnit:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to cpp:CPPCompilationUnit:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to cpp:CPPCompilationUnit:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to cpp:CPPCompilationUnit:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to cpp:CPPCompilationUnit:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to cpp:CPPCompilationUnit:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to cpp:CPPCompilationUnit:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to cpp:CPPCompilationUnit:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to cpp:CPPCompilationUnit:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to cpp:CPPCompilationUnit:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to cpp:CPPCompilationUnit:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to cpp:CPPCompilationUnit:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to cpp:CPPCompilationUnit:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to cpp:CPPCompilationUnit:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to cpp:CPPCompilationUnit:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to cpp:CPPCompilationUnit:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to cpp:CPPCompilationUnit:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to cpp:CPPCompilationUnit:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to cpp:CPPCompilationUnit:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to cpp:CPPCompilationUnit:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to cpp:CPPCompilationUnit:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to cpp:CPPCompilationUnit:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to cpp:CPPCompilationUnit:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to cpp:CPPCompilationUnit:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to cpp:CPPCompilationUnit:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to cpp:CPPCompilationUnit:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to cpp:CPPCompilationUnit:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to cpp:CPPCompilationUnit:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_c_base, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#header_c_base */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_c_base_61d, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#header_c_base= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_custom, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#header_custom */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_custom_61d, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#header_custom= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_c_types, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#header_c_types */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_c_types_61d, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#header_c_types= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_decl, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#header_decl */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__header_decl_61d, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#header_decl= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_decl, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#body_decl */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_decl_61d, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#body_decl= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_custom, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#body_custom */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_custom_61d, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#body_custom= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_impl, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#body_impl */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__body_impl_61d, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#body_impl= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__files, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#files */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__files_61d, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#files= */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__add_local_function, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#add_local_function */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__add_exported_function, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#add_exported_function */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__compile_header_core, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#compile_header_core */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__compile_body_core, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#compile_body_core */
+(nitmethod_t)VIRTUAL_c_tools__CCompilationUnit__init, /* pointer to cpp:CPPCompilationUnit:c_tools#CCompilationUnit#init */
+(nitmethod_t)VIRTUAL_ffi_base__CCompilationUnit__write_as_impl, /* pointer to cpp:CPPCompilationUnit:ffi_base#CCompilationUnit#write_as_impl */
+(nitmethod_t)VIRTUAL_ffi_base__CCompilationUnit__write_header_to_file, /* pointer to cpp:CPPCompilationUnit:ffi_base#CCompilationUnit#write_header_to_file */
+(nitmethod_t)VIRTUAL_ffi_base__CCompilationUnit__write_body_to_file, /* pointer to cpp:CPPCompilationUnit:ffi_base#CCompilationUnit#write_body_to_file */
+(nitmethod_t)VIRTUAL_compiler_ffi__CCompilationUnit__write_as_nitni, /* pointer to cpp:CPPCompilationUnit:compiler_ffi#CCompilationUnit#write_as_nitni */
+(nitmethod_t)VIRTUAL_cpp__CPPCompilationUnit__write_to_files, /* pointer to cpp:CPPCompilationUnit:cpp#CPPCompilationUnit#write_to_files */
+(nitmethod_t)VIRTUAL_cpp__CPPCompilationUnit__init, /* pointer to cpp:CPPCompilationUnit:cpp#CPPCompilationUnit#init */
+}
+};
+/* allocate CPPCompilationUnit */
+val* NEW_cpp__CPPCompilationUnit(const struct type* type) {
+val* self /* : CPPCompilationUnit */;
+val* var /* : Template */;
+val* var1 /* : Template */;
+val* var2 /* : Template */;
+val* var3 /* : Template */;
+val* var4 /* : Template */;
+val* var5 /* : Template */;
+val* var6 /* : Template */;
+val* var7 /* : Array[String] */;
+self = nit_alloc(sizeof(struct instance) + 8*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_cpp__CPPCompilationUnit;
+var = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var->class->vft[COLOR_template__Template__init]))(var) /* init on <var:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dheader_c_base].val = var; /* @header_c_base on <self:CPPCompilationUnit exact> */
+var1 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var1->class->vft[COLOR_template__Template__init]))(var1) /* init on <var1:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dheader_custom].val = var1; /* @header_custom on <self:CPPCompilationUnit exact> */
+var2 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var2->class->vft[COLOR_template__Template__init]))(var2) /* init on <var2:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dheader_c_types].val = var2; /* @header_c_types on <self:CPPCompilationUnit exact> */
+var3 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var3->class->vft[COLOR_template__Template__init]))(var3) /* init on <var3:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dheader_decl].val = var3; /* @header_decl on <self:CPPCompilationUnit exact> */
+var4 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var4->class->vft[COLOR_template__Template__init]))(var4) /* init on <var4:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dbody_decl].val = var4; /* @body_decl on <self:CPPCompilationUnit exact> */
+var5 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var5->class->vft[COLOR_template__Template__init]))(var5) /* init on <var5:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dbody_custom].val = var5; /* @body_custom on <self:CPPCompilationUnit exact> */
+var6 = NEW_template__Template(&type_template__Template);
+((void (*)(val*))(var6->class->vft[COLOR_template__Template__init]))(var6) /* init on <var6:Template>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dbody_impl].val = var6; /* @body_impl on <self:CPPCompilationUnit exact> */
+var7 = NEW_array__Array(&type_array__Arraystring__String);
+((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on <var7:Array[String]>*/;
+self->attrs[COLOR_c_tools__CCompilationUnit___64dfiles].val = var7; /* @files on <self:CPPCompilationUnit exact> */
+return self;
+}
+/* runtime class cpp__ExternCppFile */
+const struct class class_cpp__ExternCppFile = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to cpp:ExternCppFile:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to cpp:ExternCppFile:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to cpp:ExternCppFile:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to cpp:ExternCppFile:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to cpp:ExternCppFile:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to cpp:ExternCppFile:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to cpp:ExternCppFile:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to cpp:ExternCppFile:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to cpp:ExternCppFile:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to cpp:ExternCppFile:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to cpp:ExternCppFile:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to cpp:ExternCppFile:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to cpp:ExternCppFile:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to cpp:ExternCppFile:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to cpp:ExternCppFile:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to cpp:ExternCppFile:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to cpp:ExternCppFile:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to cpp:ExternCppFile:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to cpp:ExternCppFile:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to cpp:ExternCppFile:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to cpp:ExternCppFile:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to cpp:ExternCppFile:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to cpp:ExternCppFile:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to cpp:ExternCppFile:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to cpp:ExternCppFile:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to cpp:ExternCppFile:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to cpp:ExternCppFile:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to cpp:ExternCppFile:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to cpp:ExternCppFile:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to cpp:ExternCppFile:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to cpp:ExternCppFile:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to cpp:ExternCppFile:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to cpp:ExternCppFile:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to cpp:ExternCppFile:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to cpp:ExternCppFile:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to cpp:ExternCppFile:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to cpp:ExternCppFile:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to cpp:ExternCppFile:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to cpp:ExternCppFile:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to cpp:ExternCppFile:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to cpp:ExternCppFile:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to cpp:ExternCppFile:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to cpp:ExternCppFile:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to cpp:ExternCppFile:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to cpp:ExternCppFile:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to cpp:ExternCppFile:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to cpp:ExternCppFile:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to cpp:ExternCppFile:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to cpp:ExternCppFile:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to cpp:ExternCppFile:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to cpp:ExternCppFile:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_ffi_base__ExternFile__filename, /* pointer to cpp:ExternCppFile:ffi_base#ExternFile#filename */
+(nitmethod_t)VIRTUAL_ffi_base__ExternFile__filename_61d, /* pointer to cpp:ExternCppFile:ffi_base#ExternFile#filename= */
+(nitmethod_t)VIRTUAL_cpp__ExternCppFile__makefile_rule_name, /* pointer to cpp:ExternCppFile:cpp#ExternCppFile#makefile_rule_name */
+(nitmethod_t)VIRTUAL_cpp__ExternCppFile__makefile_rule_content, /* pointer to cpp:ExternCppFile:cpp#ExternCppFile#makefile_rule_content */
+(nitmethod_t)VIRTUAL_ffi_base__ExternFile__init, /* pointer to cpp:ExternCppFile:ffi_base#ExternFile#init */
+(nitmethod_t)VIRTUAL_cpp__ExternCppFile__amodule, /* pointer to cpp:ExternCppFile:cpp#ExternCppFile#amodule */
+(nitmethod_t)VIRTUAL_cpp__ExternCppFile__amodule_61d, /* pointer to cpp:ExternCppFile:cpp#ExternCppFile#amodule= */
+(nitmethod_t)VIRTUAL_cpp__ExternCppFile__init, /* pointer to cpp:ExternCppFile:cpp#ExternCppFile#init */
+}
+};
+/* allocate ExternCppFile */
+val* NEW_cpp__ExternCppFile(const struct type* type) {
+val* self /* : ExternCppFile */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_cpp__ExternCppFile;
+return self;
+}
+/* runtime class cpp__ForeignCppType */
+const struct class class_cpp__ForeignCppType = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to cpp:ForeignCppType:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to cpp:ForeignCppType:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to cpp:ForeignCppType:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to cpp:ForeignCppType:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to cpp:ForeignCppType:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to cpp:ForeignCppType:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to cpp:ForeignCppType:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to cpp:ForeignCppType:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to cpp:ForeignCppType:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to cpp:ForeignCppType:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to cpp:ForeignCppType:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to cpp:ForeignCppType:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to cpp:ForeignCppType:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to cpp:ForeignCppType:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to cpp:ForeignCppType:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to cpp:ForeignCppType:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to cpp:ForeignCppType:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to cpp:ForeignCppType:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to cpp:ForeignCppType:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to cpp:ForeignCppType:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to cpp:ForeignCppType:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to cpp:ForeignCppType:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to cpp:ForeignCppType:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to cpp:ForeignCppType:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to cpp:ForeignCppType:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to cpp:ForeignCppType:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to cpp:ForeignCppType:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to cpp:ForeignCppType:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to cpp:ForeignCppType:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to cpp:ForeignCppType:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to cpp:ForeignCppType:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to cpp:ForeignCppType:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to cpp:ForeignCppType:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to cpp:ForeignCppType:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to cpp:ForeignCppType:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to cpp:ForeignCppType:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to cpp:ForeignCppType:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to cpp:ForeignCppType:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to cpp:ForeignCppType:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to cpp:ForeignCppType:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to cpp:ForeignCppType:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to cpp:ForeignCppType:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to cpp:ForeignCppType:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to cpp:ForeignCppType:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to cpp:ForeignCppType:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to cpp:ForeignCppType:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to cpp:ForeignCppType:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to cpp:ForeignCppType:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to cpp:ForeignCppType:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to cpp:ForeignCppType:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to cpp:ForeignCppType:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_ffi_base__ForeignType__ctype, /* pointer to cpp:ForeignCppType:ffi_base#ForeignType#ctype */
+(nitmethod_t)VIRTUAL_ffi_base__ForeignType__init, /* pointer to cpp:ForeignCppType:ffi_base#ForeignType#init */
+(nitmethod_t)VIRTUAL_cpp__ForeignCppType__cpp_type, /* pointer to cpp:ForeignCppType:cpp#ForeignCppType#cpp_type */
+(nitmethod_t)VIRTUAL_cpp__ForeignCppType__cpp_type_61d, /* pointer to cpp:ForeignCppType:cpp#ForeignCppType#cpp_type= */
+(nitmethod_t)VIRTUAL_cpp__ForeignCppType__init, /* pointer to cpp:ForeignCppType:cpp#ForeignCppType#init */
+}
+};
+/* allocate ForeignCppType */
+val* NEW_cpp__ForeignCppType(const struct type* type) {
+val* self /* : ForeignCppType */;
+self = nit_alloc(sizeof(struct instance) + 1*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_cpp__ForeignCppType;
+return self;
+}
+/* runtime class cpp__CppCallContext */
+const struct class class_cpp__CppCallContext = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to cpp:CppCallContext:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to cpp:CppCallContext:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to cpp:CppCallContext:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to cpp:CppCallContext:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to cpp:CppCallContext:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to cpp:CppCallContext:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to cpp:CppCallContext:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to cpp:CppCallContext:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to cpp:CppCallContext:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to cpp:CppCallContext:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to cpp:CppCallContext:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to cpp:CppCallContext:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to cpp:CppCallContext:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to cpp:CppCallContext:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to cpp:CppCallContext:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to cpp:CppCallContext:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to cpp:CppCallContext:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to cpp:CppCallContext:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to cpp:CppCallContext:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to cpp:CppCallContext:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to cpp:CppCallContext:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to cpp:CppCallContext:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to cpp:CppCallContext:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to cpp:CppCallContext:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to cpp:CppCallContext:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to cpp:CppCallContext:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to cpp:CppCallContext:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to cpp:CppCallContext:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to cpp:CppCallContext:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to cpp:CppCallContext:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to cpp:CppCallContext:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to cpp:CppCallContext:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to cpp:CppCallContext:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to cpp:CppCallContext:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to cpp:CppCallContext:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to cpp:CppCallContext:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to cpp:CppCallContext:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to cpp:CppCallContext:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to cpp:CppCallContext:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to cpp:CppCallContext:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to cpp:CppCallContext:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to cpp:CppCallContext:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to cpp:CppCallContext:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to cpp:CppCallContext:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to cpp:CppCallContext:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to cpp:CppCallContext:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to cpp:CppCallContext:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to cpp:CppCallContext:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to cpp:CppCallContext:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to cpp:CppCallContext:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to cpp:CppCallContext:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__CppCallContext__name_mtype, /* pointer to cpp:CppCallContext:cpp#CppCallContext#name_mtype */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__cast_from, /* pointer to cpp:CppCallContext:nitni_utilities#CallContext#cast_from */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__cast_to, /* pointer to cpp:CppCallContext:nitni_utilities#CallContext#cast_to */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__init, /* pointer to cpp:CppCallContext:nitni_utilities#CallContext#init */
+(nitmethod_t)VIRTUAL_cpp__CppCallContext__init, /* pointer to cpp:CppCallContext:cpp#CppCallContext#init */
+}
+};
+/* allocate CppCallContext */
+val* NEW_cpp__CppCallContext(const struct type* type) {
+val* self /* : CppCallContext */;
+self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_cpp__CppCallContext;
+return self;
+}
+/* runtime class cpp__ToCppCallContext */
+const struct class class_cpp__ToCppCallContext = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to cpp:ToCppCallContext:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to cpp:ToCppCallContext:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to cpp:ToCppCallContext:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to cpp:ToCppCallContext:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to cpp:ToCppCallContext:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to cpp:ToCppCallContext:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to cpp:ToCppCallContext:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to cpp:ToCppCallContext:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to cpp:ToCppCallContext:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to cpp:ToCppCallContext:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to cpp:ToCppCallContext:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to cpp:ToCppCallContext:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to cpp:ToCppCallContext:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to cpp:ToCppCallContext:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to cpp:ToCppCallContext:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to cpp:ToCppCallContext:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to cpp:ToCppCallContext:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to cpp:ToCppCallContext:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to cpp:ToCppCallContext:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to cpp:ToCppCallContext:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to cpp:ToCppCallContext:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to cpp:ToCppCallContext:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to cpp:ToCppCallContext:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to cpp:ToCppCallContext:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to cpp:ToCppCallContext:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to cpp:ToCppCallContext:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to cpp:ToCppCallContext:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to cpp:ToCppCallContext:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to cpp:ToCppCallContext:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to cpp:ToCppCallContext:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to cpp:ToCppCallContext:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to cpp:ToCppCallContext:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to cpp:ToCppCallContext:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to cpp:ToCppCallContext:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to cpp:ToCppCallContext:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to cpp:ToCppCallContext:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to cpp:ToCppCallContext:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to cpp:ToCppCallContext:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to cpp:ToCppCallContext:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to cpp:ToCppCallContext:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to cpp:ToCppCallContext:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to cpp:ToCppCallContext:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to cpp:ToCppCallContext:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to cpp:ToCppCallContext:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to cpp:ToCppCallContext:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to cpp:ToCppCallContext:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to cpp:ToCppCallContext:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to cpp:ToCppCallContext:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to cpp:ToCppCallContext:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to cpp:ToCppCallContext:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to cpp:ToCppCallContext:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__CppCallContext__name_mtype, /* pointer to cpp:ToCppCallContext:cpp#CppCallContext#name_mtype */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__cast_from, /* pointer to cpp:ToCppCallContext:nitni_utilities#CallContext#cast_from */
+(nitmethod_t)VIRTUAL_cpp__ToCppCallContext__cast_to, /* pointer to cpp:ToCppCallContext:cpp#ToCppCallContext#cast_to */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__init, /* pointer to cpp:ToCppCallContext:nitni_utilities#CallContext#init */
+(nitmethod_t)VIRTUAL_cpp__CppCallContext__init, /* pointer to cpp:ToCppCallContext:cpp#CppCallContext#init */
+(nitmethod_t)VIRTUAL_cpp__ToCppCallContext__init, /* pointer to cpp:ToCppCallContext:cpp#ToCppCallContext#init */
 }
-var1 = self->attrs[COLOR_abstract_compiler__ExternCFile___64dcflags].val; /* @cflags on <self:ExternCFile> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @cflags", "src/abstract_compiler.nit", 1073);
-exit(1);
+};
+/* allocate ToCppCallContext */
+val* NEW_cpp__ToCppCallContext(const struct type* type) {
+val* self /* : ToCppCallContext */;
+self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_cpp__ToCppCallContext;
+return self;
 }
+/* runtime class cpp__FromCppCallContext */
+const struct class class_cpp__FromCppCallContext = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to cpp:FromCppCallContext:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to cpp:FromCppCallContext:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to cpp:FromCppCallContext:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to cpp:FromCppCallContext:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to cpp:FromCppCallContext:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to cpp:FromCppCallContext:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to cpp:FromCppCallContext:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to cpp:FromCppCallContext:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to cpp:FromCppCallContext:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to cpp:FromCppCallContext:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to cpp:FromCppCallContext:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to cpp:FromCppCallContext:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to cpp:FromCppCallContext:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to cpp:FromCppCallContext:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to cpp:FromCppCallContext:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to cpp:FromCppCallContext:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to cpp:FromCppCallContext:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to cpp:FromCppCallContext:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to cpp:FromCppCallContext:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to cpp:FromCppCallContext:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to cpp:FromCppCallContext:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to cpp:FromCppCallContext:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to cpp:FromCppCallContext:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to cpp:FromCppCallContext:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to cpp:FromCppCallContext:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to cpp:FromCppCallContext:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to cpp:FromCppCallContext:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to cpp:FromCppCallContext:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to cpp:FromCppCallContext:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to cpp:FromCppCallContext:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to cpp:FromCppCallContext:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to cpp:FromCppCallContext:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to cpp:FromCppCallContext:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to cpp:FromCppCallContext:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to cpp:FromCppCallContext:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to cpp:FromCppCallContext:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to cpp:FromCppCallContext:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to cpp:FromCppCallContext:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to cpp:FromCppCallContext:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to cpp:FromCppCallContext:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to cpp:FromCppCallContext:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to cpp:FromCppCallContext:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to cpp:FromCppCallContext:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to cpp:FromCppCallContext:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to cpp:FromCppCallContext:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to cpp:FromCppCallContext:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to cpp:FromCppCallContext:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to cpp:FromCppCallContext:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to cpp:FromCppCallContext:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to cpp:FromCppCallContext:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to cpp:FromCppCallContext:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__CppCallContext__name_mtype, /* pointer to cpp:FromCppCallContext:cpp#CppCallContext#name_mtype */
+(nitmethod_t)VIRTUAL_cpp__FromCppCallContext__cast_from, /* pointer to cpp:FromCppCallContext:cpp#FromCppCallContext#cast_from */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__cast_to, /* pointer to cpp:FromCppCallContext:nitni_utilities#CallContext#cast_to */
+(nitmethod_t)VIRTUAL_nitni_utilities__CallContext__init, /* pointer to cpp:FromCppCallContext:nitni_utilities#CallContext#init */
+(nitmethod_t)VIRTUAL_cpp__CppCallContext__init, /* pointer to cpp:FromCppCallContext:cpp#CppCallContext#init */
+(nitmethod_t)VIRTUAL_cpp__FromCppCallContext__init, /* pointer to cpp:FromCppCallContext:cpp#FromCppCallContext#init */
+}
+};
+/* allocate FromCppCallContext */
+val* NEW_cpp__FromCppCallContext(const struct type* type) {
+val* self /* : FromCppCallContext */;
+self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_cpp__FromCppCallContext;
+return self;
+}
+/* runtime class platform__PlatformPhase */
+const struct class class_platform__PlatformPhase = {
+0, /* box_kind */
+{
+(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to platform:PlatformPhase:kernel#Object#object_id */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to platform:PlatformPhase:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to platform:PlatformPhase:kernel#Object#is_same_instance */
+(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to platform:PlatformPhase:kernel#Object#== */
+(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to platform:PlatformPhase:kernel#Object#!= */
+(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to platform:PlatformPhase:kernel#Object#output */
+(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to platform:PlatformPhase:kernel#Object#output_class_name */
+(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to platform:PlatformPhase:kernel#Object#exit */
+(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to platform:PlatformPhase:kernel#Object#sys */
+(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to platform:PlatformPhase:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to platform:PlatformPhase:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to platform:PlatformPhase:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to platform:PlatformPhase:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to platform:PlatformPhase:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to platform:PlatformPhase:string#Object#to_s */
+(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to platform:PlatformPhase:string#Object#native_class_name */
+(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to platform:PlatformPhase:string#Object#class_name */
+(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to platform:PlatformPhase:string#Object#inspect */
+(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to platform:PlatformPhase:string#Object#inspect_head */
+(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to platform:PlatformPhase:string#Object#args */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to platform:PlatformPhase:string#Object#alpha_comparator */
+(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to platform:PlatformPhase:stream#Object#poll */
+(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to platform:PlatformPhase:stream#Object#intern_poll */
+(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to platform:PlatformPhase:time#Object#get_time */
+(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to platform:PlatformPhase:file#Object#printn */
+(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to platform:PlatformPhase:file#Object#print */
+(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to platform:PlatformPhase:file#Object#getc */
+(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to platform:PlatformPhase:file#Object#gets */
+(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to platform:PlatformPhase:file#Object#getcwd */
+(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to platform:PlatformPhase:file#Object#file_getcwd */
+(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to platform:PlatformPhase:file#Object#stdin */
+(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to platform:PlatformPhase:file#Object#stdout */
+(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to platform:PlatformPhase:file#Object#stderr */
+(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to platform:PlatformPhase:model_base#Object#intrude_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to platform:PlatformPhase:model_base#Object#public_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to platform:PlatformPhase:model_base#Object#protected_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to platform:PlatformPhase:model_base#Object#private_visibility */
+(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to platform:PlatformPhase:model_base#Object#none_visibility */
+(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to platform:PlatformPhase:model#Object#abstract_kind */
+(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to platform:PlatformPhase:model#Object#concrete_kind */
+(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to platform:PlatformPhase:model#Object#interface_kind */
+(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to platform:PlatformPhase:model#Object#enum_kind */
+(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to platform:PlatformPhase:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to platform:PlatformPhase:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to platform:PlatformPhase:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to platform:PlatformPhase:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to platform:PlatformPhase:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to platform:PlatformPhase:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to platform:PlatformPhase:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to platform:PlatformPhase:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to platform:PlatformPhase:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext, /* pointer to platform:PlatformPhase:phase#Phase#toolcontext */
+(nitmethod_t)VIRTUAL_phase__Phase__toolcontext_61d, /* pointer to platform:PlatformPhase:phase#Phase#toolcontext= */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy, /* pointer to platform:PlatformPhase:phase#Phase#in_hierarchy */
+(nitmethod_t)VIRTUAL_phase__Phase__in_hierarchy_61d, /* pointer to platform:PlatformPhase:phase#Phase#in_hierarchy= */
+(nitmethod_t)VIRTUAL_phase__Phase__init, /* pointer to platform:PlatformPhase:phase#Phase#init */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nmodule, /* pointer to platform:PlatformPhase:phase#Phase#process_nmodule */
+(nitmethod_t)VIRTUAL_phase__Phase__process_nclassdef, /* pointer to platform:PlatformPhase:phase#Phase#process_nclassdef */
+(nitmethod_t)VIRTUAL_phase__Phase__process_npropdef, /* pointer to platform:PlatformPhase:phase#Phase#process_npropdef */
+(nitmethod_t)VIRTUAL_platform__PlatformPhase__process_annotated_node, /* pointer to platform:PlatformPhase:platform#PlatformPhase#process_annotated_node */
+(nitmethod_t)VIRTUAL_modelbuilder__Phase__process_mainmodule, /* pointer to platform:PlatformPhase:modelbuilder#Phase#process_mainmodule */
+}
+};
+/* allocate PlatformPhase */
+val* NEW_platform__PlatformPhase(const struct type* type) {
+val* self /* : PlatformPhase */;
+self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
+self->type = type;
+self->class = &class_platform__PlatformPhase;
+return self;
 }
 /* runtime class separate_erasure_compiler__SeparateErasureCompiler */
 const struct class class_separate_erasure_compiler__SeparateErasureCompiler = {
@@ -6233,6 +8876,7 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompiler = {
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:kernel#Object#output */
@@ -6240,16 +8884,17 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompiler = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:time#Object#get_time */
@@ -6272,6 +8917,16 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompiler = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__names, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#names */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__names_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#names= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#mainmodule */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#mainmodule= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__realmainmodule, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#realmainmodule */
@@ -6289,14 +8944,19 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompiler = {
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__provide_declaration, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#provide_declaration */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__provided_declarations, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#provided_declarations */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__provided_declarations_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#provided_declarations= */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__requirers_of_declarations, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#requirers_of_declarations */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__requirers_of_declarations_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#requirers_of_declarations= */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__build_c_to_nit_bindings, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#build_c_to_nit_bindings */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__compile_header, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#compile_header */
 (nitmethod_t)VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__compile_header_structs, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_erasure_compiler#SeparateErasureCompiler#compile_header_structs */
+(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_nitni_structs, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#compile_nitni_structs */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__compile_main_function, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#compile_main_function */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__extern_bodies, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#extern_bodies */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__extern_bodies_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#extern_bodies= */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__files_to_copy, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#files_to_copy */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__files_to_copy_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#files_to_copy= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__seen_extern, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#seen_extern */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__seen_extern_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#seen_extern= */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__generate_check_init_instance, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#generate_check_init_instance */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__generate_init_attr, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#generate_init_attr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__generate_check_attr, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#generate_check_attr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__count_type_test_tags, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#count_type_test_tags */
@@ -6310,12 +8970,11 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompiler = {
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__init_count_type_test_tags, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#init_count_type_test_tags */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__display_stats, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#display_stats */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__div, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#div */
+(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__finalize_ffi_for_module, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#finalize_ffi_for_module */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#runtime_type_analysis */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#runtime_type_analysis= */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__undead_types, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#undead_types */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__undead_types_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#undead_types= */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__partial_types, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#partial_types */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__partial_types_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#partial_types= */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#live_unresolved_types */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#live_unresolved_types= */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__type_layout, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#type_layout */
@@ -6343,7 +9002,6 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompiler = {
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__build_type_tables, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#build_type_tables */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_resolution_tables, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#compile_resolution_tables */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__build_resolution_tables, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#build_resolution_tables */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__retrieve_partial_types, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#retrieve_partial_types */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_module_to_c, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#compile_module_to_c */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_type_to_c, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#compile_type_to_c */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_type_resolution_table, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#compile_type_resolution_table */
@@ -6359,6 +9017,7 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompiler = {
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__attr_tables_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_compiler#SeparateCompiler#attr_tables= */
 (nitmethod_t)VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__display_sizes, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_erasure_compiler#SeparateErasureCompiler#display_sizes */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__display_stats, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#display_stats */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__finalize_ffi_for_module, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:abstract_compiler#AbstractCompiler#finalize_ffi_for_module */
 (nitmethod_t)VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_layout, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_erasure_compiler#SeparateErasureCompiler#class_layout */
 (nitmethod_t)VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__class_layout_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_erasure_compiler#SeparateErasureCompiler#class_layout= */
 (nitmethod_t)VIRTUAL_separate_erasure_compiler__SeparateErasureCompiler__vt_layout, /* pointer to separate_erasure_compiler:SeparateErasureCompiler:separate_erasure_compiler#SeparateErasureCompiler#vt_layout */
@@ -6377,232 +9036,170 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompiler = {
 /* allocate SeparateErasureCompiler */
 val* NEW_separate_erasure_compiler__SeparateErasureCompiler(const struct type* type) {
 val* self /* : SeparateErasureCompiler */;
-val* var /* : List[CodeFile] */;
-val* var1 /* : HashMap[String, String] */;
-val* var2 /* : Array[ExternCFile] */;
-val* var3 /* : ArraySet[String] */;
-val* var4 /* : Array[String] */;
-long var5 /* : Int */;
+val* var /* : HashMap[String, String] */;
+val* var1 /* : List[CodeFile] */;
+val* var2 /* : HashMap[String, String] */;
+val* var3 /* : HashMap[String, ANode] */;
+val* var4 /* : Array[ExternFile] */;
+val* var5 /* : Array[String] */;
+val* var6 /* : ArraySet[String] */;
+val* var7 /* : Array[String] */;
+long var8 /* : Int */;
 val* var_ /* var : Array[String] */;
 static val* varonce;
-val* var6 /* : String */;
-char* var7 /* : NativeString */;
-long var8 /* : Int */;
 val* var9 /* : String */;
-static val* varonce10;
-val* var11 /* : String */;
-char* var12 /* : NativeString */;
-long var13 /* : Int */;
+char* var10 /* : NativeString */;
+long var11 /* : Int */;
+val* var12 /* : String */;
+static val* varonce13;
 val* var14 /* : String */;
-static val* varonce15;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-long var18 /* : Int */;
+char* var15 /* : NativeString */;
+long var16 /* : Int */;
+val* var17 /* : String */;
+static val* varonce18;
 val* var19 /* : String */;
-static val* varonce20;
-val* var21 /* : String */;
-char* var22 /* : NativeString */;
-long var23 /* : Int */;
+char* var20 /* : NativeString */;
+long var21 /* : Int */;
+val* var22 /* : String */;
+static val* varonce23;
 val* var24 /* : String */;
-static val* varonce25;
-val* var26 /* : String */;
-char* var27 /* : NativeString */;
-long var28 /* : Int */;
+char* var25 /* : NativeString */;
+long var26 /* : Int */;
+val* var27 /* : String */;
+static val* varonce28;
 val* var29 /* : String */;
-val* var30 /* : HashMap[String, Int] */;
-val* var31 /* : HashMap[String, Int] */;
-val* var32 /* : HashMap[String, Int] */;
-val* var33 /* : HashSet[MType] */;
-val* var34 /* : HashSet[MType] */;
-val* var35 /* : HashMap[MClassDef, HashSet[MType]] */;
-val* var36 /* : HashMap[MClass, Int] */;
-val* var37 /* : HashSet[Object] */;
-val* var38 /* : HashMap[MType, Array[nullable MType]] */;
-val* var39 /* : HashMap[MClassType, Array[nullable MType]] */;
-val* var40 /* : HashMap[MClass, Array[nullable MPropDef]] */;
-val* var41 /* : HashMap[MClass, Array[nullable MPropDef]] */;
-self = nit_alloc(sizeof(struct instance) + 30*sizeof(nitattribute_t));
+char* var30 /* : NativeString */;
+long var31 /* : Int */;
+val* var32 /* : String */;
+val* var33 /* : HashMap[String, Int] */;
+val* var34 /* : HashMap[String, Int] */;
+val* var35 /* : HashMap[String, Int] */;
+val* var36 /* : HashSet[MType] */;
+val* var37 /* : HashMap[MClassDef, HashSet[MType]] */;
+val* var38 /* : HashMap[MClass, Int] */;
+val* var39 /* : HashSet[Object] */;
+val* var40 /* : HashMap[MType, Array[nullable MType]] */;
+val* var41 /* : HashMap[MClassType, Array[nullable MType]] */;
+val* var42 /* : HashMap[MClass, Array[nullable MPropDef]] */;
+val* var43 /* : HashMap[MClass, Array[nullable MPropDef]] */;
+self = nit_alloc(sizeof(struct instance) + 32*sizeof(nitattribute_t));
 self->type = type;
 self->class = &class_separate_erasure_compiler__SeparateErasureCompiler;
-var = NEW_list__List(&type_list__Listabstract_compiler__CodeFile);
-((void (*)(val*))(var->class->vft[COLOR_list__List__init]))(var) /* init on <var:List[CodeFile]>*/;
-CHECK_NEW_list__List(var);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dfiles].val = var; /* @files on <self:SeparateErasureCompiler exact> */
-var1 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringstring__String);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashMap__init]))(var1) /* init on <var1:HashMap[String, String]>*/;
-CHECK_NEW_hash_collection__HashMap(var1);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dprovided_declarations].val = var1; /* @provided_declarations on <self:SeparateErasureCompiler exact> */
-var2 = NEW_array__Array(&type_array__Arrayabstract_compiler__ExternCFile);
-((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[ExternCFile]>*/;
-CHECK_NEW_array__Array(var2);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dextern_bodies].val = var2; /* @extern_bodies on <self:SeparateErasureCompiler exact> */
-var3 = NEW_array__ArraySet(&type_array__ArraySetstring__String);
-((void (*)(val*))(var3->class->vft[COLOR_array__ArraySet__init]))(var3) /* init on <var3:ArraySet[String]>*/;
-CHECK_NEW_array__ArraySet(var3);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dseen_extern].val = var3; /* @seen_extern on <self:SeparateErasureCompiler exact> */
-var4 = NEW_array__Array(&type_array__Arraystring__String);
-var5 = 5;
-((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[String]>*/;
-CHECK_NEW_array__Array(var4);
-var_ = var4;
+var = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringstring__String);
+((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashMap__init]))(var) /* init on <var:HashMap[String, String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dnames].val = var; /* @names on <self:SeparateErasureCompiler exact> */
+var1 = NEW_list__List(&type_list__Listabstract_compiler__CodeFile);
+((void (*)(val*))(var1->class->vft[COLOR_list__List__init]))(var1) /* init on <var1:List[CodeFile]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dfiles].val = var1; /* @files on <self:SeparateErasureCompiler exact> */
+var2 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringstring__String);
+((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashMap__init]))(var2) /* init on <var2:HashMap[String, String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dprovided_declarations].val = var2; /* @provided_declarations on <self:SeparateErasureCompiler exact> */
+var3 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringparser_nodes__ANode);
+((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[String, ANode]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64drequirers_of_declarations].val = var3; /* @requirers_of_declarations on <self:SeparateErasureCompiler exact> */
+var4 = NEW_array__Array(&type_array__Arrayffi_base__ExternFile);
+((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[ExternFile]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dextern_bodies].val = var4; /* @extern_bodies on <self:SeparateErasureCompiler exact> */
+var5 = NEW_array__Array(&type_array__Arraystring__String);
+((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dfiles_to_copy].val = var5; /* @files_to_copy on <self:SeparateErasureCompiler exact> */
+var6 = NEW_array__ArraySet(&type_array__ArraySetstring__String);
+((void (*)(val*))(var6->class->vft[COLOR_array__ArraySet__init]))(var6) /* init on <var6:ArraySet[String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dseen_extern].val = var6; /* @seen_extern on <self:SeparateErasureCompiler exact> */
+var7 = NEW_array__Array(&type_array__Arraystring__String);
+var8 = 5;
+((void (*)(val*, long))(var7->class->vft[COLOR_array__Array__with_capacity]))(var7, var8) /* with_capacity on <var7:Array[String]>*/;
+var_ = var7;
 if (varonce) {
-var6 = varonce;
+var9 = varonce;
 } else {
-var7 = "isa";
-var8 = 3;
-var9 = string__NativeString__to_s_with_length(var7, var8);
-var6 = var9;
-varonce = var6;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var6) /* push on <var_:Array[String]>*/;
-if (varonce10) {
-var11 = varonce10;
+var10 = "isa";
+var11 = 3;
+var12 = string__NativeString__to_s_with_length(var10, var11);
+var9 = var12;
+varonce = var9;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var9) /* push on <var_:Array[String]>*/;
+if (varonce13) {
+var14 = varonce13;
 } else {
-var12 = "as";
-var13 = 2;
-var14 = string__NativeString__to_s_with_length(var12, var13);
-var11 = var14;
-varonce10 = var11;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var11) /* push on <var_:Array[String]>*/;
-if (varonce15) {
-var16 = varonce15;
-} else {
-var17 = "auto";
-var18 = 4;
-var19 = string__NativeString__to_s_with_length(var17, var18);
-var16 = var19;
-varonce15 = var16;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var16) /* push on <var_:Array[String]>*/;
-if (varonce20) {
-var21 = varonce20;
+var15 = "as";
+var16 = 2;
+var17 = string__NativeString__to_s_with_length(var15, var16);
+var14 = var17;
+varonce13 = var14;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var14) /* push on <var_:Array[String]>*/;
+if (varonce18) {
+var19 = varonce18;
 } else {
-var22 = "covariance";
-var23 = 10;
-var24 = string__NativeString__to_s_with_length(var22, var23);
-var21 = var24;
-varonce20 = var21;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var21) /* push on <var_:Array[String]>*/;
-if (varonce25) {
-var26 = varonce25;
+var20 = "auto";
+var21 = 4;
+var22 = string__NativeString__to_s_with_length(var20, var21);
+var19 = var22;
+varonce18 = var19;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var19) /* push on <var_:Array[String]>*/;
+if (varonce23) {
+var24 = varonce23;
 } else {
-var27 = "erasure";
-var28 = 7;
-var29 = string__NativeString__to_s_with_length(var27, var28);
-var26 = var29;
-varonce25 = var26;
+var25 = "covariance";
+var26 = 10;
+var27 = string__NativeString__to_s_with_length(var25, var26);
+var24 = var27;
+varonce23 = var24;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var24) /* push on <var_:Array[String]>*/;
+if (varonce28) {
+var29 = varonce28;
+} else {
+var30 = "erasure";
+var31 = 7;
+var32 = string__NativeString__to_s_with_length(var30, var31);
+var29 = var32;
+varonce28 = var29;
 }
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var26) /* push on <var_:Array[String]>*/;
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var29) /* push on <var_:Array[String]>*/;
 self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_tags].val = var_; /* @count_type_test_tags on <self:SeparateErasureCompiler exact> */
-var30 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateErasureCompiler exact>*/;
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_resolved].val = var30; /* @count_type_test_resolved on <self:SeparateErasureCompiler exact> */
-var31 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateErasureCompiler exact>*/;
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_unresolved].val = var31; /* @count_type_test_unresolved on <self:SeparateErasureCompiler exact> */
-var32 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateErasureCompiler exact>*/;
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_skipped].val = var32; /* @count_type_test_skipped on <self:SeparateErasureCompiler exact> */
-var33 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType);
-((void (*)(val*))(var33->class->vft[COLOR_hash_collection__HashSet__init]))(var33) /* init on <var33:HashSet[MType]>*/;
-CHECK_NEW_hash_collection__HashSet(var33);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dundead_types].val = var33; /* @undead_types on <self:SeparateErasureCompiler exact> */
-var34 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType);
-((void (*)(val*))(var34->class->vft[COLOR_hash_collection__HashSet__init]))(var34) /* init on <var34:HashSet[MType]>*/;
-CHECK_NEW_hash_collection__HashSet(var34);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dpartial_types].val = var34; /* @partial_types on <self:SeparateErasureCompiler exact> */
-var35 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType);
-((void (*)(val*))(var35->class->vft[COLOR_hash_collection__HashMap__init]))(var35) /* init on <var35:HashMap[MClassDef, HashSet[MType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var35);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types].val = var35; /* @live_unresolved_types on <self:SeparateErasureCompiler exact> */
-var36 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClasskernel__Int);
-((void (*)(val*))(var36->class->vft[COLOR_hash_collection__HashMap__init]))(var36) /* init on <var36:HashMap[MClass, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var36);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds].val = var36; /* @box_kinds on <self:SeparateErasureCompiler exact> */
-var37 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetkernel__Object);
-((void (*)(val*))(var37->class->vft[COLOR_hash_collection__HashSet__init]))(var37) /* init on <var37:HashSet[Object]>*/;
-CHECK_NEW_hash_collection__HashSet(var37);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done].val = var37; /* @color_consts_done on <self:SeparateErasureCompiler exact> */
-var38 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType);
-((void (*)(val*))(var38->class->vft[COLOR_hash_collection__HashMap__init]))(var38) /* init on <var38:HashMap[MType, Array[nullable MType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var38);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dtype_tables].val = var38; /* @type_tables on <self:SeparateErasureCompiler exact> */
-var39 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType);
-((void (*)(val*))(var39->class->vft[COLOR_hash_collection__HashMap__init]))(var39) /* init on <var39:HashMap[MClassType, Array[nullable MType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var39);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables].val = var39; /* @resolution_tables on <self:SeparateErasureCompiler exact> */
-var40 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef);
-((void (*)(val*))(var40->class->vft[COLOR_hash_collection__HashMap__init]))(var40) /* init on <var40:HashMap[MClass, Array[nullable MPropDef]]>*/;
-CHECK_NEW_hash_collection__HashMap(var40);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables].val = var40; /* @method_tables on <self:SeparateErasureCompiler exact> */
-var41 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef);
-((void (*)(val*))(var41->class->vft[COLOR_hash_collection__HashMap__init]))(var41) /* init on <var41:HashMap[MClass, Array[nullable MPropDef]]>*/;
-CHECK_NEW_hash_collection__HashMap(var41);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dattr_tables].val = var41; /* @attr_tables on <self:SeparateErasureCompiler exact> */
+var33 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateErasureCompiler exact>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_resolved].val = var33; /* @count_type_test_resolved on <self:SeparateErasureCompiler exact> */
+var34 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateErasureCompiler exact>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_unresolved].val = var34; /* @count_type_test_unresolved on <self:SeparateErasureCompiler exact> */
+var35 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateErasureCompiler exact>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_skipped].val = var35; /* @count_type_test_skipped on <self:SeparateErasureCompiler exact> */
+var36 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType);
+((void (*)(val*))(var36->class->vft[COLOR_hash_collection__HashSet__init]))(var36) /* init on <var36:HashSet[MType]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dundead_types].val = var36; /* @undead_types on <self:SeparateErasureCompiler exact> */
+var37 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType);
+((void (*)(val*))(var37->class->vft[COLOR_hash_collection__HashMap__init]))(var37) /* init on <var37:HashMap[MClassDef, HashSet[MType]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types].val = var37; /* @live_unresolved_types on <self:SeparateErasureCompiler exact> */
+var38 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClasskernel__Int);
+((void (*)(val*))(var38->class->vft[COLOR_hash_collection__HashMap__init]))(var38) /* init on <var38:HashMap[MClass, Int]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds].val = var38; /* @box_kinds on <self:SeparateErasureCompiler exact> */
+var39 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetkernel__Object);
+((void (*)(val*))(var39->class->vft[COLOR_hash_collection__HashSet__init]))(var39) /* init on <var39:HashSet[Object]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done].val = var39; /* @color_consts_done on <self:SeparateErasureCompiler exact> */
+var40 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType);
+((void (*)(val*))(var40->class->vft[COLOR_hash_collection__HashMap__init]))(var40) /* init on <var40:HashMap[MType, Array[nullable MType]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dtype_tables].val = var40; /* @type_tables on <self:SeparateErasureCompiler exact> */
+var41 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType);
+((void (*)(val*))(var41->class->vft[COLOR_hash_collection__HashMap__init]))(var41) /* init on <var41:HashMap[MClassType, Array[nullable MType]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables].val = var41; /* @resolution_tables on <self:SeparateErasureCompiler exact> */
+var42 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef);
+((void (*)(val*))(var42->class->vft[COLOR_hash_collection__HashMap__init]))(var42) /* init on <var42:HashMap[MClass, Array[nullable MPropDef]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables].val = var42; /* @method_tables on <self:SeparateErasureCompiler exact> */
+var43 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef);
+((void (*)(val*))(var43->class->vft[COLOR_hash_collection__HashMap__init]))(var43) /* init on <var43:HashMap[MClass, Array[nullable MPropDef]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dattr_tables].val = var43; /* @attr_tables on <self:SeparateErasureCompiler exact> */
 return self;
 }
-/* allocate SeparateErasureCompiler */
-void CHECK_NEW_separate_erasure_compiler__SeparateErasureCompiler(val* self) {
-val* var /* : MModule */;
-val* var1 /* : MModule */;
-val* var2 /* : ModelBuilder */;
-val* var3 /* : CodeWriter */;
-val* var4 /* : RapidTypeAnalysis */;
-val* var5 /* : nullable Layout[MType] */;
-val* var6 /* : nullable Layout[MType] */;
-val* var7 /* : nullable Layout[PropertyLayoutElement] */;
-val* var8 /* : nullable Layout[MAttribute] */;
-val* var9 /* : nullable Layout[MClass] */;
-val* var10 /* : nullable Layout[MVirtualTypeProp] */;
-val* var11 /* : Map[MClass, Array[nullable MClass]] */;
-val* var12 /* : Map[MClass, Array[nullable MPropDef]] */;
-var = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dmainmodule].val; /* @mainmodule on <self:SeparateErasureCompiler> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mainmodule", "src/abstract_compiler.nit", 259);
-exit(1);
-}
-var1 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64drealmainmodule].val; /* @realmainmodule on <self:SeparateErasureCompiler> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @realmainmodule", "src/abstract_compiler.nit", 263);
-exit(1);
-}
-var2 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dmodelbuilder].val; /* @modelbuilder on <self:SeparateErasureCompiler> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @modelbuilder", "src/abstract_compiler.nit", 266);
-exit(1);
-}
-var3 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dheader].val; /* @header on <self:SeparateErasureCompiler> */
-if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @header", "src/abstract_compiler.nit", 295);
-exit(1);
-}
-var4 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64druntime_type_analysis].val; /* @runtime_type_analysis on <self:SeparateErasureCompiler> */
-if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @runtime_type_analysis", "src/separate_compiler.nit", 111);
-exit(1);
-}
-var5 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64dtype_layout].val; /* @type_layout on <self:SeparateErasureCompiler> */
-var6 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64dresolution_layout].val; /* @resolution_layout on <self:SeparateErasureCompiler> */
-var7 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64dmethod_layout].val; /* @method_layout on <self:SeparateErasureCompiler> */
-var8 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64dattr_layout].val; /* @attr_layout on <self:SeparateErasureCompiler> */
-var9 = self->attrs[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_layout].val; /* @class_layout on <self:SeparateErasureCompiler> */
-var10 = self->attrs[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_layout].val; /* @vt_layout on <self:SeparateErasureCompiler> */
-var11 = self->attrs[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dclass_tables].val; /* @class_tables on <self:SeparateErasureCompiler> */
-if (var11 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @class_tables", "src/separate_erasure_compiler.nit", 393);
-exit(1);
-}
-var12 = self->attrs[COLOR_separate_erasure_compiler__SeparateErasureCompiler___64dvt_tables].val; /* @vt_tables on <self:SeparateErasureCompiler> */
-if (var12 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @vt_tables", "src/separate_erasure_compiler.nit", 394);
-exit(1);
-}
-}
 /* runtime class separate_erasure_compiler__SeparateErasureCompilerVisitor */
 const struct class class_separate_erasure_compiler__SeparateErasureCompilerVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:kernel#Object#output */
@@ -6610,16 +9207,17 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompilerVisit
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:time#Object#get_time */
@@ -6642,6 +9240,14 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompilerVisit
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__compiler, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#compiler */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__compiler_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#compiler= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__current_node, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#current_node */
@@ -6671,11 +9277,11 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompilerVisit
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__call, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#call */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__send, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#send */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__monomorphic_send, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#monomorphic_send */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__monomorphic_super_send, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#monomorphic_super_send */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__isset_attribute, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#isset_attribute */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__read_attribute, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#read_attribute */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__write_attribute, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#write_attribute */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#check_recv_notnull */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__check_init_instance, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#check_init_instance */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__names, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#names */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__names_61d, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#names= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__last, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#last */
@@ -6703,13 +9309,19 @@ const struct class class_separate_erasure_compiler__SeparateErasureCompilerVisit
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_extern, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_extern */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__new_expr, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#new_expr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_abort, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_abort */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_raw_abort, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_raw_abort */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_cast, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_cast */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__ret, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#ret */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__stmt, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#stmt */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__expr, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#expr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__expr_bool, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#expr_bool */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__debug, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#debug */
+(nitmethod_t)VIRTUAL_compiler_ffi__AbstractCompilerVisitor__var_from_c, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:compiler_ffi#AbstractCompilerVisitor#var_from_c */
+(nitmethod_t)VIRTUAL_compiler_ffi__AbstractCompilerVisitor__ret_to_c, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:compiler_ffi#AbstractCompilerVisitor#ret_to_c */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__type_info, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#type_info */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__table_send, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#table_send */
+(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__hardening_live_open_type, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#hardening_live_open_type */
+(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__hardening_cast_type, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#hardening_cast_type */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__can_be_primitive, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#can_be_primitive */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__maybe_null, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#maybe_null */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__native_array_instance, /* pointer to separate_erasure_compiler:SeparateErasureCompilerVisitor:separate_compiler#SeparateCompilerVisitor#native_array_instance */
@@ -6732,43 +9344,24 @@ var = NULL;
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dcurrent_node].val = var; /* @current_node on <self:SeparateErasureCompilerVisitor exact> */
 var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetstring__String);
 ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[String]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dnames].val = var1; /* @names on <self:SeparateErasureCompilerVisitor exact> */
 var2 = 0;
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dlast].l = var2; /* @last on <self:SeparateErasureCompilerVisitor exact> */
 var3 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapscope__EscapeMarkstring__String);
 ((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[EscapeMark, String]>*/;
-CHECK_NEW_hash_collection__HashMap(var3);
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64descapemark_names].val = var3; /* @escapemark_names on <self:SeparateErasureCompilerVisitor exact> */
 var4 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable);
 ((void (*)(val*))(var4->class->vft[COLOR_hash_collection__HashMap__init]))(var4) /* init on <var4:HashMap[Variable, RuntimeVariable]>*/;
-CHECK_NEW_hash_collection__HashMap(var4);
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dvariables].val = var4; /* @variables on <self:SeparateErasureCompilerVisitor exact> */
 return self;
 }
-/* allocate SeparateErasureCompilerVisitor */
-void CHECK_NEW_separate_erasure_compiler__SeparateErasureCompilerVisitor(val* self) {
-val* var /* : AbstractCompiler */;
-val* var1 /* : nullable Frame */;
-val* var2 /* : CodeWriter */;
-var = self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dcompiler].val; /* @compiler on <self:SeparateErasureCompilerVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @compiler", "src/abstract_compiler.nit", 533);
-exit(1);
-}
-var1 = self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dframe].val; /* @frame on <self:SeparateErasureCompilerVisitor> */
-var2 = self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dwriter].val; /* @writer on <self:SeparateErasureCompilerVisitor> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @writer", "src/abstract_compiler.nit", 548);
-exit(1);
-}
-}
 /* runtime class separate_compiler__SeparateCompiler */
 const struct class class_separate_compiler__SeparateCompiler = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to separate_compiler:SeparateCompiler:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to separate_compiler:SeparateCompiler:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to separate_compiler:SeparateCompiler:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to separate_compiler:SeparateCompiler:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to separate_compiler:SeparateCompiler:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to separate_compiler:SeparateCompiler:kernel#Object#output */
@@ -6776,16 +9369,17 @@ const struct class class_separate_compiler__SeparateCompiler = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to separate_compiler:SeparateCompiler:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to separate_compiler:SeparateCompiler:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to separate_compiler:SeparateCompiler:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_compiler:SeparateCompiler:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_compiler:SeparateCompiler:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_compiler:SeparateCompiler:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_compiler:SeparateCompiler:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to separate_compiler:SeparateCompiler:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to separate_compiler:SeparateCompiler:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to separate_compiler:SeparateCompiler:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to separate_compiler:SeparateCompiler:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to separate_compiler:SeparateCompiler:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to separate_compiler:SeparateCompiler:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_compiler:SeparateCompiler:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_compiler:SeparateCompiler:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_compiler:SeparateCompiler:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_compiler:SeparateCompiler:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to separate_compiler:SeparateCompiler:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to separate_compiler:SeparateCompiler:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to separate_compiler:SeparateCompiler:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to separate_compiler:SeparateCompiler:time#Object#get_time */
@@ -6808,6 +9402,16 @@ const struct class class_separate_compiler__SeparateCompiler = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to separate_compiler:SeparateCompiler:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to separate_compiler:SeparateCompiler:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to separate_compiler:SeparateCompiler:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to separate_compiler:SeparateCompiler:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to separate_compiler:SeparateCompiler:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to separate_compiler:SeparateCompiler:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to separate_compiler:SeparateCompiler:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to separate_compiler:SeparateCompiler:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to separate_compiler:SeparateCompiler:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to separate_compiler:SeparateCompiler:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to separate_compiler:SeparateCompiler:cpp#Object#from_cpp_call_context */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__names, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#names */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__names_61d, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#names= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#mainmodule */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__mainmodule_61d, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#mainmodule= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__realmainmodule, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#realmainmodule */
@@ -6825,14 +9429,19 @@ const struct class class_separate_compiler__SeparateCompiler = {
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__provide_declaration, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#provide_declaration */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__provided_declarations, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#provided_declarations */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__provided_declarations_61d, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#provided_declarations= */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__requirers_of_declarations, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#requirers_of_declarations */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__requirers_of_declarations_61d, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#requirers_of_declarations= */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__build_c_to_nit_bindings, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#build_c_to_nit_bindings */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__compile_header, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#compile_header */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_header_structs, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#compile_header_structs */
+(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_nitni_structs, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#compile_nitni_structs */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__compile_main_function, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#compile_main_function */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__extern_bodies, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#extern_bodies */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__extern_bodies_61d, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#extern_bodies= */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__files_to_copy, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#files_to_copy */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__files_to_copy_61d, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#files_to_copy= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__seen_extern, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#seen_extern */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__seen_extern_61d, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#seen_extern= */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__generate_check_init_instance, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#generate_check_init_instance */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__generate_init_attr, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#generate_init_attr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__generate_check_attr, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#generate_check_attr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__count_type_test_tags, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#count_type_test_tags */
@@ -6846,12 +9455,11 @@ const struct class class_separate_compiler__SeparateCompiler = {
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__init_count_type_test_tags, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#init_count_type_test_tags */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__display_stats, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#display_stats */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__div, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#div */
+(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__finalize_ffi_for_module, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#finalize_ffi_for_module */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#runtime_type_analysis */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__runtime_type_analysis_61d, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#runtime_type_analysis= */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__undead_types, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#undead_types */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__undead_types_61d, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#undead_types= */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__partial_types, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#partial_types */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__partial_types_61d, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#partial_types= */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#live_unresolved_types */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__live_unresolved_types_61d, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#live_unresolved_types= */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__type_layout, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#type_layout */
@@ -6879,7 +9487,6 @@ const struct class class_separate_compiler__SeparateCompiler = {
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__build_type_tables, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#build_type_tables */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_resolution_tables, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#compile_resolution_tables */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__build_resolution_tables, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#build_resolution_tables */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__retrieve_partial_types, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#retrieve_partial_types */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_module_to_c, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#compile_module_to_c */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_type_to_c, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#compile_type_to_c */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__compile_type_resolution_table, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#compile_type_resolution_table */
@@ -6895,221 +9502,176 @@ const struct class class_separate_compiler__SeparateCompiler = {
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__attr_tables_61d, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#attr_tables= */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompiler__display_sizes, /* pointer to separate_compiler:SeparateCompiler:separate_compiler#SeparateCompiler#display_sizes */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__display_stats, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#display_stats */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompiler__finalize_ffi_for_module, /* pointer to separate_compiler:SeparateCompiler:abstract_compiler#AbstractCompiler#finalize_ffi_for_module */
 }
 };
 /* allocate SeparateCompiler */
 val* NEW_separate_compiler__SeparateCompiler(const struct type* type) {
 val* self /* : SeparateCompiler */;
-val* var /* : List[CodeFile] */;
-val* var1 /* : HashMap[String, String] */;
-val* var2 /* : Array[ExternCFile] */;
-val* var3 /* : ArraySet[String] */;
-val* var4 /* : Array[String] */;
-long var5 /* : Int */;
+val* var /* : HashMap[String, String] */;
+val* var1 /* : List[CodeFile] */;
+val* var2 /* : HashMap[String, String] */;
+val* var3 /* : HashMap[String, ANode] */;
+val* var4 /* : Array[ExternFile] */;
+val* var5 /* : Array[String] */;
+val* var6 /* : ArraySet[String] */;
+val* var7 /* : Array[String] */;
+long var8 /* : Int */;
 val* var_ /* var : Array[String] */;
 static val* varonce;
-val* var6 /* : String */;
-char* var7 /* : NativeString */;
-long var8 /* : Int */;
 val* var9 /* : String */;
-static val* varonce10;
-val* var11 /* : String */;
-char* var12 /* : NativeString */;
-long var13 /* : Int */;
+char* var10 /* : NativeString */;
+long var11 /* : Int */;
+val* var12 /* : String */;
+static val* varonce13;
 val* var14 /* : String */;
-static val* varonce15;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-long var18 /* : Int */;
+char* var15 /* : NativeString */;
+long var16 /* : Int */;
+val* var17 /* : String */;
+static val* varonce18;
 val* var19 /* : String */;
-static val* varonce20;
-val* var21 /* : String */;
-char* var22 /* : NativeString */;
-long var23 /* : Int */;
+char* var20 /* : NativeString */;
+long var21 /* : Int */;
+val* var22 /* : String */;
+static val* varonce23;
 val* var24 /* : String */;
-static val* varonce25;
-val* var26 /* : String */;
-char* var27 /* : NativeString */;
-long var28 /* : Int */;
+char* var25 /* : NativeString */;
+long var26 /* : Int */;
+val* var27 /* : String */;
+static val* varonce28;
 val* var29 /* : String */;
-val* var30 /* : HashMap[String, Int] */;
-val* var31 /* : HashMap[String, Int] */;
-val* var32 /* : HashMap[String, Int] */;
-val* var33 /* : HashSet[MType] */;
-val* var34 /* : HashSet[MType] */;
-val* var35 /* : HashMap[MClassDef, HashSet[MType]] */;
-val* var36 /* : HashMap[MClass, Int] */;
-val* var37 /* : HashSet[Object] */;
-val* var38 /* : HashMap[MType, Array[nullable MType]] */;
-val* var39 /* : HashMap[MClassType, Array[nullable MType]] */;
-val* var40 /* : HashMap[MClass, Array[nullable MPropDef]] */;
-val* var41 /* : HashMap[MClass, Array[nullable MPropDef]] */;
-self = nit_alloc(sizeof(struct instance) + 26*sizeof(nitattribute_t));
+char* var30 /* : NativeString */;
+long var31 /* : Int */;
+val* var32 /* : String */;
+val* var33 /* : HashMap[String, Int] */;
+val* var34 /* : HashMap[String, Int] */;
+val* var35 /* : HashMap[String, Int] */;
+val* var36 /* : HashSet[MType] */;
+val* var37 /* : HashMap[MClassDef, HashSet[MType]] */;
+val* var38 /* : HashMap[MClass, Int] */;
+val* var39 /* : HashSet[Object] */;
+val* var40 /* : HashMap[MType, Array[nullable MType]] */;
+val* var41 /* : HashMap[MClassType, Array[nullable MType]] */;
+val* var42 /* : HashMap[MClass, Array[nullable MPropDef]] */;
+val* var43 /* : HashMap[MClass, Array[nullable MPropDef]] */;
+self = nit_alloc(sizeof(struct instance) + 28*sizeof(nitattribute_t));
 self->type = type;
 self->class = &class_separate_compiler__SeparateCompiler;
-var = NEW_list__List(&type_list__Listabstract_compiler__CodeFile);
-((void (*)(val*))(var->class->vft[COLOR_list__List__init]))(var) /* init on <var:List[CodeFile]>*/;
-CHECK_NEW_list__List(var);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dfiles].val = var; /* @files on <self:SeparateCompiler exact> */
-var1 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringstring__String);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashMap__init]))(var1) /* init on <var1:HashMap[String, String]>*/;
-CHECK_NEW_hash_collection__HashMap(var1);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dprovided_declarations].val = var1; /* @provided_declarations on <self:SeparateCompiler exact> */
-var2 = NEW_array__Array(&type_array__Arrayabstract_compiler__ExternCFile);
-((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[ExternCFile]>*/;
-CHECK_NEW_array__Array(var2);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dextern_bodies].val = var2; /* @extern_bodies on <self:SeparateCompiler exact> */
-var3 = NEW_array__ArraySet(&type_array__ArraySetstring__String);
-((void (*)(val*))(var3->class->vft[COLOR_array__ArraySet__init]))(var3) /* init on <var3:ArraySet[String]>*/;
-CHECK_NEW_array__ArraySet(var3);
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dseen_extern].val = var3; /* @seen_extern on <self:SeparateCompiler exact> */
-var4 = NEW_array__Array(&type_array__Arraystring__String);
-var5 = 5;
-((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[String]>*/;
-CHECK_NEW_array__Array(var4);
-var_ = var4;
+var = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringstring__String);
+((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashMap__init]))(var) /* init on <var:HashMap[String, String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dnames].val = var; /* @names on <self:SeparateCompiler exact> */
+var1 = NEW_list__List(&type_list__Listabstract_compiler__CodeFile);
+((void (*)(val*))(var1->class->vft[COLOR_list__List__init]))(var1) /* init on <var1:List[CodeFile]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dfiles].val = var1; /* @files on <self:SeparateCompiler exact> */
+var2 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringstring__String);
+((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashMap__init]))(var2) /* init on <var2:HashMap[String, String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dprovided_declarations].val = var2; /* @provided_declarations on <self:SeparateCompiler exact> */
+var3 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapstring__Stringparser_nodes__ANode);
+((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[String, ANode]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64drequirers_of_declarations].val = var3; /* @requirers_of_declarations on <self:SeparateCompiler exact> */
+var4 = NEW_array__Array(&type_array__Arrayffi_base__ExternFile);
+((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[ExternFile]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dextern_bodies].val = var4; /* @extern_bodies on <self:SeparateCompiler exact> */
+var5 = NEW_array__Array(&type_array__Arraystring__String);
+((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dfiles_to_copy].val = var5; /* @files_to_copy on <self:SeparateCompiler exact> */
+var6 = NEW_array__ArraySet(&type_array__ArraySetstring__String);
+((void (*)(val*))(var6->class->vft[COLOR_array__ArraySet__init]))(var6) /* init on <var6:ArraySet[String]>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dseen_extern].val = var6; /* @seen_extern on <self:SeparateCompiler exact> */
+var7 = NEW_array__Array(&type_array__Arraystring__String);
+var8 = 5;
+((void (*)(val*, long))(var7->class->vft[COLOR_array__Array__with_capacity]))(var7, var8) /* with_capacity on <var7:Array[String]>*/;
+var_ = var7;
 if (varonce) {
-var6 = varonce;
+var9 = varonce;
 } else {
-var7 = "isa";
-var8 = 3;
-var9 = string__NativeString__to_s_with_length(var7, var8);
-var6 = var9;
-varonce = var6;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var6) /* push on <var_:Array[String]>*/;
-if (varonce10) {
-var11 = varonce10;
+var10 = "isa";
+var11 = 3;
+var12 = string__NativeString__to_s_with_length(var10, var11);
+var9 = var12;
+varonce = var9;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var9) /* push on <var_:Array[String]>*/;
+if (varonce13) {
+var14 = varonce13;
 } else {
-var12 = "as";
-var13 = 2;
-var14 = string__NativeString__to_s_with_length(var12, var13);
-var11 = var14;
-varonce10 = var11;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var11) /* push on <var_:Array[String]>*/;
-if (varonce15) {
-var16 = varonce15;
+var15 = "as";
+var16 = 2;
+var17 = string__NativeString__to_s_with_length(var15, var16);
+var14 = var17;
+varonce13 = var14;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var14) /* push on <var_:Array[String]>*/;
+if (varonce18) {
+var19 = varonce18;
 } else {
-var17 = "auto";
-var18 = 4;
-var19 = string__NativeString__to_s_with_length(var17, var18);
-var16 = var19;
-varonce15 = var16;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var16) /* push on <var_:Array[String]>*/;
-if (varonce20) {
-var21 = varonce20;
+var20 = "auto";
+var21 = 4;
+var22 = string__NativeString__to_s_with_length(var20, var21);
+var19 = var22;
+varonce18 = var19;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var19) /* push on <var_:Array[String]>*/;
+if (varonce23) {
+var24 = varonce23;
 } else {
-var22 = "covariance";
-var23 = 10;
-var24 = string__NativeString__to_s_with_length(var22, var23);
-var21 = var24;
-varonce20 = var21;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var21) /* push on <var_:Array[String]>*/;
-if (varonce25) {
-var26 = varonce25;
+var25 = "covariance";
+var26 = 10;
+var27 = string__NativeString__to_s_with_length(var25, var26);
+var24 = var27;
+varonce23 = var24;
+}
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var24) /* push on <var_:Array[String]>*/;
+if (varonce28) {
+var29 = varonce28;
 } else {
-var27 = "erasure";
-var28 = 7;
-var29 = string__NativeString__to_s_with_length(var27, var28);
-var26 = var29;
-varonce25 = var26;
+var30 = "erasure";
+var31 = 7;
+var32 = string__NativeString__to_s_with_length(var30, var31);
+var29 = var32;
+varonce28 = var29;
 }
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var26) /* push on <var_:Array[String]>*/;
+((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var29) /* push on <var_:Array[String]>*/;
 self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_tags].val = var_; /* @count_type_test_tags on <self:SeparateCompiler exact> */
-var30 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateCompiler exact>*/;
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_resolved].val = var30; /* @count_type_test_resolved on <self:SeparateCompiler exact> */
-var31 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateCompiler exact>*/;
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_unresolved].val = var31; /* @count_type_test_unresolved on <self:SeparateCompiler exact> */
-var32 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateCompiler exact>*/;
-self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_skipped].val = var32; /* @count_type_test_skipped on <self:SeparateCompiler exact> */
-var33 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType);
-((void (*)(val*))(var33->class->vft[COLOR_hash_collection__HashSet__init]))(var33) /* init on <var33:HashSet[MType]>*/;
-CHECK_NEW_hash_collection__HashSet(var33);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dundead_types].val = var33; /* @undead_types on <self:SeparateCompiler exact> */
-var34 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType);
-((void (*)(val*))(var34->class->vft[COLOR_hash_collection__HashSet__init]))(var34) /* init on <var34:HashSet[MType]>*/;
-CHECK_NEW_hash_collection__HashSet(var34);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dpartial_types].val = var34; /* @partial_types on <self:SeparateCompiler exact> */
-var35 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType);
-((void (*)(val*))(var35->class->vft[COLOR_hash_collection__HashMap__init]))(var35) /* init on <var35:HashMap[MClassDef, HashSet[MType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var35);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types].val = var35; /* @live_unresolved_types on <self:SeparateCompiler exact> */
-var36 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClasskernel__Int);
-((void (*)(val*))(var36->class->vft[COLOR_hash_collection__HashMap__init]))(var36) /* init on <var36:HashMap[MClass, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var36);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds].val = var36; /* @box_kinds on <self:SeparateCompiler exact> */
-var37 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetkernel__Object);
-((void (*)(val*))(var37->class->vft[COLOR_hash_collection__HashSet__init]))(var37) /* init on <var37:HashSet[Object]>*/;
-CHECK_NEW_hash_collection__HashSet(var37);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done].val = var37; /* @color_consts_done on <self:SeparateCompiler exact> */
-var38 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType);
-((void (*)(val*))(var38->class->vft[COLOR_hash_collection__HashMap__init]))(var38) /* init on <var38:HashMap[MType, Array[nullable MType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var38);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dtype_tables].val = var38; /* @type_tables on <self:SeparateCompiler exact> */
-var39 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType);
-((void (*)(val*))(var39->class->vft[COLOR_hash_collection__HashMap__init]))(var39) /* init on <var39:HashMap[MClassType, Array[nullable MType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var39);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables].val = var39; /* @resolution_tables on <self:SeparateCompiler exact> */
-var40 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef);
-((void (*)(val*))(var40->class->vft[COLOR_hash_collection__HashMap__init]))(var40) /* init on <var40:HashMap[MClass, Array[nullable MPropDef]]>*/;
-CHECK_NEW_hash_collection__HashMap(var40);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables].val = var40; /* @method_tables on <self:SeparateCompiler exact> */
-var41 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef);
-((void (*)(val*))(var41->class->vft[COLOR_hash_collection__HashMap__init]))(var41) /* init on <var41:HashMap[MClass, Array[nullable MPropDef]]>*/;
-CHECK_NEW_hash_collection__HashMap(var41);
-self->attrs[COLOR_separate_compiler__SeparateCompiler___64dattr_tables].val = var41; /* @attr_tables on <self:SeparateCompiler exact> */
+var33 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateCompiler exact>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_resolved].val = var33; /* @count_type_test_resolved on <self:SeparateCompiler exact> */
+var34 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateCompiler exact>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_unresolved].val = var34; /* @count_type_test_unresolved on <self:SeparateCompiler exact> */
+var35 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompiler__init_count_type_test_tags]))(self) /* init_count_type_test_tags on <self:SeparateCompiler exact>*/;
+self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dcount_type_test_skipped].val = var35; /* @count_type_test_skipped on <self:SeparateCompiler exact> */
+var36 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType);
+((void (*)(val*))(var36->class->vft[COLOR_hash_collection__HashSet__init]))(var36) /* init on <var36:HashSet[MType]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dundead_types].val = var36; /* @undead_types on <self:SeparateCompiler exact> */
+var37 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType);
+((void (*)(val*))(var37->class->vft[COLOR_hash_collection__HashMap__init]))(var37) /* init on <var37:HashMap[MClassDef, HashSet[MType]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dlive_unresolved_types].val = var37; /* @live_unresolved_types on <self:SeparateCompiler exact> */
+var38 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClasskernel__Int);
+((void (*)(val*))(var38->class->vft[COLOR_hash_collection__HashMap__init]))(var38) /* init on <var38:HashMap[MClass, Int]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dbox_kinds].val = var38; /* @box_kinds on <self:SeparateCompiler exact> */
+var39 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetkernel__Object);
+((void (*)(val*))(var39->class->vft[COLOR_hash_collection__HashSet__init]))(var39) /* init on <var39:HashSet[Object]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dcolor_consts_done].val = var39; /* @color_consts_done on <self:SeparateCompiler exact> */
+var40 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType);
+((void (*)(val*))(var40->class->vft[COLOR_hash_collection__HashMap__init]))(var40) /* init on <var40:HashMap[MType, Array[nullable MType]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dtype_tables].val = var40; /* @type_tables on <self:SeparateCompiler exact> */
+var41 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType);
+((void (*)(val*))(var41->class->vft[COLOR_hash_collection__HashMap__init]))(var41) /* init on <var41:HashMap[MClassType, Array[nullable MType]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dresolution_tables].val = var41; /* @resolution_tables on <self:SeparateCompiler exact> */
+var42 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef);
+((void (*)(val*))(var42->class->vft[COLOR_hash_collection__HashMap__init]))(var42) /* init on <var42:HashMap[MClass, Array[nullable MPropDef]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dmethod_tables].val = var42; /* @method_tables on <self:SeparateCompiler exact> */
+var43 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef);
+((void (*)(val*))(var43->class->vft[COLOR_hash_collection__HashMap__init]))(var43) /* init on <var43:HashMap[MClass, Array[nullable MPropDef]]>*/;
+self->attrs[COLOR_separate_compiler__SeparateCompiler___64dattr_tables].val = var43; /* @attr_tables on <self:SeparateCompiler exact> */
 return self;
 }
-/* allocate SeparateCompiler */
-void CHECK_NEW_separate_compiler__SeparateCompiler(val* self) {
-val* var /* : MModule */;
-val* var1 /* : MModule */;
-val* var2 /* : ModelBuilder */;
-val* var3 /* : CodeWriter */;
-val* var4 /* : RapidTypeAnalysis */;
-val* var5 /* : nullable Layout[MType] */;
-val* var6 /* : nullable Layout[MType] */;
-val* var7 /* : nullable Layout[PropertyLayoutElement] */;
-val* var8 /* : nullable Layout[MAttribute] */;
-var = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dmainmodule].val; /* @mainmodule on <self:SeparateCompiler> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mainmodule", "src/abstract_compiler.nit", 259);
-exit(1);
-}
-var1 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64drealmainmodule].val; /* @realmainmodule on <self:SeparateCompiler> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @realmainmodule", "src/abstract_compiler.nit", 263);
-exit(1);
-}
-var2 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dmodelbuilder].val; /* @modelbuilder on <self:SeparateCompiler> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @modelbuilder", "src/abstract_compiler.nit", 266);
-exit(1);
-}
-var3 = self->attrs[COLOR_abstract_compiler__AbstractCompiler___64dheader].val; /* @header on <self:SeparateCompiler> */
-if (var3 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @header", "src/abstract_compiler.nit", 295);
-exit(1);
-}
-var4 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64druntime_type_analysis].val; /* @runtime_type_analysis on <self:SeparateCompiler> */
-if (var4 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @runtime_type_analysis", "src/separate_compiler.nit", 111);
-exit(1);
-}
-var5 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64dtype_layout].val; /* @type_layout on <self:SeparateCompiler> */
-var6 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64dresolution_layout].val; /* @resolution_layout on <self:SeparateCompiler> */
-var7 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64dmethod_layout].val; /* @method_layout on <self:SeparateCompiler> */
-var8 = self->attrs[COLOR_separate_compiler__SeparateCompiler___64dattr_layout].val; /* @attr_layout on <self:SeparateCompiler> */
-}
 /* runtime class separate_compiler__SeparateCompilerVisitor */
 const struct class class_separate_compiler__SeparateCompilerVisitor = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to separate_compiler:SeparateCompilerVisitor:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to separate_compiler:SeparateCompilerVisitor:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to separate_compiler:SeparateCompilerVisitor:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to separate_compiler:SeparateCompilerVisitor:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to separate_compiler:SeparateCompilerVisitor:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to separate_compiler:SeparateCompilerVisitor:kernel#Object#output */
@@ -7117,16 +9679,17 @@ const struct class class_separate_compiler__SeparateCompilerVisitor = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to separate_compiler:SeparateCompilerVisitor:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to separate_compiler:SeparateCompilerVisitor:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to separate_compiler:SeparateCompilerVisitor:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_compiler:SeparateCompilerVisitor:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_compiler:SeparateCompilerVisitor:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_compiler:SeparateCompilerVisitor:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_compiler:SeparateCompilerVisitor:math#Object#srand */
 (nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to separate_compiler:SeparateCompilerVisitor:string#Object#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to separate_compiler:SeparateCompilerVisitor:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to separate_compiler:SeparateCompilerVisitor:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to separate_compiler:SeparateCompilerVisitor:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to separate_compiler:SeparateCompilerVisitor:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to separate_compiler:SeparateCompilerVisitor:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_compiler:SeparateCompilerVisitor:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_compiler:SeparateCompilerVisitor:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_compiler:SeparateCompilerVisitor:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_compiler:SeparateCompilerVisitor:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to separate_compiler:SeparateCompilerVisitor:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to separate_compiler:SeparateCompilerVisitor:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to separate_compiler:SeparateCompilerVisitor:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to separate_compiler:SeparateCompilerVisitor:time#Object#get_time */
@@ -7149,6 +9712,14 @@ const struct class class_separate_compiler__SeparateCompilerVisitor = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to separate_compiler:SeparateCompilerVisitor:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to separate_compiler:SeparateCompilerVisitor:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to separate_compiler:SeparateCompilerVisitor:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to separate_compiler:SeparateCompilerVisitor:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to separate_compiler:SeparateCompilerVisitor:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to separate_compiler:SeparateCompilerVisitor:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to separate_compiler:SeparateCompilerVisitor:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to separate_compiler:SeparateCompilerVisitor:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to separate_compiler:SeparateCompilerVisitor:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to separate_compiler:SeparateCompilerVisitor:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to separate_compiler:SeparateCompilerVisitor:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__compiler, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#compiler */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__compiler_61d, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#compiler= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__current_node, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#current_node */
@@ -7178,11 +9749,11 @@ const struct class class_separate_compiler__SeparateCompilerVisitor = {
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__call, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#call */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__send, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#send */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__monomorphic_send, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#monomorphic_send */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__monomorphic_super_send, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#monomorphic_super_send */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__isset_attribute, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#isset_attribute */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__read_attribute, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#read_attribute */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__write_attribute, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#write_attribute */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__check_recv_notnull, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#check_recv_notnull */
-(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__check_init_instance, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#check_init_instance */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__names, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#names */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__names_61d, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#names= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__last, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#last */
@@ -7210,13 +9781,19 @@ const struct class class_separate_compiler__SeparateCompilerVisitor = {
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_extern, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_extern */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__new_expr, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#new_expr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_abort, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_abort */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_raw_abort, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_raw_abort */
+(nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_cast, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#add_cast */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__ret, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#ret */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__stmt, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#stmt */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__expr, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#expr */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__expr_bool, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#expr_bool */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractCompilerVisitor__debug, /* pointer to separate_compiler:SeparateCompilerVisitor:abstract_compiler#AbstractCompilerVisitor#debug */
+(nitmethod_t)VIRTUAL_compiler_ffi__AbstractCompilerVisitor__var_from_c, /* pointer to separate_compiler:SeparateCompilerVisitor:compiler_ffi#AbstractCompilerVisitor#var_from_c */
+(nitmethod_t)VIRTUAL_compiler_ffi__AbstractCompilerVisitor__ret_to_c, /* pointer to separate_compiler:SeparateCompilerVisitor:compiler_ffi#AbstractCompilerVisitor#ret_to_c */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__type_info, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#type_info */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__table_send, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#table_send */
+(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__hardening_live_open_type, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#hardening_live_open_type */
+(nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__hardening_cast_type, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#hardening_cast_type */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__can_be_primitive, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#can_be_primitive */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__maybe_null, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#maybe_null */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateCompilerVisitor__native_array_instance, /* pointer to separate_compiler:SeparateCompilerVisitor:separate_compiler#SeparateCompilerVisitor#native_array_instance */
@@ -7238,43 +9815,24 @@ var = NULL;
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dcurrent_node].val = var; /* @current_node on <self:SeparateCompilerVisitor exact> */
 var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetstring__String);
 ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[String]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dnames].val = var1; /* @names on <self:SeparateCompilerVisitor exact> */
 var2 = 0;
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dlast].l = var2; /* @last on <self:SeparateCompilerVisitor exact> */
 var3 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapscope__EscapeMarkstring__String);
 ((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[EscapeMark, String]>*/;
-CHECK_NEW_hash_collection__HashMap(var3);
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64descapemark_names].val = var3; /* @escapemark_names on <self:SeparateCompilerVisitor exact> */
 var4 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable);
 ((void (*)(val*))(var4->class->vft[COLOR_hash_collection__HashMap__init]))(var4) /* init on <var4:HashMap[Variable, RuntimeVariable]>*/;
-CHECK_NEW_hash_collection__HashMap(var4);
 self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dvariables].val = var4; /* @variables on <self:SeparateCompilerVisitor exact> */
 return self;
 }
-/* allocate SeparateCompilerVisitor */
-void CHECK_NEW_separate_compiler__SeparateCompilerVisitor(val* self) {
-val* var /* : AbstractCompiler */;
-val* var1 /* : nullable Frame */;
-val* var2 /* : CodeWriter */;
-var = self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dcompiler].val; /* @compiler on <self:SeparateCompilerVisitor> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @compiler", "src/abstract_compiler.nit", 533);
-exit(1);
-}
-var1 = self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dframe].val; /* @frame on <self:SeparateCompilerVisitor> */
-var2 = self->attrs[COLOR_abstract_compiler__AbstractCompilerVisitor___64dwriter].val; /* @writer on <self:SeparateCompilerVisitor> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @writer", "src/abstract_compiler.nit", 548);
-exit(1);
-}
-}
 /* runtime class separate_compiler__SeparateRuntimeFunction */
 const struct class class_separate_compiler__SeparateRuntimeFunction = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to separate_compiler:SeparateRuntimeFunction:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to separate_compiler:SeparateRuntimeFunction:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to separate_compiler:SeparateRuntimeFunction:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to separate_compiler:SeparateRuntimeFunction:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to separate_compiler:SeparateRuntimeFunction:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to separate_compiler:SeparateRuntimeFunction:kernel#Object#output */
@@ -7282,16 +9840,17 @@ const struct class class_separate_compiler__SeparateRuntimeFunction = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to separate_compiler:SeparateRuntimeFunction:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to separate_compiler:SeparateRuntimeFunction:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to separate_compiler:SeparateRuntimeFunction:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_compiler:SeparateRuntimeFunction:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_compiler:SeparateRuntimeFunction:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_compiler:SeparateRuntimeFunction:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_compiler:SeparateRuntimeFunction:math#Object#srand */
 (nitmethod_t)VIRTUAL_separate_compiler__SeparateRuntimeFunction__to_s, /* pointer to separate_compiler:SeparateRuntimeFunction:separate_compiler#SeparateRuntimeFunction#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to separate_compiler:SeparateRuntimeFunction:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to separate_compiler:SeparateRuntimeFunction:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to separate_compiler:SeparateRuntimeFunction:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to separate_compiler:SeparateRuntimeFunction:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to separate_compiler:SeparateRuntimeFunction:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_compiler:SeparateRuntimeFunction:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_compiler:SeparateRuntimeFunction:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_compiler:SeparateRuntimeFunction:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_compiler:SeparateRuntimeFunction:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to separate_compiler:SeparateRuntimeFunction:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to separate_compiler:SeparateRuntimeFunction:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to separate_compiler:SeparateRuntimeFunction:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to separate_compiler:SeparateRuntimeFunction:time#Object#get_time */
@@ -7314,6 +9873,14 @@ const struct class class_separate_compiler__SeparateRuntimeFunction = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to separate_compiler:SeparateRuntimeFunction:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to separate_compiler:SeparateRuntimeFunction:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to separate_compiler:SeparateRuntimeFunction:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to separate_compiler:SeparateRuntimeFunction:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to separate_compiler:SeparateRuntimeFunction:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to separate_compiler:SeparateRuntimeFunction:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to separate_compiler:SeparateRuntimeFunction:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to separate_compiler:SeparateRuntimeFunction:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to separate_compiler:SeparateRuntimeFunction:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to separate_compiler:SeparateRuntimeFunction:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to separate_compiler:SeparateRuntimeFunction:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef, /* pointer to separate_compiler:SeparateRuntimeFunction:abstract_compiler#AbstractRuntimeFunction#mmethoddef */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d, /* pointer to separate_compiler:SeparateRuntimeFunction:abstract_compiler#AbstractRuntimeFunction#mmethoddef= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractRuntimeFunction__c_name, /* pointer to separate_compiler:SeparateRuntimeFunction:abstract_compiler#AbstractRuntimeFunction#c_name */
@@ -7336,21 +9903,13 @@ var = NULL;
 self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dc_name_cache].val = var; /* @c_name_cache on <self:SeparateRuntimeFunction exact> */
 return self;
 }
-/* allocate SeparateRuntimeFunction */
-void CHECK_NEW_separate_compiler__SeparateRuntimeFunction(val* self) {
-val* var /* : MMethodDef */;
-var = self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef].val; /* @mmethoddef on <self:SeparateRuntimeFunction> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmethoddef", "src/abstract_compiler.nit", 969);
-exit(1);
-}
-}
 /* runtime class separate_compiler__VirtualRuntimeFunction */
 const struct class class_separate_compiler__VirtualRuntimeFunction = {
 0, /* box_kind */
 {
 (nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to separate_compiler:VirtualRuntimeFunction:kernel#Object#object_id */
 (nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to separate_compiler:VirtualRuntimeFunction:kernel#Object#is_same_type */
+(nitmethod_t)VIRTUAL_kernel__Object__is_same_instance, /* pointer to separate_compiler:VirtualRuntimeFunction:kernel#Object#is_same_instance */
 (nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to separate_compiler:VirtualRuntimeFunction:kernel#Object#== */
 (nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to separate_compiler:VirtualRuntimeFunction:kernel#Object#!= */
 (nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to separate_compiler:VirtualRuntimeFunction:kernel#Object#output */
@@ -7358,16 +9917,17 @@ const struct class class_separate_compiler__VirtualRuntimeFunction = {
 (nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to separate_compiler:VirtualRuntimeFunction:kernel#Object#exit */
 (nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to separate_compiler:VirtualRuntimeFunction:kernel#Object#sys */
 (nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to separate_compiler:VirtualRuntimeFunction:kernel#Object#hash */
+(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_compiler:VirtualRuntimeFunction:math#Object#atan2 */
+(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_compiler:VirtualRuntimeFunction:math#Object#pi */
+(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_compiler:VirtualRuntimeFunction:math#Object#srand_from */
+(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_compiler:VirtualRuntimeFunction:math#Object#srand */
 (nitmethod_t)VIRTUAL_separate_compiler__VirtualRuntimeFunction__to_s, /* pointer to separate_compiler:VirtualRuntimeFunction:separate_compiler#VirtualRuntimeFunction#to_s */
 (nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to separate_compiler:VirtualRuntimeFunction:string#Object#native_class_name */
 (nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to separate_compiler:VirtualRuntimeFunction:string#Object#class_name */
 (nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to separate_compiler:VirtualRuntimeFunction:string#Object#inspect */
 (nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to separate_compiler:VirtualRuntimeFunction:string#Object#inspect_head */
 (nitmethod_t)VIRTUAL_string__Object__args, /* pointer to separate_compiler:VirtualRuntimeFunction:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to separate_compiler:VirtualRuntimeFunction:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to separate_compiler:VirtualRuntimeFunction:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to separate_compiler:VirtualRuntimeFunction:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to separate_compiler:VirtualRuntimeFunction:math#Object#srand */
+(nitmethod_t)VIRTUAL_string__Object__alpha_comparator, /* pointer to separate_compiler:VirtualRuntimeFunction:string#Object#alpha_comparator */
 (nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to separate_compiler:VirtualRuntimeFunction:stream#Object#poll */
 (nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to separate_compiler:VirtualRuntimeFunction:stream#Object#intern_poll */
 (nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to separate_compiler:VirtualRuntimeFunction:time#Object#get_time */
@@ -7390,6 +9950,14 @@ const struct class class_separate_compiler__VirtualRuntimeFunction = {
 (nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to separate_compiler:VirtualRuntimeFunction:model#Object#interface_kind */
 (nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to separate_compiler:VirtualRuntimeFunction:model#Object#enum_kind */
 (nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to separate_compiler:VirtualRuntimeFunction:model#Object#extern_kind */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__internal_call_context, /* pointer to separate_compiler:VirtualRuntimeFunction:nitni_utilities#Object#internal_call_context */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__long_signature, /* pointer to separate_compiler:VirtualRuntimeFunction:nitni_utilities#Object#long_signature */
+(nitmethod_t)VIRTUAL_nitni_utilities__Object__short_signature, /* pointer to separate_compiler:VirtualRuntimeFunction:nitni_utilities#Object#short_signature */
+(nitmethod_t)VIRTUAL_c__Object__to_c_call_context, /* pointer to separate_compiler:VirtualRuntimeFunction:c#Object#to_c_call_context */
+(nitmethod_t)VIRTUAL_c__Object__from_c_call_context, /* pointer to separate_compiler:VirtualRuntimeFunction:c#Object#from_c_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__cpp_call_context, /* pointer to separate_compiler:VirtualRuntimeFunction:cpp#Object#cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__to_cpp_call_context, /* pointer to separate_compiler:VirtualRuntimeFunction:cpp#Object#to_cpp_call_context */
+(nitmethod_t)VIRTUAL_cpp__Object__from_cpp_call_context, /* pointer to separate_compiler:VirtualRuntimeFunction:cpp#Object#from_cpp_call_context */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef, /* pointer to separate_compiler:VirtualRuntimeFunction:abstract_compiler#AbstractRuntimeFunction#mmethoddef */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d, /* pointer to separate_compiler:VirtualRuntimeFunction:abstract_compiler#AbstractRuntimeFunction#mmethoddef= */
 (nitmethod_t)VIRTUAL_abstract_compiler__AbstractRuntimeFunction__c_name, /* pointer to separate_compiler:VirtualRuntimeFunction:abstract_compiler#AbstractRuntimeFunction#c_name */
@@ -7412,1391 +9980,3 @@ var = NULL;
 self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dc_name_cache].val = var; /* @c_name_cache on <self:VirtualRuntimeFunction exact> */
 return self;
 }
-/* allocate VirtualRuntimeFunction */
-void CHECK_NEW_separate_compiler__VirtualRuntimeFunction(val* self) {
-val* var /* : MMethodDef */;
-var = self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef].val; /* @mmethoddef on <self:VirtualRuntimeFunction> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmethoddef", "src/abstract_compiler.nit", 969);
-exit(1);
-}
-}
-/* runtime class layout_builders__Layout */
-const struct class class_layout_builders__Layout = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:Layout:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:Layout:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:Layout:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:Layout:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:Layout:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:Layout:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:Layout:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:Layout:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:Layout:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:Layout:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:Layout:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:Layout:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:Layout:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:Layout:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:Layout:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:Layout:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:Layout:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:Layout:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:Layout:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:Layout:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:Layout:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:Layout:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:Layout:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:Layout:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:Layout:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:Layout:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:Layout:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:Layout:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:Layout:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:Layout:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:Layout:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:Layout:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:Layout:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:Layout:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:Layout:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:Layout:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:Layout:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:Layout:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:Layout:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:Layout:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:Layout:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__ids, /* pointer to layout_builders:Layout:layout_builders#Layout#ids */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__ids_61d, /* pointer to layout_builders:Layout:layout_builders#Layout#ids= */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__pos, /* pointer to layout_builders:Layout:layout_builders#Layout#pos */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__pos_61d, /* pointer to layout_builders:Layout:layout_builders#Layout#pos= */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__init, /* pointer to layout_builders:Layout:layout_builders#Layout#init */
-}
-};
-/* allocate Layout[Object] */
-val* NEW_layout_builders__Layout(const struct type* type) {
-val* self /* : Layout[Object] */;
-val* var /* : HashMap[Object, Int] */;
-val* var1 /* : HashMap[Object, Int] */;
-self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__Layout;
-var = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__Layout_FT0kernel__Int]);
-((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashMap__init]))(var) /* init on <var:HashMap[Object, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var);
-self->attrs[COLOR_layout_builders__Layout___64dids].val = var; /* @ids on <self:Layout[Object] exact> */
-var1 = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__Layout_FT0kernel__Int]);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashMap__init]))(var1) /* init on <var1:HashMap[Object, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var1);
-self->attrs[COLOR_layout_builders__Layout___64dpos].val = var1; /* @pos on <self:Layout[Object] exact> */
-return self;
-}
-/* allocate Layout[Object] */
-void CHECK_NEW_layout_builders__Layout(val* self) {
-}
-/* runtime class layout_builders__PHLayout */
-const struct class class_layout_builders__PHLayout = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:PHLayout:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:PHLayout:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:PHLayout:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:PHLayout:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:PHLayout:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:PHLayout:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:PHLayout:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:PHLayout:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:PHLayout:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:PHLayout:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:PHLayout:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:PHLayout:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:PHLayout:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:PHLayout:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:PHLayout:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:PHLayout:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:PHLayout:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:PHLayout:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:PHLayout:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:PHLayout:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:PHLayout:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:PHLayout:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:PHLayout:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:PHLayout:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:PHLayout:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:PHLayout:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:PHLayout:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:PHLayout:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:PHLayout:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:PHLayout:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:PHLayout:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:PHLayout:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:PHLayout:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:PHLayout:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:PHLayout:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:PHLayout:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:PHLayout:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:PHLayout:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:PHLayout:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:PHLayout:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:PHLayout:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__ids, /* pointer to layout_builders:PHLayout:layout_builders#Layout#ids */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__ids_61d, /* pointer to layout_builders:PHLayout:layout_builders#Layout#ids= */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__pos, /* pointer to layout_builders:PHLayout:layout_builders#Layout#pos */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__pos_61d, /* pointer to layout_builders:PHLayout:layout_builders#Layout#pos= */
-(nitmethod_t)VIRTUAL_layout_builders__Layout__init, /* pointer to layout_builders:PHLayout:layout_builders#Layout#init */
-(nitmethod_t)VIRTUAL_layout_builders__PHLayout__masks, /* pointer to layout_builders:PHLayout:layout_builders#PHLayout#masks */
-(nitmethod_t)VIRTUAL_layout_builders__PHLayout__masks_61d, /* pointer to layout_builders:PHLayout:layout_builders#PHLayout#masks= */
-(nitmethod_t)VIRTUAL_layout_builders__PHLayout__hashes, /* pointer to layout_builders:PHLayout:layout_builders#PHLayout#hashes */
-(nitmethod_t)VIRTUAL_layout_builders__PHLayout__hashes_61d, /* pointer to layout_builders:PHLayout:layout_builders#PHLayout#hashes= */
-(nitmethod_t)VIRTUAL_layout_builders__PHLayout__init, /* pointer to layout_builders:PHLayout:layout_builders#PHLayout#init */
-}
-};
-/* allocate PHLayout[Object, Object] */
-val* NEW_layout_builders__PHLayout(const struct type* type) {
-val* self /* : PHLayout[Object, Object] */;
-val* var /* : HashMap[Object, Int] */;
-val* var1 /* : HashMap[Object, Int] */;
-val* var2 /* : HashMap[Object, Int] */;
-val* var3 /* : HashMap[Object, Map[Object, Int]] */;
-self = nit_alloc(sizeof(struct instance) + 4*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__PHLayout;
-var = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__Layout_FT0kernel__Int]);
-((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashMap__init]))(var) /* init on <var:HashMap[Object, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var);
-self->attrs[COLOR_layout_builders__Layout___64dids].val = var; /* @ids on <self:PHLayout[Object, Object] exact> */
-var1 = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__Layout_FT0kernel__Int]);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashMap__init]))(var1) /* init on <var1:HashMap[Object, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var1);
-self->attrs[COLOR_layout_builders__Layout___64dpos].val = var1; /* @pos on <self:PHLayout[Object, Object] exact> */
-var2 = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__PHLayout_FT0kernel__Int]);
-((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashMap__init]))(var2) /* init on <var2:HashMap[Object, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var2);
-self->attrs[COLOR_layout_builders__PHLayout___64dmasks].val = var2; /* @masks on <self:PHLayout[Object, Object] exact> */
-var3 = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__PHLayout_FT0abstract_collection__Maplayout_builders__PHLayout_FT1kernel__Int]);
-((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[Object, Map[Object, Int]]>*/;
-CHECK_NEW_hash_collection__HashMap(var3);
-self->attrs[COLOR_layout_builders__PHLayout___64dhashes].val = var3; /* @hashes on <self:PHLayout[Object, Object] exact> */
-return self;
-}
-/* allocate PHLayout[Object, Object] */
-void CHECK_NEW_layout_builders__PHLayout(val* self) {
-}
-/* runtime class layout_builders__MTypePOSetBuilder */
-const struct class class_layout_builders__MTypePOSetBuilder = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:MTypePOSetBuilder:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:MTypePOSetBuilder:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:MTypePOSetBuilder:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:MTypePOSetBuilder:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:MTypePOSetBuilder:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:MTypePOSetBuilder:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:MTypePOSetBuilder:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:MTypePOSetBuilder:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:MTypePOSetBuilder:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:MTypePOSetBuilder:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:MTypePOSetBuilder:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:MTypePOSetBuilder:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:MTypePOSetBuilder:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:MTypePOSetBuilder:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:MTypePOSetBuilder:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:MTypePOSetBuilder:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:MTypePOSetBuilder:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:MTypePOSetBuilder:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:MTypePOSetBuilder:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:MTypePOSetBuilder:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:MTypePOSetBuilder:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:MTypePOSetBuilder:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:MTypePOSetBuilder:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:MTypePOSetBuilder:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:MTypePOSetBuilder:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:MTypePOSetBuilder:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:MTypePOSetBuilder:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:MTypePOSetBuilder:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:MTypePOSetBuilder:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:MTypePOSetBuilder:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:MTypePOSetBuilder:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:MTypePOSetBuilder:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:MTypePOSetBuilder:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:MTypePOSetBuilder:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:MTypePOSetBuilder:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:MTypePOSetBuilder:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:MTypePOSetBuilder:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:MTypePOSetBuilder:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:MTypePOSetBuilder:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:MTypePOSetBuilder:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:MTypePOSetBuilder:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__POSetBuilder__mmodule, /* pointer to layout_builders:MTypePOSetBuilder:layout_builders#POSetBuilder#mmodule */
-(nitmethod_t)VIRTUAL_layout_builders__POSetBuilder__mmodule_61d, /* pointer to layout_builders:MTypePOSetBuilder:layout_builders#POSetBuilder#mmodule= */
-(nitmethod_t)VIRTUAL_layout_builders__POSetBuilder__init, /* pointer to layout_builders:MTypePOSetBuilder:layout_builders#POSetBuilder#init */
-(nitmethod_t)VIRTUAL_layout_builders__MTypePOSetBuilder__build_poset, /* pointer to layout_builders:MTypePOSetBuilder:layout_builders#MTypePOSetBuilder#build_poset */
-}
-};
-/* allocate MTypePOSetBuilder */
-val* NEW_layout_builders__MTypePOSetBuilder(const struct type* type) {
-val* self /* : MTypePOSetBuilder */;
-self = nit_alloc(sizeof(struct instance) + 1*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__MTypePOSetBuilder;
-return self;
-}
-/* allocate MTypePOSetBuilder */
-void CHECK_NEW_layout_builders__MTypePOSetBuilder(val* self) {
-val* var /* : MModule */;
-var = self->attrs[COLOR_layout_builders__POSetBuilder___64dmmodule].val; /* @mmodule on <self:MTypePOSetBuilder> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/layout_builders.nit", 94);
-exit(1);
-}
-}
-/* runtime class layout_builders__MClassPOSetBuilder */
-const struct class class_layout_builders__MClassPOSetBuilder = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:MClassPOSetBuilder:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:MClassPOSetBuilder:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:MClassPOSetBuilder:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:MClassPOSetBuilder:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:MClassPOSetBuilder:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:MClassPOSetBuilder:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:MClassPOSetBuilder:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:MClassPOSetBuilder:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:MClassPOSetBuilder:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:MClassPOSetBuilder:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:MClassPOSetBuilder:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:MClassPOSetBuilder:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:MClassPOSetBuilder:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:MClassPOSetBuilder:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:MClassPOSetBuilder:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:MClassPOSetBuilder:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:MClassPOSetBuilder:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:MClassPOSetBuilder:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:MClassPOSetBuilder:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:MClassPOSetBuilder:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:MClassPOSetBuilder:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:MClassPOSetBuilder:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:MClassPOSetBuilder:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:MClassPOSetBuilder:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:MClassPOSetBuilder:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:MClassPOSetBuilder:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:MClassPOSetBuilder:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:MClassPOSetBuilder:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:MClassPOSetBuilder:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:MClassPOSetBuilder:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:MClassPOSetBuilder:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:MClassPOSetBuilder:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:MClassPOSetBuilder:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:MClassPOSetBuilder:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:MClassPOSetBuilder:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:MClassPOSetBuilder:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:MClassPOSetBuilder:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:MClassPOSetBuilder:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:MClassPOSetBuilder:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:MClassPOSetBuilder:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:MClassPOSetBuilder:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__POSetBuilder__mmodule, /* pointer to layout_builders:MClassPOSetBuilder:layout_builders#POSetBuilder#mmodule */
-(nitmethod_t)VIRTUAL_layout_builders__POSetBuilder__mmodule_61d, /* pointer to layout_builders:MClassPOSetBuilder:layout_builders#POSetBuilder#mmodule= */
-(nitmethod_t)VIRTUAL_layout_builders__POSetBuilder__init, /* pointer to layout_builders:MClassPOSetBuilder:layout_builders#POSetBuilder#init */
-(nitmethod_t)VIRTUAL_layout_builders__MClassPOSetBuilder__build_poset, /* pointer to layout_builders:MClassPOSetBuilder:layout_builders#MClassPOSetBuilder#build_poset */
-}
-};
-/* allocate MClassPOSetBuilder */
-val* NEW_layout_builders__MClassPOSetBuilder(const struct type* type) {
-val* self /* : MClassPOSetBuilder */;
-self = nit_alloc(sizeof(struct instance) + 1*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__MClassPOSetBuilder;
-return self;
-}
-/* allocate MClassPOSetBuilder */
-void CHECK_NEW_layout_builders__MClassPOSetBuilder(val* self) {
-val* var /* : MModule */;
-var = self->attrs[COLOR_layout_builders__POSetBuilder___64dmmodule].val; /* @mmodule on <self:MClassPOSetBuilder> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/layout_builders.nit", 94);
-exit(1);
-}
-}
-/* runtime class layout_builders__MTypeBMizer */
-const struct class class_layout_builders__MTypeBMizer = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:MTypeBMizer:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:MTypeBMizer:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:MTypeBMizer:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:MTypeBMizer:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:MTypeBMizer:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:MTypeBMizer:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:MTypeBMizer:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:MTypeBMizer:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:MTypeBMizer:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:MTypeBMizer:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:MTypeBMizer:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:MTypeBMizer:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:MTypeBMizer:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:MTypeBMizer:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:MTypeBMizer:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:MTypeBMizer:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:MTypeBMizer:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:MTypeBMizer:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:MTypeBMizer:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:MTypeBMizer:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:MTypeBMizer:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:MTypeBMizer:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:MTypeBMizer:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:MTypeBMizer:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:MTypeBMizer:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:MTypeBMizer:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:MTypeBMizer:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:MTypeBMizer:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:MTypeBMizer:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:MTypeBMizer:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:MTypeBMizer:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:MTypeBMizer:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:MTypeBMizer:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:MTypeBMizer:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:MTypeBMizer:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:MTypeBMizer:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:MTypeBMizer:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:MTypeBMizer:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:MTypeBMizer:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:MTypeBMizer:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:MTypeBMizer:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__build_layout, /* pointer to layout_builders:MTypeBMizer:layout_builders#TypingBMizer#build_layout */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset, /* pointer to layout_builders:MTypeBMizer:layout_builders#TypingBMizer#poset */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__mmodule, /* pointer to layout_builders:MTypeBMizer:layout_builders#TypingBMizer#mmodule */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__mmodule_61d, /* pointer to layout_builders:MTypeBMizer:layout_builders#TypingBMizer#mmodule= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset_builder, /* pointer to layout_builders:MTypeBMizer:layout_builders#TypingBMizer#poset_builder */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset_builder_61d, /* pointer to layout_builders:MTypeBMizer:layout_builders#TypingBMizer#poset_builder= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset_cache, /* pointer to layout_builders:MTypeBMizer:layout_builders#TypingBMizer#poset_cache */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset_cache_61d, /* pointer to layout_builders:MTypeBMizer:layout_builders#TypingBMizer#poset_cache= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__init, /* pointer to layout_builders:MTypeBMizer:layout_builders#TypingBMizer#init */
-(nitmethod_t)VIRTUAL_layout_builders__MTypeBMizer__init, /* pointer to layout_builders:MTypeBMizer:layout_builders#MTypeBMizer#init */
-}
-};
-/* allocate MTypeBMizer */
-val* NEW_layout_builders__MTypeBMizer(const struct type* type) {
-val* self /* : MTypeBMizer */;
-self = nit_alloc(sizeof(struct instance) + 3*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__MTypeBMizer;
-return self;
-}
-/* allocate MTypeBMizer */
-void CHECK_NEW_layout_builders__MTypeBMizer(val* self) {
-val* var /* : MModule */;
-val* var1 /* : POSetBuilder[Object] */;
-val* var2 /* : nullable POSet[Object] */;
-var = self->attrs[COLOR_layout_builders__TypingBMizer___64dmmodule].val; /* @mmodule on <self:MTypeBMizer> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/layout_builders.nit", 132);
-exit(1);
-}
-var1 = self->attrs[COLOR_layout_builders__TypingBMizer___64dposet_builder].val; /* @poset_builder on <self:MTypeBMizer> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @poset_builder", "src/layout_builders.nit", 133);
-exit(1);
-}
-var2 = self->attrs[COLOR_layout_builders__TypingBMizer___64dposet_cache].val; /* @poset_cache on <self:MTypeBMizer> */
-}
-/* runtime class layout_builders__MClassBMizer */
-const struct class class_layout_builders__MClassBMizer = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:MClassBMizer:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:MClassBMizer:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:MClassBMizer:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:MClassBMizer:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:MClassBMizer:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:MClassBMizer:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:MClassBMizer:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:MClassBMizer:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:MClassBMizer:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:MClassBMizer:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:MClassBMizer:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:MClassBMizer:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:MClassBMizer:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:MClassBMizer:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:MClassBMizer:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:MClassBMizer:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:MClassBMizer:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:MClassBMizer:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:MClassBMizer:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:MClassBMizer:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:MClassBMizer:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:MClassBMizer:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:MClassBMizer:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:MClassBMizer:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:MClassBMizer:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:MClassBMizer:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:MClassBMizer:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:MClassBMizer:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:MClassBMizer:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:MClassBMizer:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:MClassBMizer:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:MClassBMizer:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:MClassBMizer:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:MClassBMizer:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:MClassBMizer:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:MClassBMizer:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:MClassBMizer:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:MClassBMizer:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:MClassBMizer:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:MClassBMizer:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:MClassBMizer:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__build_layout, /* pointer to layout_builders:MClassBMizer:layout_builders#TypingBMizer#build_layout */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset, /* pointer to layout_builders:MClassBMizer:layout_builders#TypingBMizer#poset */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__mmodule, /* pointer to layout_builders:MClassBMizer:layout_builders#TypingBMizer#mmodule */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__mmodule_61d, /* pointer to layout_builders:MClassBMizer:layout_builders#TypingBMizer#mmodule= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset_builder, /* pointer to layout_builders:MClassBMizer:layout_builders#TypingBMizer#poset_builder */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset_builder_61d, /* pointer to layout_builders:MClassBMizer:layout_builders#TypingBMizer#poset_builder= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset_cache, /* pointer to layout_builders:MClassBMizer:layout_builders#TypingBMizer#poset_cache */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__poset_cache_61d, /* pointer to layout_builders:MClassBMizer:layout_builders#TypingBMizer#poset_cache= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingBMizer__init, /* pointer to layout_builders:MClassBMizer:layout_builders#TypingBMizer#init */
-(nitmethod_t)VIRTUAL_layout_builders__MClassBMizer__init, /* pointer to layout_builders:MClassBMizer:layout_builders#MClassBMizer#init */
-}
-};
-/* allocate MClassBMizer */
-val* NEW_layout_builders__MClassBMizer(const struct type* type) {
-val* self /* : MClassBMizer */;
-self = nit_alloc(sizeof(struct instance) + 3*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__MClassBMizer;
-return self;
-}
-/* allocate MClassBMizer */
-void CHECK_NEW_layout_builders__MClassBMizer(val* self) {
-val* var /* : MModule */;
-val* var1 /* : POSetBuilder[Object] */;
-val* var2 /* : nullable POSet[Object] */;
-var = self->attrs[COLOR_layout_builders__TypingBMizer___64dmmodule].val; /* @mmodule on <self:MClassBMizer> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/layout_builders.nit", 132);
-exit(1);
-}
-var1 = self->attrs[COLOR_layout_builders__TypingBMizer___64dposet_builder].val; /* @poset_builder on <self:MClassBMizer> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @poset_builder", "src/layout_builders.nit", 133);
-exit(1);
-}
-var2 = self->attrs[COLOR_layout_builders__TypingBMizer___64dposet_cache].val; /* @poset_cache on <self:MClassBMizer> */
-}
-/* runtime class layout_builders__ResolutionBMizer */
-const struct class class_layout_builders__ResolutionBMizer = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:ResolutionBMizer:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:ResolutionBMizer:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:ResolutionBMizer:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:ResolutionBMizer:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:ResolutionBMizer:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:ResolutionBMizer:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:ResolutionBMizer:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:ResolutionBMizer:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:ResolutionBMizer:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:ResolutionBMizer:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:ResolutionBMizer:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:ResolutionBMizer:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:ResolutionBMizer:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:ResolutionBMizer:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:ResolutionBMizer:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:ResolutionBMizer:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:ResolutionBMizer:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:ResolutionBMizer:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:ResolutionBMizer:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:ResolutionBMizer:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:ResolutionBMizer:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:ResolutionBMizer:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:ResolutionBMizer:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:ResolutionBMizer:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:ResolutionBMizer:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:ResolutionBMizer:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:ResolutionBMizer:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:ResolutionBMizer:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:ResolutionBMizer:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:ResolutionBMizer:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:ResolutionBMizer:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:ResolutionBMizer:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:ResolutionBMizer:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:ResolutionBMizer:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:ResolutionBMizer:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:ResolutionBMizer:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:ResolutionBMizer:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:ResolutionBMizer:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:ResolutionBMizer:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:ResolutionBMizer:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:ResolutionBMizer:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionBMizer__build_layout, /* pointer to layout_builders:ResolutionBMizer:layout_builders#ResolutionBMizer#build_layout */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionBMizer__init, /* pointer to layout_builders:ResolutionBMizer:layout_builders#ResolutionBMizer#init */
-}
-};
-/* allocate ResolutionBMizer */
-val* NEW_layout_builders__ResolutionBMizer(const struct type* type) {
-val* self /* : ResolutionBMizer */;
-self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__ResolutionBMizer;
-return self;
-}
-/* allocate ResolutionBMizer */
-void CHECK_NEW_layout_builders__ResolutionBMizer(val* self) {
-}
-/* runtime class layout_builders__MPropertyBMizer */
-/* allocate MPropertyBMizer[PropertyLayoutElement] */
-val* NEW_layout_builders__MPropertyBMizer(const struct type* type) {
-fprintf(stderr, "Runtime error: %s\n", "MPropertyBMizer is DEAD");
-exit(1);
-}
-/* allocate MPropertyBMizer[PropertyLayoutElement] */
-void CHECK_NEW_layout_builders__MPropertyBMizer(val* self) {
-fprintf(stderr, "Runtime error: %s\n", "MPropertyBMizer is DEAD");
-exit(1);
-}
-/* runtime class layout_builders__MTypeColorer */
-const struct class class_layout_builders__MTypeColorer = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:MTypeColorer:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:MTypeColorer:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:MTypeColorer:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:MTypeColorer:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:MTypeColorer:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:MTypeColorer:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:MTypeColorer:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:MTypeColorer:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:MTypeColorer:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:MTypeColorer:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:MTypeColorer:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:MTypeColorer:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:MTypeColorer:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:MTypeColorer:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:MTypeColorer:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:MTypeColorer:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:MTypeColorer:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:MTypeColorer:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:MTypeColorer:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:MTypeColorer:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:MTypeColorer:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:MTypeColorer:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:MTypeColorer:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:MTypeColorer:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:MTypeColorer:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:MTypeColorer:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:MTypeColorer:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:MTypeColorer:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:MTypeColorer:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:MTypeColorer:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:MTypeColorer:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:MTypeColorer:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:MTypeColorer:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:MTypeColorer:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:MTypeColorer:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:MTypeColorer:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:MTypeColorer:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:MTypeColorer:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:MTypeColorer:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:MTypeColorer:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:MTypeColorer:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__build_layout, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#build_layout */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#poset */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__core, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#core */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__core_61d, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#core= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__crown, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#crown */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__crown_61d, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#crown= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__border, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#border */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__border_61d, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#border= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__coloration_result, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#coloration_result */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__coloration_result_61d, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#coloration_result= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__mmodule, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#mmodule */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__mmodule_61d, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#mmodule= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset_builder, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#poset_builder */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset_builder_61d, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#poset_builder= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset_cache, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#poset_cache */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset_cache_61d, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#poset_cache= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__init, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#init */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__compute_ids, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#compute_ids */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__colorize, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#colorize */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__colorize_elements, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#colorize_elements */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__is_color_free, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#is_color_free */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__tag_elements, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#tag_elements */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__build_conflicts_graph, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#build_conflicts_graph */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__conflicts_graph, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#conflicts_graph */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__conflicts_graph_61d, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#conflicts_graph= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__linear_extensions_cache, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#linear_extensions_cache */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__linear_extensions_cache_61d, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#linear_extensions_cache= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__linear_extension, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#linear_extension */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__reverse_linearize, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#reverse_linearize */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__linearize, /* pointer to layout_builders:MTypeColorer:layout_builders#TypingColorer#linearize */
-(nitmethod_t)VIRTUAL_layout_builders__MTypeColorer__init, /* pointer to layout_builders:MTypeColorer:layout_builders#MTypeColorer#init */
-}
-};
-/* allocate MTypeColorer */
-val* NEW_layout_builders__MTypeColorer(const struct type* type) {
-val* self /* : MTypeColorer */;
-val* var /* : HashSet[MType] */;
-val* var1 /* : HashSet[MType] */;
-val* var2 /* : HashSet[MType] */;
-val* var3 /* : HashMap[MType, Int] */;
-val* var4 /* : HashMap[MType, Array[MType]] */;
-self = nit_alloc(sizeof(struct instance) + 9*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__MTypeColorer;
-var = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetlayout_builders__TypingColorer_FT0]);
-((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashSet__init]))(var) /* init on <var:HashSet[MType]>*/;
-CHECK_NEW_hash_collection__HashSet(var);
-self->attrs[COLOR_layout_builders__TypingColorer___64dcore].val = var; /* @core on <self:MTypeColorer exact> */
-var1 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetlayout_builders__TypingColorer_FT0]);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[MType]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
-self->attrs[COLOR_layout_builders__TypingColorer___64dcrown].val = var1; /* @crown on <self:MTypeColorer exact> */
-var2 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetlayout_builders__TypingColorer_FT0]);
-((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashSet__init]))(var2) /* init on <var2:HashSet[MType]>*/;
-CHECK_NEW_hash_collection__HashSet(var2);
-self->attrs[COLOR_layout_builders__TypingColorer___64dborder].val = var2; /* @border on <self:MTypeColorer exact> */
-var3 = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0kernel__Int]);
-((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[MType, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var3);
-self->attrs[COLOR_layout_builders__TypingColorer___64dcoloration_result].val = var3; /* @coloration_result on <self:MTypeColorer exact> */
-var4 = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0array__Arraylayout_builders__TypingColorer_FT0]);
-((void (*)(val*))(var4->class->vft[COLOR_hash_collection__HashMap__init]))(var4) /* init on <var4:HashMap[MType, Array[MType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var4);
-self->attrs[COLOR_layout_builders__TypingColorer___64dlinear_extensions_cache].val = var4; /* @linear_extensions_cache on <self:MTypeColorer exact> */
-return self;
-}
-/* allocate MTypeColorer */
-void CHECK_NEW_layout_builders__MTypeColorer(val* self) {
-val* var /* : MModule */;
-val* var1 /* : POSetBuilder[Object] */;
-val* var2 /* : nullable POSet[Object] */;
-val* var3 /* : nullable HashMap[Object, Set[Object]] */;
-var = self->attrs[COLOR_layout_builders__TypingColorer___64dmmodule].val; /* @mmodule on <self:MTypeColorer> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/layout_builders.nit", 230);
-exit(1);
-}
-var1 = self->attrs[COLOR_layout_builders__TypingColorer___64dposet_builder].val; /* @poset_builder on <self:MTypeColorer> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @poset_builder", "src/layout_builders.nit", 231);
-exit(1);
-}
-var2 = self->attrs[COLOR_layout_builders__TypingColorer___64dposet_cache].val; /* @poset_cache on <self:MTypeColorer> */
-var3 = self->attrs[COLOR_layout_builders__TypingColorer___64dconflicts_graph].val; /* @conflicts_graph on <self:MTypeColorer> */
-}
-/* runtime class layout_builders__MClassColorer */
-const struct class class_layout_builders__MClassColorer = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:MClassColorer:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:MClassColorer:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:MClassColorer:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:MClassColorer:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:MClassColorer:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:MClassColorer:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:MClassColorer:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:MClassColorer:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:MClassColorer:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:MClassColorer:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:MClassColorer:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:MClassColorer:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:MClassColorer:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:MClassColorer:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:MClassColorer:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:MClassColorer:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:MClassColorer:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:MClassColorer:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:MClassColorer:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:MClassColorer:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:MClassColorer:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:MClassColorer:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:MClassColorer:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:MClassColorer:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:MClassColorer:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:MClassColorer:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:MClassColorer:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:MClassColorer:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:MClassColorer:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:MClassColorer:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:MClassColorer:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:MClassColorer:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:MClassColorer:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:MClassColorer:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:MClassColorer:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:MClassColorer:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:MClassColorer:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:MClassColorer:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:MClassColorer:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:MClassColorer:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:MClassColorer:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__build_layout, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#build_layout */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#poset */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__core, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#core */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__core_61d, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#core= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__crown, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#crown */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__crown_61d, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#crown= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__border, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#border */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__border_61d, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#border= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__coloration_result, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#coloration_result */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__coloration_result_61d, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#coloration_result= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__mmodule, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#mmodule */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__mmodule_61d, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#mmodule= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset_builder, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#poset_builder */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset_builder_61d, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#poset_builder= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset_cache, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#poset_cache */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__poset_cache_61d, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#poset_cache= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__init, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#init */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__compute_ids, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#compute_ids */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__colorize, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#colorize */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__colorize_elements, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#colorize_elements */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__is_color_free, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#is_color_free */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__tag_elements, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#tag_elements */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__build_conflicts_graph, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#build_conflicts_graph */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__conflicts_graph, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#conflicts_graph */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__conflicts_graph_61d, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#conflicts_graph= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__linear_extensions_cache, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#linear_extensions_cache */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__linear_extensions_cache_61d, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#linear_extensions_cache= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__linear_extension, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#linear_extension */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__reverse_linearize, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#reverse_linearize */
-(nitmethod_t)VIRTUAL_layout_builders__TypingColorer__linearize, /* pointer to layout_builders:MClassColorer:layout_builders#TypingColorer#linearize */
-(nitmethod_t)VIRTUAL_layout_builders__MClassColorer__init, /* pointer to layout_builders:MClassColorer:layout_builders#MClassColorer#init */
-}
-};
-/* allocate MClassColorer */
-val* NEW_layout_builders__MClassColorer(const struct type* type) {
-val* self /* : MClassColorer */;
-val* var /* : HashSet[MClass] */;
-val* var1 /* : HashSet[MClass] */;
-val* var2 /* : HashSet[MClass] */;
-val* var3 /* : HashMap[MClass, Int] */;
-val* var4 /* : HashMap[MClass, Array[MClass]] */;
-self = nit_alloc(sizeof(struct instance) + 9*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__MClassColorer;
-var = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetlayout_builders__TypingColorer_FT0]);
-((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashSet__init]))(var) /* init on <var:HashSet[MClass]>*/;
-CHECK_NEW_hash_collection__HashSet(var);
-self->attrs[COLOR_layout_builders__TypingColorer___64dcore].val = var; /* @core on <self:MClassColorer exact> */
-var1 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetlayout_builders__TypingColorer_FT0]);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[MClass]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
-self->attrs[COLOR_layout_builders__TypingColorer___64dcrown].val = var1; /* @crown on <self:MClassColorer exact> */
-var2 = NEW_hash_collection__HashSet(self->type->resolution_table->types[COLOR_hash_collection__HashSetlayout_builders__TypingColorer_FT0]);
-((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashSet__init]))(var2) /* init on <var2:HashSet[MClass]>*/;
-CHECK_NEW_hash_collection__HashSet(var2);
-self->attrs[COLOR_layout_builders__TypingColorer___64dborder].val = var2; /* @border on <self:MClassColorer exact> */
-var3 = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0kernel__Int]);
-((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on <var3:HashMap[MClass, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var3);
-self->attrs[COLOR_layout_builders__TypingColorer___64dcoloration_result].val = var3; /* @coloration_result on <self:MClassColorer exact> */
-var4 = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0array__Arraylayout_builders__TypingColorer_FT0]);
-((void (*)(val*))(var4->class->vft[COLOR_hash_collection__HashMap__init]))(var4) /* init on <var4:HashMap[MClass, Array[MClass]]>*/;
-CHECK_NEW_hash_collection__HashMap(var4);
-self->attrs[COLOR_layout_builders__TypingColorer___64dlinear_extensions_cache].val = var4; /* @linear_extensions_cache on <self:MClassColorer exact> */
-return self;
-}
-/* allocate MClassColorer */
-void CHECK_NEW_layout_builders__MClassColorer(val* self) {
-val* var /* : MModule */;
-val* var1 /* : POSetBuilder[Object] */;
-val* var2 /* : nullable POSet[Object] */;
-val* var3 /* : nullable HashMap[Object, Set[Object]] */;
-var = self->attrs[COLOR_layout_builders__TypingColorer___64dmmodule].val; /* @mmodule on <self:MClassColorer> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/layout_builders.nit", 230);
-exit(1);
-}
-var1 = self->attrs[COLOR_layout_builders__TypingColorer___64dposet_builder].val; /* @poset_builder on <self:MClassColorer> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @poset_builder", "src/layout_builders.nit", 231);
-exit(1);
-}
-var2 = self->attrs[COLOR_layout_builders__TypingColorer___64dposet_cache].val; /* @poset_cache on <self:MClassColorer> */
-var3 = self->attrs[COLOR_layout_builders__TypingColorer___64dconflicts_graph].val; /* @conflicts_graph on <self:MClassColorer> */
-}
-/* runtime class layout_builders__MPropertyColorer */
-const struct class class_layout_builders__MPropertyColorer = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:MPropertyColorer:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:MPropertyColorer:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:MPropertyColorer:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:MPropertyColorer:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:MPropertyColorer:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:MPropertyColorer:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:MPropertyColorer:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:MPropertyColorer:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:MPropertyColorer:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:MPropertyColorer:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:MPropertyColorer:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:MPropertyColorer:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:MPropertyColorer:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:MPropertyColorer:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:MPropertyColorer:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:MPropertyColorer:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:MPropertyColorer:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:MPropertyColorer:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:MPropertyColorer:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:MPropertyColorer:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:MPropertyColorer:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:MPropertyColorer:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:MPropertyColorer:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:MPropertyColorer:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:MPropertyColorer:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:MPropertyColorer:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:MPropertyColorer:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:MPropertyColorer:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:MPropertyColorer:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:MPropertyColorer:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:MPropertyColorer:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:MPropertyColorer:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:MPropertyColorer:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:MPropertyColorer:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:MPropertyColorer:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:MPropertyColorer:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:MPropertyColorer:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:MPropertyColorer:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:MPropertyColorer:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:MPropertyColorer:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:MPropertyColorer:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__build_layout, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#build_layout */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__mmodule, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#mmodule */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__mmodule_61d, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#mmodule= */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__class_colorer, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#class_colorer */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__class_colorer_61d, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#class_colorer= */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__coloration_result, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#coloration_result */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__coloration_result_61d, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#coloration_result= */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__init, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#init */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__colorize, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#colorize */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__colorize_core, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#colorize_core */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__colorize_crown, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#colorize_crown */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__colorize_elements, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#colorize_elements */
-(nitmethod_t)VIRTUAL_layout_builders__MPropertyColorer__max_color, /* pointer to layout_builders:MPropertyColorer:layout_builders#MPropertyColorer#max_color */
-}
-};
-/* allocate MPropertyColorer[PropertyLayoutElement] */
-val* NEW_layout_builders__MPropertyColorer(const struct type* type) {
-val* self /* : MPropertyColorer[PropertyLayoutElement] */;
-val* var /* : HashMap[PropertyLayoutElement, Int] */;
-self = nit_alloc(sizeof(struct instance) + 3*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__MPropertyColorer;
-var = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMaplayout_builders__MPropertyColorer_FT0kernel__Int]);
-((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashMap__init]))(var) /* init on <var:HashMap[PropertyLayoutElement, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var);
-self->attrs[COLOR_layout_builders__MPropertyColorer___64dcoloration_result].val = var; /* @coloration_result on <self:MPropertyColorer[PropertyLayoutElement] exact> */
-return self;
-}
-/* allocate MPropertyColorer[PropertyLayoutElement] */
-void CHECK_NEW_layout_builders__MPropertyColorer(val* self) {
-val* var /* : MModule */;
-val* var1 /* : MClassColorer */;
-var = self->attrs[COLOR_layout_builders__MPropertyColorer___64dmmodule].val; /* @mmodule on <self:MPropertyColorer[PropertyLayoutElement]> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/layout_builders.nit", 394);
-exit(1);
-}
-var1 = self->attrs[COLOR_layout_builders__MPropertyColorer___64dclass_colorer].val; /* @class_colorer on <self:MPropertyColorer[PropertyLayoutElement]> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @class_colorer", "src/layout_builders.nit", 395);
-exit(1);
-}
-}
-/* runtime class layout_builders__ResolutionColorer */
-const struct class class_layout_builders__ResolutionColorer = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:ResolutionColorer:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:ResolutionColorer:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:ResolutionColorer:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:ResolutionColorer:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:ResolutionColorer:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:ResolutionColorer:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:ResolutionColorer:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:ResolutionColorer:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:ResolutionColorer:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:ResolutionColorer:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:ResolutionColorer:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:ResolutionColorer:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:ResolutionColorer:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:ResolutionColorer:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:ResolutionColorer:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:ResolutionColorer:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:ResolutionColorer:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:ResolutionColorer:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:ResolutionColorer:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:ResolutionColorer:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:ResolutionColorer:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:ResolutionColorer:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:ResolutionColorer:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:ResolutionColorer:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:ResolutionColorer:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:ResolutionColorer:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:ResolutionColorer:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:ResolutionColorer:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:ResolutionColorer:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:ResolutionColorer:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:ResolutionColorer:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:ResolutionColorer:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:ResolutionColorer:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:ResolutionColorer:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:ResolutionColorer:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:ResolutionColorer:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:ResolutionColorer:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:ResolutionColorer:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:ResolutionColorer:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:ResolutionColorer:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:ResolutionColorer:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__build_layout, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#build_layout */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__coloration_result, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#coloration_result */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__coloration_result_61d, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#coloration_result= */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__init, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#init */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__compute_ids, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#compute_ids */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__colorize_elements, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#colorize_elements */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__is_color_free, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#is_color_free */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__build_conflicts_graph, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#build_conflicts_graph */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__conflicts_graph, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#conflicts_graph */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__conflicts_graph_61d, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#conflicts_graph= */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionColorer__add_conflict, /* pointer to layout_builders:ResolutionColorer:layout_builders#ResolutionColorer#add_conflict */
-}
-};
-/* allocate ResolutionColorer */
-val* NEW_layout_builders__ResolutionColorer(const struct type* type) {
-val* self /* : ResolutionColorer */;
-val* var /* : HashMap[MType, Int] */;
-val* var1 /* : HashMap[MType, Set[MType]] */;
-self = nit_alloc(sizeof(struct instance) + 2*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__ResolutionColorer;
-var = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypekernel__Int);
-((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashMap__init]))(var) /* init on <var:HashMap[MType, Int]>*/;
-CHECK_NEW_hash_collection__HashMap(var);
-self->attrs[COLOR_layout_builders__ResolutionColorer___64dcoloration_result].val = var; /* @coloration_result on <self:ResolutionColorer exact> */
-var1 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashMap__init]))(var1) /* init on <var1:HashMap[MType, Set[MType]]>*/;
-CHECK_NEW_hash_collection__HashMap(var1);
-self->attrs[COLOR_layout_builders__ResolutionColorer___64dconflicts_graph].val = var1; /* @conflicts_graph on <self:ResolutionColorer exact> */
-return self;
-}
-/* allocate ResolutionColorer */
-void CHECK_NEW_layout_builders__ResolutionColorer(val* self) {
-}
-/* runtime class layout_builders__PerfectHasher */
-/* allocate PerfectHasher[Object, Object] */
-val* NEW_layout_builders__PerfectHasher(const struct type* type) {
-fprintf(stderr, "Runtime error: %s\n", "PerfectHasher is DEAD");
-exit(1);
-}
-/* allocate PerfectHasher[Object, Object] */
-void CHECK_NEW_layout_builders__PerfectHasher(val* self) {
-fprintf(stderr, "Runtime error: %s\n", "PerfectHasher is DEAD");
-exit(1);
-}
-/* runtime class layout_builders__PHModOperator */
-const struct class class_layout_builders__PHModOperator = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:PHModOperator:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:PHModOperator:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:PHModOperator:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:PHModOperator:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:PHModOperator:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:PHModOperator:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:PHModOperator:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:PHModOperator:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:PHModOperator:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:PHModOperator:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:PHModOperator:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:PHModOperator:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:PHModOperator:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:PHModOperator:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:PHModOperator:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:PHModOperator:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:PHModOperator:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:PHModOperator:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:PHModOperator:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:PHModOperator:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:PHModOperator:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:PHModOperator:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:PHModOperator:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:PHModOperator:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:PHModOperator:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:PHModOperator:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:PHModOperator:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:PHModOperator:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:PHModOperator:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:PHModOperator:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:PHModOperator:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:PHModOperator:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:PHModOperator:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:PHModOperator:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:PHModOperator:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:PHModOperator:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:PHModOperator:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:PHModOperator:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:PHModOperator:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:PHModOperator:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:PHModOperator:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__PHModOperator__op, /* pointer to layout_builders:PHModOperator:layout_builders#PHModOperator#op */
-(nitmethod_t)VIRTUAL_layout_builders__PHOperator__init, /* pointer to layout_builders:PHModOperator:layout_builders#PHOperator#init */
-(nitmethod_t)VIRTUAL_layout_builders__PHModOperator__init, /* pointer to layout_builders:PHModOperator:layout_builders#PHModOperator#init */
-}
-};
-/* allocate PHModOperator */
-val* NEW_layout_builders__PHModOperator(const struct type* type) {
-val* self /* : PHModOperator */;
-self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__PHModOperator;
-return self;
-}
-/* allocate PHModOperator */
-void CHECK_NEW_layout_builders__PHModOperator(val* self) {
-}
-/* runtime class layout_builders__PHAndOperator */
-const struct class class_layout_builders__PHAndOperator = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:PHAndOperator:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:PHAndOperator:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:PHAndOperator:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:PHAndOperator:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:PHAndOperator:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:PHAndOperator:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:PHAndOperator:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:PHAndOperator:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:PHAndOperator:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:PHAndOperator:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:PHAndOperator:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:PHAndOperator:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:PHAndOperator:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:PHAndOperator:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:PHAndOperator:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:PHAndOperator:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:PHAndOperator:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:PHAndOperator:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:PHAndOperator:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:PHAndOperator:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:PHAndOperator:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:PHAndOperator:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:PHAndOperator:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:PHAndOperator:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:PHAndOperator:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:PHAndOperator:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:PHAndOperator:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:PHAndOperator:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:PHAndOperator:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:PHAndOperator:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:PHAndOperator:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:PHAndOperator:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:PHAndOperator:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:PHAndOperator:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:PHAndOperator:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:PHAndOperator:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:PHAndOperator:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:PHAndOperator:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:PHAndOperator:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:PHAndOperator:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:PHAndOperator:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__PHAndOperator__op, /* pointer to layout_builders:PHAndOperator:layout_builders#PHAndOperator#op */
-(nitmethod_t)VIRTUAL_layout_builders__PHOperator__init, /* pointer to layout_builders:PHAndOperator:layout_builders#PHOperator#init */
-(nitmethod_t)VIRTUAL_layout_builders__PHAndOperator__init, /* pointer to layout_builders:PHAndOperator:layout_builders#PHAndOperator#init */
-}
-};
-/* allocate PHAndOperator */
-val* NEW_layout_builders__PHAndOperator(const struct type* type) {
-val* self /* : PHAndOperator */;
-self = nit_alloc(sizeof(struct instance) + 0*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__PHAndOperator;
-return self;
-}
-/* allocate PHAndOperator */
-void CHECK_NEW_layout_builders__PHAndOperator(val* self) {
-}
-/* runtime class layout_builders__TypingHasher */
-/* allocate TypingHasher[Object] */
-val* NEW_layout_builders__TypingHasher(const struct type* type) {
-fprintf(stderr, "Runtime error: %s\n", "TypingHasher is DEAD");
-exit(1);
-}
-/* allocate TypingHasher[Object] */
-void CHECK_NEW_layout_builders__TypingHasher(val* self) {
-fprintf(stderr, "Runtime error: %s\n", "TypingHasher is DEAD");
-exit(1);
-}
-/* runtime class layout_builders__MTypeHasher */
-const struct class class_layout_builders__MTypeHasher = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:MTypeHasher:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:MTypeHasher:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:MTypeHasher:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:MTypeHasher:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:MTypeHasher:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:MTypeHasher:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:MTypeHasher:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:MTypeHasher:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:MTypeHasher:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:MTypeHasher:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:MTypeHasher:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:MTypeHasher:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:MTypeHasher:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:MTypeHasher:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:MTypeHasher:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:MTypeHasher:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:MTypeHasher:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:MTypeHasher:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:MTypeHasher:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:MTypeHasher:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:MTypeHasher:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:MTypeHasher:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:MTypeHasher:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:MTypeHasher:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:MTypeHasher:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:MTypeHasher:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:MTypeHasher:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:MTypeHasher:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:MTypeHasher:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:MTypeHasher:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:MTypeHasher:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:MTypeHasher:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:MTypeHasher:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:MTypeHasher:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:MTypeHasher:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:MTypeHasher:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:MTypeHasher:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:MTypeHasher:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:MTypeHasher:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:MTypeHasher:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:MTypeHasher:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__build_layout, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#build_layout */
-(nitmethod_t)VIRTUAL_layout_builders__TypingLayoutBuilder__poset, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingLayoutBuilder#poset */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__operator, /* pointer to layout_builders:MTypeHasher:layout_builders#PerfectHasher#operator */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__operator_61d, /* pointer to layout_builders:MTypeHasher:layout_builders#PerfectHasher#operator= */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__init, /* pointer to layout_builders:MTypeHasher:layout_builders#PerfectHasher#init */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__compute_masks, /* pointer to layout_builders:MTypeHasher:layout_builders#PerfectHasher#compute_masks */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__compute_mask, /* pointer to layout_builders:MTypeHasher:layout_builders#PerfectHasher#compute_mask */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__compute_hashes, /* pointer to layout_builders:MTypeHasher:layout_builders#PerfectHasher#compute_hashes */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__mmodule, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#mmodule */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__mmodule_61d, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#mmodule= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__poset_builder, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#poset_builder */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__poset_builder_61d, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#poset_builder= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__poset_cache, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#poset_cache */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__poset_cache_61d, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#poset_cache= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__init, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#init */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__compute_ids, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#compute_ids */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__build_conflicts, /* pointer to layout_builders:MTypeHasher:layout_builders#TypingHasher#build_conflicts */
-(nitmethod_t)VIRTUAL_layout_builders__MTypeHasher__init, /* pointer to layout_builders:MTypeHasher:layout_builders#MTypeHasher#init */
-}
-};
-/* allocate MTypeHasher */
-val* NEW_layout_builders__MTypeHasher(const struct type* type) {
-val* self /* : MTypeHasher */;
-self = nit_alloc(sizeof(struct instance) + 4*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__MTypeHasher;
-return self;
-}
-/* allocate MTypeHasher */
-void CHECK_NEW_layout_builders__MTypeHasher(val* self) {
-val* var /* : PHOperator */;
-val* var1 /* : MModule */;
-val* var2 /* : POSetBuilder[Object] */;
-val* var3 /* : nullable POSet[Object] */;
-var = self->attrs[COLOR_layout_builders__PerfectHasher___64doperator].val; /* @operator on <self:MTypeHasher> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @operator", "src/layout_builders.nit", 552);
-exit(1);
-}
-var1 = self->attrs[COLOR_layout_builders__TypingHasher___64dmmodule].val; /* @mmodule on <self:MTypeHasher> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/layout_builders.nit", 625);
-exit(1);
-}
-var2 = self->attrs[COLOR_layout_builders__TypingHasher___64dposet_builder].val; /* @poset_builder on <self:MTypeHasher> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @poset_builder", "src/layout_builders.nit", 626);
-exit(1);
-}
-var3 = self->attrs[COLOR_layout_builders__TypingHasher___64dposet_cache].val; /* @poset_cache on <self:MTypeHasher> */
-}
-/* runtime class layout_builders__MClassHasher */
-const struct class class_layout_builders__MClassHasher = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:MClassHasher:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:MClassHasher:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:MClassHasher:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:MClassHasher:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:MClassHasher:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:MClassHasher:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:MClassHasher:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:MClassHasher:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:MClassHasher:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:MClassHasher:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:MClassHasher:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:MClassHasher:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:MClassHasher:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:MClassHasher:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:MClassHasher:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:MClassHasher:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:MClassHasher:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:MClassHasher:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:MClassHasher:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:MClassHasher:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:MClassHasher:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:MClassHasher:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:MClassHasher:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:MClassHasher:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:MClassHasher:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:MClassHasher:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:MClassHasher:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:MClassHasher:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:MClassHasher:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:MClassHasher:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:MClassHasher:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:MClassHasher:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:MClassHasher:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:MClassHasher:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:MClassHasher:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:MClassHasher:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:MClassHasher:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:MClassHasher:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:MClassHasher:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:MClassHasher:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:MClassHasher:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__build_layout, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#build_layout */
-(nitmethod_t)VIRTUAL_layout_builders__TypingLayoutBuilder__poset, /* pointer to layout_builders:MClassHasher:layout_builders#TypingLayoutBuilder#poset */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__operator, /* pointer to layout_builders:MClassHasher:layout_builders#PerfectHasher#operator */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__operator_61d, /* pointer to layout_builders:MClassHasher:layout_builders#PerfectHasher#operator= */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__init, /* pointer to layout_builders:MClassHasher:layout_builders#PerfectHasher#init */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__compute_masks, /* pointer to layout_builders:MClassHasher:layout_builders#PerfectHasher#compute_masks */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__compute_mask, /* pointer to layout_builders:MClassHasher:layout_builders#PerfectHasher#compute_mask */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__compute_hashes, /* pointer to layout_builders:MClassHasher:layout_builders#PerfectHasher#compute_hashes */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__mmodule, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#mmodule */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__mmodule_61d, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#mmodule= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__poset_builder, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#poset_builder */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__poset_builder_61d, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#poset_builder= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__poset_cache, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#poset_cache */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__poset_cache_61d, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#poset_cache= */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__init, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#init */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__compute_ids, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#compute_ids */
-(nitmethod_t)VIRTUAL_layout_builders__TypingHasher__build_conflicts, /* pointer to layout_builders:MClassHasher:layout_builders#TypingHasher#build_conflicts */
-(nitmethod_t)VIRTUAL_layout_builders__MClassHasher__init, /* pointer to layout_builders:MClassHasher:layout_builders#MClassHasher#init */
-}
-};
-/* allocate MClassHasher */
-val* NEW_layout_builders__MClassHasher(const struct type* type) {
-val* self /* : MClassHasher */;
-self = nit_alloc(sizeof(struct instance) + 4*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__MClassHasher;
-return self;
-}
-/* allocate MClassHasher */
-void CHECK_NEW_layout_builders__MClassHasher(val* self) {
-val* var /* : PHOperator */;
-val* var1 /* : MModule */;
-val* var2 /* : POSetBuilder[Object] */;
-val* var3 /* : nullable POSet[Object] */;
-var = self->attrs[COLOR_layout_builders__PerfectHasher___64doperator].val; /* @operator on <self:MClassHasher> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @operator", "src/layout_builders.nit", 552);
-exit(1);
-}
-var1 = self->attrs[COLOR_layout_builders__TypingHasher___64dmmodule].val; /* @mmodule on <self:MClassHasher> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/layout_builders.nit", 625);
-exit(1);
-}
-var2 = self->attrs[COLOR_layout_builders__TypingHasher___64dposet_builder].val; /* @poset_builder on <self:MClassHasher> */
-if (var2 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @poset_builder", "src/layout_builders.nit", 626);
-exit(1);
-}
-var3 = self->attrs[COLOR_layout_builders__TypingHasher___64dposet_cache].val; /* @poset_cache on <self:MClassHasher> */
-}
-/* runtime class layout_builders__MPropertyHasher */
-/* allocate MPropertyHasher[PropertyLayoutElement] */
-val* NEW_layout_builders__MPropertyHasher(const struct type* type) {
-fprintf(stderr, "Runtime error: %s\n", "MPropertyHasher is DEAD");
-exit(1);
-}
-/* allocate MPropertyHasher[PropertyLayoutElement] */
-void CHECK_NEW_layout_builders__MPropertyHasher(val* self) {
-fprintf(stderr, "Runtime error: %s\n", "MPropertyHasher is DEAD");
-exit(1);
-}
-/* runtime class layout_builders__ResolutionHasher */
-const struct class class_layout_builders__ResolutionHasher = {
-0, /* box_kind */
-{
-(nitmethod_t)VIRTUAL_kernel__Object__object_id, /* pointer to layout_builders:ResolutionHasher:kernel#Object#object_id */
-(nitmethod_t)VIRTUAL_kernel__Object__is_same_type, /* pointer to layout_builders:ResolutionHasher:kernel#Object#is_same_type */
-(nitmethod_t)VIRTUAL_kernel__Object___61d_61d, /* pointer to layout_builders:ResolutionHasher:kernel#Object#== */
-(nitmethod_t)VIRTUAL_kernel__Object___33d_61d, /* pointer to layout_builders:ResolutionHasher:kernel#Object#!= */
-(nitmethod_t)VIRTUAL_kernel__Object__output, /* pointer to layout_builders:ResolutionHasher:kernel#Object#output */
-(nitmethod_t)VIRTUAL_kernel__Object__output_class_name, /* pointer to layout_builders:ResolutionHasher:kernel#Object#output_class_name */
-(nitmethod_t)VIRTUAL_kernel__Object__exit, /* pointer to layout_builders:ResolutionHasher:kernel#Object#exit */
-(nitmethod_t)VIRTUAL_kernel__Object__sys, /* pointer to layout_builders:ResolutionHasher:kernel#Object#sys */
-(nitmethod_t)VIRTUAL_kernel__Object__hash, /* pointer to layout_builders:ResolutionHasher:kernel#Object#hash */
-(nitmethod_t)VIRTUAL_string__Object__to_s, /* pointer to layout_builders:ResolutionHasher:string#Object#to_s */
-(nitmethod_t)VIRTUAL_string__Object__native_class_name, /* pointer to layout_builders:ResolutionHasher:string#Object#native_class_name */
-(nitmethod_t)VIRTUAL_string__Object__class_name, /* pointer to layout_builders:ResolutionHasher:string#Object#class_name */
-(nitmethod_t)VIRTUAL_string__Object__inspect, /* pointer to layout_builders:ResolutionHasher:string#Object#inspect */
-(nitmethod_t)VIRTUAL_string__Object__inspect_head, /* pointer to layout_builders:ResolutionHasher:string#Object#inspect_head */
-(nitmethod_t)VIRTUAL_string__Object__args, /* pointer to layout_builders:ResolutionHasher:string#Object#args */
-(nitmethod_t)VIRTUAL_math__Object__atan2, /* pointer to layout_builders:ResolutionHasher:math#Object#atan2 */
-(nitmethod_t)VIRTUAL_math__Object__pi, /* pointer to layout_builders:ResolutionHasher:math#Object#pi */
-(nitmethod_t)VIRTUAL_math__Object__srand_from, /* pointer to layout_builders:ResolutionHasher:math#Object#srand_from */
-(nitmethod_t)VIRTUAL_math__Object__srand, /* pointer to layout_builders:ResolutionHasher:math#Object#srand */
-(nitmethod_t)VIRTUAL_stream__Object__poll, /* pointer to layout_builders:ResolutionHasher:stream#Object#poll */
-(nitmethod_t)VIRTUAL_stream__Object__intern_poll, /* pointer to layout_builders:ResolutionHasher:stream#Object#intern_poll */
-(nitmethod_t)VIRTUAL_time__Object__get_time, /* pointer to layout_builders:ResolutionHasher:time#Object#get_time */
-(nitmethod_t)VIRTUAL_file__Object__printn, /* pointer to layout_builders:ResolutionHasher:file#Object#printn */
-(nitmethod_t)VIRTUAL_file__Object__print, /* pointer to layout_builders:ResolutionHasher:file#Object#print */
-(nitmethod_t)VIRTUAL_file__Object__getc, /* pointer to layout_builders:ResolutionHasher:file#Object#getc */
-(nitmethod_t)VIRTUAL_file__Object__gets, /* pointer to layout_builders:ResolutionHasher:file#Object#gets */
-(nitmethod_t)VIRTUAL_file__Object__getcwd, /* pointer to layout_builders:ResolutionHasher:file#Object#getcwd */
-(nitmethod_t)VIRTUAL_file__Object__file_getcwd, /* pointer to layout_builders:ResolutionHasher:file#Object#file_getcwd */
-(nitmethod_t)VIRTUAL_file__Object__stdin, /* pointer to layout_builders:ResolutionHasher:file#Object#stdin */
-(nitmethod_t)VIRTUAL_file__Object__stdout, /* pointer to layout_builders:ResolutionHasher:file#Object#stdout */
-(nitmethod_t)VIRTUAL_file__Object__stderr, /* pointer to layout_builders:ResolutionHasher:file#Object#stderr */
-(nitmethod_t)VIRTUAL_model_base__Object__intrude_visibility, /* pointer to layout_builders:ResolutionHasher:model_base#Object#intrude_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__public_visibility, /* pointer to layout_builders:ResolutionHasher:model_base#Object#public_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__protected_visibility, /* pointer to layout_builders:ResolutionHasher:model_base#Object#protected_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__private_visibility, /* pointer to layout_builders:ResolutionHasher:model_base#Object#private_visibility */
-(nitmethod_t)VIRTUAL_model_base__Object__none_visibility, /* pointer to layout_builders:ResolutionHasher:model_base#Object#none_visibility */
-(nitmethod_t)VIRTUAL_model__Object__abstract_kind, /* pointer to layout_builders:ResolutionHasher:model#Object#abstract_kind */
-(nitmethod_t)VIRTUAL_model__Object__concrete_kind, /* pointer to layout_builders:ResolutionHasher:model#Object#concrete_kind */
-(nitmethod_t)VIRTUAL_model__Object__interface_kind, /* pointer to layout_builders:ResolutionHasher:model#Object#interface_kind */
-(nitmethod_t)VIRTUAL_model__Object__enum_kind, /* pointer to layout_builders:ResolutionHasher:model#Object#enum_kind */
-(nitmethod_t)VIRTUAL_model__Object__extern_kind, /* pointer to layout_builders:ResolutionHasher:model#Object#extern_kind */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionHasher__build_layout, /* pointer to layout_builders:ResolutionHasher:layout_builders#ResolutionHasher#build_layout */
-NULL, /* empty */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__operator, /* pointer to layout_builders:ResolutionHasher:layout_builders#PerfectHasher#operator */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__operator_61d, /* pointer to layout_builders:ResolutionHasher:layout_builders#PerfectHasher#operator= */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__init, /* pointer to layout_builders:ResolutionHasher:layout_builders#PerfectHasher#init */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__compute_masks, /* pointer to layout_builders:ResolutionHasher:layout_builders#PerfectHasher#compute_masks */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__compute_mask, /* pointer to layout_builders:ResolutionHasher:layout_builders#PerfectHasher#compute_mask */
-(nitmethod_t)VIRTUAL_layout_builders__PerfectHasher__compute_hashes, /* pointer to layout_builders:ResolutionHasher:layout_builders#PerfectHasher#compute_hashes */
-(nitmethod_t)VIRTUAL_layout_builders__ResolutionHasher__init, /* pointer to layout_builders:ResolutionHasher:layout_builders#ResolutionHasher#init */
-}
-};
-/* allocate ResolutionHasher */
-val* NEW_layout_builders__ResolutionHasher(const struct type* type) {
-val* self /* : ResolutionHasher */;
-self = nit_alloc(sizeof(struct instance) + 1*sizeof(nitattribute_t));
-self->type = type;
-self->class = &class_layout_builders__ResolutionHasher;
-return self;
-}
-/* allocate ResolutionHasher */
-void CHECK_NEW_layout_builders__ResolutionHasher(val* self) {
-val* var /* : PHOperator */;
-var = self->attrs[COLOR_layout_builders__PerfectHasher___64doperator].val; /* @operator on <self:ResolutionHasher> */
-if (var == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @operator", "src/layout_builders.nit", 552);
-exit(1);
-}
-}