c_src: update for new ffi syntax
[nit.git] / c_src / nitg.types.1.c
index 082d027..86c0c27 100644 (file)
@@ -18,7 +18,7 @@ const int COLOR_hash_collection__HashMapValueshash_collection__HashMap_FT0hash_c
 const int COLOR_hash_collection__HashMapIteratorhash_collection__HashMap_FT0hash_collection__HashMap_FT1 = 8;
 const int COLOR_hash_collection__HashMapNodehash_collection__HashMap_FT0hash_collection__HashMap_FT1 = 11;
 const int COLOR_array__Arraymodel__MProperty_VTMPROPDEF = 0;
-const int COLOR_more_collections__HashMap2model_base__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF = 1;
+const int COLOR_more_collections__HashMap2mmodule__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF = 1;
 const int COLOR_hash_collection__HashMapposet__POSet_FT0poset__POSetElementposet__POSet_FT0 = 2;
 const int COLOR_poset__POSet_FT0 = 3;
 const int COLOR_poset__POSetElementposet__POSet_FT0 = 4;
@@ -87,7 +87,6 @@ const int COLOR_range__IteratorRangerange__Range_FT0 = 0;
 const int COLOR_range__Range_FT0 = 1;
 const int COLOR_range__IteratorRange_FT0 = 0;
 const int COLOR_range__Rangerange__IteratorRange_FT0 = 2;
-const int COLOR_range__Rangekernel__Comparable_VTOTHER = 1;
 const int COLOR_list__Listlist__List_FT0 = 0;
 const int COLOR_list__ListNodelist__List_FT0 = 1;
 const int COLOR_list__ListIteratorlist__List_FT0 = 4;
@@ -174,7 +173,7 @@ const int COLOR_layout_builders__PHLayoutmodel__MClasslayout_builders__MProperty
 const int COLOR_hash_collection__HashMaplayout_builders__MPropertyHasher_FT0kernel__Int = -1;
 /* runtime type Sys */
 const struct type type_kernel__Sys = {
-158,
+164,
 "Sys", /* class_name_string */
 2,
 0,
@@ -183,7 +182,7 @@ const struct type type_kernel__Sys = {
 {
 0, /* nullable Object */
 1, /* Object */
-158, /* Sys */
+164, /* Sys */
 },
 };
 const struct types resolution_table_kernel__Sys = {
@@ -218,7 +217,7 @@ NULL,
 };
 /* runtime type Bool */
 const struct type type_kernel__Bool = {
-159,
+165,
 "Bool", /* class_name_string */
 2,
 0,
@@ -227,7 +226,7 @@ const struct type type_kernel__Bool = {
 {
 0, /* nullable Object */
 1, /* Object */
-159, /* Bool */
+165, /* Bool */
 },
 };
 const struct types resolution_table_kernel__Bool = {
@@ -237,7 +236,7 @@ const struct types resolution_table_kernel__Bool = {
 };
 /* runtime type ToolContext */
 const struct type type_toolcontext__ToolContext = {
-160,
+166,
 "ToolContext", /* class_name_string */
 2,
 0,
@@ -246,7 +245,7 @@ const struct type type_toolcontext__ToolContext = {
 {
 0, /* nullable Object */
 1, /* Object */
-160, /* ToolContext */
+166, /* ToolContext */
 },
 };
 const struct types resolution_table_toolcontext__ToolContext = {
@@ -256,7 +255,7 @@ const struct types resolution_table_toolcontext__ToolContext = {
 };
 /* runtime type Int */
 const struct type type_kernel__Int = {
-161,
+167,
 "Int", /* class_name_string */
 2,
 0,
@@ -265,19 +264,18 @@ const struct type type_kernel__Int = {
 {
 0, /* nullable Object */
 1, /* Object */
-161, /* Int */
+167, /* Int */
 },
 };
 const struct types resolution_table_kernel__Int = {
 0, /* dummy */
 {
 &type_kernel__Int, /* OTHER: Int */
-&type_range__Rangekernel__Int, /* Range[OTHER]: Range[Int] */
 }
 };
 /* runtime type NativeString */
 const struct type type_string__NativeString = {
-162,
+168,
 "NativeString", /* class_name_string */
 2,
 0,
@@ -286,7 +284,7 @@ const struct type type_string__NativeString = {
 {
 0, /* nullable Object */
 1, /* Object */
-162, /* NativeString */
+168, /* NativeString */
 },
 };
 const struct types resolution_table_string__NativeString = {
@@ -296,7 +294,7 @@ const struct types resolution_table_string__NativeString = {
 };
 /* runtime type Array[Message] */
 const struct type type_array__Arraytoolcontext__Message = {
-2477,
+2548,
 "Array[Message]", /* class_name_string */
 7,
 0,
@@ -305,14 +303,14 @@ const struct type type_array__Arraytoolcontext__Message = {
 {
 0, /* nullable Object */
 1, /* Object */
-571, /* Collection[Message] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2191, /* AbstractArrayRead[Message] */
-1728, /* AbstractArrayRead[Object] */
-2477, /* Array[Message] */
+604, /* Collection[Message] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2260, /* AbstractArrayRead[Message] */
+1782, /* AbstractArrayRead[Object] */
+2548, /* Array[Message] */
 -1, /* empty */
-1911, /* Array[Object] */
+1973, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arraytoolcontext__Message = {
@@ -341,7 +339,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Message] not a
 };
 /* runtime type Array[Object] */
 const struct type type_array__Arraykernel__Object = {
-1911,
+1973,
 "Array[Object]", /* class_name_string */
 9,
 0,
@@ -351,13 +349,13 @@ const struct type type_array__Arraykernel__Object = {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
 -1, /* empty */
-1728, /* AbstractArrayRead[Object] */
+1782, /* AbstractArrayRead[Object] */
 -1, /* empty */
 -1, /* empty */
-1911, /* Array[Object] */
+1973, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arraykernel__Object = {
@@ -386,7 +384,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Object] not a
 };
 /* runtime type SequenceRead[nullable Object] */
 const struct type type_abstract_collection__SequenceReadnullable_kernel__Object = {
-163,
+169,
 "SequenceRead[nullable Object]", /* class_name_string */
 3,
 0,
@@ -396,12 +394,12 @@ NULL,
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-163, /* SequenceRead[nullable Object] */
+169, /* SequenceRead[nullable Object] */
 },
 };
 /* runtime type Collection[Message] */
 const struct type type_abstract_collection__Collectiontoolcontext__Message = {
-571,
+604,
 "Collection[Message]", /* class_name_string */
 2,
 0,
@@ -410,14 +408,14 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-571, /* Collection[Message] */
+604, /* Collection[Message] */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
 },
 };
 /* runtime type Collection[Object] */
 const struct type type_abstract_collection__Collectionkernel__Object = {
-164,
+170,
 "Collection[Object]", /* class_name_string */
 4,
 0,
@@ -428,12 +426,12 @@ NULL,
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
 },
 };
 /* runtime type AbstractArrayRead[Message] */
 const struct type type_array__AbstractArrayReadtoolcontext__Message = {
-2191,
+2260,
 "AbstractArrayRead[Message]", /* class_name_string */
 5,
 0,
@@ -442,16 +440,16 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-571, /* Collection[Message] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2191, /* AbstractArrayRead[Message] */
-1728, /* AbstractArrayRead[Object] */
+604, /* Collection[Message] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2260, /* AbstractArrayRead[Message] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
 /* runtime type AbstractArrayRead[Object] */
 const struct type type_array__AbstractArrayReadkernel__Object = {
-1728,
+1782,
 "AbstractArrayRead[Object]", /* class_name_string */
 6,
 0,
@@ -461,15 +459,15 @@ NULL,
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
 -1, /* empty */
-1728, /* AbstractArrayRead[Object] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
 /* runtime type ComparableSorter[Message] */
 const struct type type_sorter__ComparableSortertoolcontext__Message = {
-165,
+171,
 "ComparableSorter[Message]", /* class_name_string */
 2,
 0,
@@ -478,7 +476,7 @@ const struct type type_sorter__ComparableSortertoolcontext__Message = {
 {
 0, /* nullable Object */
 1, /* Object */
-165, /* ComparableSorter[Message] */
+171, /* ComparableSorter[Message] */
 },
 };
 const struct types resolution_table_sorter__ComparableSortertoolcontext__Message = {
@@ -490,7 +488,7 @@ const struct types resolution_table_sorter__ComparableSortertoolcontext__Message
 };
 /* runtime type OptionContext */
 const struct type type_opts__OptionContext = {
-166,
+172,
 "OptionContext", /* class_name_string */
 2,
 0,
@@ -499,7 +497,7 @@ const struct type type_opts__OptionContext = {
 {
 0, /* nullable Object */
 1, /* Object */
-166, /* OptionContext */
+172, /* OptionContext */
 },
 };
 const struct types resolution_table_opts__OptionContext = {
@@ -509,7 +507,7 @@ const struct types resolution_table_opts__OptionContext = {
 };
 /* runtime type OptionCount */
 const struct type type_opts__OptionCount = {
-572,
+605,
 "OptionCount", /* class_name_string */
 3,
 0,
@@ -518,8 +516,8 @@ const struct type type_opts__OptionCount = {
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
-572, /* OptionCount */
+173, /* Option */
+605, /* OptionCount */
 },
 };
 const struct types resolution_table_opts__OptionCount = {
@@ -530,7 +528,7 @@ const struct types resolution_table_opts__OptionCount = {
 };
 /* runtime type Option */
 const struct type type_opts__Option = {
-167,
+173,
 "Option", /* class_name_string */
 2,
 0,
@@ -539,12 +537,12 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
+173, /* Option */
 },
 };
 /* runtime type OptionBool */
 const struct type type_opts__OptionBool = {
-573,
+606,
 "OptionBool", /* class_name_string */
 3,
 0,
@@ -553,8 +551,8 @@ const struct type type_opts__OptionBool = {
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
-573, /* OptionBool */
+173, /* Option */
+606, /* OptionBool */
 },
 };
 const struct types resolution_table_opts__OptionBool = {
@@ -565,7 +563,7 @@ const struct types resolution_table_opts__OptionBool = {
 };
 /* runtime type OptionString */
 const struct type type_opts__OptionString = {
-1729,
+1783,
 "OptionString", /* class_name_string */
 4,
 0,
@@ -574,9 +572,9 @@ const struct type type_opts__OptionString = {
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
-574, /* OptionParameter */
-1729, /* OptionString */
+173, /* Option */
+607, /* OptionParameter */
+1783, /* OptionString */
 },
 };
 const struct types resolution_table_opts__OptionString = {
@@ -587,7 +585,7 @@ const struct types resolution_table_opts__OptionString = {
 };
 /* runtime type OptionParameter */
 const struct type type_opts__OptionParameter = {
-574,
+607,
 "OptionParameter", /* class_name_string */
 3,
 0,
@@ -596,13 +594,13 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
-574, /* OptionParameter */
+173, /* Option */
+607, /* OptionParameter */
 },
 };
 /* runtime type POSet[Phase] */
 const struct type type_poset__POSetphase__Phase = {
-1730,
+1784,
 "POSet[Phase]", /* class_name_string */
 3,
 0,
@@ -611,9 +609,9 @@ const struct type type_poset__POSetphase__Phase = {
 {
 0, /* nullable Object */
 1, /* Object */
-575, /* Collection[Phase] */
-1730, /* POSet[Phase] */
-164, /* Collection[Object] */
+608, /* Collection[Phase] */
+1784, /* POSet[Phase] */
+170, /* Collection[Object] */
 },
 };
 const struct types resolution_table_poset__POSetphase__Phase = {
@@ -637,7 +635,7 @@ NULL, /* empty */
 };
 /* runtime type Collection[Phase] */
 const struct type type_abstract_collection__Collectionphase__Phase = {
-575,
+608,
 "Collection[Phase]", /* class_name_string */
 2,
 0,
@@ -646,14 +644,14 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-575, /* Collection[Phase] */
+608, /* Collection[Phase] */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
 },
 };
 /* runtime type SimpleMiscAnalysisPhase */
 const struct type type_simple_misc_analysis__SimpleMiscAnalysisPhase = {
-576,
+609,
 "SimpleMiscAnalysisPhase", /* class_name_string */
 3,
 0,
@@ -662,8 +660,8 @@ const struct type type_simple_misc_analysis__SimpleMiscAnalysisPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-576, /* SimpleMiscAnalysisPhase */
+174, /* Phase */
+609, /* SimpleMiscAnalysisPhase */
 },
 };
 const struct types resolution_table_simple_misc_analysis__SimpleMiscAnalysisPhase = {
@@ -673,7 +671,7 @@ const struct types resolution_table_simple_misc_analysis__SimpleMiscAnalysisPhas
 };
 /* runtime type Phase */
 const struct type type_phase__Phase = {
-168,
+174,
 "Phase", /* class_name_string */
 2,
 0,
@@ -682,12 +680,12 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
+174, /* Phase */
 },
 };
 /* runtime type LiteralPhase */
 const struct type type_literal__LiteralPhase = {
-577,
+610,
 "LiteralPhase", /* class_name_string */
 3,
 0,
@@ -696,8 +694,8 @@ const struct type type_literal__LiteralPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-577, /* LiteralPhase */
+174, /* Phase */
+610, /* LiteralPhase */
 },
 };
 const struct types resolution_table_literal__LiteralPhase = {
@@ -707,7 +705,7 @@ const struct types resolution_table_literal__LiteralPhase = {
 };
 /* runtime type ScopePhase */
 const struct type type_scope__ScopePhase = {
-578,
+611,
 "ScopePhase", /* class_name_string */
 3,
 0,
@@ -716,8 +714,8 @@ const struct type type_scope__ScopePhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-578, /* ScopePhase */
+174, /* Phase */
+611, /* ScopePhase */
 },
 };
 const struct types resolution_table_scope__ScopePhase = {
@@ -727,7 +725,7 @@ const struct types resolution_table_scope__ScopePhase = {
 };
 /* runtime type FlowPhase */
 const struct type type_flow__FlowPhase = {
-579,
+612,
 "FlowPhase", /* class_name_string */
 3,
 0,
@@ -736,8 +734,8 @@ const struct type type_flow__FlowPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-579, /* FlowPhase */
+174, /* Phase */
+612, /* FlowPhase */
 },
 };
 const struct types resolution_table_flow__FlowPhase = {
@@ -747,7 +745,7 @@ const struct types resolution_table_flow__FlowPhase = {
 };
 /* runtime type Array[Phase] */
 const struct type type_array__Arrayphase__Phase = {
-2478,
+2549,
 "Array[Phase]", /* class_name_string */
 7,
 0,
@@ -756,14 +754,14 @@ const struct type type_array__Arrayphase__Phase = {
 {
 0, /* nullable Object */
 1, /* Object */
-575, /* Collection[Phase] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2192, /* AbstractArrayRead[Phase] */
-1728, /* AbstractArrayRead[Object] */
-2478, /* Array[Phase] */
+608, /* Collection[Phase] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2261, /* AbstractArrayRead[Phase] */
+1782, /* AbstractArrayRead[Object] */
+2549, /* Array[Phase] */
 -1, /* empty */
-1911, /* Array[Object] */
+1973, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arrayphase__Phase = {
@@ -792,7 +790,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Phase] not a l
 };
 /* runtime type AbstractArrayRead[Phase] */
 const struct type type_array__AbstractArrayReadphase__Phase = {
-2192,
+2261,
 "AbstractArrayRead[Phase]", /* class_name_string */
 5,
 0,
@@ -801,16 +799,36 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-575, /* Collection[Phase] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2192, /* AbstractArrayRead[Phase] */
-1728, /* AbstractArrayRead[Object] */
+608, /* Collection[Phase] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2261, /* AbstractArrayRead[Phase] */
+1782, /* AbstractArrayRead[Object] */
+},
+};
+/* runtime type SerializationPhase */
+const struct type type_serialization_phase__SerializationPhase = {
+613,
+"SerializationPhase", /* class_name_string */
+3,
+0,
+&resolution_table_serialization_phase__SerializationPhase,
+4,
+{
+0, /* nullable Object */
+1, /* Object */
+174, /* Phase */
+613, /* SerializationPhase */
 },
 };
+const struct types resolution_table_serialization_phase__SerializationPhase = {
+0, /* dummy */
+{
+}
+};
 /* runtime type LocalVarInitPhase */
 const struct type type_local_var_init__LocalVarInitPhase = {
-580,
+614,
 "LocalVarInitPhase", /* class_name_string */
 3,
 0,
@@ -819,8 +837,8 @@ const struct type type_local_var_init__LocalVarInitPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-580, /* LocalVarInitPhase */
+174, /* Phase */
+614, /* LocalVarInitPhase */
 },
 };
 const struct types resolution_table_local_var_init__LocalVarInitPhase = {
@@ -830,7 +848,7 @@ const struct types resolution_table_local_var_init__LocalVarInitPhase = {
 };
 /* runtime type OptionArray */
 const struct type type_opts__OptionArray = {
-1731,
+1785,
 "OptionArray", /* class_name_string */
 4,
 0,
@@ -839,9 +857,9 @@ const struct type type_opts__OptionArray = {
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
-574, /* OptionParameter */
-1731, /* OptionArray */
+173, /* Option */
+607, /* OptionParameter */
+1785, /* OptionArray */
 },
 };
 const struct types resolution_table_opts__OptionArray = {
@@ -852,7 +870,7 @@ const struct types resolution_table_opts__OptionArray = {
 };
 /* runtime type ModelizeClassPhase */
 const struct type type_modelize_class__ModelizeClassPhase = {
-581,
+615,
 "ModelizeClassPhase", /* class_name_string */
 3,
 0,
@@ -861,8 +879,8 @@ const struct type type_modelize_class__ModelizeClassPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-581, /* ModelizeClassPhase */
+174, /* Phase */
+615, /* ModelizeClassPhase */
 },
 };
 const struct types resolution_table_modelize_class__ModelizeClassPhase = {
@@ -872,7 +890,7 @@ const struct types resolution_table_modelize_class__ModelizeClassPhase = {
 };
 /* runtime type ModelizePropertyPhase */
 const struct type type_modelize_property__ModelizePropertyPhase = {
-582,
+616,
 "ModelizePropertyPhase", /* class_name_string */
 3,
 0,
@@ -881,8 +899,8 @@ const struct type type_modelize_property__ModelizePropertyPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-582, /* ModelizePropertyPhase */
+174, /* Phase */
+616, /* ModelizePropertyPhase */
 },
 };
 const struct types resolution_table_modelize_property__ModelizePropertyPhase = {
@@ -892,7 +910,7 @@ const struct types resolution_table_modelize_property__ModelizePropertyPhase = {
 };
 /* runtime type CachedPhase */
 const struct type type_cached__CachedPhase = {
-583,
+617,
 "CachedPhase", /* class_name_string */
 3,
 0,
@@ -901,8 +919,8 @@ const struct type type_cached__CachedPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-583, /* CachedPhase */
+174, /* Phase */
+617, /* CachedPhase */
 },
 };
 const struct types resolution_table_cached__CachedPhase = {
@@ -912,7 +930,7 @@ const struct types resolution_table_cached__CachedPhase = {
 };
 /* runtime type TypingPhase */
 const struct type type_typing__TypingPhase = {
-584,
+618,
 "TypingPhase", /* class_name_string */
 3,
 0,
@@ -921,8 +939,8 @@ const struct type type_typing__TypingPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-584, /* TypingPhase */
+174, /* Phase */
+618, /* TypingPhase */
 },
 };
 const struct types resolution_table_typing__TypingPhase = {
@@ -932,7 +950,7 @@ const struct types resolution_table_typing__TypingPhase = {
 };
 /* runtime type AutoSuperInitPhase */
 const struct type type_auto_super_init__AutoSuperInitPhase = {
-585,
+619,
 "AutoSuperInitPhase", /* class_name_string */
 3,
 0,
@@ -941,8 +959,8 @@ const struct type type_auto_super_init__AutoSuperInitPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-585, /* AutoSuperInitPhase */
+174, /* Phase */
+619, /* AutoSuperInitPhase */
 },
 };
 const struct types resolution_table_auto_super_init__AutoSuperInitPhase = {
@@ -952,7 +970,7 @@ const struct types resolution_table_auto_super_init__AutoSuperInitPhase = {
 };
 /* runtime type DivByZeroPhase */
 const struct type type_div_by_zero__DivByZeroPhase = {
-586,
+620,
 "DivByZeroPhase", /* class_name_string */
 3,
 0,
@@ -961,8 +979,8 @@ const struct type type_div_by_zero__DivByZeroPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-586, /* DivByZeroPhase */
+174, /* Phase */
+620, /* DivByZeroPhase */
 },
 };
 const struct types resolution_table_div_by_zero__DivByZeroPhase = {
@@ -972,7 +990,7 @@ const struct types resolution_table_div_by_zero__DivByZeroPhase = {
 };
 /* runtime type TransformPhase */
 const struct type type_transform__TransformPhase = {
-587,
+621,
 "TransformPhase", /* class_name_string */
 3,
 0,
@@ -981,8 +999,8 @@ const struct type type_transform__TransformPhase = {
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-587, /* TransformPhase */
+174, /* Phase */
+621, /* TransformPhase */
 },
 };
 const struct types resolution_table_transform__TransformPhase = {
@@ -992,7 +1010,7 @@ const struct types resolution_table_transform__TransformPhase = {
 };
 /* runtime type Model */
 const struct type type_model_base__Model = {
-169,
+175,
 "Model", /* class_name_string */
 2,
 0,
@@ -1001,7 +1019,7 @@ const struct type type_model_base__Model = {
 {
 0, /* nullable Object */
 1, /* Object */
-169, /* Model */
+175, /* Model */
 },
 };
 const struct types resolution_table_model_base__Model = {
@@ -1009,54 +1027,183 @@ const struct types resolution_table_model_base__Model = {
 {
 }
 };
+/* runtime type Array[MProject] */
+const struct type type_array__Arraymproject__MProject = {
+2550,
+"Array[MProject]", /* class_name_string */
+7,
+0,
+&resolution_table_array__Arraymproject__MProject,
+10,
+{
+0, /* nullable Object */
+1, /* Object */
+622, /* Collection[MProject] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2262, /* AbstractArrayRead[MProject] */
+1782, /* AbstractArrayRead[Object] */
+2550, /* Array[MProject] */
+-1, /* empty */
+1973, /* Array[Object] */
+},
+};
+const struct types resolution_table_array__Arraymproject__MProject = {
+0, /* dummy */
+{
+&type_array__Arraymproject__MProject, /* Array[Array#0]: Array[MProject] */
+&type_array__NativeArraymproject__MProject, /* NativeArray[Array#0]: NativeArray[MProject] */
+&type_mproject__MProject, /* Sequence#0: MProject */
+&type_mproject__MProject, /* SimpleCollection#0: MProject */
+&type_abstract_collection__Collectionmproject__MProject, /* Collection[Array#0]: Collection[MProject] */
+&type_mproject__MProject, /* Array#0: MProject */
+&type_array__NativeArraymproject__MProject, /* NativeArray[ArrayCapable#0]: NativeArray[MProject] */
+&type_mproject__MProject, /* AbstractArray#0: MProject */
+&type_mproject__MProject, /* RemovableCollection#0: MProject */
+&type_abstract_collection__Collectionmproject__MProject, /* Collection[Sequence#0]: Collection[MProject] */
+&type_array__Arraymproject__MProject, /* Array[Sequence#0]: Array[MProject] */
+&type_abstract_collection__Collectionmproject__MProject, /* Collection[SimpleCollection#0]: Collection[MProject] */
+&type_mproject__MProject, /* Collection#0: MProject */
+&type_abstract_collection__Collectionmproject__MProject, /* Collection[Collection#0]: Collection[MProject] */
+&type_mproject__MProject, /* SequenceRead#0: MProject */
+&type_mproject__MProject, /* AbstractArrayRead#0: MProject */
+&type_array__Arraymproject__MProject, /* Array[AbstractArrayRead#0]: Array[MProject] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MProject] not a live type) */
+&type_array__ArrayIteratormproject__MProject, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MProject] */
+}
+};
+/* runtime type Collection[MProject] */
+const struct type type_abstract_collection__Collectionmproject__MProject = {
+622,
+"Collection[MProject]", /* class_name_string */
+2,
+0,
+NULL,
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+622, /* Collection[MProject] */
+-1, /* empty */
+170, /* Collection[Object] */
+},
+};
+/* runtime type AbstractArrayRead[MProject] */
+const struct type type_array__AbstractArrayReadmproject__MProject = {
+2262,
+"AbstractArrayRead[MProject]", /* class_name_string */
+5,
+0,
+NULL,
+7,
+{
+0, /* nullable Object */
+1, /* Object */
+622, /* Collection[MProject] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2262, /* AbstractArrayRead[MProject] */
+1782, /* AbstractArrayRead[Object] */
+},
+};
+/* runtime type MultiHashMap[String, MProject] */
+const struct type type_more_collections__MultiHashMapstring__Stringmproject__MProject = {
+623,
+"MultiHashMap[String, MProject]", /* class_name_string */
+3,
+0,
+&resolution_table_more_collections__MultiHashMapstring__Stringmproject__MProject,
+4,
+{
+0, /* nullable Object */
+1, /* Object */
+176, /* HashMap[String, Array[MProject]] */
+623, /* MultiHashMap[String, MProject] */
+},
+};
+const struct types resolution_table_more_collections__MultiHashMapstring__Stringmproject__MProject = {
+0, /* dummy */
+{
+&type_string__String, /* MultiHashMap#0: String */
+&type_mproject__MProject, /* MultiHashMap#1: MProject */
+&type_array__Arraymproject__MProject, /* Array[MultiHashMap#1]: Array[MProject] */
+&type_array__NativeArraymproject__MProject, /* NativeArray[MultiHashMap#1]: NativeArray[MProject] */
+&type_hash_collection__HashMapKeysstring__Stringarray__Arraymproject__MProject, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Array[MProject]] */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymproject__MProject, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MProject]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MProject]]] */
+&type_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapIteratorstring__Stringarray__Arraymproject__MProject, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, Array[MProject]] */
+&type_string__String, /* Map#0: String */
+&type_array__Arraymproject__MProject, /* Map#1: Array[MProject] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, Array[MProject]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[String, Array[MProject]] not a live type) */
+&type_array__Arraymproject__MProject, /* MapRead#1: Array[MProject] */
+&type_string__String, /* HashCollection#0: String */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* HashCollection#1: HashMapNode[String, Array[MProject]] */
+}
+};
+/* runtime type HashMap[String, Array[MProject]] */
+const struct type type_hash_collection__HashMapstring__Stringarray__Arraymproject__MProject = {
+176,
+"HashMap[String, Array[MProject]]", /* class_name_string */
+2,
+0,
+NULL,
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+176, /* HashMap[String, Array[MProject]] */
+},
+};
 /* runtime type Array[MModule] */
-const struct type type_array__Arraymodel_base__MModule = {
-2479,
+const struct type type_array__Arraymmodule__MModule = {
+2551,
 "Array[MModule]", /* class_name_string */
 7,
 0,
-&resolution_table_array__Arraymodel_base__MModule,
+&resolution_table_array__Arraymmodule__MModule,
 10,
 {
 0, /* nullable Object */
 1, /* Object */
-588, /* Collection[MModule] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2193, /* AbstractArrayRead[MModule] */
-1728, /* AbstractArrayRead[Object] */
-2479, /* Array[MModule] */
+624, /* Collection[MModule] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2263, /* AbstractArrayRead[MModule] */
+1782, /* AbstractArrayRead[Object] */
+2551, /* Array[MModule] */
 -1, /* empty */
-1911, /* Array[Object] */
+1973, /* Array[Object] */
 },
 };
-const struct types resolution_table_array__Arraymodel_base__MModule = {
+const struct types resolution_table_array__Arraymmodule__MModule = {
 0, /* dummy */
 {
-&type_array__Arraymodel_base__MModule, /* Array[Array#0]: Array[MModule] */
-&type_array__NativeArraymodel_base__MModule, /* NativeArray[Array#0]: NativeArray[MModule] */
-&type_model_base__MModule, /* Sequence#0: MModule */
-&type_model_base__MModule, /* SimpleCollection#0: MModule */
-&type_abstract_collection__Collectionmodel_base__MModule, /* Collection[Array#0]: Collection[MModule] */
-&type_model_base__MModule, /* Array#0: MModule */
-&type_array__NativeArraymodel_base__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[MModule] */
-&type_model_base__MModule, /* AbstractArray#0: MModule */
-&type_model_base__MModule, /* RemovableCollection#0: MModule */
-&type_abstract_collection__Collectionmodel_base__MModule, /* Collection[Sequence#0]: Collection[MModule] */
-&type_array__Arraymodel_base__MModule, /* Array[Sequence#0]: Array[MModule] */
-&type_abstract_collection__Collectionmodel_base__MModule, /* Collection[SimpleCollection#0]: Collection[MModule] */
-&type_model_base__MModule, /* Collection#0: MModule */
-&type_abstract_collection__Collectionmodel_base__MModule, /* Collection[Collection#0]: Collection[MModule] */
-&type_model_base__MModule, /* SequenceRead#0: MModule */
-&type_model_base__MModule, /* AbstractArrayRead#0: MModule */
-&type_array__Arraymodel_base__MModule, /* Array[AbstractArrayRead#0]: Array[MModule] */
+&type_array__Arraymmodule__MModule, /* Array[Array#0]: Array[MModule] */
+&type_array__NativeArraymmodule__MModule, /* NativeArray[Array#0]: NativeArray[MModule] */
+&type_mmodule__MModule, /* Sequence#0: MModule */
+&type_mmodule__MModule, /* SimpleCollection#0: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Array#0]: Collection[MModule] */
+&type_mmodule__MModule, /* Array#0: MModule */
+&type_array__NativeArraymmodule__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[MModule] */
+&type_mmodule__MModule, /* AbstractArray#0: MModule */
+&type_mmodule__MModule, /* RemovableCollection#0: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Sequence#0]: Collection[MModule] */
+&type_array__Arraymmodule__MModule, /* Array[Sequence#0]: Array[MModule] */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[SimpleCollection#0]: Collection[MModule] */
+&type_mmodule__MModule, /* Collection#0: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Collection#0]: Collection[MModule] */
+&type_mmodule__MModule, /* SequenceRead#0: MModule */
+&type_mmodule__MModule, /* AbstractArrayRead#0: MModule */
+&type_array__Arraymmodule__MModule, /* Array[AbstractArrayRead#0]: Array[MModule] */
 NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MModule] not a live type) */
-&type_array__ArrayIteratormodel_base__MModule, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MModule] */
+&type_array__ArrayIteratormmodule__MModule, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MModule] */
 }
 };
 /* runtime type Collection[MModule] */
-const struct type type_abstract_collection__Collectionmodel_base__MModule = {
-588,
+const struct type type_abstract_collection__Collectionmmodule__MModule = {
+624,
 "Collection[MModule]", /* class_name_string */
 2,
 0,
@@ -1065,14 +1212,14 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-588, /* Collection[MModule] */
+624, /* Collection[MModule] */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
 },
 };
 /* runtime type AbstractArrayRead[MModule] */
-const struct type type_array__AbstractArrayReadmodel_base__MModule = {
-2193,
+const struct type type_array__AbstractArrayReadmmodule__MModule = {
+2263,
 "AbstractArrayRead[MModule]", /* class_name_string */
 5,
 0,
@@ -1081,37 +1228,37 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-588, /* Collection[MModule] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2193, /* AbstractArrayRead[MModule] */
-1728, /* AbstractArrayRead[Object] */
+624, /* Collection[MModule] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2263, /* AbstractArrayRead[MModule] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
 /* runtime type POSet[MModule] */
-const struct type type_poset__POSetmodel_base__MModule = {
-1732,
+const struct type type_poset__POSetmmodule__MModule = {
+1786,
 "POSet[MModule]", /* class_name_string */
 3,
 0,
-&resolution_table_poset__POSetmodel_base__MModule,
+&resolution_table_poset__POSetmmodule__MModule,
 5,
 {
 0, /* nullable Object */
 1, /* Object */
-588, /* Collection[MModule] */
-1732, /* POSet[MModule] */
-164, /* Collection[Object] */
+624, /* Collection[MModule] */
+1786, /* POSet[MModule] */
+170, /* Collection[Object] */
 },
 };
-const struct types resolution_table_poset__POSetmodel_base__MModule = {
+const struct types resolution_table_poset__POSetmmodule__MModule = {
 0, /* dummy */
 {
-&type_model_base__MModule, /* AbstractSorter#0: MModule */
-&type_array__Arraymodel_base__MModule, /* Array[AbstractSorter#0]: Array[MModule] */
-&type_hash_collection__HashMapmodel_base__MModuleposet__POSetElementmodel_base__MModule, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[MModule, POSetElement[MModule]] */
-&type_model_base__MModule, /* POSet#0: MModule */
-&type_poset__POSetElementmodel_base__MModule, /* POSetElement[POSet#0]: POSetElement[MModule] */
+&type_mmodule__MModule, /* AbstractSorter#0: MModule */
+&type_array__Arraymmodule__MModule, /* Array[AbstractSorter#0]: Array[MModule] */
+&type_hash_collection__HashMapmmodule__MModuleposet__POSetElementmmodule__MModule, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[MModule, POSetElement[MModule]] */
+&type_mmodule__MModule, /* POSet#0: MModule */
+&type_poset__POSetElementmmodule__MModule, /* POSetElement[POSet#0]: POSetElement[MModule] */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
@@ -1119,49 +1266,49 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
-&type_model_base__MModule, /* Collection#0: MModule */
-&type_abstract_collection__Collectionmodel_base__MModule, /* Collection[Collection#0]: Collection[MModule] */
+&type_mmodule__MModule, /* Collection#0: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Collection#0]: Collection[MModule] */
 }
 };
 /* runtime type MultiHashMap[String, MModule] */
-const struct type type_more_collections__MultiHashMapstring__Stringmodel_base__MModule = {
-589,
+const struct type type_more_collections__MultiHashMapstring__Stringmmodule__MModule = {
+625,
 "MultiHashMap[String, MModule]", /* class_name_string */
 3,
 0,
-&resolution_table_more_collections__MultiHashMapstring__Stringmodel_base__MModule,
+&resolution_table_more_collections__MultiHashMapstring__Stringmmodule__MModule,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-170, /* HashMap[String, Array[MModule]] */
-589, /* MultiHashMap[String, MModule] */
+177, /* HashMap[String, Array[MModule]] */
+625, /* MultiHashMap[String, MModule] */
 },
 };
-const struct types resolution_table_more_collections__MultiHashMapstring__Stringmodel_base__MModule = {
+const struct types resolution_table_more_collections__MultiHashMapstring__Stringmmodule__MModule = {
 0, /* dummy */
 {
 &type_string__String, /* MultiHashMap#0: String */
-&type_model_base__MModule, /* MultiHashMap#1: MModule */
-&type_array__Arraymodel_base__MModule, /* Array[MultiHashMap#1]: Array[MModule] */
-&type_array__NativeArraymodel_base__MModule, /* NativeArray[MultiHashMap#1]: NativeArray[MModule] */
-&type_hash_collection__HashMapKeysstring__Stringarray__Arraymodel_base__MModule, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Array[MModule]] */
-&type_hash_collection__HashMapValuesstring__Stringarray__Arraymodel_base__MModule, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MModule]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel_base__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MModule]]] */
+&type_mmodule__MModule, /* MultiHashMap#1: MModule */
+&type_array__Arraymmodule__MModule, /* Array[MultiHashMap#1]: Array[MModule] */
+&type_array__NativeArraymmodule__MModule, /* NativeArray[MultiHashMap#1]: NativeArray[MModule] */
+&type_hash_collection__HashMapKeysstring__Stringarray__Arraymmodule__MModule, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Array[MModule]] */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymmodule__MModule, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MModule]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MModule]]] */
 &type_string__String, /* MapRead#0: String */
-&type_hash_collection__HashMapIteratorstring__Stringarray__Arraymodel_base__MModule, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, Array[MModule]] */
+&type_hash_collection__HashMapIteratorstring__Stringarray__Arraymmodule__MModule, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, Array[MModule]] */
 &type_string__String, /* Map#0: String */
-&type_array__Arraymodel_base__MModule, /* Map#1: Array[MModule] */
-&type_hash_collection__HashMapNodestring__Stringarray__Arraymodel_base__MModule, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, Array[MModule]] */
+&type_array__Arraymmodule__MModule, /* Map#1: Array[MModule] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, Array[MModule]] */
 NULL, /* empty (Map[Map#0, Map#1]: Map[String, Array[MModule]] not a live type) */
-&type_array__Arraymodel_base__MModule, /* MapRead#1: Array[MModule] */
+&type_array__Arraymmodule__MModule, /* MapRead#1: Array[MModule] */
 &type_string__String, /* HashCollection#0: String */
-&type_hash_collection__HashMapNodestring__Stringarray__Arraymodel_base__MModule, /* HashCollection#1: HashMapNode[String, Array[MModule]] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* HashCollection#1: HashMapNode[String, Array[MModule]] */
 }
 };
 /* runtime type HashMap[String, Array[MModule]] */
-const struct type type_hash_collection__HashMapstring__Stringarray__Arraymodel_base__MModule = {
-170,
+const struct type type_hash_collection__HashMapstring__Stringarray__Arraymmodule__MModule = {
+177,
 "HashMap[String, Array[MModule]]", /* class_name_string */
 2,
 0,
@@ -1170,12 +1317,12 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-170, /* HashMap[String, Array[MModule]] */
+177, /* HashMap[String, Array[MModule]] */
 },
 };
 /* runtime type Array[MClass] */
 const struct type type_array__Arraymodel__MClass = {
-2578,
+2656,
 "Array[MClass]", /* class_name_string */
 11,
 0,
@@ -1184,16 +1331,16 @@ const struct type type_array__Arraymodel__MClass = {
 {
 0, /* nullable Object */
 1, /* Object */
-171, /* Collection[nullable MClass] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1733, /* Collection[MClass] */
-1728, /* AbstractArrayRead[Object] */
-1734, /* AbstractArrayRead[nullable MClass] */
-1912, /* Array[nullable MClass] */
-1911, /* Array[Object] */
-2480, /* AbstractArrayRead[MClass] */
-2578, /* Array[MClass] */
+178, /* Collection[nullable MClass] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1787, /* Collection[MClass] */
+1782, /* AbstractArrayRead[Object] */
+1788, /* AbstractArrayRead[nullable MClass] */
+1974, /* Array[nullable MClass] */
+1973, /* Array[Object] */
+2552, /* AbstractArrayRead[MClass] */
+2656, /* Array[MClass] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MClass = {
@@ -1222,7 +1369,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MClass] not a
 };
 /* runtime type Array[nullable MClass] */
 const struct type type_array__Arraynullable_model__MClass = {
-1912,
+1974,
 "Array[nullable MClass]", /* class_name_string */
 8,
 0,
@@ -1231,13 +1378,13 @@ const struct type type_array__Arraynullable_model__MClass = {
 {
 0, /* nullable Object */
 1, /* Object */
-171, /* Collection[nullable MClass] */
-163, /* SequenceRead[nullable Object] */
+178, /* Collection[nullable MClass] */
+169, /* SequenceRead[nullable Object] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-1734, /* AbstractArrayRead[nullable MClass] */
-1912, /* Array[nullable MClass] */
+1788, /* AbstractArrayRead[nullable MClass] */
+1974, /* Array[nullable MClass] */
 },
 };
 const struct types resolution_table_array__Arraynullable_model__MClass = {
@@ -1266,7 +1413,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MClas
 };
 /* runtime type Collection[MClass] */
 const struct type type_abstract_collection__Collectionmodel__MClass = {
-1733,
+1787,
 "Collection[MClass]", /* class_name_string */
 5,
 0,
@@ -1275,15 +1422,15 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-171, /* Collection[nullable MClass] */
+178, /* Collection[nullable MClass] */
 -1, /* empty */
-164, /* Collection[Object] */
-1733, /* Collection[MClass] */
+170, /* Collection[Object] */
+1787, /* Collection[MClass] */
 },
 };
 /* runtime type Collection[nullable MClass] */
 const struct type type_abstract_collection__Collectionnullable_model__MClass = {
-171,
+178,
 "Collection[nullable MClass]", /* class_name_string */
 2,
 0,
@@ -1292,12 +1439,12 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-171, /* Collection[nullable MClass] */
+178, /* Collection[nullable MClass] */
 },
 };
 /* runtime type AbstractArrayRead[MClass] */
 const struct type type_array__AbstractArrayReadmodel__MClass = {
-2480,
+2552,
 "AbstractArrayRead[MClass]", /* class_name_string */
 10,
 0,
@@ -1306,20 +1453,20 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-171, /* Collection[nullable MClass] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1733, /* Collection[MClass] */
-1728, /* AbstractArrayRead[Object] */
-1734, /* AbstractArrayRead[nullable MClass] */
+178, /* Collection[nullable MClass] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1787, /* Collection[MClass] */
+1782, /* AbstractArrayRead[Object] */
+1788, /* AbstractArrayRead[nullable MClass] */
 -1, /* empty */
 -1, /* empty */
-2480, /* AbstractArrayRead[MClass] */
+2552, /* AbstractArrayRead[MClass] */
 },
 };
 /* runtime type AbstractArrayRead[nullable MClass] */
 const struct type type_array__AbstractArrayReadnullable_model__MClass = {
-1734,
+1788,
 "AbstractArrayRead[nullable MClass]", /* class_name_string */
 7,
 0,
@@ -1328,17 +1475,17 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-171, /* Collection[nullable MClass] */
-163, /* SequenceRead[nullable Object] */
+178, /* Collection[nullable MClass] */
+169, /* SequenceRead[nullable Object] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-1734, /* AbstractArrayRead[nullable MClass] */
+1788, /* AbstractArrayRead[nullable MClass] */
 },
 };
 /* runtime type Array[MProperty] */
 const struct type type_array__Arraymodel__MProperty = {
-2607,
+2686,
 "Array[MProperty]", /* class_name_string */
 16,
 0,
@@ -1347,21 +1494,21 @@ const struct type type_array__Arraymodel__MProperty = {
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1728, /* AbstractArrayRead[Object] */
-1735, /* AbstractArrayRead[nullable MProperty] */
-1913, /* Array[nullable MProperty] */
-1911, /* Array[Object] */
-1914, /* Collection[MProperty] */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
+179, /* Collection[nullable MProperty] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1782, /* AbstractArrayRead[Object] */
+1789, /* AbstractArrayRead[nullable MProperty] */
+1975, /* Array[nullable MProperty] */
+1973, /* Array[Object] */
+1976, /* Collection[MProperty] */
+2264, /* AbstractArrayRead[PropertyLayoutElement] */
 -1, /* empty */
-2481, /* Array[PropertyLayoutElement] */
-2552, /* AbstractArrayRead[MProperty] */
+2553, /* Array[PropertyLayoutElement] */
+2630, /* AbstractArrayRead[MProperty] */
 -1, /* empty */
-2607, /* Array[MProperty] */
+2686, /* Array[MProperty] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MProperty = {
@@ -1390,7 +1537,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MProperty] not
 };
 /* runtime type Array[PropertyLayoutElement] */
 const struct type type_array__Arraylayout_builders__PropertyLayoutElement = {
-2481,
+2553,
 "Array[PropertyLayoutElement]", /* class_name_string */
 13,
 0,
@@ -1400,17 +1547,17 @@ const struct type type_array__Arraylayout_builders__PropertyLayoutElement = {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1728, /* AbstractArrayRead[Object] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1782, /* AbstractArrayRead[Object] */
 -1, /* empty */
 -1, /* empty */
-1911, /* Array[Object] */
+1973, /* Array[Object] */
 -1, /* empty */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
+2264, /* AbstractArrayRead[PropertyLayoutElement] */
 -1, /* empty */
-2481, /* Array[PropertyLayoutElement] */
+2553, /* Array[PropertyLayoutElement] */
 },
 };
 const struct types resolution_table_array__Arraylayout_builders__PropertyLayoutElement = {
@@ -1439,7 +1586,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[PropertyLayout
 };
 /* runtime type Array[nullable MProperty] */
 const struct type type_array__Arraynullable_model__MProperty = {
-1913,
+1975,
 "Array[nullable MProperty]", /* class_name_string */
 8,
 0,
@@ -1448,13 +1595,13 @@ const struct type type_array__Arraynullable_model__MProperty = {
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-163, /* SequenceRead[nullable Object] */
+179, /* Collection[nullable MProperty] */
+169, /* SequenceRead[nullable Object] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-1735, /* AbstractArrayRead[nullable MProperty] */
-1913, /* Array[nullable MProperty] */
+1789, /* AbstractArrayRead[nullable MProperty] */
+1975, /* Array[nullable MProperty] */
 },
 };
 const struct types resolution_table_array__Arraynullable_model__MProperty = {
@@ -1483,7 +1630,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MProp
 };
 /* runtime type Collection[MProperty] */
 const struct type type_abstract_collection__Collectionmodel__MProperty = {
-1914,
+1976,
 "Collection[MProperty]", /* class_name_string */
 10,
 0,
@@ -1492,20 +1639,20 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
+179, /* Collection[nullable MProperty] */
 -1, /* empty */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-1914, /* Collection[MProperty] */
+1976, /* Collection[MProperty] */
 },
 };
 /* runtime type Collection[PropertyLayoutElement] */
 const struct type type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement = {
-590,
+626,
 "Collection[PropertyLayoutElement]", /* class_name_string */
 5,
 0,
@@ -1516,13 +1663,13 @@ NULL,
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
 },
 };
 /* runtime type Collection[nullable MProperty] */
 const struct type type_abstract_collection__Collectionnullable_model__MProperty = {
-172,
+179,
 "Collection[nullable MProperty]", /* class_name_string */
 2,
 0,
@@ -1531,12 +1678,12 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
+179, /* Collection[nullable MProperty] */
 },
 };
 /* runtime type AbstractArrayRead[MProperty] */
 const struct type type_array__AbstractArrayReadmodel__MProperty = {
-2552,
+2630,
 "AbstractArrayRead[MProperty]", /* class_name_string */
 14,
 0,
@@ -1545,24 +1692,24 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1728, /* AbstractArrayRead[Object] */
-1735, /* AbstractArrayRead[nullable MProperty] */
+179, /* Collection[nullable MProperty] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1782, /* AbstractArrayRead[Object] */
+1789, /* AbstractArrayRead[nullable MProperty] */
 -1, /* empty */
 -1, /* empty */
-1914, /* Collection[MProperty] */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
+1976, /* Collection[MProperty] */
+2264, /* AbstractArrayRead[PropertyLayoutElement] */
 -1, /* empty */
 -1, /* empty */
-2552, /* AbstractArrayRead[MProperty] */
+2630, /* AbstractArrayRead[MProperty] */
 },
 };
 /* runtime type AbstractArrayRead[PropertyLayoutElement] */
 const struct type type_array__AbstractArrayReadlayout_builders__PropertyLayoutElement = {
-2194,
+2264,
 "AbstractArrayRead[PropertyLayoutElement]", /* class_name_string */
 11,
 0,
@@ -1572,20 +1719,20 @@ NULL,
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1728, /* AbstractArrayRead[Object] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1782, /* AbstractArrayRead[Object] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
+2264, /* AbstractArrayRead[PropertyLayoutElement] */
 },
 };
 /* runtime type AbstractArrayRead[nullable MProperty] */
 const struct type type_array__AbstractArrayReadnullable_model__MProperty = {
-1735,
+1789,
 "AbstractArrayRead[nullable MProperty]", /* class_name_string */
 7,
 0,
@@ -1594,17 +1741,17 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-163, /* SequenceRead[nullable Object] */
+179, /* Collection[nullable MProperty] */
+169, /* SequenceRead[nullable Object] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-1735, /* AbstractArrayRead[nullable MProperty] */
+1789, /* AbstractArrayRead[nullable MProperty] */
 },
 };
 /* runtime type POSet[MClassDef] */
 const struct type type_poset__POSetmodel__MClassDef = {
-1736,
+1790,
 "POSet[MClassDef]", /* class_name_string */
 3,
 0,
@@ -1613,9 +1760,9 @@ const struct type type_poset__POSetmodel__MClassDef = {
 {
 0, /* nullable Object */
 1, /* Object */
-591, /* Collection[MClassDef] */
-1736, /* POSet[MClassDef] */
-164, /* Collection[Object] */
+627, /* Collection[MClassDef] */
+1790, /* POSet[MClassDef] */
+170, /* Collection[Object] */
 },
 };
 const struct types resolution_table_poset__POSetmodel__MClassDef = {
@@ -1639,7 +1786,7 @@ NULL, /* empty */
 };
 /* runtime type Collection[MClassDef] */
 const struct type type_abstract_collection__Collectionmodel__MClassDef = {
-591,
+627,
 "Collection[MClassDef]", /* class_name_string */
 2,
 0,
@@ -1648,14 +1795,14 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-591, /* Collection[MClassDef] */
+627, /* Collection[MClassDef] */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
 },
 };
 /* runtime type POSet[MClassType] */
 const struct type type_poset__POSetmodel__MClassType = {
-2422,
+2489,
 "POSet[MClassType]", /* class_name_string */
 3,
 0,
@@ -1664,15 +1811,15 @@ const struct type type_poset__POSetmodel__MClassType = {
 {
 0, /* nullable Object */
 1, /* Object */
-1915, /* POSet[MType] */
-2422, /* POSet[MClassType] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
+1977, /* POSet[MType] */
+2489, /* POSet[MClassType] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
 -1, /* empty */
-1737, /* Collection[MType] */
+1791, /* Collection[MType] */
 -1, /* empty */
 -1, /* empty */
-1916, /* Collection[MClassType] */
+1978, /* Collection[MClassType] */
 },
 };
 const struct types resolution_table_poset__POSetmodel__MClassType = {
@@ -1696,7 +1843,7 @@ NULL, /* empty */
 };
 /* runtime type POSet[MType] */
 const struct type type_poset__POSetmodel__MType = {
-1915,
+1977,
 "POSet[MType]", /* class_name_string */
 2,
 0,
@@ -1705,12 +1852,12 @@ const struct type type_poset__POSetmodel__MType = {
 {
 0, /* nullable Object */
 1, /* Object */
-1915, /* POSet[MType] */
+1977, /* POSet[MType] */
 -1, /* empty */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
 -1, /* empty */
-1737, /* Collection[MType] */
+1791, /* Collection[MType] */
 },
 };
 const struct types resolution_table_poset__POSetmodel__MType = {
@@ -1732,50 +1879,50 @@ NULL, /* empty */
 &type_abstract_collection__Collectionmodel__MType, /* Collection[Collection#0]: Collection[MType] */
 }
 };
-/* runtime type Collection[MClassType] */
-const struct type type_abstract_collection__Collectionmodel__MClassType = {
-1916,
-"Collection[MClassType]", /* class_name_string */
-10,
+/* runtime type Collection[MType] */
+const struct type type_abstract_collection__Collectionmodel__MType = {
+1791,
+"Collection[MType]", /* class_name_string */
+7,
 0,
 NULL,
-11,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
 -1, /* empty */
-1737, /* Collection[MType] */
--1, /* empty */
--1, /* empty */
-1916, /* Collection[MClassType] */
+1791, /* Collection[MType] */
 },
 };
-/* runtime type Collection[MType] */
-const struct type type_abstract_collection__Collectionmodel__MType = {
-1737,
-"Collection[MType]", /* class_name_string */
-7,
+/* runtime type Collection[MClassType] */
+const struct type type_abstract_collection__Collectionmodel__MClassType = {
+1978,
+"Collection[MClassType]", /* class_name_string */
+10,
 0,
 NULL,
-8,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
 -1, /* empty */
-1737, /* Collection[MType] */
+1791, /* Collection[MType] */
+-1, /* empty */
+-1, /* empty */
+1978, /* Collection[MClassType] */
 },
 };
 /* runtime type Collection[nullable MType] */
 const struct type type_abstract_collection__Collectionnullable_model__MType = {
-173,
+180,
 "Collection[nullable MType]", /* class_name_string */
 5,
 0,
@@ -1787,12 +1934,12 @@ NULL,
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-173, /* Collection[nullable MType] */
+180, /* Collection[nullable MType] */
 },
 };
 /* runtime type MultiHashMap[String, MClass] */
 const struct type type_more_collections__MultiHashMapstring__Stringmodel__MClass = {
-592,
+628,
 "MultiHashMap[String, MClass]", /* class_name_string */
 3,
 0,
@@ -1801,8 +1948,8 @@ const struct type type_more_collections__MultiHashMapstring__Stringmodel__MClass
 {
 0, /* nullable Object */
 1, /* Object */
-174, /* HashMap[String, Array[MClass]] */
-592, /* MultiHashMap[String, MClass] */
+181, /* HashMap[String, Array[MClass]] */
+628, /* MultiHashMap[String, MClass] */
 },
 };
 const struct types resolution_table_more_collections__MultiHashMapstring__Stringmodel__MClass = {
@@ -1828,7 +1975,7 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[String, Array[MClass]] not a live type) *
 };
 /* runtime type HashMap[String, Array[MClass]] */
 const struct type type_hash_collection__HashMapstring__Stringarray__Arraymodel__MClass = {
-174,
+181,
 "HashMap[String, Array[MClass]]", /* class_name_string */
 2,
 0,
@@ -1837,12 +1984,12 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-174, /* HashMap[String, Array[MClass]] */
+181, /* HashMap[String, Array[MClass]] */
 },
 };
 /* runtime type MultiHashMap[String, MProperty] */
 const struct type type_more_collections__MultiHashMapstring__Stringmodel__MProperty = {
-593,
+629,
 "MultiHashMap[String, MProperty]", /* class_name_string */
 3,
 0,
@@ -1851,8 +1998,8 @@ const struct type type_more_collections__MultiHashMapstring__Stringmodel__MPrope
 {
 0, /* nullable Object */
 1, /* Object */
-175, /* HashMap[String, Array[MProperty]] */
-593, /* MultiHashMap[String, MProperty] */
+182, /* HashMap[String, Array[MProperty]] */
+629, /* MultiHashMap[String, MProperty] */
 },
 };
 const struct types resolution_table_more_collections__MultiHashMapstring__Stringmodel__MProperty = {
@@ -1878,7 +2025,7 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[String, Array[MProperty]] not a live type
 };
 /* runtime type HashMap[String, Array[MProperty]] */
 const struct type type_hash_collection__HashMapstring__Stringarray__Arraymodel__MProperty = {
-175,
+182,
 "HashMap[String, Array[MProperty]]", /* class_name_string */
 2,
 0,
@@ -1887,12 +2034,12 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-175, /* HashMap[String, Array[MProperty]] */
+182, /* HashMap[String, Array[MProperty]] */
 },
 };
 /* runtime type MNullType */
 const struct type type_model__MNullType = {
-1738,
+1792,
 "MNullType", /* class_name_string */
 4,
 0,
@@ -1902,8 +2049,8 @@ const struct type type_model__MNullType = {
 0, /* nullable Object */
 1, /* Object */
 2, /* nullable MType */
-594, /* MType */
-1738, /* MNullType */
+630, /* MType */
+1792, /* MNullType */
 },
 };
 const struct types resolution_table_model__MNullType = {
@@ -1913,7 +2060,7 @@ const struct types resolution_table_model__MNullType = {
 };
 /* runtime type MType */
 const struct type type_model__MType = {
-594,
+630,
 "MType", /* class_name_string */
 3,
 0,
@@ -1923,7 +2070,7 @@ NULL,
 0, /* nullable Object */
 1, /* Object */
 2, /* nullable MType */
-594, /* MType */
+630, /* MType */
 },
 };
 /* runtime type nullable MType */
@@ -1942,7 +2089,7 @@ NULL,
 };
 /* runtime type ModelBuilder */
 const struct type type_modelbuilder__ModelBuilder = {
-176,
+183,
 "ModelBuilder", /* class_name_string */
 2,
 0,
@@ -1951,7 +2098,7 @@ const struct type type_modelbuilder__ModelBuilder = {
 {
 0, /* nullable Object */
 1, /* Object */
-176, /* ModelBuilder */
+183, /* ModelBuilder */
 },
 };
 const struct types resolution_table_modelbuilder__ModelBuilder = {
@@ -1960,24 +2107,24 @@ const struct types resolution_table_modelbuilder__ModelBuilder = {
 }
 };
 /* runtime type HashMap3[MModule, MType, String, nullable MProperty] */
-const struct type type_more_collections__HashMap3model_base__MModulemodel__MTypestring__Stringnullable_model__MProperty = {
-177,
+const struct type type_more_collections__HashMap3mmodule__MModulemodel__MTypestring__Stringnullable_model__MProperty = {
+184,
 "HashMap3[MModule, MType, String, nullable MProperty]", /* class_name_string */
 2,
 0,
-&resolution_table_more_collections__HashMap3model_base__MModulemodel__MTypestring__Stringnullable_model__MProperty,
+&resolution_table_more_collections__HashMap3mmodule__MModulemodel__MTypestring__Stringnullable_model__MProperty,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-177, /* HashMap3[MModule, MType, String, nullable MProperty] */
+184, /* HashMap3[MModule, MType, String, nullable MProperty] */
 },
 };
-const struct types resolution_table_more_collections__HashMap3model_base__MModulemodel__MTypestring__Stringnullable_model__MProperty = {
+const struct types resolution_table_more_collections__HashMap3mmodule__MModulemodel__MTypestring__Stringnullable_model__MProperty = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmodel_base__MModulemore_collections__HashMap2model__MTypestring__Stringnullable_model__MProperty, /* HashMap[HashMap3#0, HashMap2[HashMap3#1, HashMap3#2, HashMap3#3]]: HashMap[MModule, HashMap2[MType, String, nullable MProperty]] */
-&type_model_base__MModule, /* HashMap3#0: MModule */
+&type_hash_collection__HashMapmmodule__MModulemore_collections__HashMap2model__MTypestring__Stringnullable_model__MProperty, /* HashMap[HashMap3#0, HashMap2[HashMap3#1, HashMap3#2, HashMap3#3]]: HashMap[MModule, HashMap2[MType, String, nullable MProperty]] */
+&type_mmodule__MModule, /* HashMap3#0: MModule */
 &type_model__MType, /* HashMap3#1: MType */
 &type_string__String, /* HashMap3#2: String */
 &type_nullable_model__MProperty, /* HashMap3#3: nullable MProperty */
@@ -1986,7 +2133,7 @@ const struct types resolution_table_more_collections__HashMap3model_base__MModul
 };
 /* runtime type Array[String] */
 const struct type type_array__Arraystring__String = {
-2482,
+2554,
 "Array[String]", /* class_name_string */
 7,
 0,
@@ -1995,14 +2142,14 @@ const struct type type_array__Arraystring__String = {
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2195, /* AbstractArrayRead[String] */
-1728, /* AbstractArrayRead[Object] */
-2482, /* Array[String] */
+631, /* Collection[String] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2265, /* AbstractArrayRead[String] */
+1782, /* AbstractArrayRead[Object] */
+2554, /* Array[String] */
 -1, /* empty */
-1911, /* Array[Object] */
+1973, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arraystring__String = {
@@ -2031,7 +2178,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[String] not a
 };
 /* runtime type Collection[String] */
 const struct type type_abstract_collection__Collectionstring__String = {
-595,
+631,
 "Collection[String]", /* class_name_string */
 2,
 0,
@@ -2040,14 +2187,14 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
+631, /* Collection[String] */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
 },
 };
 /* runtime type AbstractArrayRead[String] */
 const struct type type_array__AbstractArrayReadstring__String = {
-2195,
+2265,
 "AbstractArrayRead[String]", /* class_name_string */
 5,
 0,
@@ -2056,51 +2203,86 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2195, /* AbstractArrayRead[String] */
-1728, /* AbstractArrayRead[Object] */
+631, /* Collection[String] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2265, /* AbstractArrayRead[String] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
-/* runtime type HashMap[String, AModule] */
-const struct type type_hash_collection__HashMapstring__Stringparser_nodes__AModule = {
-178,
-"HashMap[String, AModule]", /* class_name_string */
+/* runtime type HashMap[String, nullable ModulePath] */
+const struct type type_hash_collection__HashMapstring__Stringnullable_modelbuilder__ModulePath = {
+185,
+"HashMap[String, nullable ModulePath]", /* class_name_string */
 2,
 0,
-&resolution_table_hash_collection__HashMapstring__Stringparser_nodes__AModule,
+&resolution_table_hash_collection__HashMapstring__Stringnullable_modelbuilder__ModulePath,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-178, /* HashMap[String, AModule] */
+185, /* HashMap[String, nullable ModulePath] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapstring__Stringparser_nodes__AModule = {
+const struct types resolution_table_hash_collection__HashMapstring__Stringnullable_modelbuilder__ModulePath = {
 0, /* dummy */
 {
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
-&type_hash_collection__HashMapKeysstring__Stringparser_nodes__AModule, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, AModule] */
-&type_hash_collection__HashMapValuesstring__Stringparser_nodes__AModule, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, AModule] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringparser_nodes__AModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, AModule]] */
+&type_hash_collection__HashMapKeysstring__Stringnullable_modelbuilder__ModulePath, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, nullable ModulePath] */
+&type_hash_collection__HashMapValuesstring__Stringnullable_modelbuilder__ModulePath, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, nullable ModulePath] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, nullable ModulePath]] */
 &type_string__String, /* MapRead#0: String */
-&type_hash_collection__HashMapIteratorstring__Stringparser_nodes__AModule, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, AModule] */
+&type_hash_collection__HashMapIteratorstring__Stringnullable_modelbuilder__ModulePath, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, nullable ModulePath] */
 &type_string__String, /* Map#0: String */
-&type_parser_nodes__AModule, /* Map#1: AModule */
-&type_hash_collection__HashMapNodestring__Stringparser_nodes__AModule, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, AModule] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[String, AModule] not a live type) */
-&type_parser_nodes__AModule, /* MapRead#1: AModule */
+&type_nullable_modelbuilder__ModulePath, /* Map#1: nullable ModulePath */
+&type_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, nullable ModulePath] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[String, nullable ModulePath] not a live type) */
+&type_nullable_modelbuilder__ModulePath, /* MapRead#1: nullable ModulePath */
+&type_string__String, /* HashCollection#0: String */
+&type_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* HashCollection#1: HashMapNode[String, nullable ModulePath] */
+}
+};
+/* runtime type HashMap[String, nullable MGroup] */
+const struct type type_hash_collection__HashMapstring__Stringnullable_mproject__MGroup = {
+186,
+"HashMap[String, nullable MGroup]", /* class_name_string */
+2,
+0,
+&resolution_table_hash_collection__HashMapstring__Stringnullable_mproject__MGroup,
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+186, /* HashMap[String, nullable MGroup] */
+},
+};
+const struct types resolution_table_hash_collection__HashMapstring__Stringnullable_mproject__MGroup = {
+0, /* dummy */
+{
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysstring__Stringnullable_mproject__MGroup, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, nullable MGroup] */
+&type_hash_collection__HashMapValuesstring__Stringnullable_mproject__MGroup, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, nullable MGroup] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, nullable MGroup]] */
+&type_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapIteratorstring__Stringnullable_mproject__MGroup, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, nullable MGroup] */
+&type_string__String, /* Map#0: String */
+&type_nullable_mproject__MGroup, /* Map#1: nullable MGroup */
+&type_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, nullable MGroup] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[String, nullable MGroup] not a live type) */
+&type_nullable_mproject__MGroup, /* MapRead#1: nullable MGroup */
 &type_string__String, /* HashCollection#0: String */
-&type_hash_collection__HashMapNodestring__Stringparser_nodes__AModule, /* HashCollection#1: HashMapNode[String, AModule] */
+&type_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* HashCollection#1: HashMapNode[String, nullable MGroup] */
 }
 };
 /* runtime type Array[AModule] */
 const struct type type_array__Arrayparser_nodes__AModule = {
-2608,
+2687,
 "Array[AModule]", /* class_name_string */
 13,
 0,
@@ -2109,19 +2291,19 @@ const struct type type_array__Arrayparser_nodes__AModule = {
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-1728, /* AbstractArrayRead[Object] */
-1917, /* Collection[AModule] */
-2196, /* AbstractArrayRead[ANode] */
-1911, /* Array[Object] */
-2553, /* AbstractArrayRead[AModule] */
-2483, /* Array[ANode] */
-2484, /* AbstractArrayRead[Prod] */
-2608, /* Array[AModule] */
-2579, /* Array[Prod] */
+632, /* Collection[ANode] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
+1782, /* AbstractArrayRead[Object] */
+1979, /* Collection[AModule] */
+2266, /* AbstractArrayRead[ANode] */
+1973, /* Array[Object] */
+2631, /* AbstractArrayRead[AModule] */
+2555, /* Array[ANode] */
+2556, /* AbstractArrayRead[Prod] */
+2687, /* Array[AModule] */
+2657, /* Array[Prod] */
 },
 };
 const struct types resolution_table_array__Arrayparser_nodes__AModule = {
@@ -2150,7 +2332,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[AModule] not a
 };
 /* runtime type Array[Prod] */
 const struct type type_array__Arrayparser_nodes__Prod = {
-2579,
+2657,
 "Array[Prod]", /* class_name_string */
 14,
 0,
@@ -2159,19 +2341,19 @@ const struct type type_array__Arrayparser_nodes__Prod = {
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-1728, /* AbstractArrayRead[Object] */
+632, /* Collection[ANode] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
+1782, /* AbstractArrayRead[Object] */
 -1, /* empty */
-2196, /* AbstractArrayRead[ANode] */
-1911, /* Array[Object] */
+2266, /* AbstractArrayRead[ANode] */
+1973, /* Array[Object] */
 -1, /* empty */
-2483, /* Array[ANode] */
-2484, /* AbstractArrayRead[Prod] */
+2555, /* Array[ANode] */
+2556, /* AbstractArrayRead[Prod] */
 -1, /* empty */
-2579, /* Array[Prod] */
+2657, /* Array[Prod] */
 },
 };
 const struct types resolution_table_array__Arrayparser_nodes__Prod = {
@@ -2200,7 +2382,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Prod] not a li
 };
 /* runtime type Array[ANode] */
 const struct type type_array__Arrayparser_nodes__ANode = {
-2483,
+2555,
 "Array[ANode]", /* class_name_string */
 11,
 0,
@@ -2209,16 +2391,16 @@ const struct type type_array__Arrayparser_nodes__ANode = {
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
+632, /* Collection[ANode] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
 -1, /* empty */
-1728, /* AbstractArrayRead[Object] */
+1782, /* AbstractArrayRead[Object] */
 -1, /* empty */
-2196, /* AbstractArrayRead[ANode] */
-1911, /* Array[Object] */
+2266, /* AbstractArrayRead[ANode] */
+1973, /* Array[Object] */
 -1, /* empty */
-2483, /* Array[ANode] */
+2555, /* Array[ANode] */
 },
 };
 const struct types resolution_table_array__Arrayparser_nodes__ANode = {
@@ -2247,7 +2429,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[ANode] not a l
 };
 /* runtime type Collection[AModule] */
 const struct type type_abstract_collection__Collectionparser_nodes__AModule = {
-1917,
+1979,
 "Collection[AModule]", /* class_name_string */
 7,
 0,
@@ -2256,50 +2438,50 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
+632, /* Collection[ANode] */
 -1, /* empty */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
 -1, /* empty */
-1917, /* Collection[AModule] */
+1979, /* Collection[AModule] */
 },
 };
-/* runtime type Collection[Prod] */
-const struct type type_abstract_collection__Collectionparser_nodes__Prod = {
-1739,
-"Collection[Prod]", /* class_name_string */
-5,
+/* runtime type Collection[ANode] */
+const struct type type_abstract_collection__Collectionparser_nodes__ANode = {
+632,
+"Collection[ANode]", /* class_name_string */
+2,
 0,
 NULL,
-6,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
+632, /* Collection[ANode] */
 -1, /* empty */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
+170, /* Collection[Object] */
 },
 };
-/* runtime type Collection[ANode] */
-const struct type type_abstract_collection__Collectionparser_nodes__ANode = {
-596,
-"Collection[ANode]", /* class_name_string */
-2,
+/* runtime type Collection[Prod] */
+const struct type type_abstract_collection__Collectionparser_nodes__Prod = {
+1793,
+"Collection[Prod]", /* class_name_string */
+5,
 0,
 NULL,
-5,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
+632, /* Collection[ANode] */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
 },
 };
 /* runtime type AbstractArrayRead[AModule] */
 const struct type type_array__AbstractArrayReadparser_nodes__AModule = {
-2553,
+2631,
 "AbstractArrayRead[AModule]", /* class_name_string */
 10,
 0,
@@ -2308,22 +2490,22 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-1728, /* AbstractArrayRead[Object] */
-1917, /* Collection[AModule] */
-2196, /* AbstractArrayRead[ANode] */
+632, /* Collection[ANode] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
+1782, /* AbstractArrayRead[Object] */
+1979, /* Collection[AModule] */
+2266, /* AbstractArrayRead[ANode] */
 -1, /* empty */
-2553, /* AbstractArrayRead[AModule] */
+2631, /* AbstractArrayRead[AModule] */
 -1, /* empty */
-2484, /* AbstractArrayRead[Prod] */
+2556, /* AbstractArrayRead[Prod] */
 },
 };
 /* runtime type AbstractArrayRead[Prod] */
 const struct type type_array__AbstractArrayReadparser_nodes__Prod = {
-2484,
+2556,
 "AbstractArrayRead[Prod]", /* class_name_string */
 12,
 0,
@@ -2332,22 +2514,22 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-1728, /* AbstractArrayRead[Object] */
+632, /* Collection[ANode] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
+1782, /* AbstractArrayRead[Object] */
 -1, /* empty */
-2196, /* AbstractArrayRead[ANode] */
+2266, /* AbstractArrayRead[ANode] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-2484, /* AbstractArrayRead[Prod] */
+2556, /* AbstractArrayRead[Prod] */
 },
 };
 /* runtime type AbstractArrayRead[ANode] */
 const struct type type_array__AbstractArrayReadparser_nodes__ANode = {
-2196,
+2266,
 "AbstractArrayRead[ANode]", /* class_name_string */
 8,
 0,
@@ -2356,53 +2538,53 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
+632, /* Collection[ANode] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
 -1, /* empty */
-1728, /* AbstractArrayRead[Object] */
+1782, /* AbstractArrayRead[Object] */
 -1, /* empty */
-2196, /* AbstractArrayRead[ANode] */
+2266, /* AbstractArrayRead[ANode] */
 },
 };
 /* runtime type HashMap[MModule, AModule] */
-const struct type type_hash_collection__HashMapmodel_base__MModuleparser_nodes__AModule = {
-179,
+const struct type type_hash_collection__HashMapmmodule__MModuleparser_nodes__AModule = {
+187,
 "HashMap[MModule, AModule]", /* class_name_string */
 2,
 0,
-&resolution_table_hash_collection__HashMapmodel_base__MModuleparser_nodes__AModule,
+&resolution_table_hash_collection__HashMapmmodule__MModuleparser_nodes__AModule,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-179, /* HashMap[MModule, AModule] */
+187, /* HashMap[MModule, AModule] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel_base__MModuleparser_nodes__AModule = {
+const struct types resolution_table_hash_collection__HashMapmmodule__MModuleparser_nodes__AModule = {
 0, /* dummy */
 {
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel_base__MModuleparser_nodes__AModule, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, AModule] */
-&type_hash_collection__HashMapValuesmodel_base__MModuleparser_nodes__AModule, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, AModule] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel_base__MModuleparser_nodes__AModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, AModule]] */
-&type_model_base__MModule, /* MapRead#0: MModule */
-&type_hash_collection__HashMapIteratormodel_base__MModuleparser_nodes__AModule, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MModule, AModule] */
-&type_model_base__MModule, /* Map#0: MModule */
+&type_hash_collection__HashMapKeysmmodule__MModuleparser_nodes__AModule, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, AModule] */
+&type_hash_collection__HashMapValuesmmodule__MModuleparser_nodes__AModule, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, AModule] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, AModule]] */
+&type_mmodule__MModule, /* MapRead#0: MModule */
+&type_hash_collection__HashMapIteratormmodule__MModuleparser_nodes__AModule, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MModule, AModule] */
+&type_mmodule__MModule, /* Map#0: MModule */
 &type_parser_nodes__AModule, /* Map#1: AModule */
-&type_hash_collection__HashMapNodemodel_base__MModuleparser_nodes__AModule, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MModule, AModule] */
+&type_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MModule, AModule] */
 NULL, /* empty (Map[Map#0, Map#1]: Map[MModule, AModule] not a live type) */
 &type_parser_nodes__AModule, /* MapRead#1: AModule */
-&type_model_base__MModule, /* HashCollection#0: MModule */
-&type_hash_collection__HashMapNodemodel_base__MModuleparser_nodes__AModule, /* HashCollection#1: HashMapNode[MModule, AModule] */
+&type_mmodule__MModule, /* HashCollection#0: MModule */
+&type_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* HashCollection#1: HashMapNode[MModule, AModule] */
 }
 };
 /* runtime type HashMap[MClassDef, AClassdef] */
 const struct type type_hash_collection__HashMapmodel__MClassDefparser_nodes__AClassdef = {
-180,
+188,
 "HashMap[MClassDef, AClassdef]", /* class_name_string */
 2,
 0,
@@ -2411,7 +2593,7 @@ const struct type type_hash_collection__HashMapmodel__MClassDefparser_nodes__ACl
 {
 0, /* nullable Object */
 1, /* Object */
-180, /* HashMap[MClassDef, AClassdef] */
+188, /* HashMap[MClassDef, AClassdef] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassDefparser_nodes__AClassdef = {
@@ -2437,7 +2619,7 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[MClassDef, AClassdef] not a live type) */
 };
 /* runtime type HashMap[MPropDef, APropdef] */
 const struct type type_hash_collection__HashMapmodel__MPropDefparser_nodes__APropdef = {
-181,
+189,
 "HashMap[MPropDef, APropdef]", /* class_name_string */
 2,
 0,
@@ -2446,7 +2628,7 @@ const struct type type_hash_collection__HashMapmodel__MPropDefparser_nodes__APro
 {
 0, /* nullable Object */
 1, /* Object */
-181, /* HashMap[MPropDef, APropdef] */
+189, /* HashMap[MPropDef, APropdef] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MPropDefparser_nodes__APropdef = {
@@ -2471,66 +2653,66 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[MPropDef, APropdef] not a live type) */
 }
 };
 /* runtime type MModule */
-const struct type type_model_base__MModule = {
-182,
+const struct type type_mmodule__MModule = {
+190,
 "MModule", /* class_name_string */
 2,
 0,
-&resolution_table_model_base__MModule,
+&resolution_table_mmodule__MModule,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-182, /* MModule */
+190, /* MModule */
 },
 };
-const struct types resolution_table_model_base__MModule = {
+const struct types resolution_table_mmodule__MModule = {
 0, /* dummy */
 {
 }
 };
 /* runtime type HashSet[MModule] */
-const struct type type_hash_collection__HashSetmodel_base__MModule = {
-2197,
+const struct type type_hash_collection__HashSetmmodule__MModule = {
+2267,
 "HashSet[MModule]", /* class_name_string */
 5,
 0,
-&resolution_table_hash_collection__HashSetmodel_base__MModule,
+&resolution_table_hash_collection__HashSetmmodule__MModule,
 7,
 {
 0, /* nullable Object */
 1, /* Object */
-588, /* Collection[MModule] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-2197, /* HashSet[MModule] */
-1740, /* HashSet[Object] */
+624, /* Collection[MModule] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+2267, /* HashSet[MModule] */
+1794, /* HashSet[Object] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetmodel_base__MModule = {
+const struct types resolution_table_hash_collection__HashSetmmodule__MModule = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel_base__MModule, /* HashSetNode[HashSet#0]: HashSetNode[MModule] */
-&type_hash_collection__HashSetIteratormodel_base__MModule, /* HashSetIterator[HashSet#0]: HashSetIterator[MModule] */
-&type_abstract_collection__Collectionmodel_base__MModule, /* Collection[HashSet#0]: Collection[MModule] */
-&type_model_base__MModule, /* SimpleCollection#0: MModule */
-&type_abstract_collection__Collectionmodel_base__MModule, /* Collection[Set#0]: Collection[MModule] */
+&type_hash_collection__HashSetNodemmodule__MModule, /* HashSetNode[HashSet#0]: HashSetNode[MModule] */
+&type_hash_collection__HashSetIteratormmodule__MModule, /* HashSetIterator[HashSet#0]: HashSetIterator[MModule] */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[HashSet#0]: Collection[MModule] */
+&type_mmodule__MModule, /* SimpleCollection#0: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Set#0]: Collection[MModule] */
 NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel_base__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MModule]] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemmodule__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MModule]] */
 NULL, /* empty */
-&type_model_base__MModule, /* RemovableCollection#0: MModule */
+&type_mmodule__MModule, /* RemovableCollection#0: MModule */
 NULL, /* empty */
 NULL, /* empty */
-&type_abstract_collection__Collectionmodel_base__MModule, /* Collection[SimpleCollection#0]: Collection[MModule] */
-&type_model_base__MModule, /* Collection#0: MModule */
-&type_abstract_collection__Collectionmodel_base__MModule, /* Collection[Collection#0]: Collection[MModule] */
-&type_model_base__MModule, /* HashCollection#0: MModule */
-&type_hash_collection__HashSetNodemodel_base__MModule, /* HashCollection#1: HashSetNode[MModule] */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[SimpleCollection#0]: Collection[MModule] */
+&type_mmodule__MModule, /* Collection#0: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Collection#0]: Collection[MModule] */
+&type_mmodule__MModule, /* HashCollection#0: MModule */
+&type_hash_collection__HashSetNodemmodule__MModule, /* HashCollection#1: HashSetNode[MModule] */
 }
 };
 /* runtime type HashSet[Object] */
 const struct type type_hash_collection__HashSetkernel__Object = {
-1740,
+1794,
 "HashSet[Object]", /* class_name_string */
 6,
 0,
@@ -2540,10 +2722,10 @@ const struct type type_hash_collection__HashSetkernel__Object = {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-597, /* Set[Object] */
-164, /* Collection[Object] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
 -1, /* empty */
-1740, /* HashSet[Object] */
+1794, /* HashSet[Object] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetkernel__Object = {
@@ -2569,7 +2751,7 @@ NULL, /* empty */
 };
 /* runtime type Set[Object] */
 const struct type type_abstract_collection__Setkernel__Object = {
-597,
+633,
 "Set[Object]", /* class_name_string */
 3,
 0,
@@ -2579,13 +2761,13 @@ NULL,
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-597, /* Set[Object] */
-164, /* Collection[Object] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
 },
 };
 /* runtime type Array[MClassDef] */
 const struct type type_array__Arraymodel__MClassDef = {
-2485,
+2557,
 "Array[MClassDef]", /* class_name_string */
 7,
 0,
@@ -2594,14 +2776,14 @@ const struct type type_array__Arraymodel__MClassDef = {
 {
 0, /* nullable Object */
 1, /* Object */
-591, /* Collection[MClassDef] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2198, /* AbstractArrayRead[MClassDef] */
-1728, /* AbstractArrayRead[Object] */
-2485, /* Array[MClassDef] */
+627, /* Collection[MClassDef] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2268, /* AbstractArrayRead[MClassDef] */
+1782, /* AbstractArrayRead[Object] */
+2557, /* Array[MClassDef] */
 -1, /* empty */
-1911, /* Array[Object] */
+1973, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MClassDef = {
@@ -2630,7 +2812,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MClassDef] not
 };
 /* runtime type AbstractArrayRead[MClassDef] */
 const struct type type_array__AbstractArrayReadmodel__MClassDef = {
-2198,
+2268,
 "AbstractArrayRead[MClassDef]", /* class_name_string */
 5,
 0,
@@ -2639,16 +2821,16 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-591, /* Collection[MClassDef] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2198, /* AbstractArrayRead[MClassDef] */
-1728, /* AbstractArrayRead[Object] */
+627, /* Collection[MClassDef] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2268, /* AbstractArrayRead[MClassDef] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
 /* runtime type HashMap[MClass, Set[MProperty]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MProperty = {
-1741,
+1795,
 "HashMap[MClass, Set[MProperty]]", /* class_name_string */
 5,
 0,
@@ -2657,10 +2839,10 @@ const struct type type_hash_collection__HashMapmodel__MClassabstract_collection_
 {
 0, /* nullable Object */
 1, /* Object */
-183, /* Map[MClass, Set[PropertyLayoutElement]] */
-598, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+191, /* Map[MClass, Set[PropertyLayoutElement]] */
+634, /* HashMap[MClass, Set[PropertyLayoutElement]] */
 -1, /* empty */
-1741, /* HashMap[MClass, Set[MProperty]] */
+1795, /* HashMap[MClass, Set[MProperty]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MProperty = {
@@ -2686,7 +2868,7 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[MClass, Set[MProperty]] not a live type)
 };
 /* runtime type HashMap[MClass, Set[PropertyLayoutElement]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement = {
-598,
+634,
 "HashMap[MClass, Set[PropertyLayoutElement]]", /* class_name_string */
 3,
 0,
@@ -2695,8 +2877,8 @@ const struct type type_hash_collection__HashMapmodel__MClassabstract_collection_
 {
 0, /* nullable Object */
 1, /* Object */
-183, /* Map[MClass, Set[PropertyLayoutElement]] */
-598, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+191, /* Map[MClass, Set[PropertyLayoutElement]] */
+634, /* HashMap[MClass, Set[PropertyLayoutElement]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement = {
@@ -2722,7 +2904,7 @@ NULL, /* empty */
 };
 /* runtime type Map[MClass, Set[PropertyLayoutElement]] */
 const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement = {
-183,
+191,
 "Map[MClass, Set[PropertyLayoutElement]]", /* class_name_string */
 2,
 0,
@@ -2731,57 +2913,218 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-183, /* Map[MClass, Set[PropertyLayoutElement]] */
+191, /* Map[MClass, Set[PropertyLayoutElement]] */
 },
 };
-/* runtime type Array[Option] */
-const struct type type_array__Arrayopts__Option = {
-2486,
-"Array[Option]", /* class_name_string */
-7,
-0,
-&resolution_table_array__Arrayopts__Option,
+/* runtime type String */
+const struct type type_string__String = {
+2632,
+"String", /* class_name_string */
 10,
+0,
+&resolution_table_string__String,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
-599, /* Collection[Option] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2199, /* AbstractArrayRead[Option] */
-1728, /* AbstractArrayRead[Object] */
-2486, /* Array[Option] */
--1, /* empty */
-1911, /* Array[Object] */
+3, /* nullable String */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+635, /* Collection[Char] */
+1782, /* AbstractArrayRead[Object] */
+1980, /* SequenceRead[Char] */
+2490, /* AbstractArrayRead[Char] */
+2558, /* AbstractString */
+2632, /* String */
 },
 };
-const struct types resolution_table_array__Arrayopts__Option = {
+const struct types resolution_table_string__String = {
 0, /* dummy */
 {
-&type_array__Arrayopts__Option, /* Array[Array#0]: Array[Option] */
-&type_array__NativeArrayopts__Option, /* NativeArray[Array#0]: NativeArray[Option] */
-&type_opts__Option, /* Sequence#0: Option */
-&type_opts__Option, /* SimpleCollection#0: Option */
-&type_abstract_collection__Collectionopts__Option, /* Collection[Array#0]: Collection[Option] */
-&type_opts__Option, /* Array#0: Option */
-&type_array__NativeArrayopts__Option, /* NativeArray[ArrayCapable#0]: NativeArray[Option] */
-&type_opts__Option, /* AbstractArray#0: Option */
-&type_opts__Option, /* RemovableCollection#0: Option */
-&type_abstract_collection__Collectionopts__Option, /* Collection[Sequence#0]: Collection[Option] */
-&type_array__Arrayopts__Option, /* Array[Sequence#0]: Array[Option] */
-&type_abstract_collection__Collectionopts__Option, /* Collection[SimpleCollection#0]: Collection[Option] */
-&type_opts__Option, /* Collection#0: Option */
-&type_abstract_collection__Collectionopts__Option, /* Collection[Collection#0]: Collection[Option] */
-&type_opts__Option, /* SequenceRead#0: Option */
-&type_opts__Option, /* AbstractArrayRead#0: Option */
-&type_array__Arrayopts__Option, /* Array[AbstractArrayRead#0]: Array[Option] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Option] not a live type) */
+&type_string__String, /* OTHER: String */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_kernel__Char, /* Collection#0: Char */
+&type_abstract_collection__Collectionkernel__Char, /* Collection[Collection#0]: Collection[Char] */
+&type_kernel__Char, /* SequenceRead#0: Char */
+&type_kernel__Char, /* AbstractArrayRead#0: Char */
+&type_array__Arraykernel__Char, /* Array[AbstractArrayRead#0]: Array[Char] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Char] not a live type) */
+&type_array__ArrayIteratorkernel__Char, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Char] */
+}
+};
+/* runtime type Collection[Char] */
+const struct type type_abstract_collection__Collectionkernel__Char = {
+635,
+"Collection[Char]", /* class_name_string */
+5,
+0,
+NULL,
+6,
+{
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+-1, /* empty */
+170, /* Collection[Object] */
+635, /* Collection[Char] */
+},
+};
+/* runtime type AbstractArrayRead[Char] */
+const struct type type_array__AbstractArrayReadkernel__Char = {
+2490,
+"AbstractArrayRead[Char]", /* class_name_string */
+8,
+0,
+NULL,
+9,
+{
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+635, /* Collection[Char] */
+1782, /* AbstractArrayRead[Object] */
+1980, /* SequenceRead[Char] */
+2490, /* AbstractArrayRead[Char] */
+},
+};
+/* runtime type AbstractString */
+const struct type type_string__AbstractString = {
+2558,
+"AbstractString", /* class_name_string */
+9,
+0,
+NULL,
+10,
+{
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+635, /* Collection[Char] */
+1782, /* AbstractArrayRead[Object] */
+1980, /* SequenceRead[Char] */
+2490, /* AbstractArrayRead[Char] */
+2558, /* AbstractString */
+},
+};
+/* runtime type SequenceRead[Char] */
+const struct type type_abstract_collection__SequenceReadkernel__Char = {
+1980,
+"SequenceRead[Char]", /* class_name_string */
+7,
+0,
+NULL,
+8,
+{
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+635, /* Collection[Char] */
+-1, /* empty */
+1980, /* SequenceRead[Char] */
+},
+};
+/* runtime type nullable String */
+const struct type type_nullable_string__String = {
+3,
+"nullable String", /* class_name_string */
+2,
+1,
+&resolution_table_nullable_string__String,
+3,
+{
+0, /* nullable Object */
+-1, /* empty */
+3, /* nullable String */
+},
+};
+const struct types resolution_table_nullable_string__String = {
+0, /* dummy */
+{
+&type_string__String, /* OTHER: String */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_kernel__Char, /* Collection#0: Char */
+&type_abstract_collection__Collectionkernel__Char, /* Collection[Collection#0]: Collection[Char] */
+&type_kernel__Char, /* SequenceRead#0: Char */
+&type_kernel__Char, /* AbstractArrayRead#0: Char */
+&type_array__Arraykernel__Char, /* Array[AbstractArrayRead#0]: Array[Char] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Char] not a live type) */
+&type_array__ArrayIteratorkernel__Char, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Char] */
+}
+};
+/* runtime type Array[Option] */
+const struct type type_array__Arrayopts__Option = {
+2559,
+"Array[Option]", /* class_name_string */
+7,
+0,
+&resolution_table_array__Arrayopts__Option,
+10,
+{
+0, /* nullable Object */
+1, /* Object */
+636, /* Collection[Option] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2269, /* AbstractArrayRead[Option] */
+1782, /* AbstractArrayRead[Object] */
+2559, /* Array[Option] */
+-1, /* empty */
+1973, /* Array[Object] */
+},
+};
+const struct types resolution_table_array__Arrayopts__Option = {
+0, /* dummy */
+{
+&type_array__Arrayopts__Option, /* Array[Array#0]: Array[Option] */
+&type_array__NativeArrayopts__Option, /* NativeArray[Array#0]: NativeArray[Option] */
+&type_opts__Option, /* Sequence#0: Option */
+&type_opts__Option, /* SimpleCollection#0: Option */
+&type_abstract_collection__Collectionopts__Option, /* Collection[Array#0]: Collection[Option] */
+&type_opts__Option, /* Array#0: Option */
+&type_array__NativeArrayopts__Option, /* NativeArray[ArrayCapable#0]: NativeArray[Option] */
+&type_opts__Option, /* AbstractArray#0: Option */
+&type_opts__Option, /* RemovableCollection#0: Option */
+&type_abstract_collection__Collectionopts__Option, /* Collection[Sequence#0]: Collection[Option] */
+&type_array__Arrayopts__Option, /* Array[Sequence#0]: Array[Option] */
+&type_abstract_collection__Collectionopts__Option, /* Collection[SimpleCollection#0]: Collection[Option] */
+&type_opts__Option, /* Collection#0: Option */
+&type_abstract_collection__Collectionopts__Option, /* Collection[Collection#0]: Collection[Option] */
+&type_opts__Option, /* SequenceRead#0: Option */
+&type_opts__Option, /* AbstractArrayRead#0: Option */
+&type_array__Arrayopts__Option, /* Array[AbstractArrayRead#0]: Array[Option] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Option] not a live type) */
 &type_array__ArrayIteratoropts__Option, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Option] */
 }
 };
 /* runtime type Collection[Option] */
 const struct type type_abstract_collection__Collectionopts__Option = {
-599,
+636,
 "Collection[Option]", /* class_name_string */
 2,
 0,
@@ -2790,14 +3133,14 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-599, /* Collection[Option] */
+636, /* Collection[Option] */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
 },
 };
 /* runtime type AbstractArrayRead[Option] */
 const struct type type_array__AbstractArrayReadopts__Option = {
-2199,
+2269,
 "AbstractArrayRead[Option]", /* class_name_string */
 5,
 0,
@@ -2806,16 +3149,16 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-599, /* Collection[Option] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2199, /* AbstractArrayRead[Option] */
-1728, /* AbstractArrayRead[Object] */
+636, /* Collection[Option] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2269, /* AbstractArrayRead[Option] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
 /* runtime type HashMap[String, Option] */
 const struct type type_hash_collection__HashMapstring__Stringopts__Option = {
-184,
+192,
 "HashMap[String, Option]", /* class_name_string */
 2,
 0,
@@ -2824,7 +3167,7 @@ const struct type type_hash_collection__HashMapstring__Stringopts__Option = {
 {
 0, /* nullable Object */
 1, /* Object */
-184, /* HashMap[String, Option] */
+192, /* HashMap[String, Option] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapstring__Stringopts__Option = {
@@ -2850,7 +3193,7 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[String, Option] not a live type) */
 };
 /* runtime type NativeArray[String] */
 const struct type type_array__NativeArraystring__String = {
-600,
+637,
 "NativeArray[String]", /* class_name_string */
 3,
 0,
@@ -2859,8 +3202,8 @@ const struct type type_array__NativeArraystring__String = {
 {
 0, /* nullable Object */
 1, /* Object */
-185, /* NativeArray[Object] */
-600, /* NativeArray[String] */
+193, /* NativeArray[Object] */
+637, /* NativeArray[String] */
 },
 };
 const struct types resolution_table_array__NativeArraystring__String = {
@@ -2872,7 +3215,7 @@ const struct types resolution_table_array__NativeArraystring__String = {
 };
 /* runtime type NativeArray[Object] */
 const struct type type_array__NativeArraykernel__Object = {
-185,
+193,
 "NativeArray[Object]", /* class_name_string */
 2,
 0,
@@ -2881,7 +3224,7 @@ const struct type type_array__NativeArraykernel__Object = {
 {
 0, /* nullable Object */
 1, /* Object */
-185, /* NativeArray[Object] */
+193, /* NativeArray[Object] */
 },
 };
 const struct types resolution_table_array__NativeArraykernel__Object = {
@@ -2893,7 +3236,7 @@ const struct types resolution_table_array__NativeArraykernel__Object = {
 };
 /* runtime type NativeArray[Option] */
 const struct type type_array__NativeArrayopts__Option = {
-601,
+638,
 "NativeArray[Option]", /* class_name_string */
 3,
 0,
@@ -2902,8 +3245,8 @@ const struct type type_array__NativeArrayopts__Option = {
 {
 0, /* nullable Object */
 1, /* Object */
-185, /* NativeArray[Object] */
-601, /* NativeArray[Option] */
+193, /* NativeArray[Object] */
+638, /* NativeArray[Option] */
 },
 };
 const struct types resolution_table_array__NativeArrayopts__Option = {
@@ -2915,7 +3258,7 @@ const struct types resolution_table_array__NativeArrayopts__Option = {
 };
 /* runtime type Char */
 const struct type type_kernel__Char = {
-186,
+194,
 "Char", /* class_name_string */
 2,
 0,
@@ -2924,19 +3267,18 @@ const struct type type_kernel__Char = {
 {
 0, /* nullable Object */
 1, /* Object */
-186, /* Char */
+194, /* Char */
 },
 };
 const struct types resolution_table_kernel__Char = {
 0, /* dummy */
 {
 &type_kernel__Char, /* OTHER: Char */
-NULL, /* empty (Range[OTHER]: Range[Char] not a live type) */
 }
 };
 /* runtime type Buffer */
 const struct type type_string__Buffer = {
-2546,
+2622,
 "Buffer", /* class_name_string */
 2,
 0,
@@ -2945,14 +3287,14 @@ const struct type type_string__Buffer = {
 {
 0, /* nullable Object */
 1, /* Object */
-2546, /* Buffer */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-602, /* Collection[Char] */
-1728, /* AbstractArrayRead[Object] */
-1918, /* SequenceRead[Char] */
-2423, /* AbstractArrayRead[Char] */
-2487, /* AbstractString */
+2622, /* Buffer */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+635, /* Collection[Char] */
+1782, /* AbstractArrayRead[Object] */
+1980, /* SequenceRead[Char] */
+2490, /* AbstractArrayRead[Char] */
+2558, /* AbstractString */
 },
 };
 const struct types resolution_table_string__Buffer = {
@@ -2979,167 +3321,120 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Char] not a li
 &type_array__ArrayIteratorkernel__Char, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Char] */
 }
 };
-/* runtime type Collection[Char] */
-const struct type type_abstract_collection__Collectionkernel__Char = {
-602,
-"Collection[Char]", /* class_name_string */
+/* runtime type ArraySet[MModule] */
+const struct type type_array__ArraySetmmodule__MModule = {
+1981,
+"ArraySet[MModule]", /* class_name_string */
 5,
 0,
-NULL,
+&resolution_table_array__ArraySetmmodule__MModule,
 6,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
--1, /* empty */
-164, /* Collection[Object] */
-602, /* Collection[Char] */
+624, /* Collection[MModule] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+1981, /* ArraySet[MModule] */
 },
 };
-/* runtime type AbstractArrayRead[Char] */
-const struct type type_array__AbstractArrayReadkernel__Char = {
-2423,
-"AbstractArrayRead[Char]", /* class_name_string */
-8,
-0,
-NULL,
-9,
+const struct types resolution_table_array__ArraySetmmodule__MModule = {
+0, /* dummy */
 {
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-602, /* Collection[Char] */
-1728, /* AbstractArrayRead[Object] */
-1918, /* SequenceRead[Char] */
-2423, /* AbstractArrayRead[Char] */
-},
+&type_array__ArraySetIteratormmodule__MModule, /* ArraySetIterator[ArraySet#0]: ArraySetIterator[MModule] */
+&type_array__Arraymmodule__MModule, /* Array[ArraySet#0]: Array[MModule] */
+NULL, /* empty */
+&type_mmodule__MModule, /* SimpleCollection#0: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Set#0]: Collection[MModule] */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_mmodule__MModule, /* RemovableCollection#0: MModule */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[SimpleCollection#0]: Collection[MModule] */
+&type_mmodule__MModule, /* Collection#0: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Collection#0]: Collection[MModule] */
+}
 };
-/* runtime type AbstractString */
-const struct type type_string__AbstractString = {
-2487,
-"AbstractString", /* class_name_string */
-9,
+/* runtime type SeparateErasureCompiler */
+const struct type type_separate_erasure_compiler__SeparateErasureCompiler = {
+1796,
+"SeparateErasureCompiler", /* class_name_string */
+4,
 0,
-NULL,
-10,
+&resolution_table_separate_erasure_compiler__SeparateErasureCompiler,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-602, /* Collection[Char] */
-1728, /* AbstractArrayRead[Object] */
-1918, /* SequenceRead[Char] */
-2423, /* AbstractArrayRead[Char] */
-2487, /* AbstractString */
+195, /* AbstractCompiler */
+639, /* SeparateCompiler */
+1796, /* SeparateErasureCompiler */
 },
 };
-/* runtime type SequenceRead[Char] */
-const struct type type_abstract_collection__SequenceReadkernel__Char = {
-1918,
-"SequenceRead[Char]", /* class_name_string */
-7,
+const struct types resolution_table_separate_erasure_compiler__SeparateErasureCompiler = {
+0, /* dummy */
+{
+&type_separate_compiler__SeparateCompilerVisitor, /* VISITOR: SeparateCompilerVisitor */
+}
+};
+/* runtime type SeparateCompiler */
+const struct type type_separate_compiler__SeparateCompiler = {
+639,
+"SeparateCompiler", /* class_name_string */
+3,
 0,
-NULL,
-8,
+&resolution_table_separate_compiler__SeparateCompiler,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-602, /* Collection[Char] */
--1, /* empty */
-1918, /* SequenceRead[Char] */
+195, /* AbstractCompiler */
+639, /* SeparateCompiler */
 },
 };
-/* runtime type RapidTypeAnalysis */
-const struct type type_rapid_type_analysis__RapidTypeAnalysis = {
-187,
-"RapidTypeAnalysis", /* class_name_string */
+const struct types resolution_table_separate_compiler__SeparateCompiler = {
+0, /* dummy */
+{
+&type_separate_compiler__SeparateCompilerVisitor, /* VISITOR: SeparateCompilerVisitor */
+}
+};
+/* runtime type AbstractCompiler */
+const struct type type_abstract_compiler__AbstractCompiler = {
+195,
+"AbstractCompiler", /* class_name_string */
 2,
 0,
-&resolution_table_rapid_type_analysis__RapidTypeAnalysis,
+NULL,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-187, /* RapidTypeAnalysis */
+195, /* AbstractCompiler */
 },
 };
-const struct types resolution_table_rapid_type_analysis__RapidTypeAnalysis = {
-0, /* dummy */
-{
-}
-};
-/* runtime type HashSet[MClassType] */
-const struct type type_hash_collection__HashSetmodel__MClassType = {
-2580,
-"HashSet[MClassType]", /* class_name_string */
-11,
+/* runtime type HashSet[MType] */
+const struct type type_hash_collection__HashSetmodel__MType = {
+2560,
+"HashSet[MType]", /* class_name_string */
+8,
 0,
-&resolution_table_hash_collection__HashSetmodel__MClassType,
-12,
+&resolution_table_hash_collection__HashSetmodel__MType,
+9,
 {
 0, /* nullable Object */
 1, /* Object */
-2200, /* Set[MType] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
-1740, /* HashSet[Object] */
-1737, /* Collection[MType] */
-2488, /* HashSet[MType] */
-2489, /* Set[MClassType] */
-1916, /* Collection[MClassType] */
-2580, /* HashSet[MClassType] */
+2270, /* Set[MType] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1794, /* HashSet[Object] */
+1791, /* Collection[MType] */
+2560, /* HashSet[MType] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetmodel__MClassType = {
-0, /* dummy */
-{
-&type_hash_collection__HashSetNodemodel__MClassType, /* HashSetNode[HashSet#0]: HashSetNode[MClassType] */
-&type_hash_collection__HashSetIteratormodel__MClassType, /* HashSetIterator[HashSet#0]: HashSetIterator[MClassType] */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[HashSet#0]: Collection[MClassType] */
-&type_model__MClassType, /* SimpleCollection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Set#0]: Collection[MClassType] */
-NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MClassType]] */
-NULL, /* empty */
-&type_model__MClassType, /* RemovableCollection#0: MClassType */
-NULL, /* empty */
-NULL, /* empty */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[SimpleCollection#0]: Collection[MClassType] */
-&type_model__MClassType, /* Collection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Collection#0]: Collection[MClassType] */
-&type_model__MClassType, /* HashCollection#0: MClassType */
-&type_hash_collection__HashSetNodemodel__MClassType, /* HashCollection#1: HashSetNode[MClassType] */
-}
-};
-/* runtime type HashSet[MType] */
-const struct type type_hash_collection__HashSetmodel__MType = {
-2488,
-"HashSet[MType]", /* class_name_string */
-8,
-0,
-&resolution_table_hash_collection__HashSetmodel__MType,
-9,
-{
-0, /* nullable Object */
-1, /* Object */
-2200, /* Set[MType] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
-1740, /* HashSet[Object] */
-1737, /* Collection[MType] */
-2488, /* HashSet[MType] */
-},
-};
-const struct types resolution_table_hash_collection__HashSetmodel__MType = {
+const struct types resolution_table_hash_collection__HashSetmodel__MType = {
 0, /* dummy */
 {
 &type_hash_collection__HashSetNodemodel__MType, /* HashSetNode[HashSet#0]: HashSetNode[MType] */
@@ -3160,907 +3455,913 @@ NULL, /* empty */
 &type_hash_collection__HashSetNodemodel__MType, /* HashCollection#1: HashSetNode[MType] */
 }
 };
-/* runtime type Set[MClassType] */
-const struct type type_abstract_collection__Setmodel__MClassType = {
-2489,
-"Set[MClassType]", /* class_name_string */
-9,
+/* runtime type Set[MType] */
+const struct type type_abstract_collection__Setmodel__MType = {
+2270,
+"Set[MType]", /* class_name_string */
+2,
 0,
 NULL,
-11,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-2200, /* Set[MType] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
--1, /* empty */
-1737, /* Collection[MType] */
+2270, /* Set[MType] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
 -1, /* empty */
-2489, /* Set[MClassType] */
-1916, /* Collection[MClassType] */
+1791, /* Collection[MType] */
 },
 };
-/* runtime type Set[MType] */
-const struct type type_abstract_collection__Setmodel__MType = {
-2200,
-"Set[MType]", /* class_name_string */
+/* runtime type HashMap[MClassDef, HashSet[MType]] */
+const struct type type_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType = {
+196,
+"HashMap[MClassDef, HashSet[MType]]", /* class_name_string */
 2,
 0,
-NULL,
-8,
+&resolution_table_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-2200, /* Set[MType] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
--1, /* empty */
-1737, /* Collection[MType] */
+196, /* HashMap[MClassDef, HashSet[MType]] */
 },
 };
-/* runtime type HashSet[MClass] */
-const struct type type_hash_collection__HashSetmodel__MClass = {
-2490,
-"HashSet[MClass]", /* class_name_string */
-8,
+const struct types resolution_table_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType = {
+0, /* dummy */
+{
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassDef, HashSet[MType]] */
+&type_hash_collection__HashMapValuesmodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassDef, HashSet[MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassDef, HashSet[MType]]] */
+&type_model__MClassDef, /* MapRead#0: MClassDef */
+&type_hash_collection__HashMapIteratormodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClassDef, HashSet[MType]] */
+&type_model__MClassDef, /* Map#0: MClassDef */
+&type_hash_collection__HashSetmodel__MType, /* Map#1: HashSet[MType] */
+&type_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClassDef, HashSet[MType]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MClassDef, HashSet[MType]] not a live type) */
+&type_hash_collection__HashSetmodel__MType, /* MapRead#1: HashSet[MType] */
+&type_model__MClassDef, /* HashCollection#0: MClassDef */
+&type_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* HashCollection#1: HashMapNode[MClassDef, HashSet[MType]] */
+}
+};
+/* runtime type HashMap[MClass, Int] */
+const struct type type_hash_collection__HashMapmodel__MClasskernel__Int = {
+640,
+"HashMap[MClass, Int]", /* class_name_string */
+3,
 0,
-&resolution_table_hash_collection__HashSetmodel__MClass,
-9,
+&resolution_table_hash_collection__HashMapmodel__MClasskernel__Int,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-171, /* Collection[nullable MClass] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-1733, /* Collection[MClass] */
-1740, /* HashSet[Object] */
-2201, /* Set[MClass] */
-2490, /* HashSet[MClass] */
+197, /* Map[MClass, Int] */
+640, /* HashMap[MClass, Int] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetmodel__MClass = {
+const struct types resolution_table_hash_collection__HashMapmodel__MClasskernel__Int = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MClass, /* HashSetNode[HashSet#0]: HashSetNode[MClass] */
-&type_hash_collection__HashSetIteratormodel__MClass, /* HashSetIterator[HashSet#0]: HashSetIterator[MClass] */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[HashSet#0]: Collection[MClass] */
-&type_model__MClass, /* SimpleCollection#0: MClass */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[Set#0]: Collection[MClass] */
 NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MClass]] */
 NULL, /* empty */
-&type_model__MClass, /* RemovableCollection#0: MClass */
 NULL, /* empty */
 NULL, /* empty */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[SimpleCollection#0]: Collection[MClass] */
-&type_model__MClass, /* Collection#0: MClass */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[Collection#0]: Collection[MClass] */
+&type_hash_collection__HashMapKeysmodel__MClasskernel__Int, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Int] */
+&type_hash_collection__HashMapValuesmodel__MClasskernel__Int, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Int] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClasskernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Int]] */
+&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapIteratormodel__MClasskernel__Int, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Int] */
+&type_model__MClass, /* Map#0: MClass */
+&type_kernel__Int, /* Map#1: Int */
+&type_hash_collection__HashMapNodemodel__MClasskernel__Int, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Int] */
+&type_abstract_collection__Mapmodel__MClasskernel__Int, /* Map[Map#0, Map#1]: Map[MClass, Int] */
+&type_kernel__Int, /* MapRead#1: Int */
 &type_model__MClass, /* HashCollection#0: MClass */
-&type_hash_collection__HashSetNodemodel__MClass, /* HashCollection#1: HashSetNode[MClass] */
+&type_hash_collection__HashMapNodemodel__MClasskernel__Int, /* HashCollection#1: HashMapNode[MClass, Int] */
 }
 };
-/* runtime type Set[MClass] */
-const struct type type_abstract_collection__Setmodel__MClass = {
-2201,
-"Set[MClass]", /* class_name_string */
-7,
+/* runtime type Map[MClass, Int] */
+const struct type type_abstract_collection__Mapmodel__MClasskernel__Int = {
+197,
+"Map[MClass, Int]", /* class_name_string */
+2,
 0,
 NULL,
-8,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-171, /* Collection[nullable MClass] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-1733, /* Collection[MClass] */
--1, /* empty */
-2201, /* Set[MClass] */
+197, /* Map[MClass, Int] */
 },
 };
-/* runtime type HashSet[MMethodDef] */
-const struct type type_hash_collection__HashSetmodel__MMethodDef = {
-2581,
-"HashSet[MMethodDef]", /* class_name_string */
-10,
+/* runtime type HashMap[MType, Array[nullable MType]] */
+const struct type type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType = {
+198,
+"HashMap[MType, Array[nullable MType]]", /* class_name_string */
+2,
 0,
-&resolution_table_hash_collection__HashSetmodel__MMethodDef,
-13,
+&resolution_table_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-188, /* Collection[nullable MPropDef] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1740, /* HashSet[Object] */
-1919, /* Set[PropertyLayoutElement] */
-1920, /* Collection[MPropDef] */
-2424, /* HashSet[PropertyLayoutElement] */
-2581, /* HashSet[MMethodDef] */
--1, /* empty */
-2202, /* Collection[MMethodDef] */
+198, /* HashMap[MType, Array[nullable MType]] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetmodel__MMethodDef = {
+const struct types resolution_table_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MMethodDef, /* HashSetNode[HashSet#0]: HashSetNode[MMethodDef] */
-&type_hash_collection__HashSetIteratormodel__MMethodDef, /* HashSetIterator[HashSet#0]: HashSetIterator[MMethodDef] */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[HashSet#0]: Collection[MMethodDef] */
-&type_model__MMethodDef, /* SimpleCollection#0: MMethodDef */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Set#0]: Collection[MMethodDef] */
 NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MMethodDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MMethodDef]] */
 NULL, /* empty */
-&type_model__MMethodDef, /* RemovableCollection#0: MMethodDef */
 NULL, /* empty */
 NULL, /* empty */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[SimpleCollection#0]: Collection[MMethodDef] */
-&type_model__MMethodDef, /* Collection#0: MMethodDef */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Collection#0]: Collection[MMethodDef] */
-&type_model__MMethodDef, /* HashCollection#0: MMethodDef */
-&type_hash_collection__HashSetNodemodel__MMethodDef, /* HashCollection#1: HashSetNode[MMethodDef] */
+&type_hash_collection__HashMapKeysmodel__MTypearray__Arraynullable_model__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Array[nullable MType]] */
+&type_hash_collection__HashMapValuesmodel__MTypearray__Arraynullable_model__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Array[nullable MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Array[nullable MType]]] */
+&type_model__MType, /* MapRead#0: MType */
+&type_hash_collection__HashMapIteratormodel__MTypearray__Arraynullable_model__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Array[nullable MType]] */
+&type_model__MType, /* Map#0: MType */
+&type_array__Arraynullable_model__MType, /* Map#1: Array[nullable MType] */
+&type_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Array[nullable MType]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MType, Array[nullable MType]] not a live type) */
+&type_array__Arraynullable_model__MType, /* MapRead#1: Array[nullable MType] */
+&type_model__MType, /* HashCollection#0: MType */
+&type_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* HashCollection#1: HashMapNode[MType, Array[nullable MType]] */
 }
 };
-/* runtime type HashSet[PropertyLayoutElement] */
-const struct type type_hash_collection__HashSetlayout_builders__PropertyLayoutElement = {
-2424,
-"HashSet[PropertyLayoutElement]", /* class_name_string */
-9,
+/* runtime type HashMap[MClassType, Array[nullable MType]] */
+const struct type type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType = {
+641,
+"HashMap[MClassType, Array[nullable MType]]", /* class_name_string */
+3,
 0,
-&resolution_table_hash_collection__HashSetlayout_builders__PropertyLayoutElement,
-10,
+&resolution_table_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1740, /* HashSet[Object] */
-1919, /* Set[PropertyLayoutElement] */
--1, /* empty */
-2424, /* HashSet[PropertyLayoutElement] */
+198, /* HashMap[MType, Array[nullable MType]] */
+641, /* HashMap[MClassType, Array[nullable MType]] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetlayout_builders__PropertyLayoutElement = {
+const struct types resolution_table_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodelayout_builders__PropertyLayoutElement, /* HashSetNode[HashSet#0]: HashSetNode[PropertyLayoutElement] */
-&type_hash_collection__HashSetIteratorlayout_builders__PropertyLayoutElement, /* HashSetIterator[HashSet#0]: HashSetIterator[PropertyLayoutElement] */
-&type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement, /* Collection[HashSet#0]: Collection[PropertyLayoutElement] */
-&type_layout_builders__PropertyLayoutElement, /* SimpleCollection#0: PropertyLayoutElement */
-&type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement, /* Collection[Set#0]: Collection[PropertyLayoutElement] */
 NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodelayout_builders__PropertyLayoutElement, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[PropertyLayoutElement]] */
 NULL, /* empty */
-&type_layout_builders__PropertyLayoutElement, /* RemovableCollection#0: PropertyLayoutElement */
 NULL, /* empty */
 NULL, /* empty */
-&type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement, /* Collection[SimpleCollection#0]: Collection[PropertyLayoutElement] */
-&type_layout_builders__PropertyLayoutElement, /* Collection#0: PropertyLayoutElement */
-&type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement, /* Collection[Collection#0]: Collection[PropertyLayoutElement] */
-&type_layout_builders__PropertyLayoutElement, /* HashCollection#0: PropertyLayoutElement */
-&type_hash_collection__HashSetNodelayout_builders__PropertyLayoutElement, /* HashCollection#1: HashSetNode[PropertyLayoutElement] */
+&type_hash_collection__HashMapKeysmodel__MClassTypearray__Arraynullable_model__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassType, Array[nullable MType]] */
+&type_hash_collection__HashMapValuesmodel__MClassTypearray__Arraynullable_model__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassType, Array[nullable MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassType, Array[nullable MType]]] */
+&type_model__MClassType, /* MapRead#0: MClassType */
+&type_hash_collection__HashMapIteratormodel__MClassTypearray__Arraynullable_model__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClassType, Array[nullable MType]] */
+&type_model__MClassType, /* Map#0: MClassType */
+&type_array__Arraynullable_model__MType, /* Map#1: Array[nullable MType] */
+&type_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClassType, Array[nullable MType]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MClassType, Array[nullable MType]] not a live type) */
+&type_array__Arraynullable_model__MType, /* MapRead#1: Array[nullable MType] */
+&type_model__MClassType, /* HashCollection#0: MClassType */
+&type_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* HashCollection#1: HashMapNode[MClassType, Array[nullable MType]] */
 }
 };
-/* runtime type Set[PropertyLayoutElement] */
-const struct type type_abstract_collection__Setlayout_builders__PropertyLayoutElement = {
-1919,
-"Set[PropertyLayoutElement]", /* class_name_string */
-7,
+/* runtime type HashMap[MClass, Array[nullable MPropDef]] */
+const struct type type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef = {
+199,
+"HashMap[MClass, Array[nullable MPropDef]]", /* class_name_string */
+2,
 0,
-NULL,
-8,
+&resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
--1, /* empty */
-1919, /* Set[PropertyLayoutElement] */
+199, /* HashMap[MClass, Array[nullable MPropDef]] */
 },
 };
-/* runtime type Collection[MMethodDef] */
-const struct type type_abstract_collection__Collectionmodel__MMethodDef = {
-2202,
-"Collection[MMethodDef]", /* class_name_string */
-12,
+const struct types resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef = {
+0, /* dummy */
+{
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Array[nullable MPropDef]] */
+&type_hash_collection__HashMapValuesmodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Array[nullable MPropDef]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Array[nullable MPropDef]]] */
+&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Array[nullable MPropDef]] */
+&type_model__MClass, /* Map#0: MClass */
+&type_array__Arraynullable_model__MPropDef, /* Map#1: Array[nullable MPropDef] */
+&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Array[nullable MPropDef]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MClass, Array[nullable MPropDef]] not a live type) */
+&type_array__Arraynullable_model__MPropDef, /* MapRead#1: Array[nullable MPropDef] */
+&type_model__MClass, /* HashCollection#0: MClass */
+&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* HashCollection#1: HashMapNode[MClass, Array[nullable MPropDef]] */
+}
+};
+/* runtime type HashMap[String, String] */
+const struct type type_hash_collection__HashMapstring__Stringstring__String = {
+200,
+"HashMap[String, String]", /* class_name_string */
+2,
 0,
-NULL,
-13,
+&resolution_table_hash_collection__HashMapstring__Stringstring__String,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-188, /* Collection[nullable MPropDef] */
--1, /* empty */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
--1, /* empty */
--1, /* empty */
-1920, /* Collection[MPropDef] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-2202, /* Collection[MMethodDef] */
-},
-};
-/* runtime type Collection[MPropDef] */
-const struct type type_abstract_collection__Collectionmodel__MPropDef = {
-1920,
-"Collection[MPropDef]", /* class_name_string */
-8,
-0,
-NULL,
-9,
-{
-0, /* nullable Object */
-1, /* Object */
-188, /* Collection[nullable MPropDef] */
--1, /* empty */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
--1, /* empty */
--1, /* empty */
-1920, /* Collection[MPropDef] */
+200, /* HashMap[String, String] */
 },
 };
-/* runtime type Collection[nullable MPropDef] */
-const struct type type_abstract_collection__Collectionnullable_model__MPropDef = {
-188,
-"Collection[nullable MPropDef]", /* class_name_string */
-2,
-0,
-NULL,
-3,
+const struct types resolution_table_hash_collection__HashMapstring__Stringstring__String = {
+0, /* dummy */
 {
-0, /* nullable Object */
-1, /* Object */
-188, /* Collection[nullable MPropDef] */
-},
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysstring__Stringstring__String, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, String] */
+&type_hash_collection__HashMapValuesstring__Stringstring__String, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, String] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringstring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, String]] */
+&type_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapIteratorstring__Stringstring__String, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, String] */
+&type_string__String, /* Map#0: String */
+&type_string__String, /* Map#1: String */
+&type_hash_collection__HashMapNodestring__Stringstring__String, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, String] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[String, String] not a live type) */
+&type_string__String, /* MapRead#1: String */
+&type_string__String, /* HashCollection#0: String */
+&type_hash_collection__HashMapNodestring__Stringstring__String, /* HashCollection#1: HashMapNode[String, String] */
+}
 };
-/* runtime type HashSet[MMethod] */
-const struct type type_hash_collection__HashSetmodel__MMethod = {
-2606,
-"HashSet[MMethod]", /* class_name_string */
-11,
+/* runtime type List[CodeFile] */
+const struct type type_list__Listabstract_compiler__CodeFile = {
+1982,
+"List[CodeFile]", /* class_name_string */
+5,
 0,
-&resolution_table_hash_collection__HashSetmodel__MMethod,
-14,
+&resolution_table_list__Listabstract_compiler__CodeFile,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1740, /* HashSet[Object] */
-1919, /* Set[PropertyLayoutElement] */
-2491, /* Set[MProperty] */
-2424, /* HashSet[PropertyLayoutElement] */
-1914, /* Collection[MProperty] */
-2606, /* HashSet[MMethod] */
-2203, /* Collection[MMethod] */
-2582, /* HashSet[MProperty] */
+642, /* Collection[CodeFile] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1982, /* List[CodeFile] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetmodel__MMethod = {
+const struct types resolution_table_list__Listabstract_compiler__CodeFile = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MMethod, /* HashSetNode[HashSet#0]: HashSetNode[MMethod] */
-&type_hash_collection__HashSetIteratormodel__MMethod, /* HashSetIterator[HashSet#0]: HashSetIterator[MMethod] */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[HashSet#0]: Collection[MMethod] */
-&type_model__MMethod, /* SimpleCollection#0: MMethod */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Set#0]: Collection[MMethod] */
-NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MMethod, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MMethod]] */
-NULL, /* empty */
-&type_model__MMethod, /* RemovableCollection#0: MMethod */
-NULL, /* empty */
+&type_list__Listabstract_compiler__CodeFile, /* List[List#0]: List[CodeFile] */
+&type_list__ListNodeabstract_compiler__CodeFile, /* ListNode[List#0]: ListNode[CodeFile] */
+&type_abstract_compiler__CodeFile, /* Sequence#0: CodeFile */
+&type_abstract_compiler__CodeFile, /* SimpleCollection#0: CodeFile */
+&type_list__ListIteratorabstract_compiler__CodeFile, /* ListIterator[List#0]: ListIterator[CodeFile] */
+&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[List#0]: Collection[CodeFile] */
+&type_abstract_compiler__CodeFile, /* List#0: CodeFile */
 NULL, /* empty */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[SimpleCollection#0]: Collection[MMethod] */
-&type_model__MMethod, /* Collection#0: MMethod */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Collection#0]: Collection[MMethod] */
-&type_model__MMethod, /* HashCollection#0: MMethod */
-&type_hash_collection__HashSetNodemodel__MMethod, /* HashCollection#1: HashSetNode[MMethod] */
+&type_abstract_compiler__CodeFile, /* RemovableCollection#0: CodeFile */
+&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[Sequence#0]: Collection[CodeFile] */
+&type_array__Arrayabstract_compiler__CodeFile, /* Array[Sequence#0]: Array[CodeFile] */
+&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[SimpleCollection#0]: Collection[CodeFile] */
+&type_abstract_compiler__CodeFile, /* Collection#0: CodeFile */
+&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[Collection#0]: Collection[CodeFile] */
+&type_abstract_compiler__CodeFile, /* SequenceRead#0: CodeFile */
 }
 };
-/* runtime type HashSet[MProperty] */
-const struct type type_hash_collection__HashSetmodel__MProperty = {
-2582,
-"HashSet[MProperty]", /* class_name_string */
-13,
+/* runtime type Collection[CodeFile] */
+const struct type type_abstract_collection__Collectionabstract_compiler__CodeFile = {
+642,
+"Collection[CodeFile]", /* class_name_string */
+2,
 0,
-&resolution_table_hash_collection__HashSetmodel__MProperty,
-14,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1740, /* HashSet[Object] */
-1919, /* Set[PropertyLayoutElement] */
-2491, /* Set[MProperty] */
-2424, /* HashSet[PropertyLayoutElement] */
-1914, /* Collection[MProperty] */
+642, /* Collection[CodeFile] */
 -1, /* empty */
+170, /* Collection[Object] */
+},
+};
+/* runtime type Array[ExternCFile] */
+const struct type type_array__Arrayabstract_compiler__ExternCFile = {
+2561,
+"Array[ExternCFile]", /* class_name_string */
+7,
+0,
+&resolution_table_array__Arrayabstract_compiler__ExternCFile,
+10,
+{
+0, /* nullable Object */
+1, /* Object */
+643, /* Collection[ExternCFile] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2271, /* AbstractArrayRead[ExternCFile] */
+1782, /* AbstractArrayRead[Object] */
+2561, /* Array[ExternCFile] */
 -1, /* empty */
-2582, /* HashSet[MProperty] */
+1973, /* Array[Object] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetmodel__MProperty = {
+const struct types resolution_table_array__Arrayabstract_compiler__ExternCFile = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MProperty, /* HashSetNode[HashSet#0]: HashSetNode[MProperty] */
-&type_hash_collection__HashSetIteratormodel__MProperty, /* HashSetIterator[HashSet#0]: HashSetIterator[MProperty] */
-&type_abstract_collection__Collectionmodel__MProperty, /* Collection[HashSet#0]: Collection[MProperty] */
-&type_model__MProperty, /* SimpleCollection#0: MProperty */
-&type_abstract_collection__Collectionmodel__MProperty, /* Collection[Set#0]: Collection[MProperty] */
-NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MProperty, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MProperty]] */
-NULL, /* empty */
-&type_model__MProperty, /* RemovableCollection#0: MProperty */
-NULL, /* empty */
-NULL, /* empty */
-&type_abstract_collection__Collectionmodel__MProperty, /* Collection[SimpleCollection#0]: Collection[MProperty] */
-&type_model__MProperty, /* Collection#0: MProperty */
-&type_abstract_collection__Collectionmodel__MProperty, /* Collection[Collection#0]: Collection[MProperty] */
-&type_model__MProperty, /* HashCollection#0: MProperty */
-&type_hash_collection__HashSetNodemodel__MProperty, /* HashCollection#1: HashSetNode[MProperty] */
+&type_array__Arrayabstract_compiler__ExternCFile, /* Array[Array#0]: Array[ExternCFile] */
+&type_array__NativeArrayabstract_compiler__ExternCFile, /* NativeArray[Array#0]: NativeArray[ExternCFile] */
+&type_abstract_compiler__ExternCFile, /* Sequence#0: ExternCFile */
+&type_abstract_compiler__ExternCFile, /* SimpleCollection#0: ExternCFile */
+&type_abstract_collection__Collectionabstract_compiler__ExternCFile, /* Collection[Array#0]: Collection[ExternCFile] */
+&type_abstract_compiler__ExternCFile, /* Array#0: ExternCFile */
+&type_array__NativeArrayabstract_compiler__ExternCFile, /* NativeArray[ArrayCapable#0]: NativeArray[ExternCFile] */
+&type_abstract_compiler__ExternCFile, /* AbstractArray#0: ExternCFile */
+&type_abstract_compiler__ExternCFile, /* RemovableCollection#0: ExternCFile */
+&type_abstract_collection__Collectionabstract_compiler__ExternCFile, /* Collection[Sequence#0]: Collection[ExternCFile] */
+&type_array__Arrayabstract_compiler__ExternCFile, /* Array[Sequence#0]: Array[ExternCFile] */
+&type_abstract_collection__Collectionabstract_compiler__ExternCFile, /* Collection[SimpleCollection#0]: Collection[ExternCFile] */
+&type_abstract_compiler__ExternCFile, /* Collection#0: ExternCFile */
+&type_abstract_collection__Collectionabstract_compiler__ExternCFile, /* Collection[Collection#0]: Collection[ExternCFile] */
+&type_abstract_compiler__ExternCFile, /* SequenceRead#0: ExternCFile */
+&type_abstract_compiler__ExternCFile, /* AbstractArrayRead#0: ExternCFile */
+&type_array__Arrayabstract_compiler__ExternCFile, /* Array[AbstractArrayRead#0]: Array[ExternCFile] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[ExternCFile] not a live type) */
+&type_array__ArrayIteratorabstract_compiler__ExternCFile, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[ExternCFile] */
 }
 };
-/* runtime type Set[MProperty] */
-const struct type type_abstract_collection__Setmodel__MProperty = {
-2491,
-"Set[MProperty]", /* class_name_string */
-8,
+/* runtime type Collection[ExternCFile] */
+const struct type type_abstract_collection__Collectionabstract_compiler__ExternCFile = {
+643,
+"Collection[ExternCFile]", /* class_name_string */
+2,
 0,
 NULL,
-11,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
--1, /* empty */
-1919, /* Set[PropertyLayoutElement] */
-2491, /* Set[MProperty] */
+643, /* Collection[ExternCFile] */
 -1, /* empty */
-1914, /* Collection[MProperty] */
+170, /* Collection[Object] */
 },
 };
-/* runtime type Collection[MMethod] */
-const struct type type_abstract_collection__Collectionmodel__MMethod = {
-2203,
-"Collection[MMethod]", /* class_name_string */
-12,
+/* runtime type AbstractArrayRead[ExternCFile] */
+const struct type type_array__AbstractArrayReadabstract_compiler__ExternCFile = {
+2271,
+"AbstractArrayRead[ExternCFile]", /* class_name_string */
+5,
 0,
 NULL,
-13,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
--1, /* empty */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-1914, /* Collection[MProperty] */
--1, /* empty */
-2203, /* Collection[MMethod] */
+643, /* Collection[ExternCFile] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2271, /* AbstractArrayRead[ExternCFile] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
-/* runtime type List[MMethodDef] */
-const struct type type_list__Listmodel__MMethodDef = {
-2492,
-"List[MMethodDef]", /* class_name_string */
-6,
+/* runtime type ArraySet[String] */
+const struct type type_array__ArraySetstring__String = {
+1983,
+"ArraySet[String]", /* class_name_string */
+5,
 0,
-&resolution_table_list__Listmodel__MMethodDef,
-13,
+&resolution_table_array__ArraySetstring__String,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-188, /* Collection[nullable MPropDef] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-2492, /* List[MMethodDef] */
--1, /* empty */
-1920, /* Collection[MPropDef] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-2202, /* Collection[MMethodDef] */
+631, /* Collection[String] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+1983, /* ArraySet[String] */
 },
 };
-const struct types resolution_table_list__Listmodel__MMethodDef = {
+const struct types resolution_table_array__ArraySetstring__String = {
 0, /* dummy */
 {
-&type_list__Listmodel__MMethodDef, /* List[List#0]: List[MMethodDef] */
-&type_list__ListNodemodel__MMethodDef, /* ListNode[List#0]: ListNode[MMethodDef] */
-&type_model__MMethodDef, /* Sequence#0: MMethodDef */
-&type_model__MMethodDef, /* SimpleCollection#0: MMethodDef */
-&type_list__ListIteratormodel__MMethodDef, /* ListIterator[List#0]: ListIterator[MMethodDef] */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[List#0]: Collection[MMethodDef] */
-&type_model__MMethodDef, /* List#0: MMethodDef */
+&type_array__ArraySetIteratorstring__String, /* ArraySetIterator[ArraySet#0]: ArraySetIterator[String] */
+&type_array__Arraystring__String, /* Array[ArraySet#0]: Array[String] */
 NULL, /* empty */
-&type_model__MMethodDef, /* RemovableCollection#0: MMethodDef */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Sequence#0]: Collection[MMethodDef] */
-&type_array__Arraymodel__MMethodDef, /* Array[Sequence#0]: Array[MMethodDef] */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[SimpleCollection#0]: Collection[MMethodDef] */
-&type_model__MMethodDef, /* Collection#0: MMethodDef */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Collection#0]: Collection[MMethodDef] */
-&type_model__MMethodDef, /* SequenceRead#0: MMethodDef */
+&type_string__String, /* SimpleCollection#0: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[Set#0]: Collection[String] */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_string__String, /* RemovableCollection#0: String */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionstring__String, /* Collection[SimpleCollection#0]: Collection[String] */
+&type_string__String, /* Collection#0: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[Collection#0]: Collection[String] */
 }
 };
-/* runtime type SeparateErasureCompiler */
-const struct type type_separate_erasure_compiler__SeparateErasureCompiler = {
-1742,
-"SeparateErasureCompiler", /* class_name_string */
-4,
+/* runtime type RapidTypeAnalysis */
+const struct type type_rapid_type_analysis__RapidTypeAnalysis = {
+201,
+"RapidTypeAnalysis", /* class_name_string */
+2,
 0,
-&resolution_table_separate_erasure_compiler__SeparateErasureCompiler,
-5,
+&resolution_table_rapid_type_analysis__RapidTypeAnalysis,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-189, /* AbstractCompiler */
-603, /* SeparateCompiler */
-1742, /* SeparateErasureCompiler */
+201, /* RapidTypeAnalysis */
 },
 };
-const struct types resolution_table_separate_erasure_compiler__SeparateErasureCompiler = {
+const struct types resolution_table_rapid_type_analysis__RapidTypeAnalysis = {
 0, /* dummy */
 {
-&type_separate_compiler__SeparateCompilerVisitor, /* VISITOR: SeparateCompilerVisitor */
 }
 };
-/* runtime type SeparateCompiler */
-const struct type type_separate_compiler__SeparateCompiler = {
-603,
-"SeparateCompiler", /* class_name_string */
-3,
+/* runtime type HashSet[MClassType] */
+const struct type type_hash_collection__HashSetmodel__MClassType = {
+2658,
+"HashSet[MClassType]", /* class_name_string */
+11,
 0,
-&resolution_table_separate_compiler__SeparateCompiler,
-4,
+&resolution_table_hash_collection__HashSetmodel__MClassType,
+12,
 {
 0, /* nullable Object */
 1, /* Object */
-189, /* AbstractCompiler */
-603, /* SeparateCompiler */
+2270, /* Set[MType] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1794, /* HashSet[Object] */
+1791, /* Collection[MType] */
+2560, /* HashSet[MType] */
+2562, /* Set[MClassType] */
+1978, /* Collection[MClassType] */
+2658, /* HashSet[MClassType] */
 },
 };
-const struct types resolution_table_separate_compiler__SeparateCompiler = {
+const struct types resolution_table_hash_collection__HashSetmodel__MClassType = {
 0, /* dummy */
 {
-&type_separate_compiler__SeparateCompilerVisitor, /* VISITOR: SeparateCompilerVisitor */
+&type_hash_collection__HashSetNodemodel__MClassType, /* HashSetNode[HashSet#0]: HashSetNode[MClassType] */
+&type_hash_collection__HashSetIteratormodel__MClassType, /* HashSetIterator[HashSet#0]: HashSetIterator[MClassType] */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[HashSet#0]: Collection[MClassType] */
+&type_model__MClassType, /* SimpleCollection#0: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Set#0]: Collection[MClassType] */
+NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MClassType]] */
+NULL, /* empty */
+&type_model__MClassType, /* RemovableCollection#0: MClassType */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[SimpleCollection#0]: Collection[MClassType] */
+&type_model__MClassType, /* Collection#0: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Collection#0]: Collection[MClassType] */
+&type_model__MClassType, /* HashCollection#0: MClassType */
+&type_hash_collection__HashSetNodemodel__MClassType, /* HashCollection#1: HashSetNode[MClassType] */
 }
 };
-/* runtime type AbstractCompiler */
-const struct type type_abstract_compiler__AbstractCompiler = {
-189,
-"AbstractCompiler", /* class_name_string */
-2,
+/* runtime type Set[MClassType] */
+const struct type type_abstract_collection__Setmodel__MClassType = {
+2562,
+"Set[MClassType]", /* class_name_string */
+9,
 0,
 NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-189, /* AbstractCompiler */
-},
-};
-/* runtime type HashMap[MClassDef, HashSet[MType]] */
-const struct type type_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType = {
-190,
-"HashMap[MClassDef, HashSet[MType]]", /* class_name_string */
-2,
-0,
-&resolution_table_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType,
-3,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
-190, /* HashMap[MClassDef, HashSet[MType]] */
+2270, /* Set[MType] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+-1, /* empty */
+1791, /* Collection[MType] */
+-1, /* empty */
+2562, /* Set[MClassType] */
+1978, /* Collection[MClassType] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType = {
-0, /* dummy */
-{
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassDef, HashSet[MType]] */
-&type_hash_collection__HashMapValuesmodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassDef, HashSet[MType]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassDef, HashSet[MType]]] */
-&type_model__MClassDef, /* MapRead#0: MClassDef */
-&type_hash_collection__HashMapIteratormodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClassDef, HashSet[MType]] */
-&type_model__MClassDef, /* Map#0: MClassDef */
-&type_hash_collection__HashSetmodel__MType, /* Map#1: HashSet[MType] */
-&type_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClassDef, HashSet[MType]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MClassDef, HashSet[MType]] not a live type) */
-&type_hash_collection__HashSetmodel__MType, /* MapRead#1: HashSet[MType] */
-&type_model__MClassDef, /* HashCollection#0: MClassDef */
-&type_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* HashCollection#1: HashMapNode[MClassDef, HashSet[MType]] */
-}
-};
-/* runtime type HashMap[MClass, Int] */
-const struct type type_hash_collection__HashMapmodel__MClasskernel__Int = {
-604,
-"HashMap[MClass, Int]", /* class_name_string */
-3,
+/* runtime type HashSet[MClass] */
+const struct type type_hash_collection__HashSetmodel__MClass = {
+2563,
+"HashSet[MClass]", /* class_name_string */
+8,
 0,
-&resolution_table_hash_collection__HashMapmodel__MClasskernel__Int,
-4,
+&resolution_table_hash_collection__HashSetmodel__MClass,
+9,
 {
 0, /* nullable Object */
 1, /* Object */
-191, /* Map[MClass, Int] */
-604, /* HashMap[MClass, Int] */
+178, /* Collection[nullable MClass] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+1787, /* Collection[MClass] */
+1794, /* HashSet[Object] */
+2272, /* Set[MClass] */
+2563, /* HashSet[MClass] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MClasskernel__Int = {
+const struct types resolution_table_hash_collection__HashSetmodel__MClass = {
 0, /* dummy */
 {
+&type_hash_collection__HashSetNodemodel__MClass, /* HashSetNode[HashSet#0]: HashSetNode[MClass] */
+&type_hash_collection__HashSetIteratormodel__MClass, /* HashSetIterator[HashSet#0]: HashSetIterator[MClass] */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[HashSet#0]: Collection[MClass] */
+&type_model__MClass, /* SimpleCollection#0: MClass */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[Set#0]: Collection[MClass] */
 NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MClass]] */
 NULL, /* empty */
+&type_model__MClass, /* RemovableCollection#0: MClass */
 NULL, /* empty */
 NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MClasskernel__Int, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Int] */
-&type_hash_collection__HashMapValuesmodel__MClasskernel__Int, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Int] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClasskernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Int]] */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_hash_collection__HashMapIteratormodel__MClasskernel__Int, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Int] */
-&type_model__MClass, /* Map#0: MClass */
-&type_kernel__Int, /* Map#1: Int */
-&type_hash_collection__HashMapNodemodel__MClasskernel__Int, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Int] */
-&type_abstract_collection__Mapmodel__MClasskernel__Int, /* Map[Map#0, Map#1]: Map[MClass, Int] */
-&type_kernel__Int, /* MapRead#1: Int */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[SimpleCollection#0]: Collection[MClass] */
+&type_model__MClass, /* Collection#0: MClass */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[Collection#0]: Collection[MClass] */
 &type_model__MClass, /* HashCollection#0: MClass */
-&type_hash_collection__HashMapNodemodel__MClasskernel__Int, /* HashCollection#1: HashMapNode[MClass, Int] */
+&type_hash_collection__HashSetNodemodel__MClass, /* HashCollection#1: HashSetNode[MClass] */
 }
 };
-/* runtime type Map[MClass, Int] */
-const struct type type_abstract_collection__Mapmodel__MClasskernel__Int = {
-191,
-"Map[MClass, Int]", /* class_name_string */
-2,
+/* runtime type Set[MClass] */
+const struct type type_abstract_collection__Setmodel__MClass = {
+2272,
+"Set[MClass]", /* class_name_string */
+7,
 0,
 NULL,
-3,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-191, /* Map[MClass, Int] */
+178, /* Collection[nullable MClass] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+1787, /* Collection[MClass] */
+-1, /* empty */
+2272, /* Set[MClass] */
 },
 };
-/* runtime type HashMap[MType, Array[nullable MType]] */
-const struct type type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType = {
-192,
-"HashMap[MType, Array[nullable MType]]", /* class_name_string */
-2,
+/* runtime type HashSet[MMethodDef] */
+const struct type type_hash_collection__HashSetmodel__MMethodDef = {
+2659,
+"HashSet[MMethodDef]", /* class_name_string */
+10,
 0,
-&resolution_table_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType,
-3,
+&resolution_table_hash_collection__HashSetmodel__MMethodDef,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-192, /* HashMap[MType, Array[nullable MType]] */
+202, /* Collection[nullable MPropDef] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1794, /* HashSet[Object] */
+1984, /* Set[PropertyLayoutElement] */
+1985, /* Collection[MPropDef] */
+2491, /* HashSet[PropertyLayoutElement] */
+2659, /* HashSet[MMethodDef] */
+-1, /* empty */
+2273, /* Collection[MMethodDef] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType = {
+const struct types resolution_table_hash_collection__HashSetmodel__MMethodDef = {
 0, /* dummy */
 {
+&type_hash_collection__HashSetNodemodel__MMethodDef, /* HashSetNode[HashSet#0]: HashSetNode[MMethodDef] */
+&type_hash_collection__HashSetIteratormodel__MMethodDef, /* HashSetIterator[HashSet#0]: HashSetIterator[MMethodDef] */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[HashSet#0]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* SimpleCollection#0: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Set#0]: Collection[MMethodDef] */
 NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MMethodDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MMethodDef]] */
 NULL, /* empty */
+&type_model__MMethodDef, /* RemovableCollection#0: MMethodDef */
 NULL, /* empty */
 NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MTypearray__Arraynullable_model__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Array[nullable MType]] */
-&type_hash_collection__HashMapValuesmodel__MTypearray__Arraynullable_model__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Array[nullable MType]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Array[nullable MType]]] */
-&type_model__MType, /* MapRead#0: MType */
-&type_hash_collection__HashMapIteratormodel__MTypearray__Arraynullable_model__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Array[nullable MType]] */
-&type_model__MType, /* Map#0: MType */
-&type_array__Arraynullable_model__MType, /* Map#1: Array[nullable MType] */
-&type_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Array[nullable MType]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MType, Array[nullable MType]] not a live type) */
-&type_array__Arraynullable_model__MType, /* MapRead#1: Array[nullable MType] */
-&type_model__MType, /* HashCollection#0: MType */
-&type_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* HashCollection#1: HashMapNode[MType, Array[nullable MType]] */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[SimpleCollection#0]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* Collection#0: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Collection#0]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* HashCollection#0: MMethodDef */
+&type_hash_collection__HashSetNodemodel__MMethodDef, /* HashCollection#1: HashSetNode[MMethodDef] */
 }
 };
-/* runtime type HashMap[MClassType, Array[nullable MType]] */
-const struct type type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType = {
-605,
-"HashMap[MClassType, Array[nullable MType]]", /* class_name_string */
-3,
+/* runtime type HashSet[PropertyLayoutElement] */
+const struct type type_hash_collection__HashSetlayout_builders__PropertyLayoutElement = {
+2491,
+"HashSet[PropertyLayoutElement]", /* class_name_string */
+9,
 0,
-&resolution_table_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType,
-4,
+&resolution_table_hash_collection__HashSetlayout_builders__PropertyLayoutElement,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-192, /* HashMap[MType, Array[nullable MType]] */
-605, /* HashMap[MClassType, Array[nullable MType]] */
+-1, /* empty */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1794, /* HashSet[Object] */
+1984, /* Set[PropertyLayoutElement] */
+-1, /* empty */
+2491, /* HashSet[PropertyLayoutElement] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType = {
+const struct types resolution_table_hash_collection__HashSetlayout_builders__PropertyLayoutElement = {
 0, /* dummy */
 {
+&type_hash_collection__HashSetNodelayout_builders__PropertyLayoutElement, /* HashSetNode[HashSet#0]: HashSetNode[PropertyLayoutElement] */
+&type_hash_collection__HashSetIteratorlayout_builders__PropertyLayoutElement, /* HashSetIterator[HashSet#0]: HashSetIterator[PropertyLayoutElement] */
+&type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement, /* Collection[HashSet#0]: Collection[PropertyLayoutElement] */
+&type_layout_builders__PropertyLayoutElement, /* SimpleCollection#0: PropertyLayoutElement */
+&type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement, /* Collection[Set#0]: Collection[PropertyLayoutElement] */
 NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodelayout_builders__PropertyLayoutElement, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[PropertyLayoutElement]] */
 NULL, /* empty */
+&type_layout_builders__PropertyLayoutElement, /* RemovableCollection#0: PropertyLayoutElement */
 NULL, /* empty */
 NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MClassTypearray__Arraynullable_model__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassType, Array[nullable MType]] */
-&type_hash_collection__HashMapValuesmodel__MClassTypearray__Arraynullable_model__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassType, Array[nullable MType]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassType, Array[nullable MType]]] */
-&type_model__MClassType, /* MapRead#0: MClassType */
-&type_hash_collection__HashMapIteratormodel__MClassTypearray__Arraynullable_model__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClassType, Array[nullable MType]] */
-&type_model__MClassType, /* Map#0: MClassType */
-&type_array__Arraynullable_model__MType, /* Map#1: Array[nullable MType] */
-&type_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClassType, Array[nullable MType]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MClassType, Array[nullable MType]] not a live type) */
-&type_array__Arraynullable_model__MType, /* MapRead#1: Array[nullable MType] */
-&type_model__MClassType, /* HashCollection#0: MClassType */
-&type_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* HashCollection#1: HashMapNode[MClassType, Array[nullable MType]] */
+&type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement, /* Collection[SimpleCollection#0]: Collection[PropertyLayoutElement] */
+&type_layout_builders__PropertyLayoutElement, /* Collection#0: PropertyLayoutElement */
+&type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement, /* Collection[Collection#0]: Collection[PropertyLayoutElement] */
+&type_layout_builders__PropertyLayoutElement, /* HashCollection#0: PropertyLayoutElement */
+&type_hash_collection__HashSetNodelayout_builders__PropertyLayoutElement, /* HashCollection#1: HashSetNode[PropertyLayoutElement] */
 }
 };
-/* runtime type HashMap[MClass, Array[nullable MPropDef]] */
-const struct type type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef = {
-193,
-"HashMap[MClass, Array[nullable MPropDef]]", /* class_name_string */
-2,
+/* runtime type Set[PropertyLayoutElement] */
+const struct type type_abstract_collection__Setlayout_builders__PropertyLayoutElement = {
+1984,
+"Set[PropertyLayoutElement]", /* class_name_string */
+7,
 0,
-&resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef,
-3,
+NULL,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-193, /* HashMap[MClass, Array[nullable MPropDef]] */
+-1, /* empty */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+-1, /* empty */
+1984, /* Set[PropertyLayoutElement] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef = {
-0, /* dummy */
-{
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Array[nullable MPropDef]] */
-&type_hash_collection__HashMapValuesmodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Array[nullable MPropDef]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Array[nullable MPropDef]]] */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_hash_collection__HashMapIteratormodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Array[nullable MPropDef]] */
-&type_model__MClass, /* Map#0: MClass */
-&type_array__Arraynullable_model__MPropDef, /* Map#1: Array[nullable MPropDef] */
-&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Array[nullable MPropDef]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MClass, Array[nullable MPropDef]] not a live type) */
-&type_array__Arraynullable_model__MPropDef, /* MapRead#1: Array[nullable MPropDef] */
-&type_model__MClass, /* HashCollection#0: MClass */
-&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* HashCollection#1: HashMapNode[MClass, Array[nullable MPropDef]] */
-}
-};
-/* runtime type List[CodeFile] */
-const struct type type_list__Listabstract_compiler__CodeFile = {
-1921,
-"List[CodeFile]", /* class_name_string */
-5,
+/* runtime type Collection[MMethodDef] */
+const struct type type_abstract_collection__Collectionmodel__MMethodDef = {
+2273,
+"Collection[MMethodDef]", /* class_name_string */
+12,
 0,
-&resolution_table_list__Listabstract_compiler__CodeFile,
-6,
+NULL,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-606, /* Collection[CodeFile] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1921, /* List[CodeFile] */
+202, /* Collection[nullable MPropDef] */
+-1, /* empty */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+-1, /* empty */
+-1, /* empty */
+1985, /* Collection[MPropDef] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+2273, /* Collection[MMethodDef] */
 },
 };
-const struct types resolution_table_list__Listabstract_compiler__CodeFile = {
-0, /* dummy */
-{
-&type_list__Listabstract_compiler__CodeFile, /* List[List#0]: List[CodeFile] */
-&type_list__ListNodeabstract_compiler__CodeFile, /* ListNode[List#0]: ListNode[CodeFile] */
-&type_abstract_compiler__CodeFile, /* Sequence#0: CodeFile */
-&type_abstract_compiler__CodeFile, /* SimpleCollection#0: CodeFile */
-&type_list__ListIteratorabstract_compiler__CodeFile, /* ListIterator[List#0]: ListIterator[CodeFile] */
-&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[List#0]: Collection[CodeFile] */
-&type_abstract_compiler__CodeFile, /* List#0: CodeFile */
-NULL, /* empty */
-&type_abstract_compiler__CodeFile, /* RemovableCollection#0: CodeFile */
-&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[Sequence#0]: Collection[CodeFile] */
-&type_array__Arrayabstract_compiler__CodeFile, /* Array[Sequence#0]: Array[CodeFile] */
-&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[SimpleCollection#0]: Collection[CodeFile] */
-&type_abstract_compiler__CodeFile, /* Collection#0: CodeFile */
-&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[Collection#0]: Collection[CodeFile] */
-&type_abstract_compiler__CodeFile, /* SequenceRead#0: CodeFile */
-}
-};
-/* runtime type Collection[CodeFile] */
-const struct type type_abstract_collection__Collectionabstract_compiler__CodeFile = {
-606,
-"Collection[CodeFile]", /* class_name_string */
+/* runtime type Collection[nullable MPropDef] */
+const struct type type_abstract_collection__Collectionnullable_model__MPropDef = {
+202,
+"Collection[nullable MPropDef]", /* class_name_string */
 2,
 0,
 NULL,
-5,
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+202, /* Collection[nullable MPropDef] */
+},
+};
+/* runtime type Collection[MPropDef] */
+const struct type type_abstract_collection__Collectionmodel__MPropDef = {
+1985,
+"Collection[MPropDef]", /* class_name_string */
+8,
+0,
+NULL,
+9,
 {
 0, /* nullable Object */
 1, /* Object */
-606, /* Collection[CodeFile] */
+202, /* Collection[nullable MPropDef] */
+-1, /* empty */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
 -1, /* empty */
-164, /* Collection[Object] */
+-1, /* empty */
+1985, /* Collection[MPropDef] */
 },
 };
-/* runtime type HashMap[String, String] */
-const struct type type_hash_collection__HashMapstring__Stringstring__String = {
-194,
-"HashMap[String, String]", /* class_name_string */
-2,
+/* runtime type HashSet[MMethod] */
+const struct type type_hash_collection__HashSetmodel__MMethod = {
+2685,
+"HashSet[MMethod]", /* class_name_string */
+11,
 0,
-&resolution_table_hash_collection__HashMapstring__Stringstring__String,
-3,
+&resolution_table_hash_collection__HashSetmodel__MMethod,
+14,
 {
 0, /* nullable Object */
 1, /* Object */
-194, /* HashMap[String, String] */
+179, /* Collection[nullable MProperty] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1794, /* HashSet[Object] */
+1984, /* Set[PropertyLayoutElement] */
+2564, /* Set[MProperty] */
+2491, /* HashSet[PropertyLayoutElement] */
+1976, /* Collection[MProperty] */
+2685, /* HashSet[MMethod] */
+2274, /* Collection[MMethod] */
+2660, /* HashSet[MProperty] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapstring__Stringstring__String = {
+const struct types resolution_table_hash_collection__HashSetmodel__MMethod = {
 0, /* dummy */
 {
+&type_hash_collection__HashSetNodemodel__MMethod, /* HashSetNode[HashSet#0]: HashSetNode[MMethod] */
+&type_hash_collection__HashSetIteratormodel__MMethod, /* HashSetIterator[HashSet#0]: HashSetIterator[MMethod] */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[HashSet#0]: Collection[MMethod] */
+&type_model__MMethod, /* SimpleCollection#0: MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Set#0]: Collection[MMethod] */
 NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MMethod, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MMethod]] */
 NULL, /* empty */
+&type_model__MMethod, /* RemovableCollection#0: MMethod */
 NULL, /* empty */
 NULL, /* empty */
-&type_hash_collection__HashMapKeysstring__Stringstring__String, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, String] */
-&type_hash_collection__HashMapValuesstring__Stringstring__String, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, String] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringstring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, String]] */
-&type_string__String, /* MapRead#0: String */
-&type_hash_collection__HashMapIteratorstring__Stringstring__String, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, String] */
-&type_string__String, /* Map#0: String */
-&type_string__String, /* Map#1: String */
-&type_hash_collection__HashMapNodestring__Stringstring__String, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, String] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[String, String] not a live type) */
-&type_string__String, /* MapRead#1: String */
-&type_string__String, /* HashCollection#0: String */
-&type_hash_collection__HashMapNodestring__Stringstring__String, /* HashCollection#1: HashMapNode[String, String] */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[SimpleCollection#0]: Collection[MMethod] */
+&type_model__MMethod, /* Collection#0: MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Collection#0]: Collection[MMethod] */
+&type_model__MMethod, /* HashCollection#0: MMethod */
+&type_hash_collection__HashSetNodemodel__MMethod, /* HashCollection#1: HashSetNode[MMethod] */
 }
 };
-/* runtime type Array[ExternCFile] */
-const struct type type_array__Arrayabstract_compiler__ExternCFile = {
-2493,
-"Array[ExternCFile]", /* class_name_string */
-7,
+/* runtime type HashSet[MProperty] */
+const struct type type_hash_collection__HashSetmodel__MProperty = {
+2660,
+"HashSet[MProperty]", /* class_name_string */
+13,
 0,
-&resolution_table_array__Arrayabstract_compiler__ExternCFile,
-10,
+&resolution_table_hash_collection__HashSetmodel__MProperty,
+14,
 {
 0, /* nullable Object */
 1, /* Object */
-607, /* Collection[ExternCFile] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2204, /* AbstractArrayRead[ExternCFile] */
-1728, /* AbstractArrayRead[Object] */
-2493, /* Array[ExternCFile] */
+179, /* Collection[nullable MProperty] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1794, /* HashSet[Object] */
+1984, /* Set[PropertyLayoutElement] */
+2564, /* Set[MProperty] */
+2491, /* HashSet[PropertyLayoutElement] */
+1976, /* Collection[MProperty] */
+-1, /* empty */
 -1, /* empty */
-1911, /* Array[Object] */
+2660, /* HashSet[MProperty] */
 },
 };
-const struct types resolution_table_array__Arrayabstract_compiler__ExternCFile = {
+const struct types resolution_table_hash_collection__HashSetmodel__MProperty = {
 0, /* dummy */
 {
-&type_array__Arrayabstract_compiler__ExternCFile, /* Array[Array#0]: Array[ExternCFile] */
-&type_array__NativeArrayabstract_compiler__ExternCFile, /* NativeArray[Array#0]: NativeArray[ExternCFile] */
-&type_abstract_compiler__ExternCFile, /* Sequence#0: ExternCFile */
-&type_abstract_compiler__ExternCFile, /* SimpleCollection#0: ExternCFile */
-&type_abstract_collection__Collectionabstract_compiler__ExternCFile, /* Collection[Array#0]: Collection[ExternCFile] */
-&type_abstract_compiler__ExternCFile, /* Array#0: ExternCFile */
-&type_array__NativeArrayabstract_compiler__ExternCFile, /* NativeArray[ArrayCapable#0]: NativeArray[ExternCFile] */
-&type_abstract_compiler__ExternCFile, /* AbstractArray#0: ExternCFile */
-&type_abstract_compiler__ExternCFile, /* RemovableCollection#0: ExternCFile */
-&type_abstract_collection__Collectionabstract_compiler__ExternCFile, /* Collection[Sequence#0]: Collection[ExternCFile] */
-&type_array__Arrayabstract_compiler__ExternCFile, /* Array[Sequence#0]: Array[ExternCFile] */
-&type_abstract_collection__Collectionabstract_compiler__ExternCFile, /* Collection[SimpleCollection#0]: Collection[ExternCFile] */
-&type_abstract_compiler__ExternCFile, /* Collection#0: ExternCFile */
-&type_abstract_collection__Collectionabstract_compiler__ExternCFile, /* Collection[Collection#0]: Collection[ExternCFile] */
-&type_abstract_compiler__ExternCFile, /* SequenceRead#0: ExternCFile */
-&type_abstract_compiler__ExternCFile, /* AbstractArrayRead#0: ExternCFile */
-&type_array__Arrayabstract_compiler__ExternCFile, /* Array[AbstractArrayRead#0]: Array[ExternCFile] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[ExternCFile] not a live type) */
-&type_array__ArrayIteratorabstract_compiler__ExternCFile, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[ExternCFile] */
+&type_hash_collection__HashSetNodemodel__MProperty, /* HashSetNode[HashSet#0]: HashSetNode[MProperty] */
+&type_hash_collection__HashSetIteratormodel__MProperty, /* HashSetIterator[HashSet#0]: HashSetIterator[MProperty] */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[HashSet#0]: Collection[MProperty] */
+&type_model__MProperty, /* SimpleCollection#0: MProperty */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[Set#0]: Collection[MProperty] */
+NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MProperty, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MProperty]] */
+NULL, /* empty */
+&type_model__MProperty, /* RemovableCollection#0: MProperty */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[SimpleCollection#0]: Collection[MProperty] */
+&type_model__MProperty, /* Collection#0: MProperty */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[Collection#0]: Collection[MProperty] */
+&type_model__MProperty, /* HashCollection#0: MProperty */
+&type_hash_collection__HashSetNodemodel__MProperty, /* HashCollection#1: HashSetNode[MProperty] */
 }
 };
-/* runtime type Collection[ExternCFile] */
-const struct type type_abstract_collection__Collectionabstract_compiler__ExternCFile = {
-607,
-"Collection[ExternCFile]", /* class_name_string */
-2,
+/* runtime type Set[MProperty] */
+const struct type type_abstract_collection__Setmodel__MProperty = {
+2564,
+"Set[MProperty]", /* class_name_string */
+8,
 0,
 NULL,
-5,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
-607, /* Collection[ExternCFile] */
+179, /* Collection[nullable MProperty] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
 -1, /* empty */
-164, /* Collection[Object] */
+1984, /* Set[PropertyLayoutElement] */
+2564, /* Set[MProperty] */
+-1, /* empty */
+1976, /* Collection[MProperty] */
 },
 };
-/* runtime type AbstractArrayRead[ExternCFile] */
-const struct type type_array__AbstractArrayReadabstract_compiler__ExternCFile = {
-2204,
-"AbstractArrayRead[ExternCFile]", /* class_name_string */
-5,
+/* runtime type Collection[MMethod] */
+const struct type type_abstract_collection__Collectionmodel__MMethod = {
+2274,
+"Collection[MMethod]", /* class_name_string */
+12,
 0,
 NULL,
-7,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-607, /* Collection[ExternCFile] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2204, /* AbstractArrayRead[ExternCFile] */
-1728, /* AbstractArrayRead[Object] */
+179, /* Collection[nullable MProperty] */
+-1, /* empty */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+1976, /* Collection[MProperty] */
+-1, /* empty */
+2274, /* Collection[MMethod] */
 },
 };
-/* runtime type ArraySet[String] */
-const struct type type_array__ArraySetstring__String = {
-1922,
-"ArraySet[String]", /* class_name_string */
-5,
-0,
-&resolution_table_array__ArraySetstring__String,
+/* runtime type List[MMethodDef] */
+const struct type type_list__Listmodel__MMethodDef = {
+2565,
+"List[MMethodDef]", /* class_name_string */
 6,
+0,
+&resolution_table_list__Listmodel__MMethodDef,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-1922, /* ArraySet[String] */
+202, /* Collection[nullable MPropDef] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+2565, /* List[MMethodDef] */
+-1, /* empty */
+1985, /* Collection[MPropDef] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+2273, /* Collection[MMethodDef] */
 },
 };
-const struct types resolution_table_array__ArraySetstring__String = {
+const struct types resolution_table_list__Listmodel__MMethodDef = {
 0, /* dummy */
 {
-&type_array__ArraySetIteratorstring__String, /* ArraySetIterator[ArraySet#0]: ArraySetIterator[String] */
-&type_array__Arraystring__String, /* Array[ArraySet#0]: Array[String] */
-NULL, /* empty */
-&type_string__String, /* SimpleCollection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Set#0]: Collection[String] */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_string__String, /* RemovableCollection#0: String */
-NULL, /* empty */
+&type_list__Listmodel__MMethodDef, /* List[List#0]: List[MMethodDef] */
+&type_list__ListNodemodel__MMethodDef, /* ListNode[List#0]: ListNode[MMethodDef] */
+&type_model__MMethodDef, /* Sequence#0: MMethodDef */
+&type_model__MMethodDef, /* SimpleCollection#0: MMethodDef */
+&type_list__ListIteratormodel__MMethodDef, /* ListIterator[List#0]: ListIterator[MMethodDef] */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[List#0]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* List#0: MMethodDef */
 NULL, /* empty */
-&type_abstract_collection__Collectionstring__String, /* Collection[SimpleCollection#0]: Collection[String] */
-&type_string__String, /* Collection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Collection#0]: Collection[String] */
+&type_model__MMethodDef, /* RemovableCollection#0: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Sequence#0]: Collection[MMethodDef] */
+&type_array__Arraymodel__MMethodDef, /* Array[Sequence#0]: Array[MMethodDef] */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[SimpleCollection#0]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* Collection#0: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Collection#0]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* SequenceRead#0: MMethodDef */
 }
 };
 /* runtime type GlobalCompiler */
 const struct type type_global_compiler__GlobalCompiler = {
-608,
+644,
 "GlobalCompiler", /* class_name_string */
 3,
 0,
@@ -4069,8 +4370,8 @@ const struct type type_global_compiler__GlobalCompiler = {
 {
 0, /* nullable Object */
 1, /* Object */
-189, /* AbstractCompiler */
-608, /* GlobalCompiler */
+195, /* AbstractCompiler */
+644, /* GlobalCompiler */
 },
 };
 const struct types resolution_table_global_compiler__GlobalCompiler = {
@@ -4081,7 +4382,7 @@ const struct types resolution_table_global_compiler__GlobalCompiler = {
 };
 /* runtime type HashMap[MClassType, String] */
 const struct type type_hash_collection__HashMapmodel__MClassTypestring__String = {
-195,
+203,
 "HashMap[MClassType, String]", /* class_name_string */
 2,
 0,
@@ -4090,7 +4391,7 @@ const struct type type_hash_collection__HashMapmodel__MClassTypestring__String =
 {
 0, /* nullable Object */
 1, /* Object */
-195, /* HashMap[MClassType, String] */
+203, /* HashMap[MClassType, String] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassTypestring__String = {
@@ -4116,7 +4417,7 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[MClassType, String] not a live type) */
 };
 /* runtime type List[AbstractRuntimeFunction] */
 const struct type type_list__Listabstract_compiler__AbstractRuntimeFunction = {
-1923,
+1986,
 "List[AbstractRuntimeFunction]", /* class_name_string */
 5,
 0,
@@ -4125,10 +4426,10 @@ const struct type type_list__Listabstract_compiler__AbstractRuntimeFunction = {
 {
 0, /* nullable Object */
 1, /* Object */
-609, /* Collection[AbstractRuntimeFunction] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1923, /* List[AbstractRuntimeFunction] */
+645, /* Collection[AbstractRuntimeFunction] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1986, /* List[AbstractRuntimeFunction] */
 },
 };
 const struct types resolution_table_list__Listabstract_compiler__AbstractRuntimeFunction = {
@@ -4153,7 +4454,7 @@ NULL, /* empty */
 };
 /* runtime type Collection[AbstractRuntimeFunction] */
 const struct type type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction = {
-609,
+645,
 "Collection[AbstractRuntimeFunction]", /* class_name_string */
 2,
 0,
@@ -4162,14 +4463,14 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-609, /* Collection[AbstractRuntimeFunction] */
+645, /* Collection[AbstractRuntimeFunction] */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
 },
 };
 /* runtime type HashSet[AbstractRuntimeFunction] */
 const struct type type_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction = {
-2205,
+2275,
 "HashSet[AbstractRuntimeFunction]", /* class_name_string */
 5,
 0,
@@ -4178,11 +4479,11 @@ const struct type type_hash_collection__HashSetabstract_compiler__AbstractRuntim
 {
 0, /* nullable Object */
 1, /* Object */
-609, /* Collection[AbstractRuntimeFunction] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-2205, /* HashSet[AbstractRuntimeFunction] */
-1740, /* HashSet[Object] */
+645, /* Collection[AbstractRuntimeFunction] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+2275, /* HashSet[AbstractRuntimeFunction] */
+1794, /* HashSet[Object] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction = {
@@ -4208,7 +4509,7 @@ NULL, /* empty */
 };
 /* runtime type HashMap[MType, Array[MClassType]] */
 const struct type type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType = {
-1743,
+1797,
 "HashMap[MType, Array[MClassType]]", /* class_name_string */
 4,
 0,
@@ -4217,9 +4518,9 @@ const struct type type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MC
 {
 0, /* nullable Object */
 1, /* Object */
-192, /* HashMap[MType, Array[nullable MType]] */
-610, /* HashMap[MType, Array[MType]] */
-1743, /* HashMap[MType, Array[MClassType]] */
+198, /* HashMap[MType, Array[nullable MType]] */
+646, /* HashMap[MType, Array[MType]] */
+1797, /* HashMap[MType, Array[MClassType]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType = {
@@ -4245,7 +4546,7 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[MType, Array[MClassType]] not a live type
 };
 /* runtime type HashMap[MType, Array[MType]] */
 const struct type type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MType = {
-610,
+646,
 "HashMap[MType, Array[MType]]", /* class_name_string */
 3,
 0,
@@ -4254,8 +4555,8 @@ const struct type type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MT
 {
 0, /* nullable Object */
 1, /* Object */
-192, /* HashMap[MType, Array[nullable MType]] */
-610, /* HashMap[MType, Array[MType]] */
+198, /* HashMap[MType, Array[nullable MType]] */
+646, /* HashMap[MType, Array[MType]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__MType = {
@@ -4279,114 +4580,30 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[MType, Array[MType]] not a live type) */
 &type_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MType, /* HashCollection#1: HashMapNode[MType, Array[MType]] */
 }
 };
-/* runtime type String */
-const struct type type_string__String = {
-2554,
-"String", /* class_name_string */
-10,
+/* runtime type Message */
+const struct type type_toolcontext__Message = {
+204,
+"Message", /* class_name_string */
+2,
 0,
-&resolution_table_string__String,
-11,
+&resolution_table_toolcontext__Message,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-3, /* nullable String */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-602, /* Collection[Char] */
-1728, /* AbstractArrayRead[Object] */
-1918, /* SequenceRead[Char] */
-2423, /* AbstractArrayRead[Char] */
-2487, /* AbstractString */
-2554, /* String */
+204, /* Message */
 },
 };
-const struct types resolution_table_string__String = {
+const struct types resolution_table_toolcontext__Message = {
 0, /* dummy */
 {
-&type_string__String, /* OTHER: String */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_kernel__Char, /* Collection#0: Char */
-&type_abstract_collection__Collectionkernel__Char, /* Collection[Collection#0]: Collection[Char] */
-&type_kernel__Char, /* SequenceRead#0: Char */
-&type_kernel__Char, /* AbstractArrayRead#0: Char */
-&type_array__Arraykernel__Char, /* Array[AbstractArrayRead#0]: Array[Char] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Char] not a live type) */
-&type_array__ArrayIteratorkernel__Char, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Char] */
+&type_toolcontext__Message, /* OTHER: Message */
 }
 };
-/* runtime type nullable String */
-const struct type type_nullable_string__String = {
-3,
-"nullable String", /* class_name_string */
-2,
-1,
-&resolution_table_nullable_string__String,
-3,
-{
-0, /* nullable Object */
--1, /* empty */
-3, /* nullable String */
-},
-};
-const struct types resolution_table_nullable_string__String = {
-0, /* dummy */
-{
-&type_string__String, /* OTHER: String */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_kernel__Char, /* Collection#0: Char */
-&type_abstract_collection__Collectionkernel__Char, /* Collection[Collection#0]: Collection[Char] */
-&type_kernel__Char, /* SequenceRead#0: Char */
-&type_kernel__Char, /* AbstractArrayRead#0: Char */
-&type_array__Arraykernel__Char, /* Array[AbstractArrayRead#0]: Array[Char] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Char] not a live type) */
-&type_array__ArrayIteratorkernel__Char, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Char] */
-}
-};
-/* runtime type Message */
-const struct type type_toolcontext__Message = {
-196,
-"Message", /* class_name_string */
-2,
-0,
-&resolution_table_toolcontext__Message,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-196, /* Message */
-},
-};
-const struct types resolution_table_toolcontext__Message = {
-0, /* dummy */
-{
-&type_toolcontext__Message, /* OTHER: Message */
-}
-};
-/* runtime type Stdout */
-const struct type type_file__Stdout = {
-611,
-"Stdout", /* class_name_string */
+/* runtime type Stdout */
+const struct type type_file__Stdout = {
+647,
+"Stdout", /* class_name_string */
 3,
 0,
 &resolution_table_file__Stdout,
@@ -4394,8 +4611,8 @@ const struct type type_file__Stdout = {
 {
 0, /* nullable Object */
 1, /* Object */
-197, /* OFStream */
-611, /* Stdout */
+205, /* OFStream */
+647, /* Stdout */
 },
 };
 const struct types resolution_table_file__Stdout = {
@@ -4405,7 +4622,7 @@ const struct types resolution_table_file__Stdout = {
 };
 /* runtime type OFStream */
 const struct type type_file__OFStream = {
-197,
+205,
 "OFStream", /* class_name_string */
 2,
 0,
@@ -4414,7 +4631,7 @@ const struct type type_file__OFStream = {
 {
 0, /* nullable Object */
 1, /* Object */
-197, /* OFStream */
+205, /* OFStream */
 },
 };
 const struct types resolution_table_file__OFStream = {
@@ -4422,460 +4639,28 @@ const struct types resolution_table_file__OFStream = {
 {
 }
 };
-/* runtime type IFStream */
-const struct type type_file__IFStream = {
-198,
-"IFStream", /* class_name_string */
-2,
-0,
-&resolution_table_file__IFStream,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-198, /* IFStream */
-},
-};
-const struct types resolution_table_file__IFStream = {
-0, /* dummy */
-{
-}
-};
-/* runtime type Lexer */
-const struct type type_lexer__Lexer = {
-199,
-"Lexer", /* class_name_string */
-2,
-0,
-&resolution_table_lexer__Lexer,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-199, /* Lexer */
-},
-};
-const struct types resolution_table_lexer__Lexer = {
-0, /* dummy */
-{
-}
-};
-/* runtime type SourceFile */
-const struct type type_location__SourceFile = {
-200,
-"SourceFile", /* class_name_string */
-2,
-0,
-&resolution_table_location__SourceFile,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-200, /* SourceFile */
-},
-};
-const struct types resolution_table_location__SourceFile = {
-0, /* dummy */
-{
-}
-};
-/* runtime type Array[Int] */
-const struct type type_array__Arraykernel__Int = {
-2494,
-"Array[Int]", /* class_name_string */
-7,
-0,
-&resolution_table_array__Arraykernel__Int,
-10,
-{
-0, /* nullable Object */
-1, /* Object */
-612, /* Collection[Int] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2206, /* AbstractArrayRead[Int] */
-1728, /* AbstractArrayRead[Object] */
-2494, /* Array[Int] */
--1, /* empty */
-1911, /* Array[Object] */
-},
-};
-const struct types resolution_table_array__Arraykernel__Int = {
-0, /* dummy */
-{
-&type_array__Arraykernel__Int, /* Array[Array#0]: Array[Int] */
-&type_array__NativeArraykernel__Int, /* NativeArray[Array#0]: NativeArray[Int] */
-&type_kernel__Int, /* Sequence#0: Int */
-&type_kernel__Int, /* SimpleCollection#0: Int */
-&type_abstract_collection__Collectionkernel__Int, /* Collection[Array#0]: Collection[Int] */
-&type_kernel__Int, /* Array#0: Int */
-&type_array__NativeArraykernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[Int] */
-&type_kernel__Int, /* AbstractArray#0: Int */
-&type_kernel__Int, /* RemovableCollection#0: Int */
-&type_abstract_collection__Collectionkernel__Int, /* Collection[Sequence#0]: Collection[Int] */
-&type_array__Arraykernel__Int, /* Array[Sequence#0]: Array[Int] */
-&type_abstract_collection__Collectionkernel__Int, /* Collection[SimpleCollection#0]: Collection[Int] */
-&type_kernel__Int, /* Collection#0: Int */
-&type_abstract_collection__Collectionkernel__Int, /* Collection[Collection#0]: Collection[Int] */
-&type_kernel__Int, /* SequenceRead#0: Int */
-&type_kernel__Int, /* AbstractArrayRead#0: Int */
-&type_array__Arraykernel__Int, /* Array[AbstractArrayRead#0]: Array[Int] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Int] not a live type) */
-&type_array__ArrayIteratorkernel__Int, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Int] */
-}
-};
-/* runtime type Collection[Int] */
-const struct type type_abstract_collection__Collectionkernel__Int = {
-612,
-"Collection[Int]", /* class_name_string */
-2,
-0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-612, /* Collection[Int] */
--1, /* empty */
-164, /* Collection[Object] */
-},
-};
-/* runtime type AbstractArrayRead[Int] */
-const struct type type_array__AbstractArrayReadkernel__Int = {
-2206,
-"AbstractArrayRead[Int]", /* class_name_string */
-5,
-0,
-NULL,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-612, /* Collection[Int] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2206, /* AbstractArrayRead[Int] */
-1728, /* AbstractArrayRead[Object] */
-},
-};
-/* runtime type Parser */
-const struct type type_parser__Parser = {
-201,
-"Parser", /* class_name_string */
-2,
-0,
-&resolution_table_parser__Parser,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-201, /* Parser */
-},
-};
-const struct types resolution_table_parser__Parser = {
-0, /* dummy */
-{
-}
-};
 /* runtime type AnnotationPhaseVisitor */
 const struct type type_phase__AnnotationPhaseVisitor = {
-202,
+206,
 "AnnotationPhaseVisitor", /* class_name_string */
-2,
-0,
-&resolution_table_phase__AnnotationPhaseVisitor,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-202, /* AnnotationPhaseVisitor */
-},
-};
-const struct types resolution_table_phase__AnnotationPhaseVisitor = {
-0, /* dummy */
-{
-}
-};
-/* runtime type RapidTypeVisitor */
-const struct type type_rapid_type_analysis__RapidTypeVisitor = {
-203,
-"RapidTypeVisitor", /* class_name_string */
-2,
-0,
-&resolution_table_rapid_type_analysis__RapidTypeVisitor,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-203, /* RapidTypeVisitor */
-},
-};
-const struct types resolution_table_rapid_type_analysis__RapidTypeVisitor = {
-0, /* dummy */
-{
-}
-};
-/* runtime type Array[MType] */
-const struct type type_array__Arraymodel__MType = {
-2594,
-"Array[MType]", /* class_name_string */
-15,
-0,
-&resolution_table_array__Arraymodel__MType,
-16,
-{
-0, /* nullable Object */
-1, /* Object */
-4, /* nullable Array[nullable MType] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
-1728, /* AbstractArrayRead[Object] */
-1737, /* Collection[MType] */
-1744, /* AbstractArrayRead[nullable MType] */
-1911, /* Array[Object] */
--1, /* empty */
-2207, /* Array[nullable MType] */
--1, /* empty */
-2495, /* AbstractArrayRead[MType] */
--1, /* empty */
-2594, /* Array[MType] */
-},
-};
-const struct types resolution_table_array__Arraymodel__MType = {
-0, /* dummy */
-{
-&type_array__Arraymodel__MType, /* Array[Array#0]: Array[MType] */
-&type_array__NativeArraymodel__MType, /* NativeArray[Array#0]: NativeArray[MType] */
-&type_model__MType, /* Sequence#0: MType */
-&type_model__MType, /* SimpleCollection#0: MType */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[Array#0]: Collection[MType] */
-&type_model__MType, /* Array#0: MType */
-&type_array__NativeArraymodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[MType] */
-&type_model__MType, /* AbstractArray#0: MType */
-&type_model__MType, /* RemovableCollection#0: MType */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[Sequence#0]: Collection[MType] */
-&type_array__Arraymodel__MType, /* Array[Sequence#0]: Array[MType] */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[SimpleCollection#0]: Collection[MType] */
-&type_model__MType, /* Collection#0: MType */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[Collection#0]: Collection[MType] */
-&type_model__MType, /* SequenceRead#0: MType */
-&type_model__MType, /* AbstractArrayRead#0: MType */
-&type_array__Arraymodel__MType, /* Array[AbstractArrayRead#0]: Array[MType] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MType] not a live type) */
-&type_array__ArrayIteratormodel__MType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MType] */
-}
-};
-/* runtime type Array[nullable MType] */
-const struct type type_array__Arraynullable_model__MType = {
-2207,
-"Array[nullable MType]", /* class_name_string */
-11,
-0,
-&resolution_table_array__Arraynullable_model__MType,
-12,
-{
-0, /* nullable Object */
-1, /* Object */
-4, /* nullable Array[nullable MType] */
-163, /* SequenceRead[nullable Object] */
--1, /* empty */
-173, /* Collection[nullable MType] */
--1, /* empty */
--1, /* empty */
-1744, /* AbstractArrayRead[nullable MType] */
--1, /* empty */
--1, /* empty */
-2207, /* Array[nullable MType] */
-},
-};
-const struct types resolution_table_array__Arraynullable_model__MType = {
-0, /* dummy */
-{
-&type_array__Arraynullable_model__MType, /* Array[Array#0]: Array[nullable MType] */
-&type_array__NativeArraynullable_model__MType, /* NativeArray[Array#0]: NativeArray[nullable MType] */
-&type_nullable_model__MType, /* Sequence#0: nullable MType */
-&type_nullable_model__MType, /* SimpleCollection#0: nullable MType */
-&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Array#0]: Collection[nullable MType] */
-&type_nullable_model__MType, /* Array#0: nullable MType */
-&type_array__NativeArraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable MType] */
-&type_nullable_model__MType, /* AbstractArray#0: nullable MType */
-&type_nullable_model__MType, /* RemovableCollection#0: nullable MType */
-&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Sequence#0]: Collection[nullable MType] */
-&type_array__Arraynullable_model__MType, /* Array[Sequence#0]: Array[nullable MType] */
-&type_abstract_collection__Collectionnullable_model__MType, /* Collection[SimpleCollection#0]: Collection[nullable MType] */
-&type_nullable_model__MType, /* Collection#0: nullable MType */
-&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Collection#0]: Collection[nullable MType] */
-&type_nullable_model__MType, /* SequenceRead#0: nullable MType */
-&type_nullable_model__MType, /* AbstractArrayRead#0: nullable MType */
-&type_array__Arraynullable_model__MType, /* Array[AbstractArrayRead#0]: Array[nullable MType] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MType] not a live type) */
-&type_array__ArrayIteratornullable_model__MType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable MType] */
-}
-};
-/* runtime type AbstractArrayRead[MType] */
-const struct type type_array__AbstractArrayReadmodel__MType = {
-2495,
-"AbstractArrayRead[MType]", /* class_name_string */
-13,
-0,
-NULL,
-14,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
-1728, /* AbstractArrayRead[Object] */
-1737, /* Collection[MType] */
-1744, /* AbstractArrayRead[nullable MType] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-2495, /* AbstractArrayRead[MType] */
-},
-};
-/* runtime type AbstractArrayRead[nullable MType] */
-const struct type type_array__AbstractArrayReadnullable_model__MType = {
-1744,
-"AbstractArrayRead[nullable MType]", /* class_name_string */
-8,
-0,
-NULL,
-9,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
--1, /* empty */
-173, /* Collection[nullable MType] */
--1, /* empty */
--1, /* empty */
-1744, /* AbstractArrayRead[nullable MType] */
-},
-};
-/* runtime type nullable Array[nullable MType] */
-const struct type type_nullable_array__Arraynullable_model__MType = {
-4,
-"nullable Array[nullable MType]", /* class_name_string */
-2,
-1,
-&resolution_table_nullable_array__Arraynullable_model__MType,
-3,
-{
-0, /* nullable Object */
--1, /* empty */
-4, /* nullable Array[nullable MType] */
-},
-};
-const struct types resolution_table_nullable_array__Arraynullable_model__MType = {
-0, /* dummy */
-{
-&type_array__Arraynullable_model__MType, /* Array[Array#0]: Array[nullable MType] */
-&type_array__NativeArraynullable_model__MType, /* NativeArray[Array#0]: NativeArray[nullable MType] */
-&type_nullable_model__MType, /* Sequence#0: nullable MType */
-&type_nullable_model__MType, /* SimpleCollection#0: nullable MType */
-&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Array#0]: Collection[nullable MType] */
-&type_nullable_model__MType, /* Array#0: nullable MType */
-&type_array__NativeArraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable MType] */
-&type_nullable_model__MType, /* AbstractArray#0: nullable MType */
-&type_nullable_model__MType, /* RemovableCollection#0: nullable MType */
-&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Sequence#0]: Collection[nullable MType] */
-&type_array__Arraynullable_model__MType, /* Array[Sequence#0]: Array[nullable MType] */
-&type_abstract_collection__Collectionnullable_model__MType, /* Collection[SimpleCollection#0]: Collection[nullable MType] */
-&type_nullable_model__MType, /* Collection#0: nullable MType */
-&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Collection#0]: Collection[nullable MType] */
-&type_nullable_model__MType, /* SequenceRead#0: nullable MType */
-&type_nullable_model__MType, /* AbstractArrayRead#0: nullable MType */
-&type_array__Arraynullable_model__MType, /* Array[AbstractArrayRead#0]: Array[nullable MType] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MType] not a live type) */
-&type_array__ArrayIteratornullable_model__MType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable MType] */
-}
-};
-/* runtime type Range[Int] */
-const struct type type_range__Rangekernel__Int = {
-1745,
-"Range[Int]", /* class_name_string */
-3,
-0,
-&resolution_table_range__Rangekernel__Int,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-612, /* Collection[Int] */
-1745, /* Range[Int] */
-164, /* Collection[Object] */
-},
-};
-const struct types resolution_table_range__Rangekernel__Int = {
-0, /* dummy */
-{
-&type_range__IteratorRangekernel__Int, /* IteratorRange[Range#0]: IteratorRange[Int] */
-&type_kernel__Int, /* Range#0: Int */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_kernel__Int, /* Collection#0: Int */
-&type_abstract_collection__Collectionkernel__Int, /* Collection[Collection#0]: Collection[Int] */
-}
-};
-/* runtime type List[MClassType] */
-const struct type type_list__Listmodel__MClassType = {
-2425,
-"List[MClassType]", /* class_name_string */
-2,
-0,
-&resolution_table_list__Listmodel__MClassType,
-11,
-{
-0, /* nullable Object */
-1, /* Object */
-2425, /* List[MClassType] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
--1, /* empty */
-1737, /* Collection[MType] */
--1, /* empty */
--1, /* empty */
-1916, /* Collection[MClassType] */
-},
-};
-const struct types resolution_table_list__Listmodel__MClassType = {
-0, /* dummy */
-{
-&type_list__Listmodel__MClassType, /* List[List#0]: List[MClassType] */
-&type_list__ListNodemodel__MClassType, /* ListNode[List#0]: ListNode[MClassType] */
-&type_model__MClassType, /* Sequence#0: MClassType */
-&type_model__MClassType, /* SimpleCollection#0: MClassType */
-&type_list__ListIteratormodel__MClassType, /* ListIterator[List#0]: ListIterator[MClassType] */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[List#0]: Collection[MClassType] */
-&type_model__MClassType, /* List#0: MClassType */
-NULL, /* empty */
-&type_model__MClassType, /* RemovableCollection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Sequence#0]: Collection[MClassType] */
-&type_array__Arraymodel__MClassType, /* Array[Sequence#0]: Array[MClassType] */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[SimpleCollection#0]: Collection[MClassType] */
-&type_model__MClassType, /* Collection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Collection#0]: Collection[MClassType] */
-&type_model__MClassType, /* SequenceRead#0: MClassType */
+2,
+0,
+&resolution_table_phase__AnnotationPhaseVisitor,
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+206, /* AnnotationPhaseVisitor */
+},
+};
+const struct types resolution_table_phase__AnnotationPhaseVisitor = {
+0, /* dummy */
+{
 }
 };
 /* runtime type HashMap[String, Int] */
 const struct type type_hash_collection__HashMapstring__Stringkernel__Int = {
-204,
+207,
 "HashMap[String, Int]", /* class_name_string */
 2,
 0,
@@ -4884,7 +4669,7 @@ const struct type type_hash_collection__HashMapstring__Stringkernel__Int = {
 {
 0, /* nullable Object */
 1, /* Object */
-204, /* HashMap[String, Int] */
+207, /* HashMap[String, Int] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapstring__Stringkernel__Int = {
@@ -4910,7 +4695,7 @@ NULL, /* empty (Map[Map#0, Map#1]: Map[String, Int] not a live type) */
 };
 /* runtime type MClassColorer */
 const struct type type_layout_builders__MClassColorer = {
-205,
+208,
 "MClassColorer", /* class_name_string */
 2,
 0,
@@ -4919,7 +4704,7 @@ const struct type type_layout_builders__MClassColorer = {
 {
 0, /* nullable Object */
 1, /* Object */
-205, /* MClassColorer */
+208, /* MClassColorer */
 },
 };
 const struct types resolution_table_layout_builders__MClassColorer = {
@@ -4943,7 +4728,7 @@ NULL, /* empty (Map[TypingColorer#0, Array[TypingColorer#0]]: Map[MClass, Array[
 };
 /* runtime type MClassHasher */
 const struct type type_layout_builders__MClassHasher = {
-206,
+209,
 "MClassHasher", /* class_name_string */
 2,
 0,
@@ -4952,7 +4737,7 @@ const struct type type_layout_builders__MClassHasher = {
 {
 0, /* nullable Object */
 1, /* Object */
-206, /* MClassHasher */
+209, /* MClassHasher */
 },
 };
 const struct types resolution_table_layout_builders__MClassHasher = {
@@ -4977,7 +4762,7 @@ const struct types resolution_table_layout_builders__MClassHasher = {
 };
 /* runtime type PHModOperator */
 const struct type type_layout_builders__PHModOperator = {
-207,
+210,
 "PHModOperator", /* class_name_string */
 2,
 0,
@@ -4986,7 +4771,7 @@ const struct type type_layout_builders__PHModOperator = {
 {
 0, /* nullable Object */
 1, /* Object */
-207, /* PHModOperator */
+210, /* PHModOperator */
 },
 };
 const struct types resolution_table_layout_builders__PHModOperator = {
@@ -4996,7 +4781,7 @@ const struct types resolution_table_layout_builders__PHModOperator = {
 };
 /* runtime type PHAndOperator */
 const struct type type_layout_builders__PHAndOperator = {
-208,
+211,
 "PHAndOperator", /* class_name_string */
 2,
 0,
@@ -5005,7 +4790,7 @@ const struct type type_layout_builders__PHAndOperator = {
 {
 0, /* nullable Object */
 1, /* Object */
-208, /* PHAndOperator */
+211, /* PHAndOperator */
 },
 };
 const struct types resolution_table_layout_builders__PHAndOperator = {
@@ -5015,7 +4800,7 @@ const struct types resolution_table_layout_builders__PHAndOperator = {
 };
 /* runtime type MClassBMizer */
 const struct type type_layout_builders__MClassBMizer = {
-209,
+212,
 "MClassBMizer", /* class_name_string */
 2,
 0,
@@ -5024,7 +4809,7 @@ const struct type type_layout_builders__MClassBMizer = {
 {
 0, /* nullable Object */
 1, /* Object */
-209, /* MClassBMizer */
+212, /* MClassBMizer */
 },
 };
 const struct types resolution_table_layout_builders__MClassBMizer = {
@@ -5048,7 +4833,7 @@ NULL, /* empty */
 };
 /* runtime type HashMap[MClass, Set[MVirtualTypeProp]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp = {
-2208,
+2276,
 "HashMap[MClass, Set[MVirtualTypeProp]]", /* class_name_string */
 6,
 0,
@@ -5057,11 +4842,11 @@ const struct type type_hash_collection__HashMapmodel__MClassabstract_collection_
 {
 0, /* nullable Object */
 1, /* Object */
-183, /* Map[MClass, Set[PropertyLayoutElement]] */
-598, /* HashMap[MClass, Set[PropertyLayoutElement]] */
-613, /* Map[MClass, Set[MVirtualTypeProp]] */
-1741, /* HashMap[MClass, Set[MProperty]] */
-2208, /* HashMap[MClass, Set[MVirtualTypeProp]] */
+191, /* Map[MClass, Set[PropertyLayoutElement]] */
+634, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+648, /* Map[MClass, Set[MVirtualTypeProp]] */
+1795, /* HashMap[MClass, Set[MProperty]] */
+2276, /* HashMap[MClass, Set[MVirtualTypeProp]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp = {
@@ -5087,7 +4872,7 @@ NULL, /* empty */
 };
 /* runtime type Map[MClass, Set[MVirtualTypeProp]] */
 const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp = {
-613,
+648,
 "Map[MClass, Set[MVirtualTypeProp]]", /* class_name_string */
 4,
 0,
@@ -5096,14 +4881,14 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-183, /* Map[MClass, Set[PropertyLayoutElement]] */
+191, /* Map[MClass, Set[PropertyLayoutElement]] */
 -1, /* empty */
-613, /* Map[MClass, Set[MVirtualTypeProp]] */
+648, /* Map[MClass, Set[MVirtualTypeProp]] */
 },
 };
 /* runtime type HashSet[MVirtualTypeProp] */
 const struct type type_hash_collection__HashSetmodel__MVirtualTypeProp = {
-2609,
+2688,
 "HashSet[MVirtualTypeProp]", /* class_name_string */
 14,
 0,
@@ -5112,19 +4897,19 @@ const struct type type_hash_collection__HashSetmodel__MVirtualTypeProp = {
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1740, /* HashSet[Object] */
-1919, /* Set[PropertyLayoutElement] */
-2491, /* Set[MProperty] */
-2424, /* HashSet[PropertyLayoutElement] */
-1914, /* Collection[MProperty] */
-2555, /* Set[MVirtualTypeProp] */
-2209, /* Collection[MVirtualTypeProp] */
-2582, /* HashSet[MProperty] */
-2609, /* HashSet[MVirtualTypeProp] */
+179, /* Collection[nullable MProperty] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1794, /* HashSet[Object] */
+1984, /* Set[PropertyLayoutElement] */
+2564, /* Set[MProperty] */
+2491, /* HashSet[PropertyLayoutElement] */
+1976, /* Collection[MProperty] */
+2633, /* Set[MVirtualTypeProp] */
+2277, /* Collection[MVirtualTypeProp] */
+2660, /* HashSet[MProperty] */
+2688, /* HashSet[MVirtualTypeProp] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MVirtualTypeProp = {
@@ -5150,7 +4935,7 @@ NULL, /* empty */
 };
 /* runtime type Set[MVirtualTypeProp] */
 const struct type type_abstract_collection__Setmodel__MVirtualTypeProp = {
-2555,
+2633,
 "Set[MVirtualTypeProp]", /* class_name_string */
 11,
 0,
@@ -5159,22 +4944,22 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
+179, /* Collection[nullable MProperty] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
 -1, /* empty */
-1919, /* Set[PropertyLayoutElement] */
-2491, /* Set[MProperty] */
+1984, /* Set[PropertyLayoutElement] */
+2564, /* Set[MProperty] */
 -1, /* empty */
-1914, /* Collection[MProperty] */
-2555, /* Set[MVirtualTypeProp] */
-2209, /* Collection[MVirtualTypeProp] */
+1976, /* Collection[MProperty] */
+2633, /* Set[MVirtualTypeProp] */
+2277, /* Collection[MVirtualTypeProp] */
 },
 };
 /* runtime type Collection[MVirtualTypeProp] */
 const struct type type_abstract_collection__Collectionmodel__MVirtualTypeProp = {
-2209,
+2277,
 "Collection[MVirtualTypeProp]", /* class_name_string */
 12,
 0,
@@ -5183,22 +4968,22 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
+179, /* Collection[nullable MProperty] */
 -1, /* empty */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-1914, /* Collection[MProperty] */
+1976, /* Collection[MProperty] */
 -1, /* empty */
-2209, /* Collection[MVirtualTypeProp] */
+2277, /* Collection[MVirtualTypeProp] */
 },
 };
 /* runtime type MPropertyColorer[MVirtualTypeProp] */
 const struct type type_layout_builders__MPropertyColorermodel__MVirtualTypeProp = {
-614,
+649,
 "MPropertyColorer[MVirtualTypeProp]", /* class_name_string */
 3,
 0,
@@ -5207,8 +4992,8 @@ const struct type type_layout_builders__MPropertyColorermodel__MVirtualTypeProp
 {
 0, /* nullable Object */
 1, /* Object */
-210, /* MPropertyColorer[PropertyLayoutElement] */
-614, /* MPropertyColorer[MVirtualTypeProp] */
+213, /* MPropertyColorer[PropertyLayoutElement] */
+649, /* MPropertyColorer[MVirtualTypeProp] */
 },
 };
 const struct types resolution_table_layout_builders__MPropertyColorermodel__MVirtualTypeProp = {
@@ -5224,7 +5009,7 @@ const struct types resolution_table_layout_builders__MPropertyColorermodel__MVir
 };
 /* runtime type MPropertyColorer[PropertyLayoutElement] */
 const struct type type_layout_builders__MPropertyColorerlayout_builders__PropertyLayoutElement = {
-210,
+213,
 "MPropertyColorer[PropertyLayoutElement]", /* class_name_string */
 2,
 0,
@@ -5233,7 +5018,7 @@ const struct type type_layout_builders__MPropertyColorerlayout_builders__Propert
 {
 0, /* nullable Object */
 1, /* Object */
-210, /* MPropertyColorer[PropertyLayoutElement] */
+213, /* MPropertyColorer[PropertyLayoutElement] */
 },
 };
 const struct types resolution_table_layout_builders__MPropertyColorerlayout_builders__PropertyLayoutElement = {
@@ -5246,369 +5031,75 @@ const struct types resolution_table_layout_builders__MPropertyColorerlayout_buil
 &type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement, /* Collection[MPropertyColorer#0]: Collection[PropertyLayoutElement] */
 &type_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement, /* Map[MClass, Set[PropertyLayoutBuilder#0]]: Map[MClass, Set[PropertyLayoutElement]] */
 }
-};
-/* runtime type CodeFile */
-const struct type type_abstract_compiler__CodeFile = {
-211,
-"CodeFile", /* class_name_string */
-2,
-0,
-&resolution_table_abstract_compiler__CodeFile,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-211, /* CodeFile */
-},
-};
-const struct types resolution_table_abstract_compiler__CodeFile = {
-0, /* dummy */
-{
-}
-};
-/* runtime type Array[CodeWriter] */
-const struct type type_array__Arrayabstract_compiler__CodeWriter = {
-2496,
-"Array[CodeWriter]", /* class_name_string */
-7,
-0,
-&resolution_table_array__Arrayabstract_compiler__CodeWriter,
-10,
-{
-0, /* nullable Object */
-1, /* Object */
-615, /* Collection[CodeWriter] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2210, /* AbstractArrayRead[CodeWriter] */
-1728, /* AbstractArrayRead[Object] */
-2496, /* Array[CodeWriter] */
--1, /* empty */
-1911, /* Array[Object] */
-},
-};
-const struct types resolution_table_array__Arrayabstract_compiler__CodeWriter = {
-0, /* dummy */
-{
-&type_array__Arrayabstract_compiler__CodeWriter, /* Array[Array#0]: Array[CodeWriter] */
-&type_array__NativeArrayabstract_compiler__CodeWriter, /* NativeArray[Array#0]: NativeArray[CodeWriter] */
-&type_abstract_compiler__CodeWriter, /* Sequence#0: CodeWriter */
-&type_abstract_compiler__CodeWriter, /* SimpleCollection#0: CodeWriter */
-&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[Array#0]: Collection[CodeWriter] */
-&type_abstract_compiler__CodeWriter, /* Array#0: CodeWriter */
-&type_array__NativeArrayabstract_compiler__CodeWriter, /* NativeArray[ArrayCapable#0]: NativeArray[CodeWriter] */
-&type_abstract_compiler__CodeWriter, /* AbstractArray#0: CodeWriter */
-&type_abstract_compiler__CodeWriter, /* RemovableCollection#0: CodeWriter */
-&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[Sequence#0]: Collection[CodeWriter] */
-&type_array__Arrayabstract_compiler__CodeWriter, /* Array[Sequence#0]: Array[CodeWriter] */
-&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[SimpleCollection#0]: Collection[CodeWriter] */
-&type_abstract_compiler__CodeWriter, /* Collection#0: CodeWriter */
-&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[Collection#0]: Collection[CodeWriter] */
-&type_abstract_compiler__CodeWriter, /* SequenceRead#0: CodeWriter */
-&type_abstract_compiler__CodeWriter, /* AbstractArrayRead#0: CodeWriter */
-&type_array__Arrayabstract_compiler__CodeWriter, /* Array[AbstractArrayRead#0]: Array[CodeWriter] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[CodeWriter] not a live type) */
-&type_array__ArrayIteratorabstract_compiler__CodeWriter, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[CodeWriter] */
-}
-};
-/* runtime type Collection[CodeWriter] */
-const struct type type_abstract_collection__Collectionabstract_compiler__CodeWriter = {
-615,
-"Collection[CodeWriter]", /* class_name_string */
-2,
-0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-615, /* Collection[CodeWriter] */
--1, /* empty */
-164, /* Collection[Object] */
-},
-};
-/* runtime type AbstractArrayRead[CodeWriter] */
-const struct type type_array__AbstractArrayReadabstract_compiler__CodeWriter = {
-2210,
-"AbstractArrayRead[CodeWriter]", /* class_name_string */
-5,
-0,
-NULL,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-615, /* Collection[CodeWriter] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2210, /* AbstractArrayRead[CodeWriter] */
-1728, /* AbstractArrayRead[Object] */
-},
-};
-/* runtime type HashSet[String] */
-const struct type type_hash_collection__HashSetstring__String = {
-2211,
-"HashSet[String]", /* class_name_string */
-5,
-0,
-&resolution_table_hash_collection__HashSetstring__String,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-595, /* Collection[String] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-2211, /* HashSet[String] */
-1740, /* HashSet[Object] */
-},
-};
-const struct types resolution_table_hash_collection__HashSetstring__String = {
-0, /* dummy */
-{
-&type_hash_collection__HashSetNodestring__String, /* HashSetNode[HashSet#0]: HashSetNode[String] */
-&type_hash_collection__HashSetIteratorstring__String, /* HashSetIterator[HashSet#0]: HashSetIterator[String] */
-&type_abstract_collection__Collectionstring__String, /* Collection[HashSet#0]: Collection[String] */
-&type_string__String, /* SimpleCollection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Set#0]: Collection[String] */
-NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodestring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[String]] */
-NULL, /* empty */
-&type_string__String, /* RemovableCollection#0: String */
-NULL, /* empty */
-NULL, /* empty */
-&type_abstract_collection__Collectionstring__String, /* Collection[SimpleCollection#0]: Collection[String] */
-&type_string__String, /* Collection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Collection#0]: Collection[String] */
-&type_string__String, /* HashCollection#0: String */
-&type_hash_collection__HashSetNodestring__String, /* HashCollection#1: HashSetNode[String] */
-}
-};
-/* runtime type MPropertyColorer[MAttribute] */
-const struct type type_layout_builders__MPropertyColorermodel__MAttribute = {
-616,
-"MPropertyColorer[MAttribute]", /* class_name_string */
-3,
-0,
-&resolution_table_layout_builders__MPropertyColorermodel__MAttribute,
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-210, /* MPropertyColorer[PropertyLayoutElement] */
-616, /* MPropertyColorer[MAttribute] */
-},
-};
-const struct types resolution_table_layout_builders__MPropertyColorermodel__MAttribute = {
-0, /* dummy */
-{
-&type_hash_collection__HashMapmodel__MAttributekernel__Int, /* HashMap[MPropertyColorer#0, Int]: HashMap[MAttribute, Int] */
-&type_abstract_collection__Mapmodel__MAttributekernel__Int, /* Map[MPropertyColorer#0, Int]: Map[MAttribute, Int] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute, /* Map[MClass, Set[MPropertyColorer#0]]: Map[MClass, Set[MAttribute]] */
-&type_layout_builders__Layoutmodel__MAttribute, /* Layout[MPropertyColorer#0]: Layout[MAttribute] */
-&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[MPropertyColorer#0]: Collection[MAttribute] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute, /* Map[MClass, Set[PropertyLayoutBuilder#0]]: Map[MClass, Set[MAttribute]] */
-}
-};
-/* runtime type HashMap[MClass, Set[MAttribute]] */
-const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute = {
-2212,
-"HashMap[MClass, Set[MAttribute]]", /* class_name_string */
-6,
-0,
-&resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-183, /* Map[MClass, Set[PropertyLayoutElement]] */
-598, /* HashMap[MClass, Set[PropertyLayoutElement]] */
-617, /* Map[MClass, Set[MAttribute]] */
-1741, /* HashMap[MClass, Set[MProperty]] */
-2212, /* HashMap[MClass, Set[MAttribute]] */
-},
-};
-const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute = {
-0, /* dummy */
-{
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Set[MAttribute]] */
-&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[MAttribute]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Set[MAttribute]]] */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Set[MAttribute]] */
-&type_model__MClass, /* Map#0: MClass */
-&type_abstract_collection__Setmodel__MAttribute, /* Map#1: Set[MAttribute] */
-&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Set[MAttribute]] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute, /* Map[Map#0, Map#1]: Map[MClass, Set[MAttribute]] */
-&type_abstract_collection__Setmodel__MAttribute, /* MapRead#1: Set[MAttribute] */
-&type_model__MClass, /* HashCollection#0: MClass */
-&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* HashCollection#1: HashMapNode[MClass, Set[MAttribute]] */
-}
-};
-/* runtime type Map[MClass, Set[MAttribute]] */
-const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute = {
-617,
-"Map[MClass, Set[MAttribute]]", /* class_name_string */
-4,
-0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-183, /* Map[MClass, Set[PropertyLayoutElement]] */
--1, /* empty */
-617, /* Map[MClass, Set[MAttribute]] */
-},
-};
-/* runtime type HashSet[MAttribute] */
-const struct type type_hash_collection__HashSetmodel__MAttribute = {
-2610,
-"HashSet[MAttribute]", /* class_name_string */
-14,
-0,
-&resolution_table_hash_collection__HashSetmodel__MAttribute,
-15,
-{
-0, /* nullable Object */
-1, /* Object */
-172, /* Collection[nullable MProperty] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1740, /* HashSet[Object] */
-1919, /* Set[PropertyLayoutElement] */
-2491, /* Set[MProperty] */
-2424, /* HashSet[PropertyLayoutElement] */
-1914, /* Collection[MProperty] */
-2556, /* Set[MAttribute] */
-2213, /* Collection[MAttribute] */
-2582, /* HashSet[MProperty] */
-2610, /* HashSet[MAttribute] */
-},
-};
-const struct types resolution_table_hash_collection__HashSetmodel__MAttribute = {
-0, /* dummy */
-{
-&type_hash_collection__HashSetNodemodel__MAttribute, /* HashSetNode[HashSet#0]: HashSetNode[MAttribute] */
-&type_hash_collection__HashSetIteratormodel__MAttribute, /* HashSetIterator[HashSet#0]: HashSetIterator[MAttribute] */
-&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[HashSet#0]: Collection[MAttribute] */
-&type_model__MAttribute, /* SimpleCollection#0: MAttribute */
-&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[Set#0]: Collection[MAttribute] */
-NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MAttribute, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MAttribute]] */
-NULL, /* empty */
-&type_model__MAttribute, /* RemovableCollection#0: MAttribute */
-NULL, /* empty */
-NULL, /* empty */
-&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[SimpleCollection#0]: Collection[MAttribute] */
-&type_model__MAttribute, /* Collection#0: MAttribute */
-&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[Collection#0]: Collection[MAttribute] */
-&type_model__MAttribute, /* HashCollection#0: MAttribute */
-&type_hash_collection__HashSetNodemodel__MAttribute, /* HashCollection#1: HashSetNode[MAttribute] */
-}
-};
-/* runtime type Set[MAttribute] */
-const struct type type_abstract_collection__Setmodel__MAttribute = {
-2556,
-"Set[MAttribute]", /* class_name_string */
-11,
+};
+/* runtime type CodeFile */
+const struct type type_abstract_compiler__CodeFile = {
+214,
+"CodeFile", /* class_name_string */
+2,
 0,
-NULL,
-13,
+&resolution_table_abstract_compiler__CodeFile,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
--1, /* empty */
-1919, /* Set[PropertyLayoutElement] */
-2491, /* Set[MProperty] */
--1, /* empty */
-1914, /* Collection[MProperty] */
-2556, /* Set[MAttribute] */
-2213, /* Collection[MAttribute] */
+214, /* CodeFile */
 },
 };
-/* runtime type Collection[MAttribute] */
-const struct type type_abstract_collection__Collectionmodel__MAttribute = {
-2213,
-"Collection[MAttribute]", /* class_name_string */
-12,
-0,
-NULL,
-13,
+const struct types resolution_table_abstract_compiler__CodeFile = {
+0, /* dummy */
 {
-0, /* nullable Object */
-1, /* Object */
-172, /* Collection[nullable MProperty] */
--1, /* empty */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-1914, /* Collection[MProperty] */
--1, /* empty */
-2213, /* Collection[MAttribute] */
-},
+}
 };
-/* runtime type Array[RuntimeVariable] */
-const struct type type_array__Arrayabstract_compiler__RuntimeVariable = {
-2497,
-"Array[RuntimeVariable]", /* class_name_string */
+/* runtime type Array[CodeWriter] */
+const struct type type_array__Arrayabstract_compiler__CodeWriter = {
+2566,
+"Array[CodeWriter]", /* class_name_string */
 7,
 0,
-&resolution_table_array__Arrayabstract_compiler__RuntimeVariable,
+&resolution_table_array__Arrayabstract_compiler__CodeWriter,
 10,
 {
 0, /* nullable Object */
 1, /* Object */
-618, /* Collection[RuntimeVariable] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2214, /* AbstractArrayRead[RuntimeVariable] */
-1728, /* AbstractArrayRead[Object] */
-2497, /* Array[RuntimeVariable] */
+650, /* Collection[CodeWriter] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2278, /* AbstractArrayRead[CodeWriter] */
+1782, /* AbstractArrayRead[Object] */
+2566, /* Array[CodeWriter] */
 -1, /* empty */
-1911, /* Array[Object] */
+1973, /* Array[Object] */
 },
 };
-const struct types resolution_table_array__Arrayabstract_compiler__RuntimeVariable = {
+const struct types resolution_table_array__Arrayabstract_compiler__CodeWriter = {
 0, /* dummy */
 {
-&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[Array#0]: Array[RuntimeVariable] */
-&type_array__NativeArrayabstract_compiler__RuntimeVariable, /* NativeArray[Array#0]: NativeArray[RuntimeVariable] */
-&type_abstract_compiler__RuntimeVariable, /* Sequence#0: RuntimeVariable */
-&type_abstract_compiler__RuntimeVariable, /* SimpleCollection#0: RuntimeVariable */
-&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[Array#0]: Collection[RuntimeVariable] */
-&type_abstract_compiler__RuntimeVariable, /* Array#0: RuntimeVariable */
-&type_array__NativeArrayabstract_compiler__RuntimeVariable, /* NativeArray[ArrayCapable#0]: NativeArray[RuntimeVariable] */
-&type_abstract_compiler__RuntimeVariable, /* AbstractArray#0: RuntimeVariable */
-&type_abstract_compiler__RuntimeVariable, /* RemovableCollection#0: RuntimeVariable */
-&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[Sequence#0]: Collection[RuntimeVariable] */
-&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[Sequence#0]: Array[RuntimeVariable] */
-&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[SimpleCollection#0]: Collection[RuntimeVariable] */
-&type_abstract_compiler__RuntimeVariable, /* Collection#0: RuntimeVariable */
-&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[Collection#0]: Collection[RuntimeVariable] */
-&type_abstract_compiler__RuntimeVariable, /* SequenceRead#0: RuntimeVariable */
-&type_abstract_compiler__RuntimeVariable, /* AbstractArrayRead#0: RuntimeVariable */
-&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[AbstractArrayRead#0]: Array[RuntimeVariable] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[RuntimeVariable] not a live type) */
-&type_array__ArrayIteratorabstract_compiler__RuntimeVariable, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[RuntimeVariable] */
+&type_array__Arrayabstract_compiler__CodeWriter, /* Array[Array#0]: Array[CodeWriter] */
+&type_array__NativeArrayabstract_compiler__CodeWriter, /* NativeArray[Array#0]: NativeArray[CodeWriter] */
+&type_abstract_compiler__CodeWriter, /* Sequence#0: CodeWriter */
+&type_abstract_compiler__CodeWriter, /* SimpleCollection#0: CodeWriter */
+&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[Array#0]: Collection[CodeWriter] */
+&type_abstract_compiler__CodeWriter, /* Array#0: CodeWriter */
+&type_array__NativeArrayabstract_compiler__CodeWriter, /* NativeArray[ArrayCapable#0]: NativeArray[CodeWriter] */
+&type_abstract_compiler__CodeWriter, /* AbstractArray#0: CodeWriter */
+&type_abstract_compiler__CodeWriter, /* RemovableCollection#0: CodeWriter */
+&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[Sequence#0]: Collection[CodeWriter] */
+&type_array__Arrayabstract_compiler__CodeWriter, /* Array[Sequence#0]: Array[CodeWriter] */
+&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[SimpleCollection#0]: Collection[CodeWriter] */
+&type_abstract_compiler__CodeWriter, /* Collection#0: CodeWriter */
+&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[Collection#0]: Collection[CodeWriter] */
+&type_abstract_compiler__CodeWriter, /* SequenceRead#0: CodeWriter */
+&type_abstract_compiler__CodeWriter, /* AbstractArrayRead#0: CodeWriter */
+&type_array__Arrayabstract_compiler__CodeWriter, /* Array[AbstractArrayRead#0]: Array[CodeWriter] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[CodeWriter] not a live type) */
+&type_array__ArrayIteratorabstract_compiler__CodeWriter, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[CodeWriter] */
 }
 };
-/* runtime type Collection[RuntimeVariable] */
-const struct type type_abstract_collection__Collectionabstract_compiler__RuntimeVariable = {
-618,
-"Collection[RuntimeVariable]", /* class_name_string */
+/* runtime type Collection[CodeWriter] */
+const struct type type_abstract_collection__Collectionabstract_compiler__CodeWriter = {
+650,
+"Collection[CodeWriter]", /* class_name_string */
 2,
 0,
 NULL,
@@ -5616,15 +5107,15 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-618, /* Collection[RuntimeVariable] */
+650, /* Collection[CodeWriter] */
 -1, /* empty */
-164, /* Collection[Object] */
+170, /* Collection[Object] */
 },
 };
-/* runtime type AbstractArrayRead[RuntimeVariable] */
-const struct type type_array__AbstractArrayReadabstract_compiler__RuntimeVariable = {
-2214,
-"AbstractArrayRead[RuntimeVariable]", /* class_name_string */
+/* runtime type AbstractArrayRead[CodeWriter] */
+const struct type type_array__AbstractArrayReadabstract_compiler__CodeWriter = {
+2278,
+"AbstractArrayRead[CodeWriter]", /* class_name_string */
 5,
 0,
 NULL,
@@ -5632,1687 +5123,1609 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-618, /* Collection[RuntimeVariable] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2214, /* AbstractArrayRead[RuntimeVariable] */
-1728, /* AbstractArrayRead[Object] */
-},
-};
-/* runtime type ExternCFile */
-const struct type type_abstract_compiler__ExternCFile = {
-212,
-"ExternCFile", /* class_name_string */
-2,
-0,
-&resolution_table_abstract_compiler__ExternCFile,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-212, /* ExternCFile */
-},
-};
-const struct types resolution_table_abstract_compiler__ExternCFile = {
-0, /* dummy */
-{
-}
-};
-/* runtime type CodeWriter */
-const struct type type_abstract_compiler__CodeWriter = {
-213,
-"CodeWriter", /* class_name_string */
-2,
-0,
-&resolution_table_abstract_compiler__CodeWriter,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-213, /* CodeWriter */
+650, /* Collection[CodeWriter] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2278, /* AbstractArrayRead[CodeWriter] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
-const struct types resolution_table_abstract_compiler__CodeWriter = {
-0, /* dummy */
-{
-}
-};
-/* runtime type List[String] */
-const struct type type_list__Liststring__String = {
-1924,
-"List[String]", /* class_name_string */
+/* runtime type HashSet[String] */
+const struct type type_hash_collection__HashSetstring__String = {
+2279,
+"HashSet[String]", /* class_name_string */
 5,
 0,
-&resolution_table_list__Liststring__String,
-6,
+&resolution_table_hash_collection__HashSetstring__String,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1924, /* List[String] */
+631, /* Collection[String] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+2279, /* HashSet[String] */
+1794, /* HashSet[Object] */
 },
 };
-const struct types resolution_table_list__Liststring__String = {
+const struct types resolution_table_hash_collection__HashSetstring__String = {
 0, /* dummy */
 {
-&type_list__Liststring__String, /* List[List#0]: List[String] */
-&type_list__ListNodestring__String, /* ListNode[List#0]: ListNode[String] */
-&type_string__String, /* Sequence#0: String */
+&type_hash_collection__HashSetNodestring__String, /* HashSetNode[HashSet#0]: HashSetNode[String] */
+&type_hash_collection__HashSetIteratorstring__String, /* HashSetIterator[HashSet#0]: HashSetIterator[String] */
+&type_abstract_collection__Collectionstring__String, /* Collection[HashSet#0]: Collection[String] */
 &type_string__String, /* SimpleCollection#0: String */
-&type_list__ListIteratorstring__String, /* ListIterator[List#0]: ListIterator[String] */
-&type_abstract_collection__Collectionstring__String, /* Collection[List#0]: Collection[String] */
-&type_string__String, /* List#0: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[Set#0]: Collection[String] */
+NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodestring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[String]] */
 NULL, /* empty */
 &type_string__String, /* RemovableCollection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Sequence#0]: Collection[String] */
-&type_array__Arraystring__String, /* Array[Sequence#0]: Array[String] */
+NULL, /* empty */
+NULL, /* empty */
 &type_abstract_collection__Collectionstring__String, /* Collection[SimpleCollection#0]: Collection[String] */
 &type_string__String, /* Collection#0: String */
 &type_abstract_collection__Collectionstring__String, /* Collection[Collection#0]: Collection[String] */
-&type_string__String, /* SequenceRead#0: String */
+&type_string__String, /* HashCollection#0: String */
+&type_hash_collection__HashSetNodestring__String, /* HashCollection#1: HashSetNode[String] */
 }
 };
-/* runtime type Array[MClassType] */
-const struct type type_array__Arraymodel__MClassType = {
-2629,
-"Array[MClassType]", /* class_name_string */
-17,
+/* runtime type MPropertyColorer[MAttribute] */
+const struct type type_layout_builders__MPropertyColorermodel__MAttribute = {
+651,
+"MPropertyColorer[MAttribute]", /* class_name_string */
+3,
 0,
-&resolution_table_array__Arraymodel__MClassType,
-18,
+&resolution_table_layout_builders__MPropertyColorermodel__MAttribute,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-4, /* nullable Array[nullable MType] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
-1728, /* AbstractArrayRead[Object] */
-1737, /* Collection[MType] */
-1744, /* AbstractArrayRead[nullable MType] */
-1911, /* Array[Object] */
-1916, /* Collection[MClassType] */
-2207, /* Array[nullable MType] */
--1, /* empty */
-2495, /* AbstractArrayRead[MType] */
-2557, /* AbstractArrayRead[MClassType] */
-2594, /* Array[MType] */
--1, /* empty */
-2629, /* Array[MClassType] */
+213, /* MPropertyColorer[PropertyLayoutElement] */
+651, /* MPropertyColorer[MAttribute] */
 },
 };
-const struct types resolution_table_array__Arraymodel__MClassType = {
+const struct types resolution_table_layout_builders__MPropertyColorermodel__MAttribute = {
 0, /* dummy */
 {
-&type_array__Arraymodel__MClassType, /* Array[Array#0]: Array[MClassType] */
-&type_array__NativeArraymodel__MClassType, /* NativeArray[Array#0]: NativeArray[MClassType] */
-&type_model__MClassType, /* Sequence#0: MClassType */
-&type_model__MClassType, /* SimpleCollection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Array#0]: Collection[MClassType] */
-&type_model__MClassType, /* Array#0: MClassType */
-&type_array__NativeArraymodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[MClassType] */
-&type_model__MClassType, /* AbstractArray#0: MClassType */
-&type_model__MClassType, /* RemovableCollection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Sequence#0]: Collection[MClassType] */
-&type_array__Arraymodel__MClassType, /* Array[Sequence#0]: Array[MClassType] */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[SimpleCollection#0]: Collection[MClassType] */
-&type_model__MClassType, /* Collection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Collection#0]: Collection[MClassType] */
-&type_model__MClassType, /* SequenceRead#0: MClassType */
-&type_model__MClassType, /* AbstractArrayRead#0: MClassType */
-&type_array__Arraymodel__MClassType, /* Array[AbstractArrayRead#0]: Array[MClassType] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MClassType] not a live type) */
-&type_array__ArrayIteratormodel__MClassType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MClassType] */
+&type_hash_collection__HashMapmodel__MAttributekernel__Int, /* HashMap[MPropertyColorer#0, Int]: HashMap[MAttribute, Int] */
+&type_abstract_collection__Mapmodel__MAttributekernel__Int, /* Map[MPropertyColorer#0, Int]: Map[MAttribute, Int] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute, /* Map[MClass, Set[MPropertyColorer#0]]: Map[MClass, Set[MAttribute]] */
+&type_layout_builders__Layoutmodel__MAttribute, /* Layout[MPropertyColorer#0]: Layout[MAttribute] */
+&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[MPropertyColorer#0]: Collection[MAttribute] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute, /* Map[MClass, Set[PropertyLayoutBuilder#0]]: Map[MClass, Set[MAttribute]] */
 }
 };
-/* runtime type AbstractArrayRead[MClassType] */
-const struct type type_array__AbstractArrayReadmodel__MClassType = {
-2557,
-"AbstractArrayRead[MClassType]", /* class_name_string */
-14,
-0,
-NULL,
-15,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
-1728, /* AbstractArrayRead[Object] */
-1737, /* Collection[MType] */
-1744, /* AbstractArrayRead[nullable MType] */
--1, /* empty */
-1916, /* Collection[MClassType] */
--1, /* empty */
--1, /* empty */
-2495, /* AbstractArrayRead[MType] */
-2557, /* AbstractArrayRead[MClassType] */
-},
-};
-/* runtime type RuntimeVariable */
-const struct type type_abstract_compiler__RuntimeVariable = {
-214,
-"RuntimeVariable", /* class_name_string */
-2,
+/* runtime type HashMap[MClass, Set[MAttribute]] */
+const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute = {
+2280,
+"HashMap[MClass, Set[MAttribute]]", /* class_name_string */
+6,
 0,
-&resolution_table_abstract_compiler__RuntimeVariable,
-3,
+&resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-214, /* RuntimeVariable */
+191, /* Map[MClass, Set[PropertyLayoutElement]] */
+634, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+652, /* Map[MClass, Set[MAttribute]] */
+1795, /* HashMap[MClass, Set[MProperty]] */
+2280, /* HashMap[MClass, Set[MAttribute]] */
 },
 };
-const struct types resolution_table_abstract_compiler__RuntimeVariable = {
+const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Set[MAttribute]] */
+&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[MAttribute]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Set[MAttribute]]] */
+&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Set[MAttribute]] */
+&type_model__MClass, /* Map#0: MClass */
+&type_abstract_collection__Setmodel__MAttribute, /* Map#1: Set[MAttribute] */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Set[MAttribute]] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute, /* Map[Map#0, Map#1]: Map[MClass, Set[MAttribute]] */
+&type_abstract_collection__Setmodel__MAttribute, /* MapRead#1: Set[MAttribute] */
+&type_model__MClass, /* HashCollection#0: MClass */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* HashCollection#1: HashMapNode[MClass, Set[MAttribute]] */
 }
 };
-/* runtime type MClassKind */
-const struct type type_model__MClassKind = {
-215,
-"MClassKind", /* class_name_string */
-2,
+/* runtime type Map[MClass, Set[MAttribute]] */
+const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute = {
+652,
+"Map[MClass, Set[MAttribute]]", /* class_name_string */
+4,
 0,
-&resolution_table_model__MClassKind,
-3,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-215, /* MClassKind */
+191, /* Map[MClass, Set[PropertyLayoutElement]] */
+-1, /* empty */
+652, /* Map[MClass, Set[MAttribute]] */
 },
 };
-const struct types resolution_table_model__MClassKind = {
-0, /* dummy */
-{
-}
-};
-/* runtime type MTypeBMizer */
-const struct type type_layout_builders__MTypeBMizer = {
-216,
-"MTypeBMizer", /* class_name_string */
-2,
+/* runtime type HashSet[MAttribute] */
+const struct type type_hash_collection__HashSetmodel__MAttribute = {
+2689,
+"HashSet[MAttribute]", /* class_name_string */
+14,
 0,
-&resolution_table_layout_builders__MTypeBMizer,
-3,
+&resolution_table_hash_collection__HashSetmodel__MAttribute,
+15,
 {
 0, /* nullable Object */
 1, /* Object */
-216, /* MTypeBMizer */
+179, /* Collection[nullable MProperty] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1794, /* HashSet[Object] */
+1984, /* Set[PropertyLayoutElement] */
+2564, /* Set[MProperty] */
+2491, /* HashSet[PropertyLayoutElement] */
+1976, /* Collection[MProperty] */
+2634, /* Set[MAttribute] */
+2281, /* Collection[MAttribute] */
+2660, /* HashSet[MProperty] */
+2689, /* HashSet[MAttribute] */
 },
 };
-const struct types resolution_table_layout_builders__MTypeBMizer = {
+const struct types resolution_table_hash_collection__HashSetmodel__MAttribute = {
 0, /* dummy */
 {
-&type_layout_builders__POSetBuildermodel__MType, /* POSetBuilder[TypingBMizer#0]: POSetBuilder[MType] */
-&type_poset__POSetmodel__MType, /* POSet[TypingBMizer#0]: POSet[MType] */
-&type_abstract_collection__Setmodel__MType, /* Set[TypingBMizer#0]: Set[MType] */
-&type_layout_builders__Layoutmodel__MType, /* Layout[TypingBMizer#0]: Layout[MType] */
-&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[TypingBMizer#0, Int]: HashMap[MType, Int] */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
+&type_hash_collection__HashSetNodemodel__MAttribute, /* HashSetNode[HashSet#0]: HashSetNode[MAttribute] */
+&type_hash_collection__HashSetIteratormodel__MAttribute, /* HashSetIterator[HashSet#0]: HashSetIterator[MAttribute] */
+&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[HashSet#0]: Collection[MAttribute] */
+&type_model__MAttribute, /* SimpleCollection#0: MAttribute */
+&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[Set#0]: Collection[MAttribute] */
 NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MAttribute, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MAttribute]] */
 NULL, /* empty */
+&type_model__MAttribute, /* RemovableCollection#0: MAttribute */
 NULL, /* empty */
 NULL, /* empty */
-&type_abstract_collection__Setmodel__MType, /* Set[TypingLayoutBuilder#0]: Set[MType] */
+&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[SimpleCollection#0]: Collection[MAttribute] */
+&type_model__MAttribute, /* Collection#0: MAttribute */
+&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[Collection#0]: Collection[MAttribute] */
+&type_model__MAttribute, /* HashCollection#0: MAttribute */
+&type_hash_collection__HashSetNodemodel__MAttribute, /* HashCollection#1: HashSetNode[MAttribute] */
 }
 };
-/* runtime type MTypeHasher */
-const struct type type_layout_builders__MTypeHasher = {
-217,
-"MTypeHasher", /* class_name_string */
-2,
+/* runtime type Set[MAttribute] */
+const struct type type_abstract_collection__Setmodel__MAttribute = {
+2634,
+"Set[MAttribute]", /* class_name_string */
+11,
 0,
-&resolution_table_layout_builders__MTypeHasher,
-3,
+NULL,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-217, /* MTypeHasher */
+179, /* Collection[nullable MProperty] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+-1, /* empty */
+1984, /* Set[PropertyLayoutElement] */
+2564, /* Set[MProperty] */
+-1, /* empty */
+1976, /* Collection[MProperty] */
+2634, /* Set[MAttribute] */
+2281, /* Collection[MAttribute] */
 },
 };
-const struct types resolution_table_layout_builders__MTypeHasher = {
-0, /* dummy */
-{
-&type_layout_builders__POSetBuildermodel__MType, /* POSetBuilder[TypingHasher#0]: POSetBuilder[MType] */
-&type_poset__POSetmodel__MType, /* POSet[TypingHasher#0]: POSet[MType] */
-&type_abstract_collection__Setmodel__MType, /* Set[TypingHasher#0]: Set[MType] */
-&type_layout_builders__PHLayoutmodel__MTypemodel__MType, /* PHLayout[TypingHasher#0, TypingHasher#0]: PHLayout[MType, MType] */
-&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[TypingHasher#0, Int]: HashMap[MType, Int] */
-&type_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType, /* HashMap[TypingHasher#0, Set[TypingHasher#0]]: HashMap[MType, Set[MType]] */
-&type_hash_collection__HashSetmodel__MType, /* HashSet[TypingHasher#0]: HashSet[MType] */
-&type_abstract_collection__Mapmodel__MTypeabstract_collection__Setmodel__MType, /* Map[PerfectHasher#0, Set[PerfectHasher#1]]: Map[MType, Set[MType]] */
-&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[PerfectHasher#1, Int]: Map[MType, Int] */
-&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#0, Int]: HashMap[MType, Int] */
-&type_abstract_collection__Setmodel__MType, /* Set[PerfectHasher#1]: Set[MType] */
-&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[PerfectHasher#0, Int]: Map[MType, Int] */
-&type_hash_collection__HashMapmodel__MTypeabstract_collection__Mapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#0, Map[PerfectHasher#1, Int]]: HashMap[MType, Map[MType, Int]] */
-&type_abstract_collection__Setmodel__MType, /* Set[TypingLayoutBuilder#0]: Set[MType] */
-&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#1, Int]: HashMap[MType, Int] */
-}
-};
-/* runtime type MTypeColorer */
-const struct type type_layout_builders__MTypeColorer = {
-218,
-"MTypeColorer", /* class_name_string */
-2,
+/* runtime type Collection[MAttribute] */
+const struct type type_abstract_collection__Collectionmodel__MAttribute = {
+2281,
+"Collection[MAttribute]", /* class_name_string */
+12,
 0,
-&resolution_table_layout_builders__MTypeColorer,
-3,
+NULL,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-218, /* MTypeColorer */
+179, /* Collection[nullable MProperty] */
+-1, /* empty */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+1976, /* Collection[MProperty] */
+-1, /* empty */
+2281, /* Collection[MAttribute] */
 },
 };
-const struct types resolution_table_layout_builders__MTypeColorer = {
-0, /* dummy */
-{
-&type_hash_collection__HashSetmodel__MType, /* HashSet[TypingColorer#0]: HashSet[MType] */
-&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[TypingColorer#0, Int]: HashMap[MType, Int] */
-&type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MType, /* HashMap[TypingColorer#0, Array[TypingColorer#0]]: HashMap[MType, Array[MType]] */
-&type_abstract_collection__Setmodel__MType, /* Set[TypingColorer#0]: Set[MType] */
-&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[TypingColorer#0, Int]: Map[MType, Int] */
-&type_layout_builders__POSetBuildermodel__MType, /* POSetBuilder[TypingColorer#0]: POSetBuilder[MType] */
-&type_poset__POSetmodel__MType, /* POSet[TypingColorer#0]: POSet[MType] */
-&type_layout_builders__Layoutmodel__MType, /* Layout[TypingColorer#0]: Layout[MType] */
-&type_model__MType, /* TypingColorer#0: MType */
-&type_hash_collection__HashMapmodel__MTypehash_collection__HashSetmodel__MType, /* HashMap[TypingColorer#0, HashSet[TypingColorer#0]]: HashMap[MType, HashSet[MType]] */
-&type_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType, /* HashMap[TypingColorer#0, Set[TypingColorer#0]]: HashMap[MType, Set[MType]] */
-NULL, /* empty (Map[TypingColorer#0, Array[TypingColorer#0]]: Map[MType, Array[MType]] not a live type) */
-&type_array__Arraymodel__MType, /* Array[TypingColorer#0]: Array[MType] */
-&type_abstract_collection__Setmodel__MType, /* Set[TypingLayoutBuilder#0]: Set[MType] */
-}
-};
-/* runtime type SeparateCompilerVisitor */
-const struct type type_separate_compiler__SeparateCompilerVisitor = {
-619,
-"SeparateCompilerVisitor", /* class_name_string */
+/* runtime type Range[Int] */
+const struct type type_range__Rangekernel__Int = {
+1798,
+"Range[Int]", /* class_name_string */
 3,
 0,
-&resolution_table_separate_compiler__SeparateCompilerVisitor,
-4,
+&resolution_table_range__Rangekernel__Int,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-219, /* AbstractCompilerVisitor */
-619, /* SeparateCompilerVisitor */
+653, /* Collection[Int] */
+1798, /* Range[Int] */
+170, /* Collection[Object] */
 },
 };
-const struct types resolution_table_separate_compiler__SeparateCompilerVisitor = {
+const struct types resolution_table_range__Rangekernel__Int = {
 0, /* dummy */
 {
-&type_separate_compiler__SeparateCompiler, /* COMPILER: SeparateCompiler */
+&type_range__IteratorRangekernel__Int, /* IteratorRange[Range#0]: IteratorRange[Int] */
+&type_kernel__Int, /* Range#0: Int */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_kernel__Int, /* Collection#0: Int */
+&type_abstract_collection__Collectionkernel__Int, /* Collection[Collection#0]: Collection[Int] */
 }
 };
-/* runtime type AbstractCompilerVisitor */
-const struct type type_abstract_compiler__AbstractCompilerVisitor = {
-219,
-"AbstractCompilerVisitor", /* class_name_string */
+/* runtime type Collection[Int] */
+const struct type type_abstract_collection__Collectionkernel__Int = {
+653,
+"Collection[Int]", /* class_name_string */
 2,
 0,
 NULL,
-3,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-219, /* AbstractCompilerVisitor */
+653, /* Collection[Int] */
+-1, /* empty */
+170, /* Collection[Object] */
 },
 };
-/* runtime type HashMap[EscapeMark, String] */
-const struct type type_hash_collection__HashMapscope__EscapeMarkstring__String = {
-220,
-"HashMap[EscapeMark, String]", /* class_name_string */
-2,
+/* runtime type Array[RuntimeVariable] */
+const struct type type_array__Arrayabstract_compiler__RuntimeVariable = {
+2567,
+"Array[RuntimeVariable]", /* class_name_string */
+7,
 0,
-&resolution_table_hash_collection__HashMapscope__EscapeMarkstring__String,
-3,
+&resolution_table_array__Arrayabstract_compiler__RuntimeVariable,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-220, /* HashMap[EscapeMark, String] */
+654, /* Collection[RuntimeVariable] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2282, /* AbstractArrayRead[RuntimeVariable] */
+1782, /* AbstractArrayRead[Object] */
+2567, /* Array[RuntimeVariable] */
+-1, /* empty */
+1973, /* Array[Object] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapscope__EscapeMarkstring__String = {
+const struct types resolution_table_array__Arrayabstract_compiler__RuntimeVariable = {
 0, /* dummy */
 {
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysscope__EscapeMarkstring__String, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[EscapeMark, String] */
-&type_hash_collection__HashMapValuesscope__EscapeMarkstring__String, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[EscapeMark, String] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[EscapeMark, String]] */
-&type_scope__EscapeMark, /* MapRead#0: EscapeMark */
-&type_hash_collection__HashMapIteratorscope__EscapeMarkstring__String, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[EscapeMark, String] */
-&type_scope__EscapeMark, /* Map#0: EscapeMark */
-&type_string__String, /* Map#1: String */
-&type_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[EscapeMark, String] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[EscapeMark, String] not a live type) */
-&type_string__String, /* MapRead#1: String */
-&type_scope__EscapeMark, /* HashCollection#0: EscapeMark */
-&type_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* HashCollection#1: HashMapNode[EscapeMark, String] */
+&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[Array#0]: Array[RuntimeVariable] */
+&type_array__NativeArrayabstract_compiler__RuntimeVariable, /* NativeArray[Array#0]: NativeArray[RuntimeVariable] */
+&type_abstract_compiler__RuntimeVariable, /* Sequence#0: RuntimeVariable */
+&type_abstract_compiler__RuntimeVariable, /* SimpleCollection#0: RuntimeVariable */
+&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[Array#0]: Collection[RuntimeVariable] */
+&type_abstract_compiler__RuntimeVariable, /* Array#0: RuntimeVariable */
+&type_array__NativeArrayabstract_compiler__RuntimeVariable, /* NativeArray[ArrayCapable#0]: NativeArray[RuntimeVariable] */
+&type_abstract_compiler__RuntimeVariable, /* AbstractArray#0: RuntimeVariable */
+&type_abstract_compiler__RuntimeVariable, /* RemovableCollection#0: RuntimeVariable */
+&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[Sequence#0]: Collection[RuntimeVariable] */
+&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[Sequence#0]: Array[RuntimeVariable] */
+&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[SimpleCollection#0]: Collection[RuntimeVariable] */
+&type_abstract_compiler__RuntimeVariable, /* Collection#0: RuntimeVariable */
+&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[Collection#0]: Collection[RuntimeVariable] */
+&type_abstract_compiler__RuntimeVariable, /* SequenceRead#0: RuntimeVariable */
+&type_abstract_compiler__RuntimeVariable, /* AbstractArrayRead#0: RuntimeVariable */
+&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[AbstractArrayRead#0]: Array[RuntimeVariable] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[RuntimeVariable] not a live type) */
+&type_array__ArrayIteratorabstract_compiler__RuntimeVariable, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[RuntimeVariable] */
 }
 };
-/* runtime type HashMap[Variable, RuntimeVariable] */
-const struct type type_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable = {
-221,
-"HashMap[Variable, RuntimeVariable]", /* class_name_string */
+/* runtime type Collection[RuntimeVariable] */
+const struct type type_abstract_collection__Collectionabstract_compiler__RuntimeVariable = {
+654,
+"Collection[RuntimeVariable]", /* class_name_string */
 2,
 0,
-&resolution_table_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable,
-3,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-221, /* HashMap[Variable, RuntimeVariable] */
+654, /* Collection[RuntimeVariable] */
+-1, /* empty */
+170, /* Collection[Object] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable = {
-0, /* dummy */
-{
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysscope__Variableabstract_compiler__RuntimeVariable, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[Variable, RuntimeVariable] */
-&type_hash_collection__HashMapValuesscope__Variableabstract_compiler__RuntimeVariable, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[Variable, RuntimeVariable] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[Variable, RuntimeVariable]] */
-&type_scope__Variable, /* MapRead#0: Variable */
-&type_hash_collection__HashMapIteratorscope__Variableabstract_compiler__RuntimeVariable, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[Variable, RuntimeVariable] */
-&type_scope__Variable, /* Map#0: Variable */
-&type_abstract_compiler__RuntimeVariable, /* Map#1: RuntimeVariable */
-&type_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[Variable, RuntimeVariable] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[Variable, RuntimeVariable] not a live type) */
-&type_abstract_compiler__RuntimeVariable, /* MapRead#1: RuntimeVariable */
-&type_scope__Variable, /* HashCollection#0: Variable */
-&type_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* HashCollection#1: HashMapNode[Variable, RuntimeVariable] */
-}
-};
-/* runtime type NativeFile */
-const struct type type_file__NativeFile = {
-620,
-"NativeFile", /* class_name_string */
-3,
+/* runtime type AbstractArrayRead[RuntimeVariable] */
+const struct type type_array__AbstractArrayReadabstract_compiler__RuntimeVariable = {
+2282,
+"AbstractArrayRead[RuntimeVariable]", /* class_name_string */
+5,
 0,
-&resolution_table_file__NativeFile,
-4,
+NULL,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-222, /* Pointer */
-620, /* NativeFile */
+654, /* Collection[RuntimeVariable] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2282, /* AbstractArrayRead[RuntimeVariable] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
-const struct types resolution_table_file__NativeFile = {
-0, /* dummy */
-{
-}
-};
-/* runtime type Pointer */
-const struct type type_kernel__Pointer = {
-222,
-"Pointer", /* class_name_string */
+/* runtime type ExternCFile */
+const struct type type_abstract_compiler__ExternCFile = {
+215,
+"ExternCFile", /* class_name_string */
 2,
 0,
-NULL,
+&resolution_table_abstract_compiler__ExternCFile,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-222, /* Pointer */
+215, /* ExternCFile */
 },
 };
-/* runtime type Array[State] */
-const struct type type_array__Arrayparser__State = {
-2498,
-"Array[State]", /* class_name_string */
-7,
+const struct types resolution_table_abstract_compiler__ExternCFile = {
+0, /* dummy */
+{
+}
+};
+/* runtime type RapidTypeVisitor */
+const struct type type_rapid_type_analysis__RapidTypeVisitor = {
+216,
+"RapidTypeVisitor", /* class_name_string */
+2,
 0,
-&resolution_table_array__Arrayparser__State,
-10,
+&resolution_table_rapid_type_analysis__RapidTypeVisitor,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-621, /* Collection[State] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2215, /* AbstractArrayRead[State] */
-1728, /* AbstractArrayRead[Object] */
-2498, /* Array[State] */
--1, /* empty */
-1911, /* Array[Object] */
+216, /* RapidTypeVisitor */
 },
 };
-const struct types resolution_table_array__Arrayparser__State = {
+const struct types resolution_table_rapid_type_analysis__RapidTypeVisitor = {
 0, /* dummy */
 {
-&type_array__Arrayparser__State, /* Array[Array#0]: Array[State] */
-&type_array__NativeArrayparser__State, /* NativeArray[Array#0]: NativeArray[State] */
-&type_parser__State, /* Sequence#0: State */
-&type_parser__State, /* SimpleCollection#0: State */
-&type_abstract_collection__Collectionparser__State, /* Collection[Array#0]: Collection[State] */
-&type_parser__State, /* Array#0: State */
-&type_array__NativeArrayparser__State, /* NativeArray[ArrayCapable#0]: NativeArray[State] */
-&type_parser__State, /* AbstractArray#0: State */
-&type_parser__State, /* RemovableCollection#0: State */
-&type_abstract_collection__Collectionparser__State, /* Collection[Sequence#0]: Collection[State] */
-&type_array__Arrayparser__State, /* Array[Sequence#0]: Array[State] */
-&type_abstract_collection__Collectionparser__State, /* Collection[SimpleCollection#0]: Collection[State] */
-&type_parser__State, /* Collection#0: State */
-&type_abstract_collection__Collectionparser__State, /* Collection[Collection#0]: Collection[State] */
-&type_parser__State, /* SequenceRead#0: State */
-&type_parser__State, /* AbstractArrayRead#0: State */
-&type_array__Arrayparser__State, /* Array[AbstractArrayRead#0]: Array[State] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[State] not a live type) */
-&type_array__ArrayIteratorparser__State, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[State] */
 }
 };
-/* runtime type Collection[State] */
-const struct type type_abstract_collection__Collectionparser__State = {
-621,
-"Collection[State]", /* class_name_string */
-2,
+/* runtime type Array[MType] */
+const struct type type_array__Arraymodel__MType = {
+2673,
+"Array[MType]", /* class_name_string */
+15,
 0,
-NULL,
-5,
+&resolution_table_array__Arraymodel__MType,
+16,
 {
 0, /* nullable Object */
 1, /* Object */
-621, /* Collection[State] */
+4, /* nullable Array[nullable MType] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1782, /* AbstractArrayRead[Object] */
+1791, /* Collection[MType] */
+1799, /* AbstractArrayRead[nullable MType] */
+1973, /* Array[Object] */
+-1, /* empty */
+2283, /* Array[nullable MType] */
 -1, /* empty */
-164, /* Collection[Object] */
+2568, /* AbstractArrayRead[MType] */
+-1, /* empty */
+2673, /* Array[MType] */
 },
 };
-/* runtime type AbstractArrayRead[State] */
-const struct type type_array__AbstractArrayReadparser__State = {
-2215,
-"AbstractArrayRead[State]", /* class_name_string */
-5,
-0,
-NULL,
-7,
+const struct types resolution_table_array__Arraymodel__MType = {
+0, /* dummy */
 {
-0, /* nullable Object */
-1, /* Object */
-621, /* Collection[State] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2215, /* AbstractArrayRead[State] */
-1728, /* AbstractArrayRead[Object] */
-},
+&type_array__Arraymodel__MType, /* Array[Array#0]: Array[MType] */
+&type_array__NativeArraymodel__MType, /* NativeArray[Array#0]: NativeArray[MType] */
+&type_model__MType, /* Sequence#0: MType */
+&type_model__MType, /* SimpleCollection#0: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[Array#0]: Collection[MType] */
+&type_model__MType, /* Array#0: MType */
+&type_array__NativeArraymodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[MType] */
+&type_model__MType, /* AbstractArray#0: MType */
+&type_model__MType, /* RemovableCollection#0: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[Sequence#0]: Collection[MType] */
+&type_array__Arraymodel__MType, /* Array[Sequence#0]: Array[MType] */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[SimpleCollection#0]: Collection[MType] */
+&type_model__MType, /* Collection#0: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[Collection#0]: Collection[MType] */
+&type_model__MType, /* SequenceRead#0: MType */
+&type_model__MType, /* AbstractArrayRead#0: MType */
+&type_array__Arraymodel__MType, /* Array[AbstractArrayRead#0]: Array[MType] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MType] not a live type) */
+&type_array__ArrayIteratormodel__MType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MType] */
+}
 };
-/* runtime type Start */
-const struct type type_parser_nodes__Start = {
-1746,
-"Start", /* class_name_string */
-2,
+/* runtime type Array[nullable MType] */
+const struct type type_array__Arraynullable_model__MType = {
+2283,
+"Array[nullable MType]", /* class_name_string */
+11,
 0,
-&resolution_table_parser_nodes__Start,
-5,
+&resolution_table_array__Arraynullable_model__MType,
+12,
 {
 0, /* nullable Object */
 1, /* Object */
-1746, /* Start */
-223, /* ANode */
-622, /* Prod */
+4, /* nullable Array[nullable MType] */
+169, /* SequenceRead[nullable Object] */
+-1, /* empty */
+180, /* Collection[nullable MType] */
+-1, /* empty */
+-1, /* empty */
+1799, /* AbstractArrayRead[nullable MType] */
+-1, /* empty */
+-1, /* empty */
+2283, /* Array[nullable MType] */
 },
 };
-const struct types resolution_table_parser_nodes__Start = {
+const struct types resolution_table_array__Arraynullable_model__MType = {
 0, /* dummy */
 {
+&type_array__Arraynullable_model__MType, /* Array[Array#0]: Array[nullable MType] */
+&type_array__NativeArraynullable_model__MType, /* NativeArray[Array#0]: NativeArray[nullable MType] */
+&type_nullable_model__MType, /* Sequence#0: nullable MType */
+&type_nullable_model__MType, /* SimpleCollection#0: nullable MType */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Array#0]: Collection[nullable MType] */
+&type_nullable_model__MType, /* Array#0: nullable MType */
+&type_array__NativeArraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable MType] */
+&type_nullable_model__MType, /* AbstractArray#0: nullable MType */
+&type_nullable_model__MType, /* RemovableCollection#0: nullable MType */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Sequence#0]: Collection[nullable MType] */
+&type_array__Arraynullable_model__MType, /* Array[Sequence#0]: Array[nullable MType] */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[SimpleCollection#0]: Collection[nullable MType] */
+&type_nullable_model__MType, /* Collection#0: nullable MType */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Collection#0]: Collection[nullable MType] */
+&type_nullable_model__MType, /* SequenceRead#0: nullable MType */
+&type_nullable_model__MType, /* AbstractArrayRead#0: nullable MType */
+&type_array__Arraynullable_model__MType, /* Array[AbstractArrayRead#0]: Array[nullable MType] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MType] not a live type) */
+&type_array__ArrayIteratornullable_model__MType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable MType] */
 }
 };
-/* runtime type Prod */
-const struct type type_parser_nodes__Prod = {
-622,
-"Prod", /* class_name_string */
-4,
+/* runtime type AbstractArrayRead[MType] */
+const struct type type_array__AbstractArrayReadmodel__MType = {
+2568,
+"AbstractArrayRead[MType]", /* class_name_string */
+13,
 0,
 NULL,
-5,
+14,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-223, /* ANode */
-622, /* Prod */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1782, /* AbstractArrayRead[Object] */
+1791, /* Collection[MType] */
+1799, /* AbstractArrayRead[nullable MType] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+2568, /* AbstractArrayRead[MType] */
 },
 };
-/* runtime type ANode */
-const struct type type_parser_nodes__ANode = {
-223,
-"ANode", /* class_name_string */
-3,
+/* runtime type AbstractArrayRead[nullable MType] */
+const struct type type_array__AbstractArrayReadnullable_model__MType = {
+1799,
+"AbstractArrayRead[nullable MType]", /* class_name_string */
+8,
 0,
 NULL,
-4,
+9,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-223, /* ANode */
+169, /* SequenceRead[nullable Object] */
+-1, /* empty */
+180, /* Collection[nullable MType] */
+-1, /* empty */
+-1, /* empty */
+1799, /* AbstractArrayRead[nullable MType] */
 },
 };
-/* runtime type ComputeProdLocationVisitor */
-const struct type type_parser__ComputeProdLocationVisitor = {
-224,
-"ComputeProdLocationVisitor", /* class_name_string */
+/* runtime type nullable Array[nullable MType] */
+const struct type type_nullable_array__Arraynullable_model__MType = {
+4,
+"nullable Array[nullable MType]", /* class_name_string */
 2,
-0,
-&resolution_table_parser__ComputeProdLocationVisitor,
+1,
+&resolution_table_nullable_array__Arraynullable_model__MType,
 3,
 {
 0, /* nullable Object */
-1, /* Object */
-224, /* ComputeProdLocationVisitor */
+-1, /* empty */
+4, /* nullable Array[nullable MType] */
 },
 };
-const struct types resolution_table_parser__ComputeProdLocationVisitor = {
+const struct types resolution_table_nullable_array__Arraynullable_model__MType = {
 0, /* dummy */
 {
+&type_array__Arraynullable_model__MType, /* Array[Array#0]: Array[nullable MType] */
+&type_array__NativeArraynullable_model__MType, /* NativeArray[Array#0]: NativeArray[nullable MType] */
+&type_nullable_model__MType, /* Sequence#0: nullable MType */
+&type_nullable_model__MType, /* SimpleCollection#0: nullable MType */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Array#0]: Collection[nullable MType] */
+&type_nullable_model__MType, /* Array#0: nullable MType */
+&type_array__NativeArraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable MType] */
+&type_nullable_model__MType, /* AbstractArray#0: nullable MType */
+&type_nullable_model__MType, /* RemovableCollection#0: nullable MType */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Sequence#0]: Collection[nullable MType] */
+&type_array__Arraynullable_model__MType, /* Array[Sequence#0]: Array[nullable MType] */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[SimpleCollection#0]: Collection[nullable MType] */
+&type_nullable_model__MType, /* Collection#0: nullable MType */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Collection#0]: Collection[nullable MType] */
+&type_nullable_model__MType, /* SequenceRead#0: nullable MType */
+&type_nullable_model__MType, /* AbstractArrayRead#0: nullable MType */
+&type_array__Arraynullable_model__MType, /* Array[AbstractArrayRead#0]: Array[nullable MType] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MType] not a live type) */
+&type_array__ArrayIteratornullable_model__MType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable MType] */
 }
 };
-/* runtime type AParserError */
-const struct type type_parser_nodes__AParserError = {
-2216,
-"AParserError", /* class_name_string */
-6,
+/* runtime type List[MClassType] */
+const struct type type_list__Listmodel__MClassType = {
+2492,
+"List[MClassType]", /* class_name_string */
+2,
 0,
-&resolution_table_parser_nodes__AParserError,
-7,
+&resolution_table_list__Listmodel__MClassType,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
-1747, /* EOF */
-223, /* ANode */
-623, /* Token */
-1925, /* AError */
-2216, /* AParserError */
+2492, /* List[MClassType] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+-1, /* empty */
+1791, /* Collection[MType] */
+-1, /* empty */
+-1, /* empty */
+1978, /* Collection[MClassType] */
 },
 };
-const struct types resolution_table_parser_nodes__AParserError = {
+const struct types resolution_table_list__Listmodel__MClassType = {
 0, /* dummy */
 {
+&type_list__Listmodel__MClassType, /* List[List#0]: List[MClassType] */
+&type_list__ListNodemodel__MClassType, /* ListNode[List#0]: ListNode[MClassType] */
+&type_model__MClassType, /* Sequence#0: MClassType */
+&type_model__MClassType, /* SimpleCollection#0: MClassType */
+&type_list__ListIteratormodel__MClassType, /* ListIterator[List#0]: ListIterator[MClassType] */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[List#0]: Collection[MClassType] */
+&type_model__MClassType, /* List#0: MClassType */
+NULL, /* empty */
+&type_model__MClassType, /* RemovableCollection#0: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Sequence#0]: Collection[MClassType] */
+&type_array__Arraymodel__MClassType, /* Array[Sequence#0]: Array[MClassType] */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[SimpleCollection#0]: Collection[MClassType] */
+&type_model__MClassType, /* Collection#0: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Collection#0]: Collection[MClassType] */
+&type_model__MClassType, /* SequenceRead#0: MClassType */
 }
 };
-/* runtime type EOF */
-const struct type type_parser_nodes__EOF = {
-1747,
-"EOF", /* class_name_string */
+/* runtime type CodeWriter */
+const struct type type_abstract_compiler__CodeWriter = {
+217,
+"CodeWriter", /* class_name_string */
 2,
 0,
-&resolution_table_parser_nodes__EOF,
-5,
+&resolution_table_abstract_compiler__CodeWriter,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-1747, /* EOF */
-223, /* ANode */
-623, /* Token */
+217, /* CodeWriter */
 },
 };
-const struct types resolution_table_parser_nodes__EOF = {
+const struct types resolution_table_abstract_compiler__CodeWriter = {
 0, /* dummy */
 {
 }
 };
-/* runtime type AError */
-const struct type type_parser_nodes__AError = {
-1925,
-"AError", /* class_name_string */
+/* runtime type List[String] */
+const struct type type_list__Liststring__String = {
+1987,
+"List[String]", /* class_name_string */
 5,
 0,
-NULL,
+&resolution_table_list__Liststring__String,
 6,
 {
 0, /* nullable Object */
 1, /* Object */
-1747, /* EOF */
-223, /* ANode */
-623, /* Token */
-1925, /* AError */
+631, /* Collection[String] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1987, /* List[String] */
 },
 };
-/* runtime type Token */
-const struct type type_parser_nodes__Token = {
-623,
-"Token", /* class_name_string */
-4,
+const struct types resolution_table_list__Liststring__String = {
+0, /* dummy */
+{
+&type_list__Liststring__String, /* List[List#0]: List[String] */
+&type_list__ListNodestring__String, /* ListNode[List#0]: ListNode[String] */
+&type_string__String, /* Sequence#0: String */
+&type_string__String, /* SimpleCollection#0: String */
+&type_list__ListIteratorstring__String, /* ListIterator[List#0]: ListIterator[String] */
+&type_abstract_collection__Collectionstring__String, /* Collection[List#0]: Collection[String] */
+&type_string__String, /* List#0: String */
+NULL, /* empty */
+&type_string__String, /* RemovableCollection#0: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[Sequence#0]: Collection[String] */
+&type_array__Arraystring__String, /* Array[Sequence#0]: Array[String] */
+&type_abstract_collection__Collectionstring__String, /* Collection[SimpleCollection#0]: Collection[String] */
+&type_string__String, /* Collection#0: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[Collection#0]: Collection[String] */
+&type_string__String, /* SequenceRead#0: String */
+}
+};
+/* runtime type Array[MClassType] */
+const struct type type_array__Arraymodel__MClassType = {
+2708,
+"Array[MClassType]", /* class_name_string */
+17,
 0,
-NULL,
-5,
+&resolution_table_array__Arraymodel__MClassType,
+18,
 {
 0, /* nullable Object */
 1, /* Object */
+4, /* nullable Array[nullable MType] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1782, /* AbstractArrayRead[Object] */
+1791, /* Collection[MType] */
+1799, /* AbstractArrayRead[nullable MType] */
+1973, /* Array[Object] */
+1978, /* Collection[MClassType] */
+2283, /* Array[nullable MType] */
+-1, /* empty */
+2568, /* AbstractArrayRead[MType] */
+2635, /* AbstractArrayRead[MClassType] */
+2673, /* Array[MType] */
 -1, /* empty */
-223, /* ANode */
-623, /* Token */
+2708, /* Array[MClassType] */
 },
 };
-/* runtime type Stderr */
-const struct type type_file__Stderr = {
-624,
-"Stderr", /* class_name_string */
-3,
+const struct types resolution_table_array__Arraymodel__MClassType = {
+0, /* dummy */
+{
+&type_array__Arraymodel__MClassType, /* Array[Array#0]: Array[MClassType] */
+&type_array__NativeArraymodel__MClassType, /* NativeArray[Array#0]: NativeArray[MClassType] */
+&type_model__MClassType, /* Sequence#0: MClassType */
+&type_model__MClassType, /* SimpleCollection#0: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Array#0]: Collection[MClassType] */
+&type_model__MClassType, /* Array#0: MClassType */
+&type_array__NativeArraymodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[MClassType] */
+&type_model__MClassType, /* AbstractArray#0: MClassType */
+&type_model__MClassType, /* RemovableCollection#0: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Sequence#0]: Collection[MClassType] */
+&type_array__Arraymodel__MClassType, /* Array[Sequence#0]: Array[MClassType] */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[SimpleCollection#0]: Collection[MClassType] */
+&type_model__MClassType, /* Collection#0: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Collection#0]: Collection[MClassType] */
+&type_model__MClassType, /* SequenceRead#0: MClassType */
+&type_model__MClassType, /* AbstractArrayRead#0: MClassType */
+&type_array__Arraymodel__MClassType, /* Array[AbstractArrayRead#0]: Array[MClassType] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MClassType] not a live type) */
+&type_array__ArrayIteratormodel__MClassType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MClassType] */
+}
+};
+/* runtime type AbstractArrayRead[MClassType] */
+const struct type type_array__AbstractArrayReadmodel__MClassType = {
+2635,
+"AbstractArrayRead[MClassType]", /* class_name_string */
+14,
 0,
-&resolution_table_file__Stderr,
-4,
+NULL,
+15,
 {
 0, /* nullable Object */
 1, /* Object */
-197, /* OFStream */
-624, /* Stderr */
+-1, /* empty */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1782, /* AbstractArrayRead[Object] */
+1791, /* Collection[MType] */
+1799, /* AbstractArrayRead[nullable MType] */
+-1, /* empty */
+1978, /* Collection[MClassType] */
+-1, /* empty */
+-1, /* empty */
+2568, /* AbstractArrayRead[MType] */
+2635, /* AbstractArrayRead[MClassType] */
 },
 };
-const struct types resolution_table_file__Stderr = {
-0, /* dummy */
-{
-}
-};
-/* runtime type DivByZeroVisitor */
-const struct type type_div_by_zero__DivByZeroVisitor = {
-225,
-"DivByZeroVisitor", /* class_name_string */
+/* runtime type MClassKind */
+const struct type type_model__MClassKind = {
+218,
+"MClassKind", /* class_name_string */
 2,
 0,
-&resolution_table_div_by_zero__DivByZeroVisitor,
+&resolution_table_model__MClassKind,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-225, /* DivByZeroVisitor */
+218, /* MClassKind */
 },
 };
-const struct types resolution_table_div_by_zero__DivByZeroVisitor = {
+const struct types resolution_table_model__MClassKind = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ANodes[AClassdef] */
-const struct type type_parser_nodes__ANodesparser_nodes__AClassdef = {
-2426,
-"ANodes[AClassdef]", /* class_name_string */
-6,
+/* runtime type MTypeBMizer */
+const struct type type_layout_builders__MTypeBMizer = {
+219,
+"MTypeBMizer", /* class_name_string */
+2,
 0,
-&resolution_table_parser_nodes__ANodesparser_nodes__AClassdef,
-8,
+&resolution_table_layout_builders__MTypeBMizer,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-2426, /* ANodes[AClassdef] */
-1926, /* Collection[AClassdef] */
+219, /* MTypeBMizer */
 },
 };
-const struct types resolution_table_parser_nodes__ANodesparser_nodes__AClassdef = {
+const struct types resolution_table_layout_builders__MTypeBMizer = {
 0, /* dummy */
 {
-&type_array__Arrayparser_nodes__AClassdef, /* Array[ANodes#0]: Array[AClassdef] */
-&type_parser_nodes__AClassdef, /* ANodes#0: AClassdef */
-&type_parser_nodes__AClassdef, /* Sequence#0: AClassdef */
-&type_parser_nodes__AClassdef, /* SimpleCollection#0: AClassdef */
+&type_layout_builders__POSetBuildermodel__MType, /* POSetBuilder[TypingBMizer#0]: POSetBuilder[MType] */
+&type_poset__POSetmodel__MType, /* POSet[TypingBMizer#0]: POSet[MType] */
+&type_abstract_collection__Setmodel__MType, /* Set[TypingBMizer#0]: Set[MType] */
+&type_layout_builders__Layoutmodel__MType, /* Layout[TypingBMizer#0]: Layout[MType] */
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[TypingBMizer#0, Int]: HashMap[MType, Int] */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
-&type_parser_nodes__AClassdef, /* RemovableCollection#0: AClassdef */
-&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[Sequence#0]: Collection[AClassdef] */
-&type_array__Arrayparser_nodes__AClassdef, /* Array[Sequence#0]: Array[AClassdef] */
-&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[SimpleCollection#0]: Collection[AClassdef] */
-&type_parser_nodes__AClassdef, /* Collection#0: AClassdef */
-&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[Collection#0]: Collection[AClassdef] */
-&type_parser_nodes__AClassdef, /* SequenceRead#0: AClassdef */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Setmodel__MType, /* Set[TypingLayoutBuilder#0]: Set[MType] */
 }
 };
-/* runtime type Collection[AClassdef] */
-const struct type type_abstract_collection__Collectionparser_nodes__AClassdef = {
-1926,
-"Collection[AClassdef]", /* class_name_string */
-7,
-0,
-NULL,
-8,
-{
-0, /* nullable Object */
-1, /* Object */
-596, /* Collection[ANode] */
--1, /* empty */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
--1, /* empty */
-1926, /* Collection[AClassdef] */
-},
-};
-/* runtime type ANodes[APropdef] */
-const struct type type_parser_nodes__ANodesparser_nodes__APropdef = {
-2427,
-"ANodes[APropdef]", /* class_name_string */
-6,
+/* runtime type MTypeHasher */
+const struct type type_layout_builders__MTypeHasher = {
+220,
+"MTypeHasher", /* class_name_string */
+2,
 0,
-&resolution_table_parser_nodes__ANodesparser_nodes__APropdef,
-8,
+&resolution_table_layout_builders__MTypeHasher,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-2427, /* ANodes[APropdef] */
-1927, /* Collection[APropdef] */
+220, /* MTypeHasher */
 },
 };
-const struct types resolution_table_parser_nodes__ANodesparser_nodes__APropdef = {
+const struct types resolution_table_layout_builders__MTypeHasher = {
 0, /* dummy */
 {
-&type_array__Arrayparser_nodes__APropdef, /* Array[ANodes#0]: Array[APropdef] */
-&type_parser_nodes__APropdef, /* ANodes#0: APropdef */
-&type_parser_nodes__APropdef, /* Sequence#0: APropdef */
-&type_parser_nodes__APropdef, /* SimpleCollection#0: APropdef */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_parser_nodes__APropdef, /* RemovableCollection#0: APropdef */
-&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[Sequence#0]: Collection[APropdef] */
-&type_array__Arrayparser_nodes__APropdef, /* Array[Sequence#0]: Array[APropdef] */
-&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[SimpleCollection#0]: Collection[APropdef] */
-&type_parser_nodes__APropdef, /* Collection#0: APropdef */
-&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[Collection#0]: Collection[APropdef] */
-&type_parser_nodes__APropdef, /* SequenceRead#0: APropdef */
+&type_layout_builders__POSetBuildermodel__MType, /* POSetBuilder[TypingHasher#0]: POSetBuilder[MType] */
+&type_poset__POSetmodel__MType, /* POSet[TypingHasher#0]: POSet[MType] */
+&type_abstract_collection__Setmodel__MType, /* Set[TypingHasher#0]: Set[MType] */
+&type_layout_builders__PHLayoutmodel__MTypemodel__MType, /* PHLayout[TypingHasher#0, TypingHasher#0]: PHLayout[MType, MType] */
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[TypingHasher#0, Int]: HashMap[MType, Int] */
+&type_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType, /* HashMap[TypingHasher#0, Set[TypingHasher#0]]: HashMap[MType, Set[MType]] */
+&type_hash_collection__HashSetmodel__MType, /* HashSet[TypingHasher#0]: HashSet[MType] */
+&type_abstract_collection__Mapmodel__MTypeabstract_collection__Setmodel__MType, /* Map[PerfectHasher#0, Set[PerfectHasher#1]]: Map[MType, Set[MType]] */
+&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[PerfectHasher#1, Int]: Map[MType, Int] */
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#0, Int]: HashMap[MType, Int] */
+&type_abstract_collection__Setmodel__MType, /* Set[PerfectHasher#1]: Set[MType] */
+&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[PerfectHasher#0, Int]: Map[MType, Int] */
+&type_hash_collection__HashMapmodel__MTypeabstract_collection__Mapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#0, Map[PerfectHasher#1, Int]]: HashMap[MType, Map[MType, Int]] */
+&type_abstract_collection__Setmodel__MType, /* Set[TypingLayoutBuilder#0]: Set[MType] */
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#1, Int]: HashMap[MType, Int] */
 }
 };
-/* runtime type Collection[APropdef] */
-const struct type type_abstract_collection__Collectionparser_nodes__APropdef = {
-1927,
-"Collection[APropdef]", /* class_name_string */
-7,
+/* runtime type MTypeColorer */
+const struct type type_layout_builders__MTypeColorer = {
+221,
+"MTypeColorer", /* class_name_string */
+2,
 0,
-NULL,
-8,
+&resolution_table_layout_builders__MTypeColorer,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
--1, /* empty */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
--1, /* empty */
-1927, /* Collection[APropdef] */
+221, /* MTypeColorer */
 },
 };
-/* runtime type TransformVisitor */
-const struct type type_transform__TransformVisitor = {
-226,
-"TransformVisitor", /* class_name_string */
-2,
-0,
-&resolution_table_transform__TransformVisitor,
+const struct types resolution_table_layout_builders__MTypeColorer = {
+0, /* dummy */
+{
+&type_hash_collection__HashSetmodel__MType, /* HashSet[TypingColorer#0]: HashSet[MType] */
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[TypingColorer#0, Int]: HashMap[MType, Int] */
+&type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MType, /* HashMap[TypingColorer#0, Array[TypingColorer#0]]: HashMap[MType, Array[MType]] */
+&type_abstract_collection__Setmodel__MType, /* Set[TypingColorer#0]: Set[MType] */
+&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[TypingColorer#0, Int]: Map[MType, Int] */
+&type_layout_builders__POSetBuildermodel__MType, /* POSetBuilder[TypingColorer#0]: POSetBuilder[MType] */
+&type_poset__POSetmodel__MType, /* POSet[TypingColorer#0]: POSet[MType] */
+&type_layout_builders__Layoutmodel__MType, /* Layout[TypingColorer#0]: Layout[MType] */
+&type_model__MType, /* TypingColorer#0: MType */
+&type_hash_collection__HashMapmodel__MTypehash_collection__HashSetmodel__MType, /* HashMap[TypingColorer#0, HashSet[TypingColorer#0]]: HashMap[MType, HashSet[MType]] */
+&type_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType, /* HashMap[TypingColorer#0, Set[TypingColorer#0]]: HashMap[MType, Set[MType]] */
+NULL, /* empty (Map[TypingColorer#0, Array[TypingColorer#0]]: Map[MType, Array[MType]] not a live type) */
+&type_array__Arraymodel__MType, /* Array[TypingColorer#0]: Array[MType] */
+&type_abstract_collection__Setmodel__MType, /* Set[TypingLayoutBuilder#0]: Set[MType] */
+}
+};
+/* runtime type SeparateCompilerVisitor */
+const struct type type_separate_compiler__SeparateCompilerVisitor = {
+655,
+"SeparateCompilerVisitor", /* class_name_string */
 3,
+0,
+&resolution_table_separate_compiler__SeparateCompilerVisitor,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-226, /* TransformVisitor */
+222, /* AbstractCompilerVisitor */
+655, /* SeparateCompilerVisitor */
 },
 };
-const struct types resolution_table_transform__TransformVisitor = {
+const struct types resolution_table_separate_compiler__SeparateCompilerVisitor = {
 0, /* dummy */
 {
+&type_separate_compiler__SeparateCompiler, /* COMPILER: SeparateCompiler */
 }
 };
-/* runtime type ASTValidationVisitor */
-const struct type type_astvalidation__ASTValidationVisitor = {
-227,
-"ASTValidationVisitor", /* class_name_string */
+/* runtime type AbstractCompilerVisitor */
+const struct type type_abstract_compiler__AbstractCompilerVisitor = {
+222,
+"AbstractCompilerVisitor", /* class_name_string */
 2,
 0,
-&resolution_table_astvalidation__ASTValidationVisitor,
+NULL,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-227, /* ASTValidationVisitor */
+222, /* AbstractCompilerVisitor */
 },
 };
-const struct types resolution_table_astvalidation__ASTValidationVisitor = {
-0, /* dummy */
-{
-}
-};
-/* runtime type List[ANode] */
-const struct type type_list__Listparser_nodes__ANode = {
-1928,
-"List[ANode]", /* class_name_string */
-5,
+/* runtime type HashMap[EscapeMark, String] */
+const struct type type_hash_collection__HashMapscope__EscapeMarkstring__String = {
+223,
+"HashMap[EscapeMark, String]", /* class_name_string */
+2,
 0,
-&resolution_table_list__Listparser_nodes__ANode,
-6,
+&resolution_table_hash_collection__HashMapscope__EscapeMarkstring__String,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1928, /* List[ANode] */
+223, /* HashMap[EscapeMark, String] */
 },
 };
-const struct types resolution_table_list__Listparser_nodes__ANode = {
+const struct types resolution_table_hash_collection__HashMapscope__EscapeMarkstring__String = {
 0, /* dummy */
 {
-&type_list__Listparser_nodes__ANode, /* List[List#0]: List[ANode] */
-&type_list__ListNodeparser_nodes__ANode, /* ListNode[List#0]: ListNode[ANode] */
-&type_parser_nodes__ANode, /* Sequence#0: ANode */
-&type_parser_nodes__ANode, /* SimpleCollection#0: ANode */
-&type_list__ListIteratorparser_nodes__ANode, /* ListIterator[List#0]: ListIterator[ANode] */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[List#0]: Collection[ANode] */
-&type_parser_nodes__ANode, /* List#0: ANode */
 NULL, /* empty */
-&type_parser_nodes__ANode, /* RemovableCollection#0: ANode */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Sequence#0]: Collection[ANode] */
-&type_array__Arrayparser_nodes__ANode, /* Array[Sequence#0]: Array[ANode] */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[SimpleCollection#0]: Collection[ANode] */
-&type_parser_nodes__ANode, /* Collection#0: ANode */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Collection#0]: Collection[ANode] */
-&type_parser_nodes__ANode, /* SequenceRead#0: ANode */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysscope__EscapeMarkstring__String, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[EscapeMark, String] */
+&type_hash_collection__HashMapValuesscope__EscapeMarkstring__String, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[EscapeMark, String] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[EscapeMark, String]] */
+&type_scope__EscapeMark, /* MapRead#0: EscapeMark */
+&type_hash_collection__HashMapIteratorscope__EscapeMarkstring__String, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[EscapeMark, String] */
+&type_scope__EscapeMark, /* Map#0: EscapeMark */
+&type_string__String, /* Map#1: String */
+&type_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[EscapeMark, String] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[EscapeMark, String] not a live type) */
+&type_string__String, /* MapRead#1: String */
+&type_scope__EscapeMark, /* HashCollection#0: EscapeMark */
+&type_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* HashCollection#1: HashMapNode[EscapeMark, String] */
 }
 };
-/* runtime type HashSet[ANode] */
-const struct type type_hash_collection__HashSetparser_nodes__ANode = {
-2217,
-"HashSet[ANode]", /* class_name_string */
-5,
+/* runtime type HashMap[Variable, RuntimeVariable] */
+const struct type type_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable = {
+224,
+"HashMap[Variable, RuntimeVariable]", /* class_name_string */
+2,
 0,
-&resolution_table_hash_collection__HashSetparser_nodes__ANode,
-7,
+&resolution_table_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-2217, /* HashSet[ANode] */
-1740, /* HashSet[Object] */
+224, /* HashMap[Variable, RuntimeVariable] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetparser_nodes__ANode = {
+const struct types resolution_table_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodeparser_nodes__ANode, /* HashSetNode[HashSet#0]: HashSetNode[ANode] */
-&type_hash_collection__HashSetIteratorparser_nodes__ANode, /* HashSetIterator[HashSet#0]: HashSetIterator[ANode] */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[HashSet#0]: Collection[ANode] */
-&type_parser_nodes__ANode, /* SimpleCollection#0: ANode */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Set#0]: Collection[ANode] */
 NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodeparser_nodes__ANode, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[ANode]] */
 NULL, /* empty */
-&type_parser_nodes__ANode, /* RemovableCollection#0: ANode */
 NULL, /* empty */
 NULL, /* empty */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[SimpleCollection#0]: Collection[ANode] */
-&type_parser_nodes__ANode, /* Collection#0: ANode */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Collection#0]: Collection[ANode] */
-&type_parser_nodes__ANode, /* HashCollection#0: ANode */
-&type_hash_collection__HashSetNodeparser_nodes__ANode, /* HashCollection#1: HashSetNode[ANode] */
+&type_hash_collection__HashMapKeysscope__Variableabstract_compiler__RuntimeVariable, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[Variable, RuntimeVariable] */
+&type_hash_collection__HashMapValuesscope__Variableabstract_compiler__RuntimeVariable, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[Variable, RuntimeVariable] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[Variable, RuntimeVariable]] */
+&type_scope__Variable, /* MapRead#0: Variable */
+&type_hash_collection__HashMapIteratorscope__Variableabstract_compiler__RuntimeVariable, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[Variable, RuntimeVariable] */
+&type_scope__Variable, /* Map#0: Variable */
+&type_abstract_compiler__RuntimeVariable, /* Map#1: RuntimeVariable */
+&type_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[Variable, RuntimeVariable] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[Variable, RuntimeVariable] not a live type) */
+&type_abstract_compiler__RuntimeVariable, /* MapRead#1: RuntimeVariable */
+&type_scope__Variable, /* HashCollection#0: Variable */
+&type_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* HashCollection#1: HashMapNode[Variable, RuntimeVariable] */
 }
 };
-/* runtime type MGenericType */
-const struct type type_model__MGenericType = {
-1929,
-"MGenericType", /* class_name_string */
-5,
+/* runtime type NativeFile */
+const struct type type_file__NativeFile = {
+656,
+"NativeFile", /* class_name_string */
+3,
 0,
-&resolution_table_model__MGenericType,
-6,
+&resolution_table_file__NativeFile,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable MType */
-594, /* MType */
-1748, /* MClassType */
-1929, /* MGenericType */
+225, /* Pointer */
+656, /* NativeFile */
 },
 };
-const struct types resolution_table_model__MGenericType = {
+const struct types resolution_table_file__NativeFile = {
 0, /* dummy */
 {
 }
 };
-/* runtime type MClassType */
-const struct type type_model__MClassType = {
-1748,
-"MClassType", /* class_name_string */
-4,
+/* runtime type Pointer */
+const struct type type_kernel__Pointer = {
+225,
+"Pointer", /* class_name_string */
+2,
 0,
-&resolution_table_model__MClassType,
-5,
+NULL,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable MType */
-594, /* MType */
-1748, /* MClassType */
+225, /* Pointer */
 },
 };
-const struct types resolution_table_model__MClassType = {
-0, /* dummy */
-{
-}
-};
-/* runtime type HashMap[MModule, Set[MClassDef]] */
-const struct type type_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassDef = {
-228,
-"HashMap[MModule, Set[MClassDef]]", /* class_name_string */
+/* runtime type MProject */
+const struct type type_mproject__MProject = {
+226,
+"MProject", /* class_name_string */
 2,
 0,
-&resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassDef,
+&resolution_table_mproject__MProject,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-228, /* HashMap[MModule, Set[MClassDef]] */
+226, /* MProject */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassDef = {
+const struct types resolution_table_mproject__MProject = {
 0, /* dummy */
 {
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel_base__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, Set[MClassDef]] */
-&type_hash_collection__HashMapValuesmodel_base__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, Set[MClassDef]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel_base__MModuleabstract_collection__Setmodel__MClassDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, Set[MClassDef]]] */
-&type_model_base__MModule, /* MapRead#0: MModule */
-&type_hash_collection__HashMapIteratormodel_base__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MModule, Set[MClassDef]] */
-&type_model_base__MModule, /* Map#0: MModule */
-&type_abstract_collection__Setmodel__MClassDef, /* Map#1: Set[MClassDef] */
-&type_hash_collection__HashMapNodemodel_base__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MModule, Set[MClassDef]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MModule, Set[MClassDef]] not a live type) */
-&type_abstract_collection__Setmodel__MClassDef, /* MapRead#1: Set[MClassDef] */
-&type_model_base__MModule, /* HashCollection#0: MModule */
-&type_hash_collection__HashMapNodemodel_base__MModuleabstract_collection__Setmodel__MClassDef, /* HashCollection#1: HashMapNode[MModule, Set[MClassDef]] */
 }
 };
-/* runtime type HashMap[MModule, Set[MClass]] */
-const struct type type_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClass = {
-229,
-"HashMap[MModule, Set[MClass]]", /* class_name_string */
-2,
-0,
-&resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClass,
+/* runtime type POSet[MGroup] */
+const struct type type_poset__POSetmproject__MGroup = {
+1988,
+"POSet[MGroup]", /* class_name_string */
 3,
+0,
+&resolution_table_poset__POSetmproject__MGroup,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-229, /* HashMap[MModule, Set[MClass]] */
+227, /* Collection[nullable MGroup] */
+1988, /* POSet[MGroup] */
+170, /* Collection[Object] */
+1800, /* Collection[MGroup] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClass = {
+const struct types resolution_table_poset__POSetmproject__MGroup = {
 0, /* dummy */
 {
+&type_mproject__MGroup, /* AbstractSorter#0: MGroup */
+&type_array__Arraymproject__MGroup, /* Array[AbstractSorter#0]: Array[MGroup] */
+&type_hash_collection__HashMapmproject__MGroupposet__POSetElementmproject__MGroup, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[MGroup, POSetElement[MGroup]] */
+&type_mproject__MGroup, /* POSet#0: MGroup */
+&type_poset__POSetElementmproject__MGroup, /* POSetElement[POSet#0]: POSetElement[MGroup] */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel_base__MModuleabstract_collection__Setmodel__MClass, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, Set[MClass]] */
-&type_hash_collection__HashMapValuesmodel_base__MModuleabstract_collection__Setmodel__MClass, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, Set[MClass]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel_base__MModuleabstract_collection__Setmodel__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, Set[MClass]]] */
-&type_model_base__MModule, /* MapRead#0: MModule */
-&type_hash_collection__HashMapIteratormodel_base__MModuleabstract_collection__Setmodel__MClass, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MModule, Set[MClass]] */
-&type_model_base__MModule, /* Map#0: MModule */
-&type_abstract_collection__Setmodel__MClass, /* Map#1: Set[MClass] */
-&type_hash_collection__HashMapNodemodel_base__MModuleabstract_collection__Setmodel__MClass, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MModule, Set[MClass]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MModule, Set[MClass]] not a live type) */
-&type_abstract_collection__Setmodel__MClass, /* MapRead#1: Set[MClass] */
-&type_model_base__MModule, /* HashCollection#0: MModule */
-&type_hash_collection__HashMapNodemodel_base__MModuleabstract_collection__Setmodel__MClass, /* HashCollection#1: HashMapNode[MModule, Set[MClass]] */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_mproject__MGroup, /* Collection#0: MGroup */
+&type_abstract_collection__Collectionmproject__MGroup, /* Collection[Collection#0]: Collection[MGroup] */
 }
 };
-/* runtime type HashMap[MModule, Set[MClassType]] */
-const struct type type_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassType = {
-230,
-"HashMap[MModule, Set[MClassType]]", /* class_name_string */
-2,
+/* runtime type Collection[MGroup] */
+const struct type type_abstract_collection__Collectionmproject__MGroup = {
+1800,
+"Collection[MGroup]", /* class_name_string */
+5,
 0,
-&resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassType,
-3,
+NULL,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-230, /* HashMap[MModule, Set[MClassType]] */
+227, /* Collection[nullable MGroup] */
+-1, /* empty */
+170, /* Collection[Object] */
+1800, /* Collection[MGroup] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassType = {
-0, /* dummy */
+/* runtime type Collection[nullable MGroup] */
+const struct type type_abstract_collection__Collectionnullable_mproject__MGroup = {
+227,
+"Collection[nullable MGroup]", /* class_name_string */
+2,
+0,
+NULL,
+3,
 {
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel_base__MModuleabstract_collection__Setmodel__MClassType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, Set[MClassType]] */
-&type_hash_collection__HashMapValuesmodel_base__MModuleabstract_collection__Setmodel__MClassType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, Set[MClassType]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel_base__MModuleabstract_collection__Setmodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, Set[MClassType]]] */
-&type_model_base__MModule, /* MapRead#0: MModule */
-&type_hash_collection__HashMapIteratormodel_base__MModuleabstract_collection__Setmodel__MClassType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MModule, Set[MClassType]] */
-&type_model_base__MModule, /* Map#0: MModule */
-&type_abstract_collection__Setmodel__MClassType, /* Map#1: Set[MClassType] */
-&type_hash_collection__HashMapNodemodel_base__MModuleabstract_collection__Setmodel__MClassType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MModule, Set[MClassType]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MModule, Set[MClassType]] not a live type) */
-&type_abstract_collection__Setmodel__MClassType, /* MapRead#1: Set[MClassType] */
-&type_model_base__MModule, /* HashCollection#0: MModule */
-&type_hash_collection__HashMapNodemodel_base__MModuleabstract_collection__Setmodel__MClassType, /* HashCollection#1: HashMapNode[MModule, Set[MClassType]] */
-}
+0, /* nullable Object */
+1, /* Object */
+227, /* Collection[nullable MGroup] */
+},
 };
-/* runtime type MClass */
-const struct type type_model__MClass = {
-625,
-"MClass", /* class_name_string */
+/* runtime type MGroup */
+const struct type type_mproject__MGroup = {
+657,
+"MGroup", /* class_name_string */
 3,
 0,
-&resolution_table_model__MClass,
+&resolution_table_mproject__MGroup,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-5, /* nullable MClass */
-625, /* MClass */
+5, /* nullable MGroup */
+657, /* MGroup */
 },
 };
-const struct types resolution_table_model__MClass = {
+const struct types resolution_table_mproject__MGroup = {
 0, /* dummy */
 {
 }
 };
-/* runtime type nullable MClass */
-const struct type type_nullable_model__MClass = {
+/* runtime type nullable MGroup */
+const struct type type_nullable_mproject__MGroup = {
 5,
-"nullable MClass", /* class_name_string */
+"nullable MGroup", /* class_name_string */
 2,
 1,
-&resolution_table_nullable_model__MClass,
+&resolution_table_nullable_mproject__MGroup,
 3,
 {
 0, /* nullable Object */
 -1, /* empty */
-5, /* nullable MClass */
+5, /* nullable MGroup */
 },
 };
-const struct types resolution_table_nullable_model__MClass = {
+const struct types resolution_table_nullable_mproject__MGroup = {
 0, /* dummy */
 {
 }
 };
-/* runtime type Array[MGenericType] */
-const struct type type_array__Arraymodel__MGenericType = {
-2642,
-"Array[MGenericType]", /* class_name_string */
-18,
+/* runtime type ModulePath */
+const struct type type_modelbuilder__ModulePath = {
+658,
+"ModulePath", /* class_name_string */
+3,
 0,
-&resolution_table_array__Arraymodel__MGenericType,
-19,
+&resolution_table_modelbuilder__ModulePath,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-4, /* nullable Array[nullable MType] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
-1728, /* AbstractArrayRead[Object] */
-1737, /* Collection[MType] */
-1744, /* AbstractArrayRead[nullable MType] */
-1911, /* Array[Object] */
-1916, /* Collection[MClassType] */
-2207, /* Array[nullable MType] */
-2218, /* Collection[MGenericType] */
-2495, /* AbstractArrayRead[MType] */
-2557, /* AbstractArrayRead[MClassType] */
-2594, /* Array[MType] */
-2595, /* AbstractArrayRead[MGenericType] */
-2629, /* Array[MClassType] */
-2642, /* Array[MGenericType] */
+6, /* nullable ModulePath */
+658, /* ModulePath */
 },
 };
-const struct types resolution_table_array__Arraymodel__MGenericType = {
+const struct types resolution_table_modelbuilder__ModulePath = {
 0, /* dummy */
 {
-&type_array__Arraymodel__MGenericType, /* Array[Array#0]: Array[MGenericType] */
-&type_array__NativeArraymodel__MGenericType, /* NativeArray[Array#0]: NativeArray[MGenericType] */
-&type_model__MGenericType, /* Sequence#0: MGenericType */
-&type_model__MGenericType, /* SimpleCollection#0: MGenericType */
-&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[Array#0]: Collection[MGenericType] */
-&type_model__MGenericType, /* Array#0: MGenericType */
-&type_array__NativeArraymodel__MGenericType, /* NativeArray[ArrayCapable#0]: NativeArray[MGenericType] */
-&type_model__MGenericType, /* AbstractArray#0: MGenericType */
-&type_model__MGenericType, /* RemovableCollection#0: MGenericType */
-&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[Sequence#0]: Collection[MGenericType] */
-&type_array__Arraymodel__MGenericType, /* Array[Sequence#0]: Array[MGenericType] */
-&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[SimpleCollection#0]: Collection[MGenericType] */
-&type_model__MGenericType, /* Collection#0: MGenericType */
-&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[Collection#0]: Collection[MGenericType] */
-&type_model__MGenericType, /* SequenceRead#0: MGenericType */
-&type_model__MGenericType, /* AbstractArrayRead#0: MGenericType */
-&type_array__Arraymodel__MGenericType, /* Array[AbstractArrayRead#0]: Array[MGenericType] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MGenericType] not a live type) */
-&type_array__ArrayIteratormodel__MGenericType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MGenericType] */
 }
 };
-/* runtime type Collection[MGenericType] */
-const struct type type_abstract_collection__Collectionmodel__MGenericType = {
-2218,
-"Collection[MGenericType]", /* class_name_string */
-12,
-0,
-NULL,
-13,
+/* runtime type nullable ModulePath */
+const struct type type_nullable_modelbuilder__ModulePath = {
+6,
+"nullable ModulePath", /* class_name_string */
+2,
+1,
+&resolution_table_nullable_modelbuilder__ModulePath,
+3,
 {
 0, /* nullable Object */
-1, /* Object */
--1, /* empty */
 -1, /* empty */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
--1, /* empty */
-1737, /* Collection[MType] */
--1, /* empty */
--1, /* empty */
-1916, /* Collection[MClassType] */
--1, /* empty */
-2218, /* Collection[MGenericType] */
+6, /* nullable ModulePath */
 },
 };
-/* runtime type AbstractArrayRead[MGenericType] */
-const struct type type_array__AbstractArrayReadmodel__MGenericType = {
-2595,
-"AbstractArrayRead[MGenericType]", /* class_name_string */
-16,
-0,
-NULL,
-17,
+const struct types resolution_table_nullable_modelbuilder__ModulePath = {
+0, /* dummy */
 {
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
-1728, /* AbstractArrayRead[Object] */
-1737, /* Collection[MType] */
-1744, /* AbstractArrayRead[nullable MType] */
--1, /* empty */
-1916, /* Collection[MClassType] */
--1, /* empty */
-2218, /* Collection[MGenericType] */
-2495, /* AbstractArrayRead[MType] */
-2557, /* AbstractArrayRead[MClassType] */
--1, /* empty */
-2595, /* AbstractArrayRead[MGenericType] */
-},
+}
 };
-/* runtime type MClassDef */
-const struct type type_model__MClassDef = {
-231,
-"MClassDef", /* class_name_string */
+/* runtime type IFStream */
+const struct type type_file__IFStream = {
+228,
+"IFStream", /* class_name_string */
 2,
 0,
-&resolution_table_model__MClassDef,
+&resolution_table_file__IFStream,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-231, /* MClassDef */
+228, /* IFStream */
 },
 };
-const struct types resolution_table_model__MClassDef = {
+const struct types resolution_table_file__IFStream = {
 0, /* dummy */
 {
 }
 };
-/* runtime type Array[MPropDef] */
-const struct type type_array__Arraymodel__MPropDef = {
-2611,
-"Array[MPropDef]", /* class_name_string */
-16,
+/* runtime type Lexer */
+const struct type type_lexer__Lexer = {
+229,
+"Lexer", /* class_name_string */
+2,
 0,
-&resolution_table_array__Arraymodel__MPropDef,
-17,
+&resolution_table_lexer__Lexer,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-188, /* Collection[nullable MPropDef] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1728, /* AbstractArrayRead[Object] */
-1749, /* AbstractArrayRead[nullable MPropDef] */
-1920, /* Collection[MPropDef] */
-1911, /* Array[Object] */
-1930, /* Array[nullable MPropDef] */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
--1, /* empty */
-2481, /* Array[PropertyLayoutElement] */
-2558, /* AbstractArrayRead[MPropDef] */
--1, /* empty */
-2611, /* Array[MPropDef] */
+229, /* Lexer */
 },
 };
-const struct types resolution_table_array__Arraymodel__MPropDef = {
+const struct types resolution_table_lexer__Lexer = {
 0, /* dummy */
 {
-&type_array__Arraymodel__MPropDef, /* Array[Array#0]: Array[MPropDef] */
-&type_array__NativeArraymodel__MPropDef, /* NativeArray[Array#0]: NativeArray[MPropDef] */
-&type_model__MPropDef, /* Sequence#0: MPropDef */
-&type_model__MPropDef, /* SimpleCollection#0: MPropDef */
-&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[Array#0]: Collection[MPropDef] */
-&type_model__MPropDef, /* Array#0: MPropDef */
-&type_array__NativeArraymodel__MPropDef, /* NativeArray[ArrayCapable#0]: NativeArray[MPropDef] */
-&type_model__MPropDef, /* AbstractArray#0: MPropDef */
-&type_model__MPropDef, /* RemovableCollection#0: MPropDef */
-&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[Sequence#0]: Collection[MPropDef] */
-&type_array__Arraymodel__MPropDef, /* Array[Sequence#0]: Array[MPropDef] */
-&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[SimpleCollection#0]: Collection[MPropDef] */
-&type_model__MPropDef, /* Collection#0: MPropDef */
-&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[Collection#0]: Collection[MPropDef] */
-&type_model__MPropDef, /* SequenceRead#0: MPropDef */
-&type_model__MPropDef, /* AbstractArrayRead#0: MPropDef */
-&type_array__Arraymodel__MPropDef, /* Array[AbstractArrayRead#0]: Array[MPropDef] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MPropDef] not a live type) */
-&type_array__ArrayIteratormodel__MPropDef, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MPropDef] */
 }
 };
-/* runtime type Array[nullable MPropDef] */
-const struct type type_array__Arraynullable_model__MPropDef = {
-1930,
-"Array[nullable MPropDef]", /* class_name_string */
-10,
+/* runtime type SourceFile */
+const struct type type_location__SourceFile = {
+230,
+"SourceFile", /* class_name_string */
+2,
 0,
-&resolution_table_array__Arraynullable_model__MPropDef,
-11,
+&resolution_table_location__SourceFile,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-188, /* Collection[nullable MPropDef] */
-163, /* SequenceRead[nullable Object] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-1749, /* AbstractArrayRead[nullable MPropDef] */
--1, /* empty */
--1, /* empty */
-1930, /* Array[nullable MPropDef] */
+230, /* SourceFile */
 },
 };
-const struct types resolution_table_array__Arraynullable_model__MPropDef = {
+const struct types resolution_table_location__SourceFile = {
 0, /* dummy */
 {
-&type_array__Arraynullable_model__MPropDef, /* Array[Array#0]: Array[nullable MPropDef] */
-&type_array__NativeArraynullable_model__MPropDef, /* NativeArray[Array#0]: NativeArray[nullable MPropDef] */
-&type_nullable_model__MPropDef, /* Sequence#0: nullable MPropDef */
-&type_nullable_model__MPropDef, /* SimpleCollection#0: nullable MPropDef */
-&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[Array#0]: Collection[nullable MPropDef] */
-&type_nullable_model__MPropDef, /* Array#0: nullable MPropDef */
-&type_array__NativeArraynullable_model__MPropDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable MPropDef] */
-&type_nullable_model__MPropDef, /* AbstractArray#0: nullable MPropDef */
-&type_nullable_model__MPropDef, /* RemovableCollection#0: nullable MPropDef */
-&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[Sequence#0]: Collection[nullable MPropDef] */
-&type_array__Arraynullable_model__MPropDef, /* Array[Sequence#0]: Array[nullable MPropDef] */
-&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[SimpleCollection#0]: Collection[nullable MPropDef] */
-&type_nullable_model__MPropDef, /* Collection#0: nullable MPropDef */
-&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[Collection#0]: Collection[nullable MPropDef] */
-&type_nullable_model__MPropDef, /* SequenceRead#0: nullable MPropDef */
-&type_nullable_model__MPropDef, /* AbstractArrayRead#0: nullable MPropDef */
-&type_array__Arraynullable_model__MPropDef, /* Array[AbstractArrayRead#0]: Array[nullable MPropDef] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MPropDef] not a live type) */
-&type_array__ArrayIteratornullable_model__MPropDef, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable MPropDef] */
 }
 };
-/* runtime type AbstractArrayRead[MPropDef] */
-const struct type type_array__AbstractArrayReadmodel__MPropDef = {
-2558,
-"AbstractArrayRead[MPropDef]", /* class_name_string */
-14,
+/* runtime type Array[Int] */
+const struct type type_array__Arraykernel__Int = {
+2569,
+"Array[Int]", /* class_name_string */
+7,
 0,
-NULL,
-15,
+&resolution_table_array__Arraykernel__Int,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-188, /* Collection[nullable MPropDef] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1728, /* AbstractArrayRead[Object] */
-1749, /* AbstractArrayRead[nullable MPropDef] */
-1920, /* Collection[MPropDef] */
+653, /* Collection[Int] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2284, /* AbstractArrayRead[Int] */
+1782, /* AbstractArrayRead[Object] */
+2569, /* Array[Int] */
 -1, /* empty */
--1, /* empty */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
--1, /* empty */
--1, /* empty */
-2558, /* AbstractArrayRead[MPropDef] */
+1973, /* Array[Object] */
 },
 };
-/* runtime type AbstractArrayRead[nullable MPropDef] */
-const struct type type_array__AbstractArrayReadnullable_model__MPropDef = {
-1749,
-"AbstractArrayRead[nullable MPropDef]", /* class_name_string */
-7,
+const struct types resolution_table_array__Arraykernel__Int = {
+0, /* dummy */
+{
+&type_array__Arraykernel__Int, /* Array[Array#0]: Array[Int] */
+&type_array__NativeArraykernel__Int, /* NativeArray[Array#0]: NativeArray[Int] */
+&type_kernel__Int, /* Sequence#0: Int */
+&type_kernel__Int, /* SimpleCollection#0: Int */
+&type_abstract_collection__Collectionkernel__Int, /* Collection[Array#0]: Collection[Int] */
+&type_kernel__Int, /* Array#0: Int */
+&type_array__NativeArraykernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[Int] */
+&type_kernel__Int, /* AbstractArray#0: Int */
+&type_kernel__Int, /* RemovableCollection#0: Int */
+&type_abstract_collection__Collectionkernel__Int, /* Collection[Sequence#0]: Collection[Int] */
+&type_array__Arraykernel__Int, /* Array[Sequence#0]: Array[Int] */
+&type_abstract_collection__Collectionkernel__Int, /* Collection[SimpleCollection#0]: Collection[Int] */
+&type_kernel__Int, /* Collection#0: Int */
+&type_abstract_collection__Collectionkernel__Int, /* Collection[Collection#0]: Collection[Int] */
+&type_kernel__Int, /* SequenceRead#0: Int */
+&type_kernel__Int, /* AbstractArrayRead#0: Int */
+&type_array__Arraykernel__Int, /* Array[AbstractArrayRead#0]: Array[Int] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Int] not a live type) */
+&type_array__ArrayIteratorkernel__Int, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Int] */
+}
+};
+/* runtime type AbstractArrayRead[Int] */
+const struct type type_array__AbstractArrayReadkernel__Int = {
+2284,
+"AbstractArrayRead[Int]", /* class_name_string */
+5,
 0,
 NULL,
-8,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-188, /* Collection[nullable MPropDef] */
-163, /* SequenceRead[nullable Object] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-1749, /* AbstractArrayRead[nullable MPropDef] */
+653, /* Collection[Int] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2284, /* AbstractArrayRead[Int] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
-/* runtime type Location */
-const struct type type_location__Location = {
-232,
-"Location", /* class_name_string */
+/* runtime type Parser */
+const struct type type_parser__Parser = {
+231,
+"Parser", /* class_name_string */
 2,
 0,
-&resolution_table_location__Location,
+&resolution_table_parser__Parser,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-232, /* Location */
+231, /* Parser */
 },
 };
-const struct types resolution_table_location__Location = {
+const struct types resolution_table_parser__Parser = {
 0, /* dummy */
 {
-&type_location__Location, /* OTHER: Location */
 }
 };
-/* runtime type MClassPOSetBuilder */
-const struct type type_layout_builders__MClassPOSetBuilder = {
-626,
-"MClassPOSetBuilder", /* class_name_string */
+/* runtime type Stderr */
+const struct type type_file__Stderr = {
+659,
+"Stderr", /* class_name_string */
 3,
 0,
-&resolution_table_layout_builders__MClassPOSetBuilder,
+&resolution_table_file__Stderr,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-233, /* POSetBuilder[MClass] */
-626, /* MClassPOSetBuilder */
+205, /* OFStream */
+659, /* Stderr */
 },
 };
-const struct types resolution_table_layout_builders__MClassPOSetBuilder = {
+const struct types resolution_table_file__Stderr = {
 0, /* dummy */
 {
-&type_abstract_collection__Setmodel__MClass, /* Set[POSetBuilder#0]: Set[MClass] */
 }
 };
-/* runtime type POSetBuilder[MClass] */
-const struct type type_layout_builders__POSetBuildermodel__MClass = {
-233,
-"POSetBuilder[MClass]", /* class_name_string */
-2,
-0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-233, /* POSetBuilder[MClass] */
-},
-};
-/* runtime type HashMap[MClass, Array[nullable MClass]] */
-const struct type type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass = {
-234,
-"HashMap[MClass, Array[nullable MClass]]", /* class_name_string */
+/* runtime type DivByZeroVisitor */
+const struct type type_div_by_zero__DivByZeroVisitor = {
+232,
+"DivByZeroVisitor", /* class_name_string */
 2,
 0,
-&resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass,
+&resolution_table_div_by_zero__DivByZeroVisitor,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-234, /* HashMap[MClass, Array[nullable MClass]] */
+232, /* DivByZeroVisitor */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass = {
+const struct types resolution_table_div_by_zero__DivByZeroVisitor = {
 0, /* dummy */
 {
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MClassarray__Arraynullable_model__MClass, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Array[nullable MClass]] */
-&type_hash_collection__HashMapValuesmodel__MClassarray__Arraynullable_model__MClass, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Array[nullable MClass]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Array[nullable MClass]]] */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_hash_collection__HashMapIteratormodel__MClassarray__Arraynullable_model__MClass, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Array[nullable MClass]] */
-&type_model__MClass, /* Map#0: MClass */
-&type_array__Arraynullable_model__MClass, /* Map#1: Array[nullable MClass] */
-&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MClass, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Array[nullable MClass]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MClass, Array[nullable MClass]] not a live type) */
-&type_array__Arraynullable_model__MClass, /* MapRead#1: Array[nullable MClass] */
-&type_model__MClass, /* HashCollection#0: MClass */
-&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MClass, /* HashCollection#1: HashMapNode[MClass, Array[nullable MClass]] */
 }
 };
-/* runtime type SeparateErasureCompilerVisitor */
-const struct type type_separate_erasure_compiler__SeparateErasureCompilerVisitor = {
-1750,
-"SeparateErasureCompilerVisitor", /* class_name_string */
-4,
+/* runtime type ANodes[AClassdef] */
+const struct type type_parser_nodes__ANodesparser_nodes__AClassdef = {
+2493,
+"ANodes[AClassdef]", /* class_name_string */
+6,
 0,
-&resolution_table_separate_erasure_compiler__SeparateErasureCompilerVisitor,
-5,
+&resolution_table_parser_nodes__ANodesparser_nodes__AClassdef,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-219, /* AbstractCompilerVisitor */
-619, /* SeparateCompilerVisitor */
-1750, /* SeparateErasureCompilerVisitor */
+632, /* Collection[ANode] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
+2493, /* ANodes[AClassdef] */
+1989, /* Collection[AClassdef] */
 },
 };
-const struct types resolution_table_separate_erasure_compiler__SeparateErasureCompilerVisitor = {
+const struct types resolution_table_parser_nodes__ANodesparser_nodes__AClassdef = {
 0, /* dummy */
 {
-&type_separate_compiler__SeparateCompiler, /* COMPILER: SeparateCompiler */
+&type_array__Arrayparser_nodes__AClassdef, /* Array[ANodes#0]: Array[AClassdef] */
+&type_parser_nodes__AClassdef, /* ANodes#0: AClassdef */
+&type_parser_nodes__AClassdef, /* Sequence#0: AClassdef */
+&type_parser_nodes__AClassdef, /* SimpleCollection#0: AClassdef */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_parser_nodes__AClassdef, /* RemovableCollection#0: AClassdef */
+&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[Sequence#0]: Collection[AClassdef] */
+&type_array__Arrayparser_nodes__AClassdef, /* Array[Sequence#0]: Array[AClassdef] */
+&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[SimpleCollection#0]: Collection[AClassdef] */
+&type_parser_nodes__AClassdef, /* Collection#0: AClassdef */
+&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[Collection#0]: Collection[AClassdef] */
+&type_parser_nodes__AClassdef, /* SequenceRead#0: AClassdef */
 }
 };
-/* runtime type GlobalCompilerVisitor */
-const struct type type_global_compiler__GlobalCompilerVisitor = {
-627,
-"GlobalCompilerVisitor", /* class_name_string */
-3,
+/* runtime type Collection[AClassdef] */
+const struct type type_abstract_collection__Collectionparser_nodes__AClassdef = {
+1989,
+"Collection[AClassdef]", /* class_name_string */
+7,
 0,
-&resolution_table_global_compiler__GlobalCompilerVisitor,
-4,
+NULL,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-219, /* AbstractCompilerVisitor */
-627, /* GlobalCompilerVisitor */
-},
-};
-const struct types resolution_table_global_compiler__GlobalCompilerVisitor = {
-0, /* dummy */
-{
-&type_global_compiler__GlobalCompiler, /* COMPILER: GlobalCompiler */
-}
+632, /* Collection[ANode] */
+-1, /* empty */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
+-1, /* empty */
+1989, /* Collection[AClassdef] */
+},
 };
-/* runtime type SeparateRuntimeFunction */
-const struct type type_separate_compiler__SeparateRuntimeFunction = {
-628,
-"SeparateRuntimeFunction", /* class_name_string */
-3,
+/* runtime type ANodes[APropdef] */
+const struct type type_parser_nodes__ANodesparser_nodes__APropdef = {
+2494,
+"ANodes[APropdef]", /* class_name_string */
+6,
 0,
-&resolution_table_separate_compiler__SeparateRuntimeFunction,
-4,
+&resolution_table_parser_nodes__ANodesparser_nodes__APropdef,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-235, /* AbstractRuntimeFunction */
-628, /* SeparateRuntimeFunction */
+632, /* Collection[ANode] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
+2494, /* ANodes[APropdef] */
+1990, /* Collection[APropdef] */
 },
 };
-const struct types resolution_table_separate_compiler__SeparateRuntimeFunction = {
+const struct types resolution_table_parser_nodes__ANodesparser_nodes__APropdef = {
 0, /* dummy */
 {
-&type_abstract_compiler__AbstractCompiler, /* COMPILER: AbstractCompiler */
-&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
+&type_array__Arrayparser_nodes__APropdef, /* Array[ANodes#0]: Array[APropdef] */
+&type_parser_nodes__APropdef, /* ANodes#0: APropdef */
+&type_parser_nodes__APropdef, /* Sequence#0: APropdef */
+&type_parser_nodes__APropdef, /* SimpleCollection#0: APropdef */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_parser_nodes__APropdef, /* RemovableCollection#0: APropdef */
+&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[Sequence#0]: Collection[APropdef] */
+&type_array__Arrayparser_nodes__APropdef, /* Array[Sequence#0]: Array[APropdef] */
+&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[SimpleCollection#0]: Collection[APropdef] */
+&type_parser_nodes__APropdef, /* Collection#0: APropdef */
+&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[Collection#0]: Collection[APropdef] */
+&type_parser_nodes__APropdef, /* SequenceRead#0: APropdef */
 }
 };
-/* runtime type AbstractRuntimeFunction */
-const struct type type_abstract_compiler__AbstractRuntimeFunction = {
-235,
-"AbstractRuntimeFunction", /* class_name_string */
-2,
+/* runtime type Collection[APropdef] */
+const struct type type_abstract_collection__Collectionparser_nodes__APropdef = {
+1990,
+"Collection[APropdef]", /* class_name_string */
+7,
 0,
 NULL,
-3,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-235, /* AbstractRuntimeFunction */
+632, /* Collection[ANode] */
+-1, /* empty */
+170, /* Collection[Object] */
+1793, /* Collection[Prod] */
+-1, /* empty */
+1990, /* Collection[APropdef] */
 },
 };
-/* runtime type VirtualRuntimeFunction */
-const struct type type_separate_compiler__VirtualRuntimeFunction = {
-629,
-"VirtualRuntimeFunction", /* class_name_string */
-3,
+/* runtime type TransformVisitor */
+const struct type type_transform__TransformVisitor = {
+233,
+"TransformVisitor", /* class_name_string */
+2,
 0,
-&resolution_table_separate_compiler__VirtualRuntimeFunction,
-4,
+&resolution_table_transform__TransformVisitor,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-235, /* AbstractRuntimeFunction */
-629, /* VirtualRuntimeFunction */
+233, /* TransformVisitor */
 },
 };
-const struct types resolution_table_separate_compiler__VirtualRuntimeFunction = {
+const struct types resolution_table_transform__TransformVisitor = {
 0, /* dummy */
 {
-&type_abstract_compiler__AbstractCompiler, /* COMPILER: AbstractCompiler */
-&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
 }
 };
-/* runtime type Float */
-const struct type type_kernel__Float = {
-236,
-"Float", /* class_name_string */
+/* runtime type ASTValidationVisitor */
+const struct type type_astvalidation__ASTValidationVisitor = {
+234,
+"ASTValidationVisitor", /* class_name_string */
 2,
 0,
-&resolution_table_kernel__Float,
+&resolution_table_astvalidation__ASTValidationVisitor,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-236, /* Float */
+234, /* ASTValidationVisitor */
 },
 };
-const struct types resolution_table_kernel__Float = {
+const struct types resolution_table_astvalidation__ASTValidationVisitor = {
 0, /* dummy */
 {
 }
 };
-/* runtime type HashSet[MClassDef] */
-const struct type type_hash_collection__HashSetmodel__MClassDef = {
-2428,
-"HashSet[MClassDef]", /* class_name_string */
-7,
+/* runtime type List[ANode] */
+const struct type type_list__Listparser_nodes__ANode = {
+1991,
+"List[ANode]", /* class_name_string */
+5,
 0,
-&resolution_table_hash_collection__HashSetmodel__MClassDef,
-8,
+&resolution_table_list__Listparser_nodes__ANode,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-591, /* Collection[MClassDef] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-1931, /* Set[MClassDef] */
-1740, /* HashSet[Object] */
-2428, /* HashSet[MClassDef] */
+632, /* Collection[ANode] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1991, /* List[ANode] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetmodel__MClassDef = {
+const struct types resolution_table_list__Listparser_nodes__ANode = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MClassDef, /* HashSetNode[HashSet#0]: HashSetNode[MClassDef] */
-&type_hash_collection__HashSetIteratormodel__MClassDef, /* HashSetIterator[HashSet#0]: HashSetIterator[MClassDef] */
-&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[HashSet#0]: Collection[MClassDef] */
-&type_model__MClassDef, /* SimpleCollection#0: MClassDef */
-&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[Set#0]: Collection[MClassDef] */
-NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClassDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MClassDef]] */
-NULL, /* empty */
-&type_model__MClassDef, /* RemovableCollection#0: MClassDef */
-NULL, /* empty */
+&type_list__Listparser_nodes__ANode, /* List[List#0]: List[ANode] */
+&type_list__ListNodeparser_nodes__ANode, /* ListNode[List#0]: ListNode[ANode] */
+&type_parser_nodes__ANode, /* Sequence#0: ANode */
+&type_parser_nodes__ANode, /* SimpleCollection#0: ANode */
+&type_list__ListIteratorparser_nodes__ANode, /* ListIterator[List#0]: ListIterator[ANode] */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[List#0]: Collection[ANode] */
+&type_parser_nodes__ANode, /* List#0: ANode */
 NULL, /* empty */
-&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[SimpleCollection#0]: Collection[MClassDef] */
-&type_model__MClassDef, /* Collection#0: MClassDef */
-&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[Collection#0]: Collection[MClassDef] */
-&type_model__MClassDef, /* HashCollection#0: MClassDef */
-&type_hash_collection__HashSetNodemodel__MClassDef, /* HashCollection#1: HashSetNode[MClassDef] */
+&type_parser_nodes__ANode, /* RemovableCollection#0: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Sequence#0]: Collection[ANode] */
+&type_array__Arrayparser_nodes__ANode, /* Array[Sequence#0]: Array[ANode] */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[SimpleCollection#0]: Collection[ANode] */
+&type_parser_nodes__ANode, /* Collection#0: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Collection#0]: Collection[ANode] */
+&type_parser_nodes__ANode, /* SequenceRead#0: ANode */
 }
 };
-/* runtime type Set[MClassDef] */
-const struct type type_abstract_collection__Setmodel__MClassDef = {
-1931,
-"Set[MClassDef]", /* class_name_string */
+/* runtime type HashSet[ANode] */
+const struct type type_hash_collection__HashSetparser_nodes__ANode = {
+2285,
+"HashSet[ANode]", /* class_name_string */
 5,
 0,
-NULL,
-6,
+&resolution_table_hash_collection__HashSetparser_nodes__ANode,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-591, /* Collection[MClassDef] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-1931, /* Set[MClassDef] */
+632, /* Collection[ANode] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+2285, /* HashSet[ANode] */
+1794, /* HashSet[Object] */
 },
 };
-/* runtime type MTypePOSetBuilder */
-const struct type type_layout_builders__MTypePOSetBuilder = {
-630,
-"MTypePOSetBuilder", /* class_name_string */
+const struct types resolution_table_hash_collection__HashSetparser_nodes__ANode = {
+0, /* dummy */
+{
+&type_hash_collection__HashSetNodeparser_nodes__ANode, /* HashSetNode[HashSet#0]: HashSetNode[ANode] */
+&type_hash_collection__HashSetIteratorparser_nodes__ANode, /* HashSetIterator[HashSet#0]: HashSetIterator[ANode] */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[HashSet#0]: Collection[ANode] */
+&type_parser_nodes__ANode, /* SimpleCollection#0: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Set#0]: Collection[ANode] */
+NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodeparser_nodes__ANode, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[ANode]] */
+NULL, /* empty */
+&type_parser_nodes__ANode, /* RemovableCollection#0: ANode */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[SimpleCollection#0]: Collection[ANode] */
+&type_parser_nodes__ANode, /* Collection#0: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Collection#0]: Collection[ANode] */
+&type_parser_nodes__ANode, /* HashCollection#0: ANode */
+&type_hash_collection__HashSetNodeparser_nodes__ANode, /* HashCollection#1: HashSetNode[ANode] */
+}
+};
+/* runtime type MClassPOSetBuilder */
+const struct type type_layout_builders__MClassPOSetBuilder = {
+660,
+"MClassPOSetBuilder", /* class_name_string */
 3,
 0,
-&resolution_table_layout_builders__MTypePOSetBuilder,
+&resolution_table_layout_builders__MClassPOSetBuilder,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-237, /* POSetBuilder[MType] */
-630, /* MTypePOSetBuilder */
+235, /* POSetBuilder[MClass] */
+660, /* MClassPOSetBuilder */
 },
 };
-const struct types resolution_table_layout_builders__MTypePOSetBuilder = {
+const struct types resolution_table_layout_builders__MClassPOSetBuilder = {
 0, /* dummy */
 {
-&type_abstract_collection__Setmodel__MType, /* Set[POSetBuilder#0]: Set[MType] */
+&type_abstract_collection__Setmodel__MClass, /* Set[POSetBuilder#0]: Set[MClass] */
 }
 };
-/* runtime type POSetBuilder[MType] */
-const struct type type_layout_builders__POSetBuildermodel__MType = {
-237,
-"POSetBuilder[MType]", /* class_name_string */
+/* runtime type POSetBuilder[MClass] */
+const struct type type_layout_builders__POSetBuildermodel__MClass = {
+235,
+"POSetBuilder[MClass]", /* class_name_string */
 2,
 0,
 NULL,
@@ -7320,2678 +6733,3268 @@ NULL,
 {
 0, /* nullable Object */
 1, /* Object */
-237, /* POSetBuilder[MType] */
+235, /* POSetBuilder[MClass] */
 },
 };
-/* runtime type HashMap[MClassType, Set[MType]] */
-const struct type type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType = {
-1932,
-"HashMap[MClassType, Set[MType]]", /* class_name_string */
-5,
+/* runtime type HashMap[MClass, Array[nullable MClass]] */
+const struct type type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass = {
+236,
+"HashMap[MClass, Array[nullable MClass]]", /* class_name_string */
+2,
 0,
-&resolution_table_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType,
-6,
-{
-0, /* nullable Object */
-1, /* Object */
-238, /* Map[MType, Set[MType]] */
-631, /* HashMap[MType, Set[MType]] */
-632, /* Map[MClassType, Set[MType]] */
-1932, /* HashMap[MClassType, Set[MType]] */
-},
-};
-const struct types resolution_table_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType = {
-0, /* dummy */
-{
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MClassTypeabstract_collection__Setmodel__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassType, Set[MType]] */
-&type_hash_collection__HashMapValuesmodel__MClassTypeabstract_collection__Setmodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassType, Set[MType]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassTypeabstract_collection__Setmodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassType, Set[MType]]] */
-&type_model__MClassType, /* MapRead#0: MClassType */
-&type_hash_collection__HashMapIteratormodel__MClassTypeabstract_collection__Setmodel__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClassType, Set[MType]] */
-&type_model__MClassType, /* Map#0: MClassType */
-&type_abstract_collection__Setmodel__MType, /* Map#1: Set[MType] */
-&type_hash_collection__HashMapNodemodel__MClassTypeabstract_collection__Setmodel__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClassType, Set[MType]] */
-&type_abstract_collection__Mapmodel__MClassTypeabstract_collection__Setmodel__MType, /* Map[Map#0, Map#1]: Map[MClassType, Set[MType]] */
-&type_abstract_collection__Setmodel__MType, /* MapRead#1: Set[MType] */
-&type_model__MClassType, /* HashCollection#0: MClassType */
-&type_hash_collection__HashMapNodemodel__MClassTypeabstract_collection__Setmodel__MType, /* HashCollection#1: HashMapNode[MClassType, Set[MType]] */
-}
-};
-/* runtime type HashMap[MType, Set[MType]] */
-const struct type type_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType = {
-631,
-"HashMap[MType, Set[MType]]", /* class_name_string */
+&resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass,
 3,
-0,
-&resolution_table_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType,
-4,
 {
 0, /* nullable Object */
 1, /* Object */
-238, /* Map[MType, Set[MType]] */
-631, /* HashMap[MType, Set[MType]] */
+236, /* HashMap[MClass, Array[nullable MClass]] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType = {
+const struct types resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass = {
 0, /* dummy */
 {
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MTypeabstract_collection__Setmodel__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Set[MType]] */
-&type_hash_collection__HashMapValuesmodel__MTypeabstract_collection__Setmodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Set[MType]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypeabstract_collection__Setmodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Set[MType]]] */
-&type_model__MType, /* MapRead#0: MType */
-&type_hash_collection__HashMapIteratormodel__MTypeabstract_collection__Setmodel__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Set[MType]] */
-&type_model__MType, /* Map#0: MType */
-&type_abstract_collection__Setmodel__MType, /* Map#1: Set[MType] */
-&type_hash_collection__HashMapNodemodel__MTypeabstract_collection__Setmodel__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Set[MType]] */
-&type_abstract_collection__Mapmodel__MTypeabstract_collection__Setmodel__MType, /* Map[Map#0, Map#1]: Map[MType, Set[MType]] */
-&type_abstract_collection__Setmodel__MType, /* MapRead#1: Set[MType] */
-&type_model__MType, /* HashCollection#0: MType */
-&type_hash_collection__HashMapNodemodel__MTypeabstract_collection__Setmodel__MType, /* HashCollection#1: HashMapNode[MType, Set[MType]] */
+&type_hash_collection__HashMapKeysmodel__MClassarray__Arraynullable_model__MClass, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Array[nullable MClass]] */
+&type_hash_collection__HashMapValuesmodel__MClassarray__Arraynullable_model__MClass, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Array[nullable MClass]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Array[nullable MClass]]] */
+&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassarray__Arraynullable_model__MClass, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Array[nullable MClass]] */
+&type_model__MClass, /* Map#0: MClass */
+&type_array__Arraynullable_model__MClass, /* Map#1: Array[nullable MClass] */
+&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MClass, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Array[nullable MClass]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MClass, Array[nullable MClass]] not a live type) */
+&type_array__Arraynullable_model__MClass, /* MapRead#1: Array[nullable MClass] */
+&type_model__MClass, /* HashCollection#0: MClass */
+&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MClass, /* HashCollection#1: HashMapNode[MClass, Array[nullable MClass]] */
 }
 };
-/* runtime type Map[MType, Set[MType]] */
-const struct type type_abstract_collection__Mapmodel__MTypeabstract_collection__Setmodel__MType = {
-238,
-"Map[MType, Set[MType]]", /* class_name_string */
-2,
-0,
-NULL,
-3,
+/* runtime type Array[nullable MPropDef] */
+const struct type type_array__Arraynullable_model__MPropDef = {
+1992,
+"Array[nullable MPropDef]", /* class_name_string */
+10,
+0,
+&resolution_table_array__Arraynullable_model__MPropDef,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
-238, /* Map[MType, Set[MType]] */
+202, /* Collection[nullable MPropDef] */
+169, /* SequenceRead[nullable Object] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+1801, /* AbstractArrayRead[nullable MPropDef] */
+-1, /* empty */
+-1, /* empty */
+1992, /* Array[nullable MPropDef] */
 },
 };
-/* runtime type Map[MClassType, Set[MType]] */
-const struct type type_abstract_collection__Mapmodel__MClassTypeabstract_collection__Setmodel__MType = {
-632,
-"Map[MClassType, Set[MType]]", /* class_name_string */
-4,
+const struct types resolution_table_array__Arraynullable_model__MPropDef = {
+0, /* dummy */
+{
+&type_array__Arraynullable_model__MPropDef, /* Array[Array#0]: Array[nullable MPropDef] */
+&type_array__NativeArraynullable_model__MPropDef, /* NativeArray[Array#0]: NativeArray[nullable MPropDef] */
+&type_nullable_model__MPropDef, /* Sequence#0: nullable MPropDef */
+&type_nullable_model__MPropDef, /* SimpleCollection#0: nullable MPropDef */
+&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[Array#0]: Collection[nullable MPropDef] */
+&type_nullable_model__MPropDef, /* Array#0: nullable MPropDef */
+&type_array__NativeArraynullable_model__MPropDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable MPropDef] */
+&type_nullable_model__MPropDef, /* AbstractArray#0: nullable MPropDef */
+&type_nullable_model__MPropDef, /* RemovableCollection#0: nullable MPropDef */
+&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[Sequence#0]: Collection[nullable MPropDef] */
+&type_array__Arraynullable_model__MPropDef, /* Array[Sequence#0]: Array[nullable MPropDef] */
+&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[SimpleCollection#0]: Collection[nullable MPropDef] */
+&type_nullable_model__MPropDef, /* Collection#0: nullable MPropDef */
+&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[Collection#0]: Collection[nullable MPropDef] */
+&type_nullable_model__MPropDef, /* SequenceRead#0: nullable MPropDef */
+&type_nullable_model__MPropDef, /* AbstractArrayRead#0: nullable MPropDef */
+&type_array__Arraynullable_model__MPropDef, /* Array[AbstractArrayRead#0]: Array[nullable MPropDef] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MPropDef] not a live type) */
+&type_array__ArrayIteratornullable_model__MPropDef, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable MPropDef] */
+}
+};
+/* runtime type AbstractArrayRead[nullable MPropDef] */
+const struct type type_array__AbstractArrayReadnullable_model__MPropDef = {
+1801,
+"AbstractArrayRead[nullable MPropDef]", /* class_name_string */
+7,
 0,
 NULL,
-5,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-238, /* Map[MType, Set[MType]] */
+202, /* Collection[nullable MPropDef] */
+169, /* SequenceRead[nullable Object] */
+-1, /* empty */
 -1, /* empty */
-632, /* Map[MClassType, Set[MType]] */
+-1, /* empty */
+1801, /* AbstractArrayRead[nullable MPropDef] */
 },
 };
-/* runtime type ResolutionBMizer */
-const struct type type_layout_builders__ResolutionBMizer = {
-239,
-"ResolutionBMizer", /* class_name_string */
+/* runtime type CollectSuperSends */
+const struct type type_collect_super_sends__CollectSuperSends = {
+237,
+"CollectSuperSends", /* class_name_string */
 2,
 0,
-&resolution_table_layout_builders__ResolutionBMizer,
+&resolution_table_collect_super_sends__CollectSuperSends,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-239, /* ResolutionBMizer */
+237, /* CollectSuperSends */
 },
 };
-const struct types resolution_table_layout_builders__ResolutionBMizer = {
+const struct types resolution_table_collect_super_sends__CollectSuperSends = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ResolutionHasher */
-const struct type type_layout_builders__ResolutionHasher = {
-240,
-"ResolutionHasher", /* class_name_string */
-2,
+/* runtime type ArraySet[MMethodDef] */
+const struct type type_array__ArraySetmodel__MMethodDef = {
+2623,
+"ArraySet[MMethodDef]", /* class_name_string */
+6,
 0,
-&resolution_table_layout_builders__ResolutionHasher,
-3,
+&resolution_table_array__ArraySetmodel__MMethodDef,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-240, /* ResolutionHasher */
+202, /* Collection[nullable MPropDef] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+2623, /* ArraySet[MMethodDef] */
+1984, /* Set[PropertyLayoutElement] */
+1985, /* Collection[MPropDef] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+2273, /* Collection[MMethodDef] */
 },
 };
-const struct types resolution_table_layout_builders__ResolutionHasher = {
+const struct types resolution_table_array__ArraySetmodel__MMethodDef = {
 0, /* dummy */
 {
+&type_array__ArraySetIteratormodel__MMethodDef, /* ArraySetIterator[ArraySet#0]: ArraySetIterator[MMethodDef] */
+&type_array__Arraymodel__MMethodDef, /* Array[ArraySet#0]: Array[MMethodDef] */
 NULL, /* empty */
+&type_model__MMethodDef, /* SimpleCollection#0: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Set#0]: Collection[MMethodDef] */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MMethodDef, /* RemovableCollection#0: MMethodDef */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_abstract_collection__Mapmodel__MClassTypeabstract_collection__Setmodel__MType, /* Map[PerfectHasher#0, Set[PerfectHasher#1]]: Map[MClassType, Set[MType]] */
-&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[PerfectHasher#1, Int]: Map[MType, Int] */
-&type_hash_collection__HashMapmodel__MClassTypekernel__Int, /* HashMap[PerfectHasher#0, Int]: HashMap[MClassType, Int] */
-&type_abstract_collection__Setmodel__MType, /* Set[PerfectHasher#1]: Set[MType] */
-&type_abstract_collection__Mapmodel__MClassTypekernel__Int, /* Map[PerfectHasher#0, Int]: Map[MClassType, Int] */
-&type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Mapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#0, Map[PerfectHasher#1, Int]]: HashMap[MClassType, Map[MType, Int]] */
-NULL, /* empty */
-&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#1, Int]: HashMap[MType, Int] */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[SimpleCollection#0]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* Collection#0: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Collection#0]: Collection[MMethodDef] */
 }
 };
-/* runtime type ResolutionColorer */
-const struct type type_layout_builders__ResolutionColorer = {
-241,
-"ResolutionColorer", /* class_name_string */
-2,
+/* runtime type Array[MPropDef] */
+const struct type type_array__Arraymodel__MPropDef = {
+2690,
+"Array[MPropDef]", /* class_name_string */
+16,
 0,
-&resolution_table_layout_builders__ResolutionColorer,
-3,
+&resolution_table_array__Arraymodel__MPropDef,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
-241, /* ResolutionColorer */
+202, /* Collection[nullable MPropDef] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1782, /* AbstractArrayRead[Object] */
+1801, /* AbstractArrayRead[nullable MPropDef] */
+1985, /* Collection[MPropDef] */
+1973, /* Array[Object] */
+1992, /* Array[nullable MPropDef] */
+2264, /* AbstractArrayRead[PropertyLayoutElement] */
+-1, /* empty */
+2553, /* Array[PropertyLayoutElement] */
+2636, /* AbstractArrayRead[MPropDef] */
+-1, /* empty */
+2690, /* Array[MPropDef] */
 },
 };
-const struct types resolution_table_layout_builders__ResolutionColorer = {
+const struct types resolution_table_array__Arraymodel__MPropDef = {
 0, /* dummy */
 {
+&type_array__Arraymodel__MPropDef, /* Array[Array#0]: Array[MPropDef] */
+&type_array__NativeArraymodel__MPropDef, /* NativeArray[Array#0]: NativeArray[MPropDef] */
+&type_model__MPropDef, /* Sequence#0: MPropDef */
+&type_model__MPropDef, /* SimpleCollection#0: MPropDef */
+&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[Array#0]: Collection[MPropDef] */
+&type_model__MPropDef, /* Array#0: MPropDef */
+&type_array__NativeArraymodel__MPropDef, /* NativeArray[ArrayCapable#0]: NativeArray[MPropDef] */
+&type_model__MPropDef, /* AbstractArray#0: MPropDef */
+&type_model__MPropDef, /* RemovableCollection#0: MPropDef */
+&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[Sequence#0]: Collection[MPropDef] */
+&type_array__Arraymodel__MPropDef, /* Array[Sequence#0]: Array[MPropDef] */
+&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[SimpleCollection#0]: Collection[MPropDef] */
+&type_model__MPropDef, /* Collection#0: MPropDef */
+&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[Collection#0]: Collection[MPropDef] */
+&type_model__MPropDef, /* SequenceRead#0: MPropDef */
+&type_model__MPropDef, /* AbstractArrayRead#0: MPropDef */
+&type_array__Arraymodel__MPropDef, /* Array[AbstractArrayRead#0]: Array[MPropDef] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MPropDef] not a live type) */
+&type_array__ArrayIteratormodel__MPropDef, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MPropDef] */
 }
 };
-/* runtime type HashMap[MType, Int] */
-const struct type type_hash_collection__HashMapmodel__MTypekernel__Int = {
-633,
-"HashMap[MType, Int]", /* class_name_string */
-3,
+/* runtime type AbstractArrayRead[MPropDef] */
+const struct type type_array__AbstractArrayReadmodel__MPropDef = {
+2636,
+"AbstractArrayRead[MPropDef]", /* class_name_string */
+14,
 0,
-&resolution_table_hash_collection__HashMapmodel__MTypekernel__Int,
-4,
+NULL,
+15,
 {
 0, /* nullable Object */
 1, /* Object */
-242, /* Map[MType, Int] */
-633, /* HashMap[MType, Int] */
+202, /* Collection[nullable MPropDef] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1782, /* AbstractArrayRead[Object] */
+1801, /* AbstractArrayRead[nullable MPropDef] */
+1985, /* Collection[MPropDef] */
+-1, /* empty */
+-1, /* empty */
+2264, /* AbstractArrayRead[PropertyLayoutElement] */
+-1, /* empty */
+-1, /* empty */
+2636, /* AbstractArrayRead[MPropDef] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MTypekernel__Int = {
-0, /* dummy */
-{
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MTypekernel__Int, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Int] */
-&type_hash_collection__HashMapValuesmodel__MTypekernel__Int, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Int] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypekernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Int]] */
-&type_model__MType, /* MapRead#0: MType */
-&type_hash_collection__HashMapIteratormodel__MTypekernel__Int, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Int] */
-&type_model__MType, /* Map#0: MType */
-&type_kernel__Int, /* Map#1: Int */
-&type_hash_collection__HashMapNodemodel__MTypekernel__Int, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Int] */
-&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[Map#0, Map#1]: Map[MType, Int] */
-&type_kernel__Int, /* MapRead#1: Int */
-&type_model__MType, /* HashCollection#0: MType */
-&type_hash_collection__HashMapNodemodel__MTypekernel__Int, /* HashCollection#1: HashMapNode[MType, Int] */
-}
-};
-/* runtime type Map[MType, Int] */
-const struct type type_abstract_collection__Mapmodel__MTypekernel__Int = {
-242,
-"Map[MType, Int]", /* class_name_string */
-2,
+/* runtime type SeparateErasureCompilerVisitor */
+const struct type type_separate_erasure_compiler__SeparateErasureCompilerVisitor = {
+1802,
+"SeparateErasureCompilerVisitor", /* class_name_string */
+4,
 0,
-NULL,
-3,
+&resolution_table_separate_erasure_compiler__SeparateErasureCompilerVisitor,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-242, /* Map[MType, Int] */
+222, /* AbstractCompilerVisitor */
+655, /* SeparateCompilerVisitor */
+1802, /* SeparateErasureCompilerVisitor */
 },
 };
-/* runtime type Array[Match] */
-const struct type type_array__Arraystring_search__Match = {
-2499,
-"Array[Match]", /* class_name_string */
-7,
+const struct types resolution_table_separate_erasure_compiler__SeparateErasureCompilerVisitor = {
+0, /* dummy */
+{
+&type_separate_compiler__SeparateCompiler, /* COMPILER: SeparateCompiler */
+}
+};
+/* runtime type GlobalCompilerVisitor */
+const struct type type_global_compiler__GlobalCompilerVisitor = {
+661,
+"GlobalCompilerVisitor", /* class_name_string */
+3,
 0,
-&resolution_table_array__Arraystring_search__Match,
-10,
+&resolution_table_global_compiler__GlobalCompilerVisitor,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-634, /* Collection[Match] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2219, /* AbstractArrayRead[Match] */
-1728, /* AbstractArrayRead[Object] */
-2499, /* Array[Match] */
--1, /* empty */
-1911, /* Array[Object] */
+222, /* AbstractCompilerVisitor */
+661, /* GlobalCompilerVisitor */
 },
 };
-const struct types resolution_table_array__Arraystring_search__Match = {
+const struct types resolution_table_global_compiler__GlobalCompilerVisitor = {
 0, /* dummy */
 {
-&type_array__Arraystring_search__Match, /* Array[Array#0]: Array[Match] */
-&type_array__NativeArraystring_search__Match, /* NativeArray[Array#0]: NativeArray[Match] */
-&type_string_search__Match, /* Sequence#0: Match */
-&type_string_search__Match, /* SimpleCollection#0: Match */
-&type_abstract_collection__Collectionstring_search__Match, /* Collection[Array#0]: Collection[Match] */
-&type_string_search__Match, /* Array#0: Match */
-&type_array__NativeArraystring_search__Match, /* NativeArray[ArrayCapable#0]: NativeArray[Match] */
-&type_string_search__Match, /* AbstractArray#0: Match */
-&type_string_search__Match, /* RemovableCollection#0: Match */
-&type_abstract_collection__Collectionstring_search__Match, /* Collection[Sequence#0]: Collection[Match] */
-&type_array__Arraystring_search__Match, /* Array[Sequence#0]: Array[Match] */
-&type_abstract_collection__Collectionstring_search__Match, /* Collection[SimpleCollection#0]: Collection[Match] */
-&type_string_search__Match, /* Collection#0: Match */
-&type_abstract_collection__Collectionstring_search__Match, /* Collection[Collection#0]: Collection[Match] */
-&type_string_search__Match, /* SequenceRead#0: Match */
-&type_string_search__Match, /* AbstractArrayRead#0: Match */
-&type_array__Arraystring_search__Match, /* Array[AbstractArrayRead#0]: Array[Match] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Match] not a live type) */
-&type_array__ArrayIteratorstring_search__Match, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Match] */
+&type_global_compiler__GlobalCompiler, /* COMPILER: GlobalCompiler */
 }
 };
-/* runtime type Collection[Match] */
-const struct type type_abstract_collection__Collectionstring_search__Match = {
-634,
-"Collection[Match]", /* class_name_string */
+/* runtime type RuntimeVariable */
+const struct type type_abstract_compiler__RuntimeVariable = {
+238,
+"RuntimeVariable", /* class_name_string */
 2,
 0,
-NULL,
-5,
+&resolution_table_abstract_compiler__RuntimeVariable,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-634, /* Collection[Match] */
--1, /* empty */
-164, /* Collection[Object] */
+238, /* RuntimeVariable */
 },
 };
-/* runtime type AbstractArrayRead[Match] */
-const struct type type_array__AbstractArrayReadstring_search__Match = {
-2219,
-"AbstractArrayRead[Match]", /* class_name_string */
-5,
+const struct types resolution_table_abstract_compiler__RuntimeVariable = {
+0, /* dummy */
+{
+}
+};
+/* runtime type SeparateRuntimeFunction */
+const struct type type_separate_compiler__SeparateRuntimeFunction = {
+662,
+"SeparateRuntimeFunction", /* class_name_string */
+3,
 0,
-NULL,
-7,
+&resolution_table_separate_compiler__SeparateRuntimeFunction,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-634, /* Collection[Match] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2219, /* AbstractArrayRead[Match] */
-1728, /* AbstractArrayRead[Object] */
+239, /* AbstractRuntimeFunction */
+662, /* SeparateRuntimeFunction */
 },
 };
-/* runtime type Match */
-const struct type type_string_search__Match = {
-243,
-"Match", /* class_name_string */
+const struct types resolution_table_separate_compiler__SeparateRuntimeFunction = {
+0, /* dummy */
+{
+&type_abstract_compiler__AbstractCompiler, /* COMPILER: AbstractCompiler */
+&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
+}
+};
+/* runtime type AbstractRuntimeFunction */
+const struct type type_abstract_compiler__AbstractRuntimeFunction = {
+239,
+"AbstractRuntimeFunction", /* class_name_string */
 2,
 0,
-&resolution_table_string_search__Match,
+NULL,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-243, /* Match */
+239, /* AbstractRuntimeFunction */
 },
 };
-const struct types resolution_table_string_search__Match = {
-0, /* dummy */
-{
-}
-};
-/* runtime type Array[ReduceAction] */
-const struct type type_array__Arrayparser__ReduceAction = {
-2500,
-"Array[ReduceAction]", /* class_name_string */
-7,
+/* runtime type VirtualRuntimeFunction */
+const struct type type_separate_compiler__VirtualRuntimeFunction = {
+663,
+"VirtualRuntimeFunction", /* class_name_string */
+3,
 0,
-&resolution_table_array__Arrayparser__ReduceAction,
-10,
+&resolution_table_separate_compiler__VirtualRuntimeFunction,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-635, /* Collection[ReduceAction] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2220, /* AbstractArrayRead[ReduceAction] */
-1728, /* AbstractArrayRead[Object] */
-2500, /* Array[ReduceAction] */
--1, /* empty */
-1911, /* Array[Object] */
+239, /* AbstractRuntimeFunction */
+663, /* VirtualRuntimeFunction */
 },
 };
-const struct types resolution_table_array__Arrayparser__ReduceAction = {
+const struct types resolution_table_separate_compiler__VirtualRuntimeFunction = {
 0, /* dummy */
 {
-&type_array__Arrayparser__ReduceAction, /* Array[Array#0]: Array[ReduceAction] */
-&type_array__NativeArrayparser__ReduceAction, /* NativeArray[Array#0]: NativeArray[ReduceAction] */
-&type_parser__ReduceAction, /* Sequence#0: ReduceAction */
-&type_parser__ReduceAction, /* SimpleCollection#0: ReduceAction */
-&type_abstract_collection__Collectionparser__ReduceAction, /* Collection[Array#0]: Collection[ReduceAction] */
-&type_parser__ReduceAction, /* Array#0: ReduceAction */
-&type_array__NativeArrayparser__ReduceAction, /* NativeArray[ArrayCapable#0]: NativeArray[ReduceAction] */
-&type_parser__ReduceAction, /* AbstractArray#0: ReduceAction */
-&type_parser__ReduceAction, /* RemovableCollection#0: ReduceAction */
-&type_abstract_collection__Collectionparser__ReduceAction, /* Collection[Sequence#0]: Collection[ReduceAction] */
-&type_array__Arrayparser__ReduceAction, /* Array[Sequence#0]: Array[ReduceAction] */
-&type_abstract_collection__Collectionparser__ReduceAction, /* Collection[SimpleCollection#0]: Collection[ReduceAction] */
-&type_parser__ReduceAction, /* Collection#0: ReduceAction */
-&type_abstract_collection__Collectionparser__ReduceAction, /* Collection[Collection#0]: Collection[ReduceAction] */
-&type_parser__ReduceAction, /* SequenceRead#0: ReduceAction */
-&type_parser__ReduceAction, /* AbstractArrayRead#0: ReduceAction */
-&type_array__Arrayparser__ReduceAction, /* Array[AbstractArrayRead#0]: Array[ReduceAction] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[ReduceAction] not a live type) */
-&type_array__ArrayIteratorparser__ReduceAction, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[ReduceAction] */
+&type_abstract_compiler__AbstractCompiler, /* COMPILER: AbstractCompiler */
+&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
 }
 };
-/* runtime type Collection[ReduceAction] */
-const struct type type_abstract_collection__Collectionparser__ReduceAction = {
-635,
-"Collection[ReduceAction]", /* class_name_string */
+/* runtime type Process */
+const struct type type_exec__Process = {
+240,
+"Process", /* class_name_string */
 2,
 0,
-NULL,
-5,
+&resolution_table_exec__Process,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-635, /* Collection[ReduceAction] */
--1, /* empty */
-164, /* Collection[Object] */
+240, /* Process */
 },
 };
-/* runtime type AbstractArrayRead[ReduceAction] */
-const struct type type_array__AbstractArrayReadparser__ReduceAction = {
-2220,
-"AbstractArrayRead[ReduceAction]", /* class_name_string */
+const struct types resolution_table_exec__Process = {
+0, /* dummy */
+{
+}
+};
+/* runtime type MGenericType */
+const struct type type_model__MGenericType = {
+1993,
+"MGenericType", /* class_name_string */
 5,
 0,
-NULL,
-7,
+&resolution_table_model__MGenericType,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-635, /* Collection[ReduceAction] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2220, /* AbstractArrayRead[ReduceAction] */
-1728, /* AbstractArrayRead[Object] */
+2, /* nullable MType */
+630, /* MType */
+1803, /* MClassType */
+1993, /* MGenericType */
 },
 };
-/* runtime type ReduceAction0 */
-const struct type type_parser__ReduceAction0 = {
-636,
-"ReduceAction0", /* class_name_string */
-3,
-0,
-&resolution_table_parser__ReduceAction0,
+const struct types resolution_table_model__MGenericType = {
+0, /* dummy */
+{
+}
+};
+/* runtime type MClassType */
+const struct type type_model__MClassType = {
+1803,
+"MClassType", /* class_name_string */
 4,
+0,
+&resolution_table_model__MClassType,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-636, /* ReduceAction0 */
+2, /* nullable MType */
+630, /* MType */
+1803, /* MClassType */
 },
 };
-const struct types resolution_table_parser__ReduceAction0 = {
+const struct types resolution_table_model__MClassType = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction */
-const struct type type_parser__ReduceAction = {
-244,
-"ReduceAction", /* class_name_string */
+/* runtime type HashMap[MModule, Set[MClassDef]] */
+const struct type type_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassDef = {
+241,
+"HashMap[MModule, Set[MClassDef]]", /* class_name_string */
 2,
 0,
-NULL,
+&resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassDef,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
+241, /* HashMap[MModule, Set[MClassDef]] */
 },
 };
-/* runtime type ReduceAction1 */
-const struct type type_parser__ReduceAction1 = {
-637,
-"ReduceAction1", /* class_name_string */
-3,
+const struct types resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassDef = {
+0, /* dummy */
+{
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, Set[MClassDef]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, Set[MClassDef]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, Set[MClassDef]]] */
+&type_mmodule__MModule, /* MapRead#0: MModule */
+&type_hash_collection__HashMapIteratormmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MModule, Set[MClassDef]] */
+&type_mmodule__MModule, /* Map#0: MModule */
+&type_abstract_collection__Setmodel__MClassDef, /* Map#1: Set[MClassDef] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MModule, Set[MClassDef]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MModule, Set[MClassDef]] not a live type) */
+&type_abstract_collection__Setmodel__MClassDef, /* MapRead#1: Set[MClassDef] */
+&type_mmodule__MModule, /* HashCollection#0: MModule */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashCollection#1: HashMapNode[MModule, Set[MClassDef]] */
+}
+};
+/* runtime type HashMap[MModule, Set[MClass]] */
+const struct type type_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClass = {
+242,
+"HashMap[MModule, Set[MClass]]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction1,
-4,
+&resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClass,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-637, /* ReduceAction1 */
+242, /* HashMap[MModule, Set[MClass]] */
 },
 };
-const struct types resolution_table_parser__ReduceAction1 = {
+const struct types resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClass = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, Set[MClass]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, Set[MClass]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, Set[MClass]]] */
+&type_mmodule__MModule, /* MapRead#0: MModule */
+&type_hash_collection__HashMapIteratormmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MModule, Set[MClass]] */
+&type_mmodule__MModule, /* Map#0: MModule */
+&type_abstract_collection__Setmodel__MClass, /* Map#1: Set[MClass] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MModule, Set[MClass]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MModule, Set[MClass]] not a live type) */
+&type_abstract_collection__Setmodel__MClass, /* MapRead#1: Set[MClass] */
+&type_mmodule__MModule, /* HashCollection#0: MModule */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* HashCollection#1: HashMapNode[MModule, Set[MClass]] */
 }
 };
-/* runtime type ReduceAction2 */
-const struct type type_parser__ReduceAction2 = {
-638,
-"ReduceAction2", /* class_name_string */
-3,
+/* runtime type HashMap[MModule, Set[MClassType]] */
+const struct type type_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassType = {
+243,
+"HashMap[MModule, Set[MClassType]]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction2,
-4,
+&resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-638, /* ReduceAction2 */
+243, /* HashMap[MModule, Set[MClassType]] */
 },
 };
-const struct types resolution_table_parser__ReduceAction2 = {
+const struct types resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassType = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, Set[MClassType]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, Set[MClassType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, Set[MClassType]]] */
+&type_mmodule__MModule, /* MapRead#0: MModule */
+&type_hash_collection__HashMapIteratormmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MModule, Set[MClassType]] */
+&type_mmodule__MModule, /* Map#0: MModule */
+&type_abstract_collection__Setmodel__MClassType, /* Map#1: Set[MClassType] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MModule, Set[MClassType]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MModule, Set[MClassType]] not a live type) */
+&type_abstract_collection__Setmodel__MClassType, /* MapRead#1: Set[MClassType] */
+&type_mmodule__MModule, /* HashCollection#0: MModule */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashCollection#1: HashMapNode[MModule, Set[MClassType]] */
 }
 };
-/* runtime type ReduceAction3 */
-const struct type type_parser__ReduceAction3 = {
-639,
-"ReduceAction3", /* class_name_string */
+/* runtime type MClass */
+const struct type type_model__MClass = {
+664,
+"MClass", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction3,
+&resolution_table_model__MClass,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-639, /* ReduceAction3 */
+7, /* nullable MClass */
+664, /* MClass */
 },
 };
-const struct types resolution_table_parser__ReduceAction3 = {
+const struct types resolution_table_model__MClass = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction4 */
-const struct type type_parser__ReduceAction4 = {
-640,
-"ReduceAction4", /* class_name_string */
+/* runtime type nullable MClass */
+const struct type type_nullable_model__MClass = {
+7,
+"nullable MClass", /* class_name_string */
+2,
+1,
+&resolution_table_nullable_model__MClass,
 3,
-0,
-&resolution_table_parser__ReduceAction4,
-4,
 {
 0, /* nullable Object */
-1, /* Object */
-244, /* ReduceAction */
-640, /* ReduceAction4 */
+-1, /* empty */
+7, /* nullable MClass */
 },
 };
-const struct types resolution_table_parser__ReduceAction4 = {
+const struct types resolution_table_nullable_model__MClass = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction5 */
-const struct type type_parser__ReduceAction5 = {
-641,
-"ReduceAction5", /* class_name_string */
-3,
+/* runtime type Array[MGenericType] */
+const struct type type_array__Arraymodel__MGenericType = {
+2721,
+"Array[MGenericType]", /* class_name_string */
+18,
 0,
-&resolution_table_parser__ReduceAction5,
-4,
+&resolution_table_array__Arraymodel__MGenericType,
+19,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-641, /* ReduceAction5 */
+4, /* nullable Array[nullable MType] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1782, /* AbstractArrayRead[Object] */
+1791, /* Collection[MType] */
+1799, /* AbstractArrayRead[nullable MType] */
+1973, /* Array[Object] */
+1978, /* Collection[MClassType] */
+2283, /* Array[nullable MType] */
+2286, /* Collection[MGenericType] */
+2568, /* AbstractArrayRead[MType] */
+2635, /* AbstractArrayRead[MClassType] */
+2673, /* Array[MType] */
+2674, /* AbstractArrayRead[MGenericType] */
+2708, /* Array[MClassType] */
+2721, /* Array[MGenericType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction5 = {
+const struct types resolution_table_array__Arraymodel__MGenericType = {
 0, /* dummy */
 {
+&type_array__Arraymodel__MGenericType, /* Array[Array#0]: Array[MGenericType] */
+&type_array__NativeArraymodel__MGenericType, /* NativeArray[Array#0]: NativeArray[MGenericType] */
+&type_model__MGenericType, /* Sequence#0: MGenericType */
+&type_model__MGenericType, /* SimpleCollection#0: MGenericType */
+&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[Array#0]: Collection[MGenericType] */
+&type_model__MGenericType, /* Array#0: MGenericType */
+&type_array__NativeArraymodel__MGenericType, /* NativeArray[ArrayCapable#0]: NativeArray[MGenericType] */
+&type_model__MGenericType, /* AbstractArray#0: MGenericType */
+&type_model__MGenericType, /* RemovableCollection#0: MGenericType */
+&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[Sequence#0]: Collection[MGenericType] */
+&type_array__Arraymodel__MGenericType, /* Array[Sequence#0]: Array[MGenericType] */
+&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[SimpleCollection#0]: Collection[MGenericType] */
+&type_model__MGenericType, /* Collection#0: MGenericType */
+&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[Collection#0]: Collection[MGenericType] */
+&type_model__MGenericType, /* SequenceRead#0: MGenericType */
+&type_model__MGenericType, /* AbstractArrayRead#0: MGenericType */
+&type_array__Arraymodel__MGenericType, /* Array[AbstractArrayRead#0]: Array[MGenericType] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MGenericType] not a live type) */
+&type_array__ArrayIteratormodel__MGenericType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MGenericType] */
 }
 };
-/* runtime type ReduceAction6 */
-const struct type type_parser__ReduceAction6 = {
-642,
-"ReduceAction6", /* class_name_string */
-3,
+/* runtime type Collection[MGenericType] */
+const struct type type_abstract_collection__Collectionmodel__MGenericType = {
+2286,
+"Collection[MGenericType]", /* class_name_string */
+12,
 0,
-&resolution_table_parser__ReduceAction6,
-4,
+NULL,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-642, /* ReduceAction6 */
+-1, /* empty */
+-1, /* empty */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+-1, /* empty */
+1791, /* Collection[MType] */
+-1, /* empty */
+-1, /* empty */
+1978, /* Collection[MClassType] */
+-1, /* empty */
+2286, /* Collection[MGenericType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction6 = {
-0, /* dummy */
+/* runtime type AbstractArrayRead[MGenericType] */
+const struct type type_array__AbstractArrayReadmodel__MGenericType = {
+2674,
+"AbstractArrayRead[MGenericType]", /* class_name_string */
+16,
+0,
+NULL,
+17,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1782, /* AbstractArrayRead[Object] */
+1791, /* Collection[MType] */
+1799, /* AbstractArrayRead[nullable MType] */
+-1, /* empty */
+1978, /* Collection[MClassType] */
+-1, /* empty */
+2286, /* Collection[MGenericType] */
+2568, /* AbstractArrayRead[MType] */
+2635, /* AbstractArrayRead[MClassType] */
+-1, /* empty */
+2674, /* AbstractArrayRead[MGenericType] */
+},
 };
-/* runtime type ReduceAction7 */
-const struct type type_parser__ReduceAction7 = {
-643,
-"ReduceAction7", /* class_name_string */
-3,
+/* runtime type MClassDef */
+const struct type type_model__MClassDef = {
+244,
+"MClassDef", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction7,
-4,
+&resolution_table_model__MClassDef,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-643, /* ReduceAction7 */
+244, /* MClassDef */
 },
 };
-const struct types resolution_table_parser__ReduceAction7 = {
+const struct types resolution_table_model__MClassDef = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction8 */
-const struct type type_parser__ReduceAction8 = {
-644,
-"ReduceAction8", /* class_name_string */
-3,
+/* runtime type Location */
+const struct type type_location__Location = {
+245,
+"Location", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction8,
-4,
+&resolution_table_location__Location,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-644, /* ReduceAction8 */
+245, /* Location */
 },
 };
-const struct types resolution_table_parser__ReduceAction8 = {
+const struct types resolution_table_location__Location = {
 0, /* dummy */
 {
+&type_location__Location, /* OTHER: Location */
 }
 };
-/* runtime type ReduceAction9 */
-const struct type type_parser__ReduceAction9 = {
-645,
-"ReduceAction9", /* class_name_string */
-3,
+/* runtime type Float */
+const struct type type_kernel__Float = {
+246,
+"Float", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction9,
-4,
+&resolution_table_kernel__Float,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-645, /* ReduceAction9 */
+246, /* Float */
 },
 };
-const struct types resolution_table_parser__ReduceAction9 = {
+const struct types resolution_table_kernel__Float = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction10 */
-const struct type type_parser__ReduceAction10 = {
-646,
-"ReduceAction10", /* class_name_string */
-3,
+/* runtime type HashSet[MClassDef] */
+const struct type type_hash_collection__HashSetmodel__MClassDef = {
+2495,
+"HashSet[MClassDef]", /* class_name_string */
+7,
 0,
-&resolution_table_parser__ReduceAction10,
-4,
+&resolution_table_hash_collection__HashSetmodel__MClassDef,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-646, /* ReduceAction10 */
+627, /* Collection[MClassDef] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+1994, /* Set[MClassDef] */
+1794, /* HashSet[Object] */
+2495, /* HashSet[MClassDef] */
 },
 };
-const struct types resolution_table_parser__ReduceAction10 = {
+const struct types resolution_table_hash_collection__HashSetmodel__MClassDef = {
 0, /* dummy */
 {
+&type_hash_collection__HashSetNodemodel__MClassDef, /* HashSetNode[HashSet#0]: HashSetNode[MClassDef] */
+&type_hash_collection__HashSetIteratormodel__MClassDef, /* HashSetIterator[HashSet#0]: HashSetIterator[MClassDef] */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[HashSet#0]: Collection[MClassDef] */
+&type_model__MClassDef, /* SimpleCollection#0: MClassDef */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[Set#0]: Collection[MClassDef] */
+NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClassDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MClassDef]] */
+NULL, /* empty */
+&type_model__MClassDef, /* RemovableCollection#0: MClassDef */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[SimpleCollection#0]: Collection[MClassDef] */
+&type_model__MClassDef, /* Collection#0: MClassDef */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[Collection#0]: Collection[MClassDef] */
+&type_model__MClassDef, /* HashCollection#0: MClassDef */
+&type_hash_collection__HashSetNodemodel__MClassDef, /* HashCollection#1: HashSetNode[MClassDef] */
 }
 };
-/* runtime type ReduceAction11 */
-const struct type type_parser__ReduceAction11 = {
-647,
-"ReduceAction11", /* class_name_string */
-3,
+/* runtime type Set[MClassDef] */
+const struct type type_abstract_collection__Setmodel__MClassDef = {
+1994,
+"Set[MClassDef]", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction11,
-4,
+NULL,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-647, /* ReduceAction11 */
+627, /* Collection[MClassDef] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+1994, /* Set[MClassDef] */
 },
 };
-const struct types resolution_table_parser__ReduceAction11 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction12 */
-const struct type type_parser__ReduceAction12 = {
-648,
-"ReduceAction12", /* class_name_string */
+/* runtime type MTypePOSetBuilder */
+const struct type type_layout_builders__MTypePOSetBuilder = {
+665,
+"MTypePOSetBuilder", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction12,
+&resolution_table_layout_builders__MTypePOSetBuilder,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-648, /* ReduceAction12 */
+247, /* POSetBuilder[MType] */
+665, /* MTypePOSetBuilder */
 },
 };
-const struct types resolution_table_parser__ReduceAction12 = {
+const struct types resolution_table_layout_builders__MTypePOSetBuilder = {
 0, /* dummy */
 {
+&type_abstract_collection__Setmodel__MType, /* Set[POSetBuilder#0]: Set[MType] */
 }
 };
-/* runtime type ReduceAction13 */
-const struct type type_parser__ReduceAction13 = {
-649,
-"ReduceAction13", /* class_name_string */
+/* runtime type POSetBuilder[MType] */
+const struct type type_layout_builders__POSetBuildermodel__MType = {
+247,
+"POSetBuilder[MType]", /* class_name_string */
+2,
+0,
+NULL,
 3,
+{
+0, /* nullable Object */
+1, /* Object */
+247, /* POSetBuilder[MType] */
+},
+};
+/* runtime type HashMap[MClassType, Set[MType]] */
+const struct type type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType = {
+1995,
+"HashMap[MClassType, Set[MType]]", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction13,
-4,
+&resolution_table_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-649, /* ReduceAction13 */
+248, /* Map[MType, Set[MType]] */
+666, /* HashMap[MType, Set[MType]] */
+667, /* Map[MClassType, Set[MType]] */
+1995, /* HashMap[MClassType, Set[MType]] */
 },
 };
-const struct types resolution_table_parser__ReduceAction13 = {
+const struct types resolution_table_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmodel__MClassTypeabstract_collection__Setmodel__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassType, Set[MType]] */
+&type_hash_collection__HashMapValuesmodel__MClassTypeabstract_collection__Setmodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassType, Set[MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassTypeabstract_collection__Setmodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassType, Set[MType]]] */
+&type_model__MClassType, /* MapRead#0: MClassType */
+&type_hash_collection__HashMapIteratormodel__MClassTypeabstract_collection__Setmodel__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClassType, Set[MType]] */
+&type_model__MClassType, /* Map#0: MClassType */
+&type_abstract_collection__Setmodel__MType, /* Map#1: Set[MType] */
+&type_hash_collection__HashMapNodemodel__MClassTypeabstract_collection__Setmodel__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClassType, Set[MType]] */
+&type_abstract_collection__Mapmodel__MClassTypeabstract_collection__Setmodel__MType, /* Map[Map#0, Map#1]: Map[MClassType, Set[MType]] */
+&type_abstract_collection__Setmodel__MType, /* MapRead#1: Set[MType] */
+&type_model__MClassType, /* HashCollection#0: MClassType */
+&type_hash_collection__HashMapNodemodel__MClassTypeabstract_collection__Setmodel__MType, /* HashCollection#1: HashMapNode[MClassType, Set[MType]] */
 }
 };
-/* runtime type ReduceAction14 */
-const struct type type_parser__ReduceAction14 = {
-650,
-"ReduceAction14", /* class_name_string */
+/* runtime type HashMap[MType, Set[MType]] */
+const struct type type_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType = {
+666,
+"HashMap[MType, Set[MType]]", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction14,
+&resolution_table_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-650, /* ReduceAction14 */
+248, /* Map[MType, Set[MType]] */
+666, /* HashMap[MType, Set[MType]] */
 },
 };
-const struct types resolution_table_parser__ReduceAction14 = {
+const struct types resolution_table_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmodel__MTypeabstract_collection__Setmodel__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Set[MType]] */
+&type_hash_collection__HashMapValuesmodel__MTypeabstract_collection__Setmodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Set[MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypeabstract_collection__Setmodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Set[MType]]] */
+&type_model__MType, /* MapRead#0: MType */
+&type_hash_collection__HashMapIteratormodel__MTypeabstract_collection__Setmodel__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Set[MType]] */
+&type_model__MType, /* Map#0: MType */
+&type_abstract_collection__Setmodel__MType, /* Map#1: Set[MType] */
+&type_hash_collection__HashMapNodemodel__MTypeabstract_collection__Setmodel__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Set[MType]] */
+&type_abstract_collection__Mapmodel__MTypeabstract_collection__Setmodel__MType, /* Map[Map#0, Map#1]: Map[MType, Set[MType]] */
+&type_abstract_collection__Setmodel__MType, /* MapRead#1: Set[MType] */
+&type_model__MType, /* HashCollection#0: MType */
+&type_hash_collection__HashMapNodemodel__MTypeabstract_collection__Setmodel__MType, /* HashCollection#1: HashMapNode[MType, Set[MType]] */
 }
 };
-/* runtime type ReduceAction15 */
-const struct type type_parser__ReduceAction15 = {
-651,
-"ReduceAction15", /* class_name_string */
-3,
+/* runtime type Map[MType, Set[MType]] */
+const struct type type_abstract_collection__Mapmodel__MTypeabstract_collection__Setmodel__MType = {
+248,
+"Map[MType, Set[MType]]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction15,
-4,
+NULL,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-651, /* ReduceAction15 */
+248, /* Map[MType, Set[MType]] */
 },
 };
-const struct types resolution_table_parser__ReduceAction15 = {
-0, /* dummy */
+/* runtime type Map[MClassType, Set[MType]] */
+const struct type type_abstract_collection__Mapmodel__MClassTypeabstract_collection__Setmodel__MType = {
+667,
+"Map[MClassType, Set[MType]]", /* class_name_string */
+4,
+0,
+NULL,
+5,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+248, /* Map[MType, Set[MType]] */
+-1, /* empty */
+667, /* Map[MClassType, Set[MType]] */
+},
 };
-/* runtime type ReduceAction16 */
-const struct type type_parser__ReduceAction16 = {
-652,
-"ReduceAction16", /* class_name_string */
-3,
+/* runtime type ResolutionBMizer */
+const struct type type_layout_builders__ResolutionBMizer = {
+249,
+"ResolutionBMizer", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction16,
-4,
+&resolution_table_layout_builders__ResolutionBMizer,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-652, /* ReduceAction16 */
+249, /* ResolutionBMizer */
 },
 };
-const struct types resolution_table_parser__ReduceAction16 = {
+const struct types resolution_table_layout_builders__ResolutionBMizer = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction17 */
-const struct type type_parser__ReduceAction17 = {
-653,
-"ReduceAction17", /* class_name_string */
-3,
+/* runtime type ResolutionHasher */
+const struct type type_layout_builders__ResolutionHasher = {
+250,
+"ResolutionHasher", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction17,
-4,
+&resolution_table_layout_builders__ResolutionHasher,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-653, /* ReduceAction17 */
+250, /* ResolutionHasher */
 },
 };
-const struct types resolution_table_parser__ReduceAction17 = {
+const struct types resolution_table_layout_builders__ResolutionHasher = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Mapmodel__MClassTypeabstract_collection__Setmodel__MType, /* Map[PerfectHasher#0, Set[PerfectHasher#1]]: Map[MClassType, Set[MType]] */
+&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[PerfectHasher#1, Int]: Map[MType, Int] */
+&type_hash_collection__HashMapmodel__MClassTypekernel__Int, /* HashMap[PerfectHasher#0, Int]: HashMap[MClassType, Int] */
+&type_abstract_collection__Setmodel__MType, /* Set[PerfectHasher#1]: Set[MType] */
+&type_abstract_collection__Mapmodel__MClassTypekernel__Int, /* Map[PerfectHasher#0, Int]: Map[MClassType, Int] */
+&type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Mapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#0, Map[PerfectHasher#1, Int]]: HashMap[MClassType, Map[MType, Int]] */
+NULL, /* empty */
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[PerfectHasher#1, Int]: HashMap[MType, Int] */
 }
 };
-/* runtime type ReduceAction18 */
-const struct type type_parser__ReduceAction18 = {
-654,
-"ReduceAction18", /* class_name_string */
-3,
+/* runtime type ResolutionColorer */
+const struct type type_layout_builders__ResolutionColorer = {
+251,
+"ResolutionColorer", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction18,
-4,
+&resolution_table_layout_builders__ResolutionColorer,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-654, /* ReduceAction18 */
+251, /* ResolutionColorer */
 },
 };
-const struct types resolution_table_parser__ReduceAction18 = {
+const struct types resolution_table_layout_builders__ResolutionColorer = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction19 */
-const struct type type_parser__ReduceAction19 = {
-655,
-"ReduceAction19", /* class_name_string */
+/* runtime type HashMap[MType, Int] */
+const struct type type_hash_collection__HashMapmodel__MTypekernel__Int = {
+668,
+"HashMap[MType, Int]", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction19,
+&resolution_table_hash_collection__HashMapmodel__MTypekernel__Int,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-655, /* ReduceAction19 */
+252, /* Map[MType, Int] */
+668, /* HashMap[MType, Int] */
 },
 };
-const struct types resolution_table_parser__ReduceAction19 = {
+const struct types resolution_table_hash_collection__HashMapmodel__MTypekernel__Int = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmodel__MTypekernel__Int, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Int] */
+&type_hash_collection__HashMapValuesmodel__MTypekernel__Int, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Int] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypekernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Int]] */
+&type_model__MType, /* MapRead#0: MType */
+&type_hash_collection__HashMapIteratormodel__MTypekernel__Int, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Int] */
+&type_model__MType, /* Map#0: MType */
+&type_kernel__Int, /* Map#1: Int */
+&type_hash_collection__HashMapNodemodel__MTypekernel__Int, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Int] */
+&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[Map#0, Map#1]: Map[MType, Int] */
+&type_kernel__Int, /* MapRead#1: Int */
+&type_model__MType, /* HashCollection#0: MType */
+&type_hash_collection__HashMapNodemodel__MTypekernel__Int, /* HashCollection#1: HashMapNode[MType, Int] */
 }
 };
-/* runtime type ReduceAction20 */
-const struct type type_parser__ReduceAction20 = {
-656,
-"ReduceAction20", /* class_name_string */
-3,
+/* runtime type Map[MType, Int] */
+const struct type type_abstract_collection__Mapmodel__MTypekernel__Int = {
+252,
+"Map[MType, Int]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction20,
-4,
+NULL,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-656, /* ReduceAction20 */
+252, /* Map[MType, Int] */
 },
 };
-const struct types resolution_table_parser__ReduceAction20 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction21 */
-const struct type type_parser__ReduceAction21 = {
-657,
-"ReduceAction21", /* class_name_string */
-3,
+/* runtime type Array[Match] */
+const struct type type_array__Arraystring_search__Match = {
+2570,
+"Array[Match]", /* class_name_string */
+7,
 0,
-&resolution_table_parser__ReduceAction21,
-4,
+&resolution_table_array__Arraystring_search__Match,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-657, /* ReduceAction21 */
+669, /* Collection[Match] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2287, /* AbstractArrayRead[Match] */
+1782, /* AbstractArrayRead[Object] */
+2570, /* Array[Match] */
+-1, /* empty */
+1973, /* Array[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction21 = {
+const struct types resolution_table_array__Arraystring_search__Match = {
 0, /* dummy */
 {
+&type_array__Arraystring_search__Match, /* Array[Array#0]: Array[Match] */
+&type_array__NativeArraystring_search__Match, /* NativeArray[Array#0]: NativeArray[Match] */
+&type_string_search__Match, /* Sequence#0: Match */
+&type_string_search__Match, /* SimpleCollection#0: Match */
+&type_abstract_collection__Collectionstring_search__Match, /* Collection[Array#0]: Collection[Match] */
+&type_string_search__Match, /* Array#0: Match */
+&type_array__NativeArraystring_search__Match, /* NativeArray[ArrayCapable#0]: NativeArray[Match] */
+&type_string_search__Match, /* AbstractArray#0: Match */
+&type_string_search__Match, /* RemovableCollection#0: Match */
+&type_abstract_collection__Collectionstring_search__Match, /* Collection[Sequence#0]: Collection[Match] */
+&type_array__Arraystring_search__Match, /* Array[Sequence#0]: Array[Match] */
+&type_abstract_collection__Collectionstring_search__Match, /* Collection[SimpleCollection#0]: Collection[Match] */
+&type_string_search__Match, /* Collection#0: Match */
+&type_abstract_collection__Collectionstring_search__Match, /* Collection[Collection#0]: Collection[Match] */
+&type_string_search__Match, /* SequenceRead#0: Match */
+&type_string_search__Match, /* AbstractArrayRead#0: Match */
+&type_array__Arraystring_search__Match, /* Array[AbstractArrayRead#0]: Array[Match] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Match] not a live type) */
+&type_array__ArrayIteratorstring_search__Match, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Match] */
 }
 };
-/* runtime type ReduceAction22 */
-const struct type type_parser__ReduceAction22 = {
-658,
-"ReduceAction22", /* class_name_string */
-3,
+/* runtime type Collection[Match] */
+const struct type type_abstract_collection__Collectionstring_search__Match = {
+669,
+"Collection[Match]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction22,
-4,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-658, /* ReduceAction22 */
+669, /* Collection[Match] */
+-1, /* empty */
+170, /* Collection[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction22 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction23 */
-const struct type type_parser__ReduceAction23 = {
-659,
-"ReduceAction23", /* class_name_string */
-3,
+/* runtime type AbstractArrayRead[Match] */
+const struct type type_array__AbstractArrayReadstring_search__Match = {
+2287,
+"AbstractArrayRead[Match]", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction23,
-4,
+NULL,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-659, /* ReduceAction23 */
+669, /* Collection[Match] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2287, /* AbstractArrayRead[Match] */
+1782, /* AbstractArrayRead[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction23 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction24 */
-const struct type type_parser__ReduceAction24 = {
-660,
-"ReduceAction24", /* class_name_string */
-3,
+/* runtime type Match */
+const struct type type_string_search__Match = {
+253,
+"Match", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction24,
-4,
+&resolution_table_string_search__Match,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-660, /* ReduceAction24 */
+253, /* Match */
 },
 };
-const struct types resolution_table_parser__ReduceAction24 = {
+const struct types resolution_table_string_search__Match = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction25 */
-const struct type type_parser__ReduceAction25 = {
-661,
-"ReduceAction25", /* class_name_string */
-3,
+/* runtime type Array[State] */
+const struct type type_array__Arrayparser__State = {
+2571,
+"Array[State]", /* class_name_string */
+7,
 0,
-&resolution_table_parser__ReduceAction25,
-4,
+&resolution_table_array__Arrayparser__State,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-661, /* ReduceAction25 */
+670, /* Collection[State] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2288, /* AbstractArrayRead[State] */
+1782, /* AbstractArrayRead[Object] */
+2571, /* Array[State] */
+-1, /* empty */
+1973, /* Array[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction25 = {
+const struct types resolution_table_array__Arrayparser__State = {
 0, /* dummy */
 {
+&type_array__Arrayparser__State, /* Array[Array#0]: Array[State] */
+&type_array__NativeArrayparser__State, /* NativeArray[Array#0]: NativeArray[State] */
+&type_parser__State, /* Sequence#0: State */
+&type_parser__State, /* SimpleCollection#0: State */
+&type_abstract_collection__Collectionparser__State, /* Collection[Array#0]: Collection[State] */
+&type_parser__State, /* Array#0: State */
+&type_array__NativeArrayparser__State, /* NativeArray[ArrayCapable#0]: NativeArray[State] */
+&type_parser__State, /* AbstractArray#0: State */
+&type_parser__State, /* RemovableCollection#0: State */
+&type_abstract_collection__Collectionparser__State, /* Collection[Sequence#0]: Collection[State] */
+&type_array__Arrayparser__State, /* Array[Sequence#0]: Array[State] */
+&type_abstract_collection__Collectionparser__State, /* Collection[SimpleCollection#0]: Collection[State] */
+&type_parser__State, /* Collection#0: State */
+&type_abstract_collection__Collectionparser__State, /* Collection[Collection#0]: Collection[State] */
+&type_parser__State, /* SequenceRead#0: State */
+&type_parser__State, /* AbstractArrayRead#0: State */
+&type_array__Arrayparser__State, /* Array[AbstractArrayRead#0]: Array[State] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[State] not a live type) */
+&type_array__ArrayIteratorparser__State, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[State] */
 }
 };
-/* runtime type ReduceAction26 */
-const struct type type_parser__ReduceAction26 = {
-662,
-"ReduceAction26", /* class_name_string */
-3,
+/* runtime type Collection[State] */
+const struct type type_abstract_collection__Collectionparser__State = {
+670,
+"Collection[State]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction26,
-4,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-662, /* ReduceAction26 */
+670, /* Collection[State] */
+-1, /* empty */
+170, /* Collection[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction26 = {
-0, /* dummy */
+/* runtime type AbstractArrayRead[State] */
+const struct type type_array__AbstractArrayReadparser__State = {
+2288,
+"AbstractArrayRead[State]", /* class_name_string */
+5,
+0,
+NULL,
+7,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+670, /* Collection[State] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2288, /* AbstractArrayRead[State] */
+1782, /* AbstractArrayRead[Object] */
+},
 };
-/* runtime type ReduceAction27 */
-const struct type type_parser__ReduceAction27 = {
-663,
-"ReduceAction27", /* class_name_string */
-3,
+/* runtime type Start */
+const struct type type_parser_nodes__Start = {
+1804,
+"Start", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction27,
-4,
+&resolution_table_parser_nodes__Start,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-663, /* ReduceAction27 */
+1804, /* Start */
+254, /* ANode */
+671, /* Prod */
 },
 };
-const struct types resolution_table_parser__ReduceAction27 = {
+const struct types resolution_table_parser_nodes__Start = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction28 */
-const struct type type_parser__ReduceAction28 = {
-664,
-"ReduceAction28", /* class_name_string */
-3,
-0,
-&resolution_table_parser__ReduceAction28,
+/* runtime type Prod */
+const struct type type_parser_nodes__Prod = {
+671,
+"Prod", /* class_name_string */
 4,
+0,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-664, /* ReduceAction28 */
+-1, /* empty */
+254, /* ANode */
+671, /* Prod */
 },
 };
-const struct types resolution_table_parser__ReduceAction28 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction29 */
-const struct type type_parser__ReduceAction29 = {
-665,
-"ReduceAction29", /* class_name_string */
+/* runtime type ANode */
+const struct type type_parser_nodes__ANode = {
+254,
+"ANode", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction29,
+NULL,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-665, /* ReduceAction29 */
+-1, /* empty */
+254, /* ANode */
 },
 };
-const struct types resolution_table_parser__ReduceAction29 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction30 */
-const struct type type_parser__ReduceAction30 = {
-666,
-"ReduceAction30", /* class_name_string */
-3,
+/* runtime type ComputeProdLocationVisitor */
+const struct type type_parser__ComputeProdLocationVisitor = {
+255,
+"ComputeProdLocationVisitor", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction30,
-4,
+&resolution_table_parser__ComputeProdLocationVisitor,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-666, /* ReduceAction30 */
+255, /* ComputeProdLocationVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction30 = {
+const struct types resolution_table_parser__ComputeProdLocationVisitor = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction31 */
-const struct type type_parser__ReduceAction31 = {
-667,
-"ReduceAction31", /* class_name_string */
-3,
+/* runtime type AParserError */
+const struct type type_parser_nodes__AParserError = {
+2289,
+"AParserError", /* class_name_string */
+6,
 0,
-&resolution_table_parser__ReduceAction31,
-4,
+&resolution_table_parser_nodes__AParserError,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-667, /* ReduceAction31 */
+1805, /* EOF */
+254, /* ANode */
+672, /* Token */
+1996, /* AError */
+2289, /* AParserError */
 },
 };
-const struct types resolution_table_parser__ReduceAction31 = {
+const struct types resolution_table_parser_nodes__AParserError = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction32 */
-const struct type type_parser__ReduceAction32 = {
-668,
-"ReduceAction32", /* class_name_string */
-3,
+/* runtime type EOF */
+const struct type type_parser_nodes__EOF = {
+1805,
+"EOF", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction32,
-4,
+&resolution_table_parser_nodes__EOF,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-668, /* ReduceAction32 */
+1805, /* EOF */
+254, /* ANode */
+672, /* Token */
 },
 };
-const struct types resolution_table_parser__ReduceAction32 = {
+const struct types resolution_table_parser_nodes__EOF = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction33 */
-const struct type type_parser__ReduceAction33 = {
-669,
-"ReduceAction33", /* class_name_string */
-3,
+/* runtime type AError */
+const struct type type_parser_nodes__AError = {
+1996,
+"AError", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction33,
-4,
+NULL,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-669, /* ReduceAction33 */
+1805, /* EOF */
+254, /* ANode */
+672, /* Token */
+1996, /* AError */
 },
 };
-const struct types resolution_table_parser__ReduceAction33 = {
-0, /* dummy */
+/* runtime type Token */
+const struct type type_parser_nodes__Token = {
+672,
+"Token", /* class_name_string */
+4,
+0,
+NULL,
+5,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+254, /* ANode */
+672, /* Token */
+},
 };
-/* runtime type ReduceAction34 */
-const struct type type_parser__ReduceAction34 = {
-670,
-"ReduceAction34", /* class_name_string */
-3,
+/* runtime type SimpleMiscVisitor */
+const struct type type_simple_misc_analysis__SimpleMiscVisitor = {
+256,
+"SimpleMiscVisitor", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction34,
-4,
+&resolution_table_simple_misc_analysis__SimpleMiscVisitor,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-670, /* ReduceAction34 */
+256, /* SimpleMiscVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction34 = {
+const struct types resolution_table_simple_misc_analysis__SimpleMiscVisitor = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction35 */
-const struct type type_parser__ReduceAction35 = {
-671,
-"ReduceAction35", /* class_name_string */
-3,
+/* runtime type LiteralVisitor */
+const struct type type_literal__LiteralVisitor = {
+257,
+"LiteralVisitor", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction35,
-4,
+&resolution_table_literal__LiteralVisitor,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-671, /* ReduceAction35 */
+257, /* LiteralVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction35 = {
+const struct types resolution_table_literal__LiteralVisitor = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction36 */
-const struct type type_parser__ReduceAction36 = {
-672,
-"ReduceAction36", /* class_name_string */
-3,
+/* runtime type HashMap[MClass, MClassType] */
+const struct type type_hash_collection__HashMapmodel__MClassmodel__MClassType = {
+258,
+"HashMap[MClass, MClassType]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction36,
-4,
+&resolution_table_hash_collection__HashMapmodel__MClassmodel__MClassType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-672, /* ReduceAction36 */
+258, /* HashMap[MClass, MClassType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction36 = {
+const struct types resolution_table_hash_collection__HashMapmodel__MClassmodel__MClassType = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_hash_collection__HashMapKeysmodel__MClassmodel__MClassType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, MClassType] */
+&type_hash_collection__HashMapValuesmodel__MClassmodel__MClassType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, MClassType] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, MClassType]] */
+&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassmodel__MClassType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, MClassType] */
+&type_model__MClass, /* Map#0: MClass */
+&type_model__MClassType, /* Map#1: MClassType */
+&type_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, MClassType] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MClass, MClassType] not a live type) */
+&type_model__MClassType, /* MapRead#1: MClassType */
+&type_model__MClass, /* HashCollection#0: MClass */
+&type_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* HashCollection#1: HashMapNode[MClass, MClassType] */
 }
 };
-/* runtime type ReduceAction37 */
-const struct type type_parser__ReduceAction37 = {
-673,
-"ReduceAction37", /* class_name_string */
-3,
+/* runtime type ArrayMap[MClass, AType] */
+const struct type type_array__ArrayMapmodel__MClassparser_nodes__AType = {
+259,
+"ArrayMap[MClass, AType]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction37,
-4,
+&resolution_table_array__ArrayMapmodel__MClassparser_nodes__AType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-673, /* ReduceAction37 */
+259, /* ArrayMap[MClass, AType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction37 = {
+const struct types resolution_table_array__ArrayMapmodel__MClassparser_nodes__AType = {
 0, /* dummy */
 {
+&type_array__ArrayMapKeysmodel__MClassparser_nodes__AType, /* ArrayMapKeys[ArrayMap#0, ArrayMap#1]: ArrayMapKeys[MClass, AType] */
+&type_array__ArrayMapValuesmodel__MClassparser_nodes__AType, /* ArrayMapValues[ArrayMap#0, ArrayMap#1]: ArrayMapValues[MClass, AType] */
+&type_abstract_collection__Couplemodel__MClassparser_nodes__AType, /* Couple[ArrayMap#0, ArrayMap#1]: Couple[MClass, AType] */
+&type_abstract_collection__CoupleMapIteratormodel__MClassparser_nodes__AType, /* CoupleMapIterator[ArrayMap#0, ArrayMap#1]: CoupleMapIterator[MClass, AType] */
+&type_model__MClass, /* CoupleMap#0: MClass */
+&type_model__MClass, /* ArrayMap#0: MClass */
+&type_array__Arrayabstract_collection__Couplemodel__MClassparser_nodes__AType, /* Array[Couple[ArrayMap#0, ArrayMap#1]]: Array[Couple[MClass, AType]] */
+&type_model__MClass, /* MapRead#0: MClass */
+NULL, /* empty */
+&type_model__MClass, /* Map#0: MClass */
+&type_parser_nodes__AType, /* Map#1: AType */
+NULL, /* empty */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MClass, AType] not a live type) */
+&type_parser_nodes__AType, /* MapRead#1: AType */
 }
 };
-/* runtime type ReduceAction38 */
-const struct type type_parser__ReduceAction38 = {
-674,
-"ReduceAction38", /* class_name_string */
-3,
+/* runtime type ScopeVisitor */
+const struct type type_scope__ScopeVisitor = {
+260,
+"ScopeVisitor", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction38,
-4,
+&resolution_table_scope__ScopeVisitor,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-674, /* ReduceAction38 */
+260, /* ScopeVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction38 = {
+const struct types resolution_table_scope__ScopeVisitor = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction39 */
-const struct type type_parser__ReduceAction39 = {
-675,
-"ReduceAction39", /* class_name_string */
-3,
+/* runtime type Variable */
+const struct type type_scope__Variable = {
+261,
+"Variable", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction39,
-4,
+&resolution_table_scope__Variable,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-675, /* ReduceAction39 */
+261, /* Variable */
 },
 };
-const struct types resolution_table_parser__ReduceAction39 = {
+const struct types resolution_table_scope__Variable = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction40 */
-const struct type type_parser__ReduceAction40 = {
-676,
-"ReduceAction40", /* class_name_string */
-3,
+/* runtime type List[Scope] */
+const struct type type_list__Listscope__Scope = {
+1997,
+"List[Scope]", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction40,
-4,
+&resolution_table_list__Listscope__Scope,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-676, /* ReduceAction40 */
+673, /* Collection[Scope] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+1997, /* List[Scope] */
 },
 };
-const struct types resolution_table_parser__ReduceAction40 = {
+const struct types resolution_table_list__Listscope__Scope = {
 0, /* dummy */
 {
+&type_list__Listscope__Scope, /* List[List#0]: List[Scope] */
+&type_list__ListNodescope__Scope, /* ListNode[List#0]: ListNode[Scope] */
+&type_scope__Scope, /* Sequence#0: Scope */
+&type_scope__Scope, /* SimpleCollection#0: Scope */
+&type_list__ListIteratorscope__Scope, /* ListIterator[List#0]: ListIterator[Scope] */
+&type_abstract_collection__Collectionscope__Scope, /* Collection[List#0]: Collection[Scope] */
+&type_scope__Scope, /* List#0: Scope */
+NULL, /* empty */
+&type_scope__Scope, /* RemovableCollection#0: Scope */
+&type_abstract_collection__Collectionscope__Scope, /* Collection[Sequence#0]: Collection[Scope] */
+&type_array__Arrayscope__Scope, /* Array[Sequence#0]: Array[Scope] */
+&type_abstract_collection__Collectionscope__Scope, /* Collection[SimpleCollection#0]: Collection[Scope] */
+&type_scope__Scope, /* Collection#0: Scope */
+&type_abstract_collection__Collectionscope__Scope, /* Collection[Collection#0]: Collection[Scope] */
+&type_scope__Scope, /* SequenceRead#0: Scope */
 }
 };
-/* runtime type ReduceAction41 */
-const struct type type_parser__ReduceAction41 = {
-677,
-"ReduceAction41", /* class_name_string */
-3,
+/* runtime type Collection[Scope] */
+const struct type type_abstract_collection__Collectionscope__Scope = {
+673,
+"Collection[Scope]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction41,
-4,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-677, /* ReduceAction41 */
+673, /* Collection[Scope] */
+-1, /* empty */
+170, /* Collection[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction41 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction42 */
-const struct type type_parser__ReduceAction42 = {
-678,
-"ReduceAction42", /* class_name_string */
-3,
+/* runtime type FlowVisitor */
+const struct type type_flow__FlowVisitor = {
+262,
+"FlowVisitor", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction42,
-4,
+&resolution_table_flow__FlowVisitor,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-678, /* ReduceAction42 */
+262, /* FlowVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction42 = {
+const struct types resolution_table_flow__FlowVisitor = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction43 */
-const struct type type_parser__ReduceAction43 = {
-679,
-"ReduceAction43", /* class_name_string */
-3,
+/* runtime type Array[FlowContext] */
+const struct type type_array__Arrayflow__FlowContext = {
+2572,
+"Array[FlowContext]", /* class_name_string */
+7,
 0,
-&resolution_table_parser__ReduceAction43,
-4,
+&resolution_table_array__Arrayflow__FlowContext,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-679, /* ReduceAction43 */
+674, /* Collection[FlowContext] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2290, /* AbstractArrayRead[FlowContext] */
+1782, /* AbstractArrayRead[Object] */
+2572, /* Array[FlowContext] */
+-1, /* empty */
+1973, /* Array[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction43 = {
+const struct types resolution_table_array__Arrayflow__FlowContext = {
 0, /* dummy */
 {
+&type_array__Arrayflow__FlowContext, /* Array[Array#0]: Array[FlowContext] */
+&type_array__NativeArrayflow__FlowContext, /* NativeArray[Array#0]: NativeArray[FlowContext] */
+&type_flow__FlowContext, /* Sequence#0: FlowContext */
+&type_flow__FlowContext, /* SimpleCollection#0: FlowContext */
+&type_abstract_collection__Collectionflow__FlowContext, /* Collection[Array#0]: Collection[FlowContext] */
+&type_flow__FlowContext, /* Array#0: FlowContext */
+&type_array__NativeArrayflow__FlowContext, /* NativeArray[ArrayCapable#0]: NativeArray[FlowContext] */
+&type_flow__FlowContext, /* AbstractArray#0: FlowContext */
+&type_flow__FlowContext, /* RemovableCollection#0: FlowContext */
+&type_abstract_collection__Collectionflow__FlowContext, /* Collection[Sequence#0]: Collection[FlowContext] */
+&type_array__Arrayflow__FlowContext, /* Array[Sequence#0]: Array[FlowContext] */
+&type_abstract_collection__Collectionflow__FlowContext, /* Collection[SimpleCollection#0]: Collection[FlowContext] */
+&type_flow__FlowContext, /* Collection#0: FlowContext */
+&type_abstract_collection__Collectionflow__FlowContext, /* Collection[Collection#0]: Collection[FlowContext] */
+&type_flow__FlowContext, /* SequenceRead#0: FlowContext */
+&type_flow__FlowContext, /* AbstractArrayRead#0: FlowContext */
+&type_array__Arrayflow__FlowContext, /* Array[AbstractArrayRead#0]: Array[FlowContext] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[FlowContext] not a live type) */
+&type_array__ArrayIteratorflow__FlowContext, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[FlowContext] */
 }
 };
-/* runtime type ReduceAction44 */
-const struct type type_parser__ReduceAction44 = {
-680,
-"ReduceAction44", /* class_name_string */
-3,
+/* runtime type Collection[FlowContext] */
+const struct type type_abstract_collection__Collectionflow__FlowContext = {
+674,
+"Collection[FlowContext]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction44,
-4,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-680, /* ReduceAction44 */
+674, /* Collection[FlowContext] */
+-1, /* empty */
+170, /* Collection[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction44 = {
-0, /* dummy */
+/* runtime type AbstractArrayRead[FlowContext] */
+const struct type type_array__AbstractArrayReadflow__FlowContext = {
+2290,
+"AbstractArrayRead[FlowContext]", /* class_name_string */
+5,
+0,
+NULL,
+7,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+674, /* Collection[FlowContext] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2290, /* AbstractArrayRead[FlowContext] */
+1782, /* AbstractArrayRead[Object] */
+},
 };
-/* runtime type ReduceAction45 */
-const struct type type_parser__ReduceAction45 = {
-681,
-"ReduceAction45", /* class_name_string */
-3,
+/* runtime type LocalVarInitVisitor */
+const struct type type_local_var_init__LocalVarInitVisitor = {
+263,
+"LocalVarInitVisitor", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction45,
-4,
+&resolution_table_local_var_init__LocalVarInitVisitor,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-681, /* ReduceAction45 */
+263, /* LocalVarInitVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction45 = {
+const struct types resolution_table_local_var_init__LocalVarInitVisitor = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction46 */
-const struct type type_parser__ReduceAction46 = {
-682,
-"ReduceAction46", /* class_name_string */
-3,
+/* runtime type HashSet[Variable] */
+const struct type type_hash_collection__HashSetscope__Variable = {
+2291,
+"HashSet[Variable]", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction46,
-4,
+&resolution_table_hash_collection__HashSetscope__Variable,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-682, /* ReduceAction46 */
+675, /* Collection[Variable] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+2291, /* HashSet[Variable] */
+1794, /* HashSet[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction46 = {
+const struct types resolution_table_hash_collection__HashSetscope__Variable = {
 0, /* dummy */
 {
+&type_hash_collection__HashSetNodescope__Variable, /* HashSetNode[HashSet#0]: HashSetNode[Variable] */
+&type_hash_collection__HashSetIteratorscope__Variable, /* HashSetIterator[HashSet#0]: HashSetIterator[Variable] */
+&type_abstract_collection__Collectionscope__Variable, /* Collection[HashSet#0]: Collection[Variable] */
+&type_scope__Variable, /* SimpleCollection#0: Variable */
+&type_abstract_collection__Collectionscope__Variable, /* Collection[Set#0]: Collection[Variable] */
+NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodescope__Variable, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[Variable]] */
+NULL, /* empty */
+&type_scope__Variable, /* RemovableCollection#0: Variable */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionscope__Variable, /* Collection[SimpleCollection#0]: Collection[Variable] */
+&type_scope__Variable, /* Collection#0: Variable */
+&type_abstract_collection__Collectionscope__Variable, /* Collection[Collection#0]: Collection[Variable] */
+&type_scope__Variable, /* HashCollection#0: Variable */
+&type_hash_collection__HashSetNodescope__Variable, /* HashCollection#1: HashSetNode[Variable] */
 }
 };
-/* runtime type ReduceAction47 */
-const struct type type_parser__ReduceAction47 = {
-683,
-"ReduceAction47", /* class_name_string */
-3,
+/* runtime type Collection[Variable] */
+const struct type type_abstract_collection__Collectionscope__Variable = {
+675,
+"Collection[Variable]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction47,
-4,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-683, /* ReduceAction47 */
+675, /* Collection[Variable] */
+-1, /* empty */
+170, /* Collection[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction47 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction48 */
-const struct type type_parser__ReduceAction48 = {
-684,
-"ReduceAction48", /* class_name_string */
-3,
+/* runtime type AutoSuperInitVisitor */
+const struct type type_auto_super_init__AutoSuperInitVisitor = {
+264,
+"AutoSuperInitVisitor", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction48,
-4,
+&resolution_table_auto_super_init__AutoSuperInitVisitor,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-684, /* ReduceAction48 */
+264, /* AutoSuperInitVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction48 = {
+const struct types resolution_table_auto_super_init__AutoSuperInitVisitor = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction49 */
-const struct type type_parser__ReduceAction49 = {
-685,
-"ReduceAction49", /* class_name_string */
-3,
+/* runtime type Array[MMethod] */
+const struct type type_array__Arraymodel__MMethod = {
+2711,
+"Array[MMethod]", /* class_name_string */
+17,
 0,
-&resolution_table_parser__ReduceAction49,
-4,
+&resolution_table_array__Arraymodel__MMethod,
+18,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-685, /* ReduceAction49 */
+179, /* Collection[nullable MProperty] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1782, /* AbstractArrayRead[Object] */
+1789, /* AbstractArrayRead[nullable MProperty] */
+1975, /* Array[nullable MProperty] */
+1973, /* Array[Object] */
+1976, /* Collection[MProperty] */
+2264, /* AbstractArrayRead[PropertyLayoutElement] */
+2274, /* Collection[MMethod] */
+2553, /* Array[PropertyLayoutElement] */
+2630, /* AbstractArrayRead[MProperty] */
+2675, /* AbstractArrayRead[MMethod] */
+2686, /* Array[MProperty] */
+2711, /* Array[MMethod] */
 },
 };
-const struct types resolution_table_parser__ReduceAction49 = {
+const struct types resolution_table_array__Arraymodel__MMethod = {
 0, /* dummy */
 {
+&type_array__Arraymodel__MMethod, /* Array[Array#0]: Array[MMethod] */
+&type_array__NativeArraymodel__MMethod, /* NativeArray[Array#0]: NativeArray[MMethod] */
+&type_model__MMethod, /* Sequence#0: MMethod */
+&type_model__MMethod, /* SimpleCollection#0: MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Array#0]: Collection[MMethod] */
+&type_model__MMethod, /* Array#0: MMethod */
+&type_array__NativeArraymodel__MMethod, /* NativeArray[ArrayCapable#0]: NativeArray[MMethod] */
+&type_model__MMethod, /* AbstractArray#0: MMethod */
+&type_model__MMethod, /* RemovableCollection#0: MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Sequence#0]: Collection[MMethod] */
+&type_array__Arraymodel__MMethod, /* Array[Sequence#0]: Array[MMethod] */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[SimpleCollection#0]: Collection[MMethod] */
+&type_model__MMethod, /* Collection#0: MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Collection#0]: Collection[MMethod] */
+&type_model__MMethod, /* SequenceRead#0: MMethod */
+&type_model__MMethod, /* AbstractArrayRead#0: MMethod */
+&type_array__Arraymodel__MMethod, /* Array[AbstractArrayRead#0]: Array[MMethod] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MMethod] not a live type) */
+&type_array__ArrayIteratormodel__MMethod, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MMethod] */
 }
 };
-/* runtime type ReduceAction50 */
-const struct type type_parser__ReduceAction50 = {
-686,
-"ReduceAction50", /* class_name_string */
-3,
+/* runtime type AbstractArrayRead[MMethod] */
+const struct type type_array__AbstractArrayReadmodel__MMethod = {
+2675,
+"AbstractArrayRead[MMethod]", /* class_name_string */
+15,
 0,
-&resolution_table_parser__ReduceAction50,
-4,
+NULL,
+16,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-686, /* ReduceAction50 */
+179, /* Collection[nullable MProperty] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+626, /* Collection[PropertyLayoutElement] */
+1782, /* AbstractArrayRead[Object] */
+1789, /* AbstractArrayRead[nullable MProperty] */
+-1, /* empty */
+-1, /* empty */
+1976, /* Collection[MProperty] */
+2264, /* AbstractArrayRead[PropertyLayoutElement] */
+2274, /* Collection[MMethod] */
+-1, /* empty */
+2630, /* AbstractArrayRead[MProperty] */
+2675, /* AbstractArrayRead[MMethod] */
 },
 };
-const struct types resolution_table_parser__ReduceAction50 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction51 */
-const struct type type_parser__ReduceAction51 = {
-687,
-"ReduceAction51", /* class_name_string */
-3,
+/* runtime type ASTBuilder */
+const struct type type_astbuilder__ASTBuilder = {
+265,
+"ASTBuilder", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction51,
-4,
+&resolution_table_astbuilder__ASTBuilder,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-687, /* ReduceAction51 */
+265, /* ASTBuilder */
 },
 };
-const struct types resolution_table_parser__ReduceAction51 = {
+const struct types resolution_table_astbuilder__ASTBuilder = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction52 */
-const struct type type_parser__ReduceAction52 = {
-688,
-"ReduceAction52", /* class_name_string */
+/* runtime type POSet[MClass] */
+const struct type type_poset__POSetmodel__MClass = {
+1998,
+"POSet[MClass]", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction52,
-4,
+&resolution_table_poset__POSetmodel__MClass,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-688, /* ReduceAction52 */
+178, /* Collection[nullable MClass] */
+1998, /* POSet[MClass] */
+170, /* Collection[Object] */
+1787, /* Collection[MClass] */
 },
 };
-const struct types resolution_table_parser__ReduceAction52 = {
+const struct types resolution_table_poset__POSetmodel__MClass = {
 0, /* dummy */
 {
+&type_model__MClass, /* AbstractSorter#0: MClass */
+&type_array__Arraymodel__MClass, /* Array[AbstractSorter#0]: Array[MClass] */
+&type_hash_collection__HashMapmodel__MClassposet__POSetElementmodel__MClass, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[MClass, POSetElement[MClass]] */
+&type_model__MClass, /* POSet#0: MClass */
+&type_poset__POSetElementmodel__MClass, /* POSetElement[POSet#0]: POSetElement[MClass] */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_model__MClass, /* Collection#0: MClass */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[Collection#0]: Collection[MClass] */
 }
 };
-/* runtime type ReduceAction53 */
-const struct type type_parser__ReduceAction53 = {
-689,
-"ReduceAction53", /* class_name_string */
-3,
+/* runtime type MClassDefSorter */
+const struct type type_model__MClassDefSorter = {
+266,
+"MClassDefSorter", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction53,
-4,
+&resolution_table_model__MClassDefSorter,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-689, /* ReduceAction53 */
+266, /* MClassDefSorter */
 },
 };
-const struct types resolution_table_parser__ReduceAction53 = {
+const struct types resolution_table_model__MClassDefSorter = {
 0, /* dummy */
 {
+&type_model__MClassDef, /* AbstractSorter#0: MClassDef */
+&type_array__Arraymodel__MClassDef, /* Array[AbstractSorter#0]: Array[MClassDef] */
 }
 };
-/* runtime type ReduceAction54 */
-const struct type type_parser__ReduceAction54 = {
-690,
-"ReduceAction54", /* class_name_string */
-3,
+/* runtime type Frame */
+const struct type type_abstract_compiler__Frame = {
+267,
+"Frame", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction54,
-4,
+&resolution_table_abstract_compiler__Frame,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-690, /* ReduceAction54 */
+267, /* Frame */
 },
 };
-const struct types resolution_table_parser__ReduceAction54 = {
+const struct types resolution_table_abstract_compiler__Frame = {
 0, /* dummy */
 {
+&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
 }
 };
-/* runtime type ReduceAction55 */
-const struct type type_parser__ReduceAction55 = {
-691,
-"ReduceAction55", /* class_name_string */
-3,
+/* runtime type Array[MParameterType] */
+const struct type type_array__Arraymodel__MParameterType = {
+2709,
+"Array[MParameterType]", /* class_name_string */
+14,
 0,
-&resolution_table_parser__ReduceAction55,
-4,
+&resolution_table_array__Arraymodel__MParameterType,
+16,
+{
+0, /* nullable Object */
+1, /* Object */
+4, /* nullable Array[nullable MType] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1782, /* AbstractArrayRead[Object] */
+1791, /* Collection[MType] */
+1799, /* AbstractArrayRead[nullable MType] */
+1973, /* Array[Object] */
+1999, /* Collection[MParameterType] */
+2283, /* Array[nullable MType] */
+2637, /* AbstractArrayRead[MParameterType] */
+2568, /* AbstractArrayRead[MType] */
+2709, /* Array[MParameterType] */
+2673, /* Array[MType] */
+},
+};
+const struct types resolution_table_array__Arraymodel__MParameterType = {
+0, /* dummy */
+{
+&type_array__Arraymodel__MParameterType, /* Array[Array#0]: Array[MParameterType] */
+&type_array__NativeArraymodel__MParameterType, /* NativeArray[Array#0]: NativeArray[MParameterType] */
+&type_model__MParameterType, /* Sequence#0: MParameterType */
+&type_model__MParameterType, /* SimpleCollection#0: MParameterType */
+&type_abstract_collection__Collectionmodel__MParameterType, /* Collection[Array#0]: Collection[MParameterType] */
+&type_model__MParameterType, /* Array#0: MParameterType */
+&type_array__NativeArraymodel__MParameterType, /* NativeArray[ArrayCapable#0]: NativeArray[MParameterType] */
+&type_model__MParameterType, /* AbstractArray#0: MParameterType */
+&type_model__MParameterType, /* RemovableCollection#0: MParameterType */
+&type_abstract_collection__Collectionmodel__MParameterType, /* Collection[Sequence#0]: Collection[MParameterType] */
+&type_array__Arraymodel__MParameterType, /* Array[Sequence#0]: Array[MParameterType] */
+&type_abstract_collection__Collectionmodel__MParameterType, /* Collection[SimpleCollection#0]: Collection[MParameterType] */
+&type_model__MParameterType, /* Collection#0: MParameterType */
+&type_abstract_collection__Collectionmodel__MParameterType, /* Collection[Collection#0]: Collection[MParameterType] */
+&type_model__MParameterType, /* SequenceRead#0: MParameterType */
+&type_model__MParameterType, /* AbstractArrayRead#0: MParameterType */
+&type_array__Arraymodel__MParameterType, /* Array[AbstractArrayRead#0]: Array[MParameterType] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MParameterType] not a live type) */
+&type_array__ArrayIteratormodel__MParameterType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MParameterType] */
+}
+};
+/* runtime type Collection[MParameterType] */
+const struct type type_abstract_collection__Collectionmodel__MParameterType = {
+1999,
+"Collection[MParameterType]", /* class_name_string */
+10,
+0,
+NULL,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-691, /* ReduceAction55 */
+-1, /* empty */
+-1, /* empty */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+-1, /* empty */
+1791, /* Collection[MType] */
+-1, /* empty */
+-1, /* empty */
+1999, /* Collection[MParameterType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction55 = {
-0, /* dummy */
+/* runtime type AbstractArrayRead[MParameterType] */
+const struct type type_array__AbstractArrayReadmodel__MParameterType = {
+2637,
+"AbstractArrayRead[MParameterType]", /* class_name_string */
+12,
+0,
+NULL,
+14,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+1782, /* AbstractArrayRead[Object] */
+1791, /* Collection[MType] */
+1799, /* AbstractArrayRead[nullable MType] */
+-1, /* empty */
+1999, /* Collection[MParameterType] */
+-1, /* empty */
+2637, /* AbstractArrayRead[MParameterType] */
+2568, /* AbstractArrayRead[MType] */
+},
 };
-/* runtime type ReduceAction56 */
-const struct type type_parser__ReduceAction56 = {
-692,
-"ReduceAction56", /* class_name_string */
-3,
-0,
-&resolution_table_parser__ReduceAction56,
+/* runtime type MParameterType */
+const struct type type_model__MParameterType = {
+1806,
+"MParameterType", /* class_name_string */
 4,
+0,
+&resolution_table_model__MParameterType,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-692, /* ReduceAction56 */
+2, /* nullable MType */
+630, /* MType */
+1806, /* MParameterType */
 },
 };
-const struct types resolution_table_parser__ReduceAction56 = {
+const struct types resolution_table_model__MParameterType = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction57 */
-const struct type type_parser__ReduceAction57 = {
-693,
-"ReduceAction57", /* class_name_string */
-3,
+/* runtime type MVisibility */
+const struct type type_model_base__MVisibility = {
+268,
+"MVisibility", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction57,
-4,
+&resolution_table_model_base__MVisibility,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-693, /* ReduceAction57 */
+268, /* MVisibility */
 },
 };
-const struct types resolution_table_parser__ReduceAction57 = {
+const struct types resolution_table_model_base__MVisibility = {
 0, /* dummy */
 {
+&type_model_base__MVisibility, /* OTHER: MVisibility */
 }
 };
-/* runtime type ReduceAction58 */
-const struct type type_parser__ReduceAction58 = {
-694,
-"ReduceAction58", /* class_name_string */
-3,
+/* runtime type ArraySet[MType] */
+const struct type type_array__ArraySetmodel__MType = {
+2496,
+"ArraySet[MType]", /* class_name_string */
+6,
 0,
-&resolution_table_parser__ReduceAction58,
-4,
+&resolution_table_array__ArraySetmodel__MType,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-694, /* ReduceAction58 */
+2270, /* Set[MType] */
+633, /* Set[Object] */
+170, /* Collection[Object] */
+180, /* Collection[nullable MType] */
+2496, /* ArraySet[MType] */
+1791, /* Collection[MType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction58 = {
+const struct types resolution_table_array__ArraySetmodel__MType = {
 0, /* dummy */
 {
+&type_array__ArraySetIteratormodel__MType, /* ArraySetIterator[ArraySet#0]: ArraySetIterator[MType] */
+&type_array__Arraymodel__MType, /* Array[ArraySet#0]: Array[MType] */
+NULL, /* empty */
+&type_model__MType, /* SimpleCollection#0: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[Set#0]: Collection[MType] */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_model__MType, /* RemovableCollection#0: MType */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[SimpleCollection#0]: Collection[MType] */
+&type_model__MType, /* Collection#0: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[Collection#0]: Collection[MType] */
 }
 };
-/* runtime type ReduceAction59 */
-const struct type type_parser__ReduceAction59 = {
-695,
-"ReduceAction59", /* class_name_string */
-3,
-0,
-&resolution_table_parser__ReduceAction59,
+/* runtime type MVirtualType */
+const struct type type_model__MVirtualType = {
+1807,
+"MVirtualType", /* class_name_string */
 4,
+0,
+&resolution_table_model__MVirtualType,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-695, /* ReduceAction59 */
+2, /* nullable MType */
+630, /* MType */
+1807, /* MVirtualType */
 },
 };
-const struct types resolution_table_parser__ReduceAction59 = {
+const struct types resolution_table_model__MVirtualType = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction60 */
-const struct type type_parser__ReduceAction60 = {
-696,
-"ReduceAction60", /* class_name_string */
-3,
+/* runtime type Layout[MType] */
+const struct type type_layout_builders__Layoutmodel__MType = {
+269,
+"Layout[MType]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction60,
-4,
+&resolution_table_layout_builders__Layoutmodel__MType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-696, /* ReduceAction60 */
+269, /* Layout[MType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction60 = {
+const struct types resolution_table_layout_builders__Layoutmodel__MType = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[Layout#0, Int]: HashMap[MType, Int] */
+&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[Layout#0, Int]: Map[MType, Int] */
 }
 };
-/* runtime type ReduceAction61 */
-const struct type type_parser__ReduceAction61 = {
-697,
-"ReduceAction61", /* class_name_string */
-3,
-0,
-&resolution_table_parser__ReduceAction61,
+/* runtime type PHLayout[MClassType, MType] */
+const struct type type_layout_builders__PHLayoutmodel__MClassTypemodel__MType = {
+1808,
+"PHLayout[MClassType, MType]", /* class_name_string */
 4,
+0,
+&resolution_table_layout_builders__PHLayoutmodel__MClassTypemodel__MType,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-697, /* ReduceAction61 */
+269, /* Layout[MType] */
+676, /* PHLayout[MType, MType] */
+1808, /* PHLayout[MClassType, MType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction61 = {
+const struct types resolution_table_layout_builders__PHLayoutmodel__MClassTypemodel__MType = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[Layout#0, Int]: HashMap[MType, Int] */
+&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[Layout#0, Int]: Map[MType, Int] */
+&type_hash_collection__HashMapmodel__MClassTypekernel__Int, /* HashMap[PHLayout#0, Int]: HashMap[MClassType, Int] */
+&type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Mapmodel__MTypekernel__Int, /* HashMap[PHLayout#0, Map[PHLayout#1, Int]]: HashMap[MClassType, Map[MType, Int]] */
+&type_abstract_collection__Mapmodel__MClassTypekernel__Int, /* Map[PHLayout#0, Int]: Map[MClassType, Int] */
+&type_abstract_collection__Mapmodel__MClassTypeabstract_collection__Mapmodel__MTypekernel__Int, /* Map[PHLayout#0, Map[PHLayout#1, Int]]: Map[MClassType, Map[MType, Int]] */
 }
 };
-/* runtime type ReduceAction62 */
-const struct type type_parser__ReduceAction62 = {
-698,
-"ReduceAction62", /* class_name_string */
+/* runtime type PHLayout[MType, MType] */
+const struct type type_layout_builders__PHLayoutmodel__MTypemodel__MType = {
+676,
+"PHLayout[MType, MType]", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction62,
+&resolution_table_layout_builders__PHLayoutmodel__MTypemodel__MType,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-698, /* ReduceAction62 */
+269, /* Layout[MType] */
+676, /* PHLayout[MType, MType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction62 = {
+const struct types resolution_table_layout_builders__PHLayoutmodel__MTypemodel__MType = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[Layout#0, Int]: HashMap[MType, Int] */
+&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[Layout#0, Int]: Map[MType, Int] */
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[PHLayout#0, Int]: HashMap[MType, Int] */
+&type_hash_collection__HashMapmodel__MTypeabstract_collection__Mapmodel__MTypekernel__Int, /* HashMap[PHLayout#0, Map[PHLayout#1, Int]]: HashMap[MType, Map[MType, Int]] */
+&type_abstract_collection__Mapmodel__MTypekernel__Int, /* Map[PHLayout#0, Int]: Map[MType, Int] */
+&type_abstract_collection__Mapmodel__MTypeabstract_collection__Mapmodel__MTypekernel__Int, /* Map[PHLayout#0, Map[PHLayout#1, Int]]: Map[MType, Map[MType, Int]] */
 }
 };
-/* runtime type ReduceAction63 */
-const struct type type_parser__ReduceAction63 = {
-699,
-"ReduceAction63", /* class_name_string */
-3,
+/* runtime type Array[ReduceAction] */
+const struct type type_array__Arrayparser__ReduceAction = {
+2573,
+"Array[ReduceAction]", /* class_name_string */
+7,
 0,
-&resolution_table_parser__ReduceAction63,
-4,
+&resolution_table_array__Arrayparser__ReduceAction,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-699, /* ReduceAction63 */
+677, /* Collection[ReduceAction] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2292, /* AbstractArrayRead[ReduceAction] */
+1782, /* AbstractArrayRead[Object] */
+2573, /* Array[ReduceAction] */
+-1, /* empty */
+1973, /* Array[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction63 = {
+const struct types resolution_table_array__Arrayparser__ReduceAction = {
 0, /* dummy */
 {
+&type_array__Arrayparser__ReduceAction, /* Array[Array#0]: Array[ReduceAction] */
+&type_array__NativeArrayparser__ReduceAction, /* NativeArray[Array#0]: NativeArray[ReduceAction] */
+&type_parser__ReduceAction, /* Sequence#0: ReduceAction */
+&type_parser__ReduceAction, /* SimpleCollection#0: ReduceAction */
+&type_abstract_collection__Collectionparser__ReduceAction, /* Collection[Array#0]: Collection[ReduceAction] */
+&type_parser__ReduceAction, /* Array#0: ReduceAction */
+&type_array__NativeArrayparser__ReduceAction, /* NativeArray[ArrayCapable#0]: NativeArray[ReduceAction] */
+&type_parser__ReduceAction, /* AbstractArray#0: ReduceAction */
+&type_parser__ReduceAction, /* RemovableCollection#0: ReduceAction */
+&type_abstract_collection__Collectionparser__ReduceAction, /* Collection[Sequence#0]: Collection[ReduceAction] */
+&type_array__Arrayparser__ReduceAction, /* Array[Sequence#0]: Array[ReduceAction] */
+&type_abstract_collection__Collectionparser__ReduceAction, /* Collection[SimpleCollection#0]: Collection[ReduceAction] */
+&type_parser__ReduceAction, /* Collection#0: ReduceAction */
+&type_abstract_collection__Collectionparser__ReduceAction, /* Collection[Collection#0]: Collection[ReduceAction] */
+&type_parser__ReduceAction, /* SequenceRead#0: ReduceAction */
+&type_parser__ReduceAction, /* AbstractArrayRead#0: ReduceAction */
+&type_array__Arrayparser__ReduceAction, /* Array[AbstractArrayRead#0]: Array[ReduceAction] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[ReduceAction] not a live type) */
+&type_array__ArrayIteratorparser__ReduceAction, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[ReduceAction] */
 }
 };
-/* runtime type ReduceAction64 */
-const struct type type_parser__ReduceAction64 = {
-700,
-"ReduceAction64", /* class_name_string */
-3,
+/* runtime type Collection[ReduceAction] */
+const struct type type_abstract_collection__Collectionparser__ReduceAction = {
+677,
+"Collection[ReduceAction]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction64,
-4,
+NULL,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-700, /* ReduceAction64 */
+677, /* Collection[ReduceAction] */
+-1, /* empty */
+170, /* Collection[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction64 = {
-0, /* dummy */
+/* runtime type AbstractArrayRead[ReduceAction] */
+const struct type type_array__AbstractArrayReadparser__ReduceAction = {
+2292,
+"AbstractArrayRead[ReduceAction]", /* class_name_string */
+5,
+0,
+NULL,
+7,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+677, /* Collection[ReduceAction] */
+169, /* SequenceRead[nullable Object] */
+170, /* Collection[Object] */
+2292, /* AbstractArrayRead[ReduceAction] */
+1782, /* AbstractArrayRead[Object] */
+},
 };
-/* runtime type ReduceAction65 */
-const struct type type_parser__ReduceAction65 = {
-701,
-"ReduceAction65", /* class_name_string */
+/* runtime type ReduceAction0 */
+const struct type type_parser__ReduceAction0 = {
+678,
+"ReduceAction0", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction65,
+&resolution_table_parser__ReduceAction0,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-701, /* ReduceAction65 */
+270, /* ReduceAction */
+678, /* ReduceAction0 */
 },
 };
-const struct types resolution_table_parser__ReduceAction65 = {
+const struct types resolution_table_parser__ReduceAction0 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction66 */
-const struct type type_parser__ReduceAction66 = {
-702,
-"ReduceAction66", /* class_name_string */
+/* runtime type ReduceAction */
+const struct type type_parser__ReduceAction = {
+270,
+"ReduceAction", /* class_name_string */
+2,
+0,
+NULL,
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+270, /* ReduceAction */
+},
+};
+/* runtime type ReduceAction1 */
+const struct type type_parser__ReduceAction1 = {
+679,
+"ReduceAction1", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction66,
+&resolution_table_parser__ReduceAction1,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-702, /* ReduceAction66 */
+270, /* ReduceAction */
+679, /* ReduceAction1 */
 },
 };
-const struct types resolution_table_parser__ReduceAction66 = {
+const struct types resolution_table_parser__ReduceAction1 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction67 */
-const struct type type_parser__ReduceAction67 = {
-703,
-"ReduceAction67", /* class_name_string */
+/* runtime type ReduceAction2 */
+const struct type type_parser__ReduceAction2 = {
+680,
+"ReduceAction2", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction67,
+&resolution_table_parser__ReduceAction2,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-703, /* ReduceAction67 */
+270, /* ReduceAction */
+680, /* ReduceAction2 */
 },
 };
-const struct types resolution_table_parser__ReduceAction67 = {
+const struct types resolution_table_parser__ReduceAction2 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction68 */
-const struct type type_parser__ReduceAction68 = {
-704,
-"ReduceAction68", /* class_name_string */
+/* runtime type ReduceAction3 */
+const struct type type_parser__ReduceAction3 = {
+681,
+"ReduceAction3", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction68,
+&resolution_table_parser__ReduceAction3,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-704, /* ReduceAction68 */
+270, /* ReduceAction */
+681, /* ReduceAction3 */
 },
 };
-const struct types resolution_table_parser__ReduceAction68 = {
+const struct types resolution_table_parser__ReduceAction3 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction69 */
-const struct type type_parser__ReduceAction69 = {
-705,
-"ReduceAction69", /* class_name_string */
+/* runtime type ReduceAction4 */
+const struct type type_parser__ReduceAction4 = {
+682,
+"ReduceAction4", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction69,
+&resolution_table_parser__ReduceAction4,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-705, /* ReduceAction69 */
+270, /* ReduceAction */
+682, /* ReduceAction4 */
 },
 };
-const struct types resolution_table_parser__ReduceAction69 = {
+const struct types resolution_table_parser__ReduceAction4 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction70 */
-const struct type type_parser__ReduceAction70 = {
-706,
-"ReduceAction70", /* class_name_string */
+/* runtime type ReduceAction5 */
+const struct type type_parser__ReduceAction5 = {
+683,
+"ReduceAction5", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction70,
+&resolution_table_parser__ReduceAction5,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-706, /* ReduceAction70 */
+270, /* ReduceAction */
+683, /* ReduceAction5 */
 },
 };
-const struct types resolution_table_parser__ReduceAction70 = {
+const struct types resolution_table_parser__ReduceAction5 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction71 */
-const struct type type_parser__ReduceAction71 = {
-707,
-"ReduceAction71", /* class_name_string */
+/* runtime type ReduceAction6 */
+const struct type type_parser__ReduceAction6 = {
+684,
+"ReduceAction6", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction71,
+&resolution_table_parser__ReduceAction6,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-707, /* ReduceAction71 */
+270, /* ReduceAction */
+684, /* ReduceAction6 */
 },
 };
-const struct types resolution_table_parser__ReduceAction71 = {
+const struct types resolution_table_parser__ReduceAction6 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction73 */
-const struct type type_parser__ReduceAction73 = {
-708,
-"ReduceAction73", /* class_name_string */
+/* runtime type ReduceAction7 */
+const struct type type_parser__ReduceAction7 = {
+685,
+"ReduceAction7", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction73,
+&resolution_table_parser__ReduceAction7,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-708, /* ReduceAction73 */
+270, /* ReduceAction */
+685, /* ReduceAction7 */
 },
 };
-const struct types resolution_table_parser__ReduceAction73 = {
+const struct types resolution_table_parser__ReduceAction7 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction74 */
-const struct type type_parser__ReduceAction74 = {
-709,
-"ReduceAction74", /* class_name_string */
+/* runtime type ReduceAction8 */
+const struct type type_parser__ReduceAction8 = {
+686,
+"ReduceAction8", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction74,
+&resolution_table_parser__ReduceAction8,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-709, /* ReduceAction74 */
+270, /* ReduceAction */
+686, /* ReduceAction8 */
 },
 };
-const struct types resolution_table_parser__ReduceAction74 = {
+const struct types resolution_table_parser__ReduceAction8 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction75 */
-const struct type type_parser__ReduceAction75 = {
-710,
-"ReduceAction75", /* class_name_string */
+/* runtime type ReduceAction9 */
+const struct type type_parser__ReduceAction9 = {
+687,
+"ReduceAction9", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction75,
+&resolution_table_parser__ReduceAction9,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-710, /* ReduceAction75 */
+270, /* ReduceAction */
+687, /* ReduceAction9 */
 },
 };
-const struct types resolution_table_parser__ReduceAction75 = {
+const struct types resolution_table_parser__ReduceAction9 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction76 */
-const struct type type_parser__ReduceAction76 = {
-711,
-"ReduceAction76", /* class_name_string */
+/* runtime type ReduceAction10 */
+const struct type type_parser__ReduceAction10 = {
+688,
+"ReduceAction10", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction76,
+&resolution_table_parser__ReduceAction10,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-711, /* ReduceAction76 */
+270, /* ReduceAction */
+688, /* ReduceAction10 */
 },
 };
-const struct types resolution_table_parser__ReduceAction76 = {
+const struct types resolution_table_parser__ReduceAction10 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction78 */
-const struct type type_parser__ReduceAction78 = {
-712,
-"ReduceAction78", /* class_name_string */
+/* runtime type ReduceAction11 */
+const struct type type_parser__ReduceAction11 = {
+689,
+"ReduceAction11", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction78,
+&resolution_table_parser__ReduceAction11,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-712, /* ReduceAction78 */
+270, /* ReduceAction */
+689, /* ReduceAction11 */
 },
 };
-const struct types resolution_table_parser__ReduceAction78 = {
+const struct types resolution_table_parser__ReduceAction11 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction79 */
-const struct type type_parser__ReduceAction79 = {
-713,
-"ReduceAction79", /* class_name_string */
+/* runtime type ReduceAction12 */
+const struct type type_parser__ReduceAction12 = {
+690,
+"ReduceAction12", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction79,
+&resolution_table_parser__ReduceAction12,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-713, /* ReduceAction79 */
+270, /* ReduceAction */
+690, /* ReduceAction12 */
 },
 };
-const struct types resolution_table_parser__ReduceAction79 = {
+const struct types resolution_table_parser__ReduceAction12 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction81 */
-const struct type type_parser__ReduceAction81 = {
-714,
-"ReduceAction81", /* class_name_string */
+/* runtime type ReduceAction13 */
+const struct type type_parser__ReduceAction13 = {
+691,
+"ReduceAction13", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction81,
+&resolution_table_parser__ReduceAction13,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-714, /* ReduceAction81 */
+270, /* ReduceAction */
+691, /* ReduceAction13 */
 },
 };
-const struct types resolution_table_parser__ReduceAction81 = {
+const struct types resolution_table_parser__ReduceAction13 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction82 */
-const struct type type_parser__ReduceAction82 = {
-715,
-"ReduceAction82", /* class_name_string */
+/* runtime type ReduceAction14 */
+const struct type type_parser__ReduceAction14 = {
+692,
+"ReduceAction14", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction82,
+&resolution_table_parser__ReduceAction14,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-715, /* ReduceAction82 */
+270, /* ReduceAction */
+692, /* ReduceAction14 */
 },
 };
-const struct types resolution_table_parser__ReduceAction82 = {
+const struct types resolution_table_parser__ReduceAction14 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction83 */
-const struct type type_parser__ReduceAction83 = {
-716,
-"ReduceAction83", /* class_name_string */
+/* runtime type ReduceAction15 */
+const struct type type_parser__ReduceAction15 = {
+693,
+"ReduceAction15", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction83,
+&resolution_table_parser__ReduceAction15,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-716, /* ReduceAction83 */
+270, /* ReduceAction */
+693, /* ReduceAction15 */
 },
 };
-const struct types resolution_table_parser__ReduceAction83 = {
+const struct types resolution_table_parser__ReduceAction15 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction84 */
-const struct type type_parser__ReduceAction84 = {
-717,
-"ReduceAction84", /* class_name_string */
+/* runtime type ReduceAction16 */
+const struct type type_parser__ReduceAction16 = {
+694,
+"ReduceAction16", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction84,
+&resolution_table_parser__ReduceAction16,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-717, /* ReduceAction84 */
+270, /* ReduceAction */
+694, /* ReduceAction16 */
 },
 };
-const struct types resolution_table_parser__ReduceAction84 = {
+const struct types resolution_table_parser__ReduceAction16 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction86 */
-const struct type type_parser__ReduceAction86 = {
-718,
-"ReduceAction86", /* class_name_string */
+/* runtime type ReduceAction17 */
+const struct type type_parser__ReduceAction17 = {
+695,
+"ReduceAction17", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction86,
+&resolution_table_parser__ReduceAction17,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-718, /* ReduceAction86 */
+270, /* ReduceAction */
+695, /* ReduceAction17 */
 },
 };
-const struct types resolution_table_parser__ReduceAction86 = {
+const struct types resolution_table_parser__ReduceAction17 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction87 */
-const struct type type_parser__ReduceAction87 = {
-719,
-"ReduceAction87", /* class_name_string */
+/* runtime type ReduceAction18 */
+const struct type type_parser__ReduceAction18 = {
+696,
+"ReduceAction18", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction87,
+&resolution_table_parser__ReduceAction18,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-719, /* ReduceAction87 */
+270, /* ReduceAction */
+696, /* ReduceAction18 */
 },
 };
-const struct types resolution_table_parser__ReduceAction87 = {
+const struct types resolution_table_parser__ReduceAction18 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction89 */
-const struct type type_parser__ReduceAction89 = {
-720,
-"ReduceAction89", /* class_name_string */
+/* runtime type ReduceAction19 */
+const struct type type_parser__ReduceAction19 = {
+697,
+"ReduceAction19", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction89,
+&resolution_table_parser__ReduceAction19,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-720, /* ReduceAction89 */
+270, /* ReduceAction */
+697, /* ReduceAction19 */
 },
 };
-const struct types resolution_table_parser__ReduceAction89 = {
+const struct types resolution_table_parser__ReduceAction19 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction90 */
-const struct type type_parser__ReduceAction90 = {
-721,
-"ReduceAction90", /* class_name_string */
+/* runtime type ReduceAction20 */
+const struct type type_parser__ReduceAction20 = {
+698,
+"ReduceAction20", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction90,
+&resolution_table_parser__ReduceAction20,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-721, /* ReduceAction90 */
+270, /* ReduceAction */
+698, /* ReduceAction20 */
 },
 };
-const struct types resolution_table_parser__ReduceAction90 = {
+const struct types resolution_table_parser__ReduceAction20 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction91 */
-const struct type type_parser__ReduceAction91 = {
-722,
-"ReduceAction91", /* class_name_string */
+/* runtime type ReduceAction21 */
+const struct type type_parser__ReduceAction21 = {
+699,
+"ReduceAction21", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction91,
+&resolution_table_parser__ReduceAction21,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-722, /* ReduceAction91 */
+270, /* ReduceAction */
+699, /* ReduceAction21 */
 },
 };
-const struct types resolution_table_parser__ReduceAction91 = {
+const struct types resolution_table_parser__ReduceAction21 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction92 */
-const struct type type_parser__ReduceAction92 = {
-723,
-"ReduceAction92", /* class_name_string */
+/* runtime type ReduceAction22 */
+const struct type type_parser__ReduceAction22 = {
+700,
+"ReduceAction22", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction92,
+&resolution_table_parser__ReduceAction22,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-723, /* ReduceAction92 */
+270, /* ReduceAction */
+700, /* ReduceAction22 */
 },
 };
-const struct types resolution_table_parser__ReduceAction92 = {
+const struct types resolution_table_parser__ReduceAction22 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction94 */
-const struct type type_parser__ReduceAction94 = {
-724,
-"ReduceAction94", /* class_name_string */
+/* runtime type ReduceAction23 */
+const struct type type_parser__ReduceAction23 = {
+701,
+"ReduceAction23", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction94,
+&resolution_table_parser__ReduceAction23,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-724, /* ReduceAction94 */
+270, /* ReduceAction */
+701, /* ReduceAction23 */
 },
 };
-const struct types resolution_table_parser__ReduceAction94 = {
+const struct types resolution_table_parser__ReduceAction23 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction95 */
-const struct type type_parser__ReduceAction95 = {
-725,
-"ReduceAction95", /* class_name_string */
+/* runtime type ReduceAction24 */
+const struct type type_parser__ReduceAction24 = {
+702,
+"ReduceAction24", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction95,
+&resolution_table_parser__ReduceAction24,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-725, /* ReduceAction95 */
+270, /* ReduceAction */
+702, /* ReduceAction24 */
 },
 };
-const struct types resolution_table_parser__ReduceAction95 = {
+const struct types resolution_table_parser__ReduceAction24 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction97 */
-const struct type type_parser__ReduceAction97 = {
-726,
-"ReduceAction97", /* class_name_string */
+/* runtime type ReduceAction25 */
+const struct type type_parser__ReduceAction25 = {
+703,
+"ReduceAction25", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction97,
+&resolution_table_parser__ReduceAction25,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-726, /* ReduceAction97 */
+270, /* ReduceAction */
+703, /* ReduceAction25 */
 },
 };
-const struct types resolution_table_parser__ReduceAction97 = {
+const struct types resolution_table_parser__ReduceAction25 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction98 */
-const struct type type_parser__ReduceAction98 = {
-727,
-"ReduceAction98", /* class_name_string */
+/* runtime type ReduceAction26 */
+const struct type type_parser__ReduceAction26 = {
+704,
+"ReduceAction26", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction98,
+&resolution_table_parser__ReduceAction26,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-727, /* ReduceAction98 */
+270, /* ReduceAction */
+704, /* ReduceAction26 */
 },
 };
-const struct types resolution_table_parser__ReduceAction98 = {
+const struct types resolution_table_parser__ReduceAction26 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction99 */
-const struct type type_parser__ReduceAction99 = {
-728,
-"ReduceAction99", /* class_name_string */
+/* runtime type ReduceAction27 */
+const struct type type_parser__ReduceAction27 = {
+705,
+"ReduceAction27", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction99,
+&resolution_table_parser__ReduceAction27,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-728, /* ReduceAction99 */
+270, /* ReduceAction */
+705, /* ReduceAction27 */
 },
 };
-const struct types resolution_table_parser__ReduceAction99 = {
+const struct types resolution_table_parser__ReduceAction27 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction100 */
-const struct type type_parser__ReduceAction100 = {
-729,
-"ReduceAction100", /* class_name_string */
+/* runtime type ReduceAction28 */
+const struct type type_parser__ReduceAction28 = {
+706,
+"ReduceAction28", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction100,
+&resolution_table_parser__ReduceAction28,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-729, /* ReduceAction100 */
+270, /* ReduceAction */
+706, /* ReduceAction28 */
 },
 };
-const struct types resolution_table_parser__ReduceAction100 = {
+const struct types resolution_table_parser__ReduceAction28 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction102 */
-const struct type type_parser__ReduceAction102 = {
-730,
-"ReduceAction102", /* class_name_string */
+/* runtime type ReduceAction29 */
+const struct type type_parser__ReduceAction29 = {
+707,
+"ReduceAction29", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction102,
+&resolution_table_parser__ReduceAction29,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-730, /* ReduceAction102 */
+270, /* ReduceAction */
+707, /* ReduceAction29 */
 },
 };
-const struct types resolution_table_parser__ReduceAction102 = {
+const struct types resolution_table_parser__ReduceAction29 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction103 */
-const struct type type_parser__ReduceAction103 = {
-731,
-"ReduceAction103", /* class_name_string */
+/* runtime type ReduceAction30 */
+const struct type type_parser__ReduceAction30 = {
+708,
+"ReduceAction30", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction103,
+&resolution_table_parser__ReduceAction30,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-731, /* ReduceAction103 */
+270, /* ReduceAction */
+708, /* ReduceAction30 */
 },
 };
-const struct types resolution_table_parser__ReduceAction103 = {
+const struct types resolution_table_parser__ReduceAction30 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction105 */
-const struct type type_parser__ReduceAction105 = {
-732,
-"ReduceAction105", /* class_name_string */
+/* runtime type ReduceAction31 */
+const struct type type_parser__ReduceAction31 = {
+709,
+"ReduceAction31", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction105,
+&resolution_table_parser__ReduceAction31,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-732, /* ReduceAction105 */
+270, /* ReduceAction */
+709, /* ReduceAction31 */
 },
 };
-const struct types resolution_table_parser__ReduceAction105 = {
+const struct types resolution_table_parser__ReduceAction31 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction106 */
-const struct type type_parser__ReduceAction106 = {
-733,
-"ReduceAction106", /* class_name_string */
+/* runtime type ReduceAction32 */
+const struct type type_parser__ReduceAction32 = {
+710,
+"ReduceAction32", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction106,
+&resolution_table_parser__ReduceAction32,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-733, /* ReduceAction106 */
+270, /* ReduceAction */
+710, /* ReduceAction32 */
 },
 };
-const struct types resolution_table_parser__ReduceAction106 = {
+const struct types resolution_table_parser__ReduceAction32 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction107 */
-const struct type type_parser__ReduceAction107 = {
-734,
-"ReduceAction107", /* class_name_string */
+/* runtime type ReduceAction33 */
+const struct type type_parser__ReduceAction33 = {
+711,
+"ReduceAction33", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction107,
+&resolution_table_parser__ReduceAction33,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-734, /* ReduceAction107 */
+270, /* ReduceAction */
+711, /* ReduceAction33 */
 },
 };
-const struct types resolution_table_parser__ReduceAction107 = {
+const struct types resolution_table_parser__ReduceAction33 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction108 */
-const struct type type_parser__ReduceAction108 = {
-735,
-"ReduceAction108", /* class_name_string */
+/* runtime type ReduceAction34 */
+const struct type type_parser__ReduceAction34 = {
+712,
+"ReduceAction34", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction108,
+&resolution_table_parser__ReduceAction34,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-735, /* ReduceAction108 */
+270, /* ReduceAction */
+712, /* ReduceAction34 */
 },
 };
-const struct types resolution_table_parser__ReduceAction108 = {
+const struct types resolution_table_parser__ReduceAction34 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction110 */
-const struct type type_parser__ReduceAction110 = {
-736,
-"ReduceAction110", /* class_name_string */
+/* runtime type ReduceAction35 */
+const struct type type_parser__ReduceAction35 = {
+713,
+"ReduceAction35", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction110,
+&resolution_table_parser__ReduceAction35,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-736, /* ReduceAction110 */
+270, /* ReduceAction */
+713, /* ReduceAction35 */
 },
 };
-const struct types resolution_table_parser__ReduceAction110 = {
+const struct types resolution_table_parser__ReduceAction35 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction111 */
-const struct type type_parser__ReduceAction111 = {
-737,
-"ReduceAction111", /* class_name_string */
+/* runtime type ReduceAction36 */
+const struct type type_parser__ReduceAction36 = {
+714,
+"ReduceAction36", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction111,
+&resolution_table_parser__ReduceAction36,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-737, /* ReduceAction111 */
+270, /* ReduceAction */
+714, /* ReduceAction36 */
 },
 };
-const struct types resolution_table_parser__ReduceAction111 = {
+const struct types resolution_table_parser__ReduceAction36 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction113 */
-const struct type type_parser__ReduceAction113 = {
-738,
-"ReduceAction113", /* class_name_string */
+/* runtime type ReduceAction37 */
+const struct type type_parser__ReduceAction37 = {
+715,
+"ReduceAction37", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction113,
+&resolution_table_parser__ReduceAction37,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-738, /* ReduceAction113 */
+270, /* ReduceAction */
+715, /* ReduceAction37 */
 },
 };
-const struct types resolution_table_parser__ReduceAction113 = {
+const struct types resolution_table_parser__ReduceAction37 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction114 */
-const struct type type_parser__ReduceAction114 = {
-739,
-"ReduceAction114", /* class_name_string */
+/* runtime type ReduceAction38 */
+const struct type type_parser__ReduceAction38 = {
+716,
+"ReduceAction38", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction114,
+&resolution_table_parser__ReduceAction38,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-739, /* ReduceAction114 */
+270, /* ReduceAction */
+716, /* ReduceAction38 */
 },
 };
-const struct types resolution_table_parser__ReduceAction114 = {
+const struct types resolution_table_parser__ReduceAction38 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction115 */
-const struct type type_parser__ReduceAction115 = {
-740,
-"ReduceAction115", /* class_name_string */
+/* runtime type ReduceAction39 */
+const struct type type_parser__ReduceAction39 = {
+717,
+"ReduceAction39", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction115,
+&resolution_table_parser__ReduceAction39,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-740, /* ReduceAction115 */
+270, /* ReduceAction */
+717, /* ReduceAction39 */
 },
 };
-const struct types resolution_table_parser__ReduceAction115 = {
+const struct types resolution_table_parser__ReduceAction39 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction116 */
-const struct type type_parser__ReduceAction116 = {
-741,
-"ReduceAction116", /* class_name_string */
+/* runtime type ReduceAction40 */
+const struct type type_parser__ReduceAction40 = {
+718,
+"ReduceAction40", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction116,
+&resolution_table_parser__ReduceAction40,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-741, /* ReduceAction116 */
+270, /* ReduceAction */
+718, /* ReduceAction40 */
 },
 };
-const struct types resolution_table_parser__ReduceAction116 = {
+const struct types resolution_table_parser__ReduceAction40 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction118 */
-const struct type type_parser__ReduceAction118 = {
-742,
-"ReduceAction118", /* class_name_string */
+/* runtime type ReduceAction41 */
+const struct type type_parser__ReduceAction41 = {
+719,
+"ReduceAction41", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction118,
+&resolution_table_parser__ReduceAction41,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-742, /* ReduceAction118 */
+270, /* ReduceAction */
+719, /* ReduceAction41 */
 },
 };
-const struct types resolution_table_parser__ReduceAction118 = {
+const struct types resolution_table_parser__ReduceAction41 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction119 */
-const struct type type_parser__ReduceAction119 = {
-743,
-"ReduceAction119", /* class_name_string */
+/* runtime type ReduceAction42 */
+const struct type type_parser__ReduceAction42 = {
+720,
+"ReduceAction42", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction119,
+&resolution_table_parser__ReduceAction42,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-743, /* ReduceAction119 */
+270, /* ReduceAction */
+720, /* ReduceAction42 */
 },
 };
-const struct types resolution_table_parser__ReduceAction119 = {
+const struct types resolution_table_parser__ReduceAction42 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction121 */
-const struct type type_parser__ReduceAction121 = {
-744,
-"ReduceAction121", /* class_name_string */
+/* runtime type ReduceAction43 */
+const struct type type_parser__ReduceAction43 = {
+721,
+"ReduceAction43", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction121,
+&resolution_table_parser__ReduceAction43,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-744, /* ReduceAction121 */
+270, /* ReduceAction */
+721, /* ReduceAction43 */
 },
 };
-const struct types resolution_table_parser__ReduceAction121 = {
+const struct types resolution_table_parser__ReduceAction43 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction122 */
-const struct type type_parser__ReduceAction122 = {
-745,
-"ReduceAction122", /* class_name_string */
+/* runtime type ReduceAction44 */
+const struct type type_parser__ReduceAction44 = {
+722,
+"ReduceAction44", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction122,
+&resolution_table_parser__ReduceAction44,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-745, /* ReduceAction122 */
+270, /* ReduceAction */
+722, /* ReduceAction44 */
 },
 };
-const struct types resolution_table_parser__ReduceAction122 = {
+const struct types resolution_table_parser__ReduceAction44 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction123 */
-const struct type type_parser__ReduceAction123 = {
-746,
-"ReduceAction123", /* class_name_string */
+/* runtime type ReduceAction45 */
+const struct type type_parser__ReduceAction45 = {
+723,
+"ReduceAction45", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction123,
+&resolution_table_parser__ReduceAction45,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-746, /* ReduceAction123 */
+270, /* ReduceAction */
+723, /* ReduceAction45 */
 },
 };
-const struct types resolution_table_parser__ReduceAction123 = {
+const struct types resolution_table_parser__ReduceAction45 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction124 */
-const struct type type_parser__ReduceAction124 = {
-747,
-"ReduceAction124", /* class_name_string */
+/* runtime type ReduceAction46 */
+const struct type type_parser__ReduceAction46 = {
+724,
+"ReduceAction46", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction124,
+&resolution_table_parser__ReduceAction46,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-747, /* ReduceAction124 */
+270, /* ReduceAction */
+724, /* ReduceAction46 */
 },
 };
-const struct types resolution_table_parser__ReduceAction124 = {
+const struct types resolution_table_parser__ReduceAction46 = {
 0, /* dummy */
 {
 }
 };
-/* runtime type ReduceAction126 */
-const struct type type_parser__ReduceAction126 = {
-748,
-"ReduceAction126", /* class_name_string */
+/* runtime type ReduceAction47 */
+const struct type type_parser__ReduceAction47 = {
+725,
+"ReduceAction47", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction126,
+&resolution_table_parser__ReduceAction47,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-748, /* ReduceAction126 */
+270, /* ReduceAction */
+725, /* ReduceAction47 */
 },
 };
+const struct types resolution_table_parser__ReduceAction47 = {
+0, /* dummy */
+{
+}
+};