c_src: update with new intern methods
[nit.git] / c_src / nitg.types.1.c
index 082d027..706eeb9 100644 (file)
@@ -5,20 +5,20 @@ const int COLOR_abstract_collection__Collection_FT0 = 12;
 const int COLOR_parser_nodes__ANodes_FT0 = 1;
 const int COLOR_array__ArrayMapKeysarray__ArrayMap_FT0array__ArrayMap_FT1 = 0;
 const int COLOR_array__ArrayMapValuesarray__ArrayMap_FT0array__ArrayMap_FT1 = 1;
-const int COLOR_abstract_collection__MapRead_FT0 = 7;
+const int COLOR_abstract_collection__MapRead_FT0 = 4;
 const int COLOR_abstract_collection__Map_FT0 = 9;
 const int COLOR_abstract_collection__Map_FT1 = 10;
 const int COLOR_abstract_collection__Couplearray__ArrayMap_FT0array__ArrayMap_FT1 = 2;
 const int COLOR_abstract_collection__CoupleMapIteratorarray__ArrayMap_FT0array__ArrayMap_FT1 = 3;
-const int COLOR_abstract_collection__CoupleMap_FT0 = 4;
-const int COLOR_array__ArrayMap_FT0 = 5;
-const int COLOR_array__Arrayabstract_collection__Couplearray__ArrayMap_FT0array__ArrayMap_FT1 = 6;
-const int COLOR_hash_collection__HashMapKeyshash_collection__HashMap_FT0hash_collection__HashMap_FT1 = 4;
-const int COLOR_hash_collection__HashMapValueshash_collection__HashMap_FT0hash_collection__HashMap_FT1 = 5;
+const int COLOR_abstract_collection__CoupleMap_FT0 = 5;
+const int COLOR_array__ArrayMap_FT0 = 6;
+const int COLOR_array__Arrayabstract_collection__Couplearray__ArrayMap_FT0array__ArrayMap_FT1 = 7;
+const int COLOR_hash_collection__HashMapKeyshash_collection__HashMap_FT0hash_collection__HashMap_FT1 = 5;
+const int COLOR_hash_collection__HashMapValueshash_collection__HashMap_FT0hash_collection__HashMap_FT1 = 7;
 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;
@@ -48,11 +48,11 @@ const int COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0array_
 const int COLOR_abstract_collection__Setlayout_builders__TypingColorer_FT0 = 3;
 const int COLOR_abstract_collection__Maplayout_builders__TypingColorer_FT0kernel__Int = 4;
 const int COLOR_layout_builders__POSetBuilderlayout_builders__TypingColorer_FT0 = 5;
-const int COLOR_poset__POSetlayout_builders__TypingColorer_FT0 = 6;
+const int COLOR_nullable_poset__POSetlayout_builders__TypingColorer_FT0 = 6;
 const int COLOR_layout_builders__Layoutlayout_builders__TypingColorer_FT0 = 7;
 const int COLOR_layout_builders__TypingColorer_FT0 = 8;
 const int COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0hash_collection__HashSetlayout_builders__TypingColorer_FT0 = 9;
-const int COLOR_hash_collection__HashMaplayout_builders__TypingColorer_FT0abstract_collection__Setlayout_builders__TypingColorer_FT0 = 10;
+const int COLOR_nullable_hash_collection__HashMaplayout_builders__TypingColorer_FT0abstract_collection__Setlayout_builders__TypingColorer_FT0 = 10;
 const int COLOR_abstract_collection__Maplayout_builders__TypingColorer_FT0array__Arraylayout_builders__TypingColorer_FT0 = 11;
 const int COLOR_array__Arraylayout_builders__TypingColorer_FT0 = 12;
 const int COLOR_hash_collection__HashMaplayout_builders__MPropertyColorer_FT0kernel__Int = 0;
@@ -66,18 +66,19 @@ const int COLOR_abstract_collection__SimpleCollection_FT0 = 3;
 const int COLOR_abstract_collection__Collectionarray__Array_FT0 = 4;
 const int COLOR_array__Array_FT0 = 5;
 const int COLOR_kernel__Comparable_VTOTHER = 0;
+const int COLOR_string__StringCharView_VTSELFTYPE = 0;
 const int COLOR_array__Arrayabstract_collection__Sequence_FT0 = 10;
 const int COLOR_abstract_collection__Collectionabstract_collection__Collection_FT0 = 13;
 const int COLOR_abstract_collection__ContainerIteratorabstract_collection__Container_FT0 = 2;
 const int COLOR_abstract_collection__Container_FT0 = 3;
-const int COLOR_abstract_collection__Containerabstract_collection__ContainerIterator_FT0 = 0;
+const int COLOR_abstract_collection__Containerabstract_collection__ContainerIterator_FT0 = 1;
 const int COLOR_abstract_collection__RemovableCollection_FT0 = 8;
 const int COLOR_abstract_collection__Collectionabstract_collection__SimpleCollection_FT0 = 11;
 const int COLOR_abstract_collection__Collectionabstract_collection__Set_FT0 = 4;
 const int COLOR_abstract_collection__MapRead_FT1 = 13;
 const int COLOR_abstract_collection__Mapabstract_collection__Map_FT0abstract_collection__Map_FT1 = 12;
-const int COLOR_abstract_collection__MapIteratorabstract_collection__MapKeysIterator_FT0abstract_collection__MapKeysIterator_FT1 = 0;
-const int COLOR_abstract_collection__MapIteratorabstract_collection__MapValuesIterator_FT0abstract_collection__MapValuesIterator_FT1 = 0;
+const int COLOR_abstract_collection__MapIteratorabstract_collection__MapKeysIterator_FT0abstract_collection__MapKeysIterator_FT1 = 1;
+const int COLOR_abstract_collection__MapIteratorabstract_collection__MapValuesIterator_FT0abstract_collection__MapValuesIterator_FT1 = 1;
 const int COLOR_abstract_collection__SequenceRead_FT0 = 14;
 const int COLOR_abstract_collection__Collectionabstract_collection__Sequence_FT0 = 9;
 const int COLOR_abstract_collection__Iteratorabstract_collection__Coupleabstract_collection__CoupleMapIterator_FT0abstract_collection__CoupleMapIterator_FT1 = 0;
@@ -85,40 +86,42 @@ const int COLOR_abstract_collection__Couple_FT0 = 0;
 const int COLOR_abstract_collection__Couple_FT1 = 1;
 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__IteratorRange_FT0 = 1;
 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;
 const int COLOR_abstract_collection__Collectionlist__List_FT0 = 5;
 const int COLOR_list__List_FT0 = 6;
-const int COLOR_list__ListIterator_FT0 = 0;
+const int COLOR_nullable_list__ListNodelist__List_FT0 = 7;
+const int COLOR_list__ListIterator_FT0 = 1;
 const int COLOR_list__Listlist__ListIterator_FT0 = 2;
 const int COLOR_list__ListNode_FT0 = 0;
-const int COLOR_list__ListNodelist__ListNode_FT0 = 1;
+const int COLOR_nullable_list__ListNodelist__ListNode_FT0 = 1;
 const int COLOR_array__AbstractArrayRead_FT0 = 15;
 const int COLOR_array__Arrayarray__AbstractArrayRead_FT0 = 16;
 const int COLOR_array__AbstractArrayarray__AbstractArrayRead_FT0 = 17;
 const int COLOR_array__ArrayIteratorarray__AbstractArrayRead_FT0 = 18;
 const int COLOR_array__AbstractArray_FT0 = 7;
-const int COLOR_array__AbstractArrayReadarray__ArrayIterator_FT0 = 0;
+const int COLOR_array__AbstractArrayReadarray__ArrayIterator_FT0 = 1;
 const int COLOR_array__ArraySetIteratorarray__ArraySet_FT0 = 0;
 const int COLOR_array__Arrayarray__ArraySet_FT0 = 1;
-const int COLOR_array__ArrayIteratorarray__ArraySetIterator_FT0 = 0;
+const int COLOR_array__ArrayIteratorarray__ArraySetIterator_FT0 = 1;
 const int COLOR_array__ArrayMaparray__ArrayMapKeys_FT0array__ArrayMapKeys_FT1 = 0;
 const int COLOR_abstract_collection__MapKeysIteratorarray__ArrayMapKeys_FT0array__ArrayMapKeys_FT1 = 1;
 const int COLOR_array__ArrayMaparray__ArrayMapValues_FT0array__ArrayMapValues_FT1 = 0;
 const int COLOR_abstract_collection__MapValuesIteratorarray__ArrayMapValues_FT0array__ArrayMapValues_FT1 = 1;
-const int COLOR_array__Arrayabstract_collection__Iterator_FT0 = 1;
+const int COLOR_array__Arrayabstract_collection__Iterator_FT0 = 0;
 const int COLOR_array__NativeArrayarray__ArrayCapable_FT0 = 6;
 const int COLOR_array__NativeArray_FT0 = 0;
 const int COLOR_array__NativeArrayarray__NativeArray_FT0 = 1;
 const int COLOR_sorter__AbstractSorter_FT0 = 0;
 const int COLOR_array__Arraysorter__AbstractSorter_FT0 = 1;
 const int COLOR_hash_collection__HashCollection_FT0 = 14;
-const int COLOR_hash_collection__HashCollection_FT1 = 15;
-const int COLOR_hash_collection__HashNode_VTN = 2;
+const int COLOR_nullable_hash_collection__HashCollection_FT1 = 15;
+const int COLOR_hash_collection__HashCollection_FT1 = 16;
+const int COLOR_nullable_hash_collection__HashCollection_FT0 = 17;
+const int COLOR_nullable_hash_collection__HashNode_VTN = 2;
 const int COLOR_hash_collection__HashNode_FT0 = 3;
 const int COLOR_hash_collection__HashMaphash_collection__HashMapKeys_FT0hash_collection__HashMapKeys_FT1 = 0;
 const int COLOR_abstract_collection__MapKeysIteratorhash_collection__HashMapKeys_FT0hash_collection__HashMapKeys_FT1 = 1;
@@ -131,15 +134,22 @@ const int COLOR_hash_collection__HashSetNodehash_collection__HashSet_FT0 = 0;
 const int COLOR_hash_collection__HashSetIteratorhash_collection__HashSet_FT0 = 1;
 const int COLOR_abstract_collection__Collectionhash_collection__HashSet_FT0 = 2;
 const int COLOR_hash_collection__HashSetNode_FT0 = 0;
-const int COLOR_hash_collection__HashSethash_collection__HashSetIterator_FT0 = 0;
+const int COLOR_hash_collection__HashSethash_collection__HashSetIterator_FT0 = 1;
 const int COLOR_model__MPropDef_VTMPROPERTY = 0;
 const int COLOR_model__MPropDef_VTMPROPDEF = 2;
 const int COLOR_more_collections__MultiHashMap_FT0 = 0;
 const int COLOR_more_collections__MultiHashMap_FT1 = 1;
 const int COLOR_array__Arraymore_collections__MultiHashMap_FT1 = 2;
 const int COLOR_array__NativeArraymore_collections__MultiHashMap_FT1 = 3;
-const int COLOR_opts__Option_VTVALUE = 0;
-const int COLOR_parser_nodes__APropdef_VTMPROPDEF = 0;
+const int COLOR_nullable_opts__Option_VTVALUE = 0;
+const int COLOR_opts__Option_VTVALUE = 1;
+const int COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF = 0;
+const int COLOR_array__Arrayordered_tree__OrderedTree_FT0 = -1;
+const int COLOR_hash_collection__HashMapordered_tree__OrderedTree_FT0array__Arrayordered_tree__OrderedTree_FT0 = -1;
+const int COLOR_nullable_ordered_tree__OrderedTree_FT0 = -1;
+const int COLOR_ordered_tree__OrderedTree_FT0 = -1;
+const int COLOR_array__NativeArrayordered_tree__OrderedTree_FT0 = -1;
+const int COLOR_sorter__AbstractSorterordered_tree__OrderedTree_FT0 = -1;
 const int COLOR_abstract_compiler__AbstractCompiler_VTVISITOR = 0;
 const int COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER = 0;
 const int COLOR_abstract_compiler__AbstractRuntimeFunction_VTVISITOR = 1;
@@ -150,7 +160,7 @@ const int COLOR_abstract_collection__Setlayout_builders__TypingLayoutBuilder_FT0
 const int COLOR_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutBuilder_FT0 = 5;
 const int COLOR_abstract_collection__Setlayout_builders__POSetBuilder_FT0 = 0;
 const int COLOR_layout_builders__POSetBuilderlayout_builders__TypingBMizer_FT0 = 0;
-const int COLOR_poset__POSetlayout_builders__TypingBMizer_FT0 = 1;
+const int COLOR_nullable_poset__POSetlayout_builders__TypingBMizer_FT0 = 1;
 const int COLOR_abstract_collection__Setlayout_builders__TypingBMizer_FT0 = 2;
 const int COLOR_layout_builders__Layoutlayout_builders__TypingBMizer_FT0 = 3;
 const int COLOR_hash_collection__HashMaplayout_builders__TypingBMizer_FT0kernel__Int = 4;
@@ -164,7 +174,7 @@ const int COLOR_abstract_collection__Maplayout_builders__PerfectHasher_FT0kernel
 const int COLOR_hash_collection__HashMaplayout_builders__PerfectHasher_FT0abstract_collection__Maplayout_builders__PerfectHasher_FT1kernel__Int = 12;
 const int COLOR_hash_collection__HashMaplayout_builders__PerfectHasher_FT1kernel__Int = 14;
 const int COLOR_layout_builders__POSetBuilderlayout_builders__TypingHasher_FT0 = 0;
-const int COLOR_poset__POSetlayout_builders__TypingHasher_FT0 = 1;
+const int COLOR_nullable_poset__POSetlayout_builders__TypingHasher_FT0 = 1;
 const int COLOR_abstract_collection__Setlayout_builders__TypingHasher_FT0 = 2;
 const int COLOR_layout_builders__PHLayoutlayout_builders__TypingHasher_FT0layout_builders__TypingHasher_FT0 = 3;
 const int COLOR_hash_collection__HashMaplayout_builders__TypingHasher_FT0kernel__Int = 4;
@@ -174,30 +184,25 @@ 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,
+-1, /*CAST DEAD*/
 "Sys", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_kernel__Sys,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-158, /* Sys */
+86, /* Sys */
 },
 };
-const struct types resolution_table_kernel__Sys = {
-0, /* dummy */
-{
-}
-};
 /* runtime type Object */
 const struct type type_kernel__Object = {
 1,
 "Object", /* class_name_string */
 1,
 0,
-NULL,
+NULL, /*NO RESOLUTIONS*/
 2,
 {
 0, /* nullable Object */
@@ -210,109 +215,150 @@ const struct type type_nullable_kernel__Object = {
 "nullable Object", /* class_name_string */
 0,
 1,
-NULL,
-1,
-{
-0, /* nullable Object */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Bool */
 const struct type type_kernel__Bool = {
-159,
+632,
 "Bool", /* class_name_string */
-2,
+3,
 0,
-&resolution_table_kernel__Bool,
+NULL, /*NO RESOLUTIONS*/
+4,
+{
+0, /* nullable Object */
+1, /* Object */
+2, /* nullable Bool */
+632, /* Bool */
+},
+};
+/* runtime type nullable Bool */
+const struct type type_nullable_kernel__Bool = {
+2,
+"nullable Bool", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Int */
+const struct type type_kernel__Int = {
+633,
+"Int", /* class_name_string */
 3,
+0,
+&resolution_table_kernel__Int,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-159, /* Bool */
+3, /* nullable Int */
+633, /* Int */
 },
 };
-const struct types resolution_table_kernel__Bool = {
+const struct types resolution_table_kernel__Int = {
 0, /* dummy */
 {
+&type_kernel__Int, /* OTHER: Int */
 }
 };
-/* runtime type ToolContext */
-const struct type type_toolcontext__ToolContext = {
-160,
-"ToolContext", /* class_name_string */
+/* runtime type nullable Int */
+const struct type type_nullable_kernel__Int = {
+3,
+"nullable Int", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Float */
+const struct type type_kernel__Float = {
+87,
+"Float", /* class_name_string */
 2,
 0,
-&resolution_table_toolcontext__ToolContext,
+&resolution_table_kernel__Float,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-160, /* ToolContext */
+87, /* Float */
 },
 };
-const struct types resolution_table_toolcontext__ToolContext = {
+const struct types resolution_table_kernel__Float = {
 0, /* dummy */
 {
+&type_kernel__Float, /* OTHER: Float */
 }
 };
-/* runtime type Int */
-const struct type type_kernel__Int = {
-161,
-"Int", /* class_name_string */
+/* runtime type Char */
+const struct type type_kernel__Char = {
+88,
+"Char", /* class_name_string */
 2,
 0,
-&resolution_table_kernel__Int,
+&resolution_table_kernel__Char,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-161, /* Int */
+88, /* Char */
 },
 };
-const struct types resolution_table_kernel__Int = {
+const struct types resolution_table_kernel__Char = {
 0, /* dummy */
 {
-&type_kernel__Int, /* OTHER: Int */
-&type_range__Rangekernel__Int, /* Range[OTHER]: Range[Int] */
+&type_kernel__Char, /* OTHER: Char */
 }
 };
+/* runtime type ToolContext */
+const struct type type_toolcontext__ToolContext = {
+-1, /*CAST DEAD*/
+"ToolContext", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+89, /* ToolContext */
+},
+};
 /* runtime type NativeString */
 const struct type type_string__NativeString = {
-162,
+-1, /*CAST DEAD*/
 "NativeString", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_string__NativeString,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-162, /* NativeString */
+90, /* NativeString */
 },
 };
-const struct types resolution_table_string__NativeString = {
-0, /* dummy */
-{
-}
-};
 /* runtime type Array[Message] */
 const struct type type_array__Arraytoolcontext__Message = {
-2477,
+2655,
 "Array[Message]", /* class_name_string */
-7,
+6,
 0,
 &resolution_table_array__Arraytoolcontext__Message,
 10,
 {
 0, /* nullable Object */
 1, /* Object */
-571, /* Collection[Message] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2191, /* AbstractArrayRead[Message] */
-1728, /* AbstractArrayRead[Object] */
-2477, /* Array[Message] */
+634, /* Collection[Message] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2234, /* AbstractArrayRead[Message] */
+2655, /* Array[Message] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
+2029, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arraytoolcontext__Message = {
@@ -341,7 +387,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Message] not a
 };
 /* runtime type Array[Object] */
 const struct type type_array__Arraykernel__Object = {
-1911,
+2029,
 "Array[Object]", /* class_name_string */
 9,
 0,
@@ -351,13 +397,13 @@ const struct type type_array__Arraykernel__Object = {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
 -1, /* empty */
-1728, /* AbstractArrayRead[Object] */
 -1, /* empty */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
+2029, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arraykernel__Object = {
@@ -386,99 +432,61 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Object] not a
 };
 /* runtime type SequenceRead[nullable Object] */
 const struct type type_abstract_collection__SequenceReadnullable_kernel__Object = {
-163,
+91,
 "SequenceRead[nullable Object]", /* class_name_string */
 3,
 0,
-NULL,
-4,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[Message] */
 const struct type type_abstract_collection__Collectiontoolcontext__Message = {
-571,
+634,
 "Collection[Message]", /* class_name_string */
 2,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-571, /* Collection[Message] */
--1, /* empty */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[Object] */
 const struct type type_abstract_collection__Collectionkernel__Object = {
-164,
+92,
 "Collection[Object]", /* class_name_string */
 4,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
--1, /* empty */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[Message] */
 const struct type type_array__AbstractArrayReadtoolcontext__Message = {
-2191,
+2234,
 "AbstractArrayRead[Message]", /* class_name_string */
 5,
 0,
-NULL,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-571, /* Collection[Message] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2191, /* AbstractArrayRead[Message] */
-1728, /* AbstractArrayRead[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[Object] */
 const struct type type_array__AbstractArrayReadkernel__Object = {
-1728,
+1838,
 "AbstractArrayRead[Object]", /* class_name_string */
-6,
-0,
-NULL,
 7,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
--1, /* empty */
-1728, /* AbstractArrayRead[Object] */
-},
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type ComparableSorter[Message] */
 const struct type type_sorter__ComparableSortertoolcontext__Message = {
-165,
+-1, /*CAST DEAD*/
 "ComparableSorter[Message]", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_sorter__ComparableSortertoolcontext__Message,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-165, /* ComparableSorter[Message] */
+93, /* ComparableSorter[Message] */
 },
 };
 const struct types resolution_table_sorter__ComparableSortertoolcontext__Message = {
@@ -490,119 +498,106 @@ const struct types resolution_table_sorter__ComparableSortertoolcontext__Message
 };
 /* runtime type OptionContext */
 const struct type type_opts__OptionContext = {
-166,
+-1, /*CAST DEAD*/
 "OptionContext", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_opts__OptionContext,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-166, /* OptionContext */
+94, /* OptionContext */
 },
 };
-const struct types resolution_table_opts__OptionContext = {
-0, /* dummy */
-{
-}
-};
 /* runtime type OptionCount */
 const struct type type_opts__OptionCount = {
-572,
+-1, /*CAST DEAD*/
 "OptionCount", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_opts__OptionCount,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
-572, /* OptionCount */
+95, /* Option */
+635, /* OptionCount */
 },
 };
 const struct types resolution_table_opts__OptionCount = {
 0, /* dummy */
 {
+&type_nullable_kernel__Int, /* nullable VALUE: nullable Int */
 &type_kernel__Int, /* VALUE: Int */
 }
 };
 /* runtime type Option */
 const struct type type_opts__Option = {
-167,
+95,
 "Option", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-167, /* Option */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type OptionBool */
 const struct type type_opts__OptionBool = {
-573,
+-1, /*CAST DEAD*/
 "OptionBool", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_opts__OptionBool,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
-573, /* OptionBool */
+95, /* Option */
+636, /* OptionBool */
 },
 };
 const struct types resolution_table_opts__OptionBool = {
 0, /* dummy */
 {
+&type_nullable_kernel__Bool, /* nullable VALUE: nullable Bool */
 &type_kernel__Bool, /* VALUE: Bool */
 }
 };
 /* runtime type OptionString */
 const struct type type_opts__OptionString = {
-1729,
+-1, /*CAST DEAD*/
 "OptionString", /* class_name_string */
-4,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_opts__OptionString,
 5,
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
-574, /* OptionParameter */
-1729, /* OptionString */
+95, /* Option */
+637, /* OptionParameter */
+1839, /* OptionString */
 },
 };
 const struct types resolution_table_opts__OptionString = {
 0, /* dummy */
 {
+&type_nullable_string__String, /* nullable VALUE: nullable String */
 &type_nullable_string__String, /* VALUE: nullable String */
 }
 };
 /* runtime type OptionParameter */
 const struct type type_opts__OptionParameter = {
-574,
+637,
 "OptionParameter", /* class_name_string */
 3,
 0,
-NULL,
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-167, /* Option */
-574, /* OptionParameter */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type POSet[Phase] */
 const struct type type_poset__POSetphase__Phase = {
-1730,
+1840,
 "POSet[Phase]", /* class_name_string */
 3,
 0,
@@ -611,9 +606,9 @@ const struct type type_poset__POSetphase__Phase = {
 {
 0, /* nullable Object */
 1, /* Object */
-575, /* Collection[Phase] */
-1730, /* POSet[Phase] */
-164, /* Collection[Object] */
+638, /* Collection[Phase] */
+1840, /* POSet[Phase] */
+92, /* Collection[Object] */
 },
 };
 const struct types resolution_table_poset__POSetphase__Phase = {
@@ -637,133 +632,114 @@ NULL, /* empty */
 };
 /* runtime type Collection[Phase] */
 const struct type type_abstract_collection__Collectionphase__Phase = {
-575,
+638,
 "Collection[Phase]", /* class_name_string */
 2,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-575, /* Collection[Phase] */
--1, /* empty */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type SimpleMiscAnalysisPhase */
 const struct type type_simple_misc_analysis__SimpleMiscAnalysisPhase = {
-576,
+-1, /*CAST DEAD*/
 "SimpleMiscAnalysisPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_simple_misc_analysis__SimpleMiscAnalysisPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-576, /* SimpleMiscAnalysisPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1841, /* SimpleMiscAnalysisPhase */
 },
 };
-const struct types resolution_table_simple_misc_analysis__SimpleMiscAnalysisPhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type Phase */
 const struct type type_phase__Phase = {
-168,
+639,
 "Phase", /* class_name_string */
-2,
-0,
-NULL,
 3,
-{
-0, /* nullable Object */
-1, /* Object */
-168, /* Phase */
-},
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable Phase */
+const struct type type_nullable_phase__Phase = {
+4,
+"nullable Phase", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type LiteralPhase */
 const struct type type_literal__LiteralPhase = {
-577,
+-1, /*CAST DEAD*/
 "LiteralPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_literal__LiteralPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-577, /* LiteralPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1842, /* LiteralPhase */
 },
 };
-const struct types resolution_table_literal__LiteralPhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type ScopePhase */
 const struct type type_scope__ScopePhase = {
-578,
+-1, /*CAST DEAD*/
 "ScopePhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_scope__ScopePhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-578, /* ScopePhase */
+4, /* nullable Phase */
+639, /* Phase */
+1843, /* ScopePhase */
 },
 };
-const struct types resolution_table_scope__ScopePhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type FlowPhase */
 const struct type type_flow__FlowPhase = {
-579,
+-1, /*CAST DEAD*/
 "FlowPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_flow__FlowPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-579, /* FlowPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1844, /* FlowPhase */
 },
 };
-const struct types resolution_table_flow__FlowPhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type Array[Phase] */
 const struct type type_array__Arrayphase__Phase = {
-2478,
+2656,
 "Array[Phase]", /* class_name_string */
-7,
+6,
 0,
 &resolution_table_array__Arrayphase__Phase,
 10,
 {
 0, /* nullable Object */
 1, /* Object */
-575, /* Collection[Phase] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2192, /* AbstractArrayRead[Phase] */
-1728, /* AbstractArrayRead[Object] */
-2478, /* Array[Phase] */
+638, /* Collection[Phase] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2235, /* AbstractArrayRead[Phase] */
+2656, /* Array[Phase] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
+2029, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arrayphase__Phase = {
@@ -792,326 +768,632 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Phase] not a l
 };
 /* runtime type AbstractArrayRead[Phase] */
 const struct type type_array__AbstractArrayReadphase__Phase = {
-2192,
+2235,
 "AbstractArrayRead[Phase]", /* class_name_string */
 5,
 0,
-NULL,
-7,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type SerializationPhase */
+const struct type type_serialization_phase__SerializationPhase = {
+-1, /*CAST DEAD*/
+"SerializationPhase", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-575, /* Collection[Phase] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2192, /* AbstractArrayRead[Phase] */
-1728, /* AbstractArrayRead[Object] */
+4, /* nullable Phase */
+639, /* Phase */
+1845, /* SerializationPhase */
 },
 };
 /* runtime type LocalVarInitPhase */
 const struct type type_local_var_init__LocalVarInitPhase = {
-580,
+-1, /*CAST DEAD*/
 "LocalVarInitPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_local_var_init__LocalVarInitPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-580, /* LocalVarInitPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1846, /* LocalVarInitPhase */
 },
 };
-const struct types resolution_table_local_var_init__LocalVarInitPhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type OptionArray */
 const struct type type_opts__OptionArray = {
-1731,
+-1, /*CAST DEAD*/
 "OptionArray", /* class_name_string */
-4,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_opts__OptionArray,
 5,
 {
 0, /* nullable Object */
 1, /* Object */
-167, /* Option */
-574, /* OptionParameter */
-1731, /* OptionArray */
+95, /* Option */
+637, /* OptionParameter */
+1847, /* OptionArray */
 },
 };
 const struct types resolution_table_opts__OptionArray = {
 0, /* dummy */
 {
+&type_nullable_array__Arraystring__String, /* nullable VALUE: nullable Array[String] */
 &type_array__Arraystring__String, /* VALUE: Array[String] */
 }
 };
 /* runtime type ModelizeClassPhase */
 const struct type type_modelize_class__ModelizeClassPhase = {
-581,
+-1, /*CAST DEAD*/
 "ModelizeClassPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_modelize_class__ModelizeClassPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-581, /* ModelizeClassPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1848, /* ModelizeClassPhase */
 },
 };
-const struct types resolution_table_modelize_class__ModelizeClassPhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type ModelizePropertyPhase */
 const struct type type_modelize_property__ModelizePropertyPhase = {
-582,
+-1, /*CAST DEAD*/
 "ModelizePropertyPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_modelize_property__ModelizePropertyPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-582, /* ModelizePropertyPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1849, /* ModelizePropertyPhase */
 },
 };
-const struct types resolution_table_modelize_property__ModelizePropertyPhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type CachedPhase */
 const struct type type_cached__CachedPhase = {
-583,
+-1, /*CAST DEAD*/
 "CachedPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_cached__CachedPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-583, /* CachedPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1850, /* CachedPhase */
 },
 };
-const struct types resolution_table_cached__CachedPhase = {
-0, /* dummy */
+/* runtime type PlatformPhase */
+const struct type type_platform__PlatformPhase = {
+-1, /*CAST DEAD*/
+"PlatformPhase", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+4, /* nullable Phase */
+639, /* Phase */
+1851, /* PlatformPhase */
+},
 };
 /* runtime type TypingPhase */
 const struct type type_typing__TypingPhase = {
-584,
+-1, /*CAST DEAD*/
 "TypingPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_typing__TypingPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-584, /* TypingPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1852, /* TypingPhase */
 },
 };
-const struct types resolution_table_typing__TypingPhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type AutoSuperInitPhase */
 const struct type type_auto_super_init__AutoSuperInitPhase = {
-585,
+-1, /*CAST DEAD*/
 "AutoSuperInitPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_auto_super_init__AutoSuperInitPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-585, /* AutoSuperInitPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1853, /* AutoSuperInitPhase */
 },
 };
-const struct types resolution_table_auto_super_init__AutoSuperInitPhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type DivByZeroPhase */
 const struct type type_div_by_zero__DivByZeroPhase = {
-586,
+-1, /*CAST DEAD*/
 "DivByZeroPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_div_by_zero__DivByZeroPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-586, /* DivByZeroPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1854, /* DivByZeroPhase */
 },
 };
-const struct types resolution_table_div_by_zero__DivByZeroPhase = {
-0, /* dummy */
-{
-}
-};
 /* runtime type TransformPhase */
 const struct type type_transform__TransformPhase = {
-587,
+-1, /*CAST DEAD*/
 "TransformPhase", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_transform__TransformPhase,
-4,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-168, /* Phase */
-587, /* TransformPhase */
+4, /* nullable Phase */
+639, /* Phase */
+1855, /* TransformPhase */
 },
 };
-const struct types resolution_table_transform__TransformPhase = {
-0, /* dummy */
-{
-}
-};
-/* runtime type Model */
-const struct type type_model_base__Model = {
-169,
-"Model", /* class_name_string */
-2,
+/* runtime type VerifyNitniCallbacksPhase */
+const struct type type_nitni_callbacks__VerifyNitniCallbacksPhase = {
+-1, /*CAST DEAD*/
+"VerifyNitniCallbacksPhase", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_model_base__Model,
-3,
+NULL, /*NO RESOLUTIONS*/
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-169, /* Model */
+4, /* nullable Phase */
+639, /* Phase */
+1856, /* VerifyNitniCallbacksPhase */
 },
 };
-const struct types resolution_table_model_base__Model = {
-0, /* dummy */
-{
-}
+/* runtime type FFILanguageAssignationPhase */
+const struct type type_ffi_base__FFILanguageAssignationPhase = {
+-1, /*CAST DEAD*/
+"FFILanguageAssignationPhase", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+4, /* nullable Phase */
+639, /* Phase */
+1857, /* FFILanguageAssignationPhase */
+},
 };
-/* runtime type Array[MModule] */
-const struct type type_array__Arraymodel_base__MModule = {
-2479,
-"Array[MModule]", /* class_name_string */
-7,
+/* runtime type Array[FFILanguage] */
+const struct type type_array__Arrayffi_base__FFILanguage = {
+2657,
+"Array[FFILanguage]", /* class_name_string */
+6,
 0,
-&resolution_table_array__Arraymodel_base__MModule,
+&resolution_table_array__Arrayffi_base__FFILanguage,
 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] */
+640, /* Collection[FFILanguage] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2236, /* AbstractArrayRead[FFILanguage] */
+2657, /* Array[FFILanguage] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
-},
-};
-const struct types resolution_table_array__Arraymodel_base__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] */
-NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MModule] not a live type) */
-&type_array__ArrayIteratormodel_base__MModule, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MModule] */
+2029, /* Array[Object] */
+},
+};
+const struct types resolution_table_array__Arrayffi_base__FFILanguage = {
+0, /* dummy */
+{
+&type_array__Arrayffi_base__FFILanguage, /* Array[Array#0]: Array[FFILanguage] */
+&type_array__NativeArrayffi_base__FFILanguage, /* NativeArray[Array#0]: NativeArray[FFILanguage] */
+&type_ffi_base__FFILanguage, /* Sequence#0: FFILanguage */
+&type_ffi_base__FFILanguage, /* SimpleCollection#0: FFILanguage */
+&type_abstract_collection__Collectionffi_base__FFILanguage, /* Collection[Array#0]: Collection[FFILanguage] */
+&type_ffi_base__FFILanguage, /* Array#0: FFILanguage */
+&type_array__NativeArrayffi_base__FFILanguage, /* NativeArray[ArrayCapable#0]: NativeArray[FFILanguage] */
+&type_ffi_base__FFILanguage, /* AbstractArray#0: FFILanguage */
+&type_ffi_base__FFILanguage, /* RemovableCollection#0: FFILanguage */
+&type_abstract_collection__Collectionffi_base__FFILanguage, /* Collection[Sequence#0]: Collection[FFILanguage] */
+&type_array__Arrayffi_base__FFILanguage, /* Array[Sequence#0]: Array[FFILanguage] */
+&type_abstract_collection__Collectionffi_base__FFILanguage, /* Collection[SimpleCollection#0]: Collection[FFILanguage] */
+&type_ffi_base__FFILanguage, /* Collection#0: FFILanguage */
+&type_abstract_collection__Collectionffi_base__FFILanguage, /* Collection[Collection#0]: Collection[FFILanguage] */
+&type_ffi_base__FFILanguage, /* SequenceRead#0: FFILanguage */
+&type_ffi_base__FFILanguage, /* AbstractArrayRead#0: FFILanguage */
+&type_array__Arrayffi_base__FFILanguage, /* Array[AbstractArrayRead#0]: Array[FFILanguage] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[FFILanguage] not a live type) */
+&type_array__ArrayIteratorffi_base__FFILanguage, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[FFILanguage] */
 }
 };
-/* runtime type Collection[MModule] */
-const struct type type_abstract_collection__Collectionmodel_base__MModule = {
-588,
-"Collection[MModule]", /* class_name_string */
+/* runtime type Collection[FFILanguage] */
+const struct type type_abstract_collection__Collectionffi_base__FFILanguage = {
+640,
+"Collection[FFILanguage]", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[FFILanguage] */
+const struct type type_array__AbstractArrayReadffi_base__FFILanguage = {
+2236,
+"AbstractArrayRead[FFILanguage]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type CLanguage */
+const struct type type_c__CLanguage = {
+-1, /*CAST DEAD*/
+"CLanguage", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+5, /* nullable FFILanguage */
+641, /* FFILanguage */
+1858, /* CLanguage */
+},
+};
+/* runtime type FFILanguage */
+const struct type type_ffi_base__FFILanguage = {
+641,
+"FFILanguage", /* class_name_string */
+3,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable FFILanguage */
+const struct type type_nullable_ffi_base__FFILanguage = {
+5,
+"nullable FFILanguage", /* class_name_string */
 2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type CPPLanguage */
+const struct type type_cpp__CPPLanguage = {
+-1, /*CAST DEAD*/
+"CPPLanguage", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+5, /* nullable FFILanguage */
+641, /* FFILanguage */
+1859, /* CPPLanguage */
+},
+};
+/* runtime type ExternClassesTypingPhaseAst */
+const struct type type_extern_classes__ExternClassesTypingPhaseAst = {
+-1, /*CAST DEAD*/
+"ExternClassesTypingPhaseAst", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+4, /* nullable Phase */
+639, /* Phase */
+1860, /* ExternClassesTypingPhaseAst */
+},
+};
+/* runtime type ExternClassesTypingPhaseModel */
+const struct type type_extern_classes__ExternClassesTypingPhaseModel = {
+-1, /*CAST DEAD*/
+"ExternClassesTypingPhaseModel", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+4, /* nullable Phase */
+639, /* Phase */
+1861, /* ExternClassesTypingPhaseModel */
+},
+};
+/* runtime type HeaderDependancyPhase */
+const struct type type_header_dependency__HeaderDependancyPhase = {
+-1, /*CAST DEAD*/
+"HeaderDependancyPhase", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+4, /* nullable Phase */
+639, /* Phase */
+1862, /* HeaderDependancyPhase */
+},
+};
+/* runtime type PkgconfigPhase */
+const struct type type_pkgconfig__PkgconfigPhase = {
+-1, /*CAST DEAD*/
+"PkgconfigPhase", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+4, /* nullable Phase */
+639, /* Phase */
+1863, /* PkgconfigPhase */
+},
+};
+/* runtime type CCompilerOptionsPhase */
+const struct type type_c_compiler_options__CCompilerOptionsPhase = {
+-1, /*CAST DEAD*/
+"CCompilerOptionsPhase", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-NULL,
+NULL, /*NO RESOLUTIONS*/
 5,
 {
 0, /* nullable Object */
 1, /* Object */
-588, /* Collection[MModule] */
+4, /* nullable Phase */
+639, /* Phase */
+1864, /* CCompilerOptionsPhase */
+},
+};
+/* runtime type Model */
+const struct type type_model_base__Model = {
+-1, /*CAST DEAD*/
+"Model", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+96, /* Model */
+},
+};
+/* runtime type Array[MProject] */
+const struct type type_array__Arraymproject__MProject = {
+2658,
+"Array[MProject]", /* class_name_string */
+6,
+0,
+&resolution_table_array__Arraymproject__MProject,
+10,
+{
+0, /* nullable Object */
+1, /* Object */
+642, /* Collection[MProject] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2237, /* AbstractArrayRead[MProject] */
+2658, /* Array[MProject] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-164, /* Collection[Object] */
+2029, /* Array[Object] */
 },
 };
-/* runtime type AbstractArrayRead[MModule] */
-const struct type type_array__AbstractArrayReadmodel_base__MModule = {
-2193,
-"AbstractArrayRead[MModule]", /* class_name_string */
+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 = {
+642,
+"Collection[MProject]", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[MProject] */
+const struct type type_array__AbstractArrayReadmproject__MProject = {
+2237,
+"AbstractArrayRead[MProject]", /* class_name_string */
 5,
 0,
-NULL,
-7,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type MultiHashMap[String, MProject] */
+const struct type type_more_collections__MultiHashMapstring__Stringmproject__MProject = {
+-1, /*CAST DEAD*/
+"MultiHashMap[String, MProject]", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_more_collections__MultiHashMapstring__Stringmproject__MProject,
+4,
+{
+0, /* nullable Object */
+1, /* Object */
+97, /* HashMap[String, Array[MProject]] */
+643, /* 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_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapKeysstring__Stringarray__Arraymproject__MProject, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Array[MProject]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MProject]]] */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymproject__MProject, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MProject]] */
+&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_nullable_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* nullable HashCollection#1: nullable HashMapNode[String, Array[MProject]] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* HashCollection#1: HashMapNode[String, Array[MProject]] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
+}
+};
+/* runtime type HashMap[String, Array[MProject]] */
+const struct type type_hash_collection__HashMapstring__Stringarray__Arraymproject__MProject = {
+97,
+"HashMap[String, Array[MProject]]", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Array[MModule] */
+const struct type type_array__Arraymmodule__MModule = {
+2659,
+"Array[MModule]", /* class_name_string */
+6,
+0,
+&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] */
+644, /* Collection[MModule] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2238, /* AbstractArrayRead[MModule] */
+2659, /* Array[MModule] */
+1838, /* AbstractArrayRead[Object] */
+-1, /* empty */
+2029, /* Array[Object] */
 },
 };
+const struct types resolution_table_array__Arraymmodule__MModule = {
+0, /* dummy */
+{
+&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__ArrayIteratormmodule__MModule, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MModule] */
+}
+};
+/* runtime type Collection[MModule] */
+const struct type type_abstract_collection__Collectionmmodule__MModule = {
+644,
+"Collection[MModule]", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[MModule] */
+const struct type type_array__AbstractArrayReadmmodule__MModule = {
+2238,
+"AbstractArrayRead[MModule]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
 /* runtime type POSet[MModule] */
-const struct type type_poset__POSetmodel_base__MModule = {
-1732,
+const struct type type_poset__POSetmmodule__MModule = {
+1865,
 "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] */
+644, /* Collection[MModule] */
+1865, /* POSet[MModule] */
+92, /* 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,63 +1401,60 @@ 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 = {
+-1, /*CAST DEAD*/
 "MultiHashMap[String, MModule]", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 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] */
+98, /* HashMap[String, Array[MModule]] */
+645, /* 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_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__HashMapKeysstring__Stringarray__Arraymmodule__MModule, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Array[MModule]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MModule]]] */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymmodule__MModule, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[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_nullable_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* nullable HashCollection#1: nullable HashMapNode[String, Array[MModule]] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* HashCollection#1: HashMapNode[String, Array[MModule]] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
 }
 };
 /* 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 = {
+98,
 "HashMap[String, Array[MModule]]", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-170, /* HashMap[String, Array[MModule]] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Array[MClass] */
 const struct type type_array__Arraymodel__MClass = {
-2578,
+2801,
 "Array[MClass]", /* class_name_string */
 11,
 0,
@@ -1184,16 +1463,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] */
+1867, /* AbstractArrayRead[nullable MClass] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+99, /* Collection[nullable MClass] */
+1866, /* Collection[MClass] */
+1838, /* AbstractArrayRead[Object] */
+2030, /* Array[nullable MClass] */
+2029, /* Array[Object] */
+2660, /* AbstractArrayRead[MClass] */
+2801, /* Array[MClass] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MClass = {
@@ -1222,7 +1501,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MClass] not a
 };
 /* runtime type Array[nullable MClass] */
 const struct type type_array__Arraynullable_model__MClass = {
-1912,
+2030,
 "Array[nullable MClass]", /* class_name_string */
 8,
 0,
@@ -1231,13 +1510,13 @@ const struct type type_array__Arraynullable_model__MClass = {
 {
 0, /* nullable Object */
 1, /* Object */
-171, /* Collection[nullable MClass] */
-163, /* SequenceRead[nullable Object] */
+1867, /* AbstractArrayRead[nullable MClass] */
+91, /* SequenceRead[nullable Object] */
 -1, /* empty */
+99, /* Collection[nullable MClass] */
 -1, /* empty */
 -1, /* empty */
-1734, /* AbstractArrayRead[nullable MClass] */
-1912, /* Array[nullable MClass] */
+2030, /* Array[nullable MClass] */
 },
 };
 const struct types resolution_table_array__Arraynullable_model__MClass = {
@@ -1266,79 +1545,43 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MClas
 };
 /* runtime type Collection[MClass] */
 const struct type type_abstract_collection__Collectionmodel__MClass = {
-1733,
+1866,
 "Collection[MClass]", /* class_name_string */
-5,
-0,
-NULL,
 6,
-{
-0, /* nullable Object */
-1, /* Object */
-171, /* Collection[nullable MClass] */
--1, /* empty */
-164, /* Collection[Object] */
-1733, /* Collection[MClass] */
-},
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[nullable MClass] */
 const struct type type_abstract_collection__Collectionnullable_model__MClass = {
-171,
+99,
 "Collection[nullable MClass]", /* class_name_string */
-2,
+5,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-171, /* Collection[nullable MClass] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[MClass] */
 const struct type type_array__AbstractArrayReadmodel__MClass = {
-2480,
+2660,
 "AbstractArrayRead[MClass]", /* class_name_string */
 10,
 0,
-NULL,
-11,
-{
-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] */
--1, /* empty */
--1, /* empty */
-2480, /* AbstractArrayRead[MClass] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[nullable MClass] */
 const struct type type_array__AbstractArrayReadnullable_model__MClass = {
-1734,
+1867,
 "AbstractArrayRead[nullable MClass]", /* class_name_string */
-7,
+2,
 0,
-NULL,
-8,
-{
-0, /* nullable Object */
-1, /* Object */
-171, /* Collection[nullable MClass] */
-163, /* SequenceRead[nullable Object] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-1734, /* AbstractArrayRead[nullable MClass] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Array[MProperty] */
 const struct type type_array__Arraymodel__MProperty = {
-2607,
+2837,
 "Array[MProperty]", /* class_name_string */
 16,
 0,
@@ -1347,21 +1590,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] */
+100, /* Collection[nullable MProperty] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+1868, /* AbstractArrayRead[nullable MProperty] */
+646, /* Collection[PropertyLayoutElement] */
+1838, /* AbstractArrayRead[Object] */
+2031, /* Array[nullable MProperty] */
+2029, /* Array[Object] */
+2032, /* Collection[MProperty] */
+2239, /* AbstractArrayRead[PropertyLayoutElement] */
 -1, /* empty */
-2481, /* Array[PropertyLayoutElement] */
-2552, /* AbstractArrayRead[MProperty] */
+2661, /* Array[PropertyLayoutElement] */
+2773, /* AbstractArrayRead[MProperty] */
 -1, /* empty */
-2607, /* Array[MProperty] */
+2837, /* Array[MProperty] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MProperty = {
@@ -1390,7 +1633,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MProperty] not
 };
 /* runtime type Array[PropertyLayoutElement] */
 const struct type type_array__Arraylayout_builders__PropertyLayoutElement = {
-2481,
+2661,
 "Array[PropertyLayoutElement]", /* class_name_string */
 13,
 0,
@@ -1400,17 +1643,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] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
 -1, /* empty */
+646, /* Collection[PropertyLayoutElement] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
+2029, /* Array[Object] */
 -1, /* empty */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
+2239, /* AbstractArrayRead[PropertyLayoutElement] */
 -1, /* empty */
-2481, /* Array[PropertyLayoutElement] */
+2661, /* Array[PropertyLayoutElement] */
 },
 };
 const struct types resolution_table_array__Arraylayout_builders__PropertyLayoutElement = {
@@ -1439,7 +1682,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[PropertyLayout
 };
 /* runtime type Array[nullable MProperty] */
 const struct type type_array__Arraynullable_model__MProperty = {
-1913,
+2031,
 "Array[nullable MProperty]", /* class_name_string */
 8,
 0,
@@ -1448,13 +1691,13 @@ const struct type type_array__Arraynullable_model__MProperty = {
 {
 0, /* nullable Object */
 1, /* Object */
-172, /* Collection[nullable MProperty] */
-163, /* SequenceRead[nullable Object] */
+100, /* Collection[nullable MProperty] */
+91, /* SequenceRead[nullable Object] */
 -1, /* empty */
+1868, /* AbstractArrayRead[nullable MProperty] */
 -1, /* empty */
 -1, /* empty */
-1735, /* AbstractArrayRead[nullable MProperty] */
-1913, /* Array[nullable MProperty] */
+2031, /* Array[nullable MProperty] */
 },
 };
 const struct types resolution_table_array__Arraynullable_model__MProperty = {
@@ -1483,128 +1726,61 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[nullable MProp
 };
 /* runtime type Collection[MProperty] */
 const struct type type_abstract_collection__Collectionmodel__MProperty = {
-1914,
+2032,
 "Collection[MProperty]", /* class_name_string */
 10,
 0,
-NULL,
-11,
-{
-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] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[PropertyLayoutElement] */
 const struct type type_abstract_collection__Collectionlayout_builders__PropertyLayoutElement = {
-590,
+646,
 "Collection[PropertyLayoutElement]", /* class_name_string */
-5,
-0,
-NULL,
 6,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
--1, /* empty */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-},
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[nullable MProperty] */
 const struct type type_abstract_collection__Collectionnullable_model__MProperty = {
-172,
+100,
 "Collection[nullable MProperty]", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-172, /* Collection[nullable MProperty] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[MProperty] */
 const struct type type_array__AbstractArrayReadmodel__MProperty = {
-2552,
+2773,
 "AbstractArrayRead[MProperty]", /* class_name_string */
 14,
 0,
-NULL,
-15,
-{
-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] */
--1, /* empty */
--1, /* empty */
-1914, /* Collection[MProperty] */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
--1, /* empty */
--1, /* empty */
-2552, /* AbstractArrayRead[MProperty] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[PropertyLayoutElement] */
 const struct type type_array__AbstractArrayReadlayout_builders__PropertyLayoutElement = {
-2194,
+2239,
 "AbstractArrayRead[PropertyLayoutElement]", /* class_name_string */
 11,
 0,
-NULL,
-12,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-1728, /* AbstractArrayRead[Object] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[nullable MProperty] */
 const struct type type_array__AbstractArrayReadnullable_model__MProperty = {
-1735,
+1868,
 "AbstractArrayRead[nullable MProperty]", /* class_name_string */
-7,
+5,
 0,
-NULL,
-8,
-{
-0, /* nullable Object */
-1, /* Object */
-172, /* Collection[nullable MProperty] */
-163, /* SequenceRead[nullable Object] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-1735, /* AbstractArrayRead[nullable MProperty] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type POSet[MClassDef] */
 const struct type type_poset__POSetmodel__MClassDef = {
-1736,
+1869,
 "POSet[MClassDef]", /* class_name_string */
 3,
 0,
@@ -1613,9 +1789,9 @@ const struct type type_poset__POSetmodel__MClassDef = {
 {
 0, /* nullable Object */
 1, /* Object */
-591, /* Collection[MClassDef] */
-1736, /* POSet[MClassDef] */
-164, /* Collection[Object] */
+647, /* Collection[MClassDef] */
+1869, /* POSet[MClassDef] */
+92, /* Collection[Object] */
 },
 };
 const struct types resolution_table_poset__POSetmodel__MClassDef = {
@@ -1639,40 +1815,34 @@ NULL, /* empty */
 };
 /* runtime type Collection[MClassDef] */
 const struct type type_abstract_collection__Collectionmodel__MClassDef = {
-591,
+647,
 "Collection[MClassDef]", /* class_name_string */
 2,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-591, /* Collection[MClassDef] */
--1, /* empty */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type POSet[MClassType] */
 const struct type type_poset__POSetmodel__MClassType = {
-2422,
+2758,
 "POSet[MClassType]", /* class_name_string */
-3,
+7,
 0,
 &resolution_table_poset__POSetmodel__MClassType,
-11,
+12,
 {
 0, /* nullable Object */
 1, /* Object */
-1915, /* POSet[MType] */
-2422, /* POSet[MClassType] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
--1, /* empty */
-1737, /* Collection[MType] */
+6, /* nullable POSet[MType] */
+2487, /* POSet[MType] */
+92, /* Collection[Object] */
+101, /* Collection[nullable MType] */
+648, /* Collection[NitniCallback] */
+2758, /* POSet[MClassType] */
 -1, /* empty */
 -1, /* empty */
-1916, /* Collection[MClassType] */
+2033, /* Collection[MType] */
+2240, /* Collection[MClassType] */
 },
 };
 const struct types resolution_table_poset__POSetmodel__MClassType = {
@@ -1696,21 +1866,24 @@ NULL, /* empty */
 };
 /* runtime type POSet[MType] */
 const struct type type_poset__POSetmodel__MType = {
-1915,
+2487,
 "POSet[MType]", /* class_name_string */
-2,
+3,
 0,
 &resolution_table_poset__POSetmodel__MType,
-8,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
-1915, /* POSet[MType] */
+6, /* nullable POSet[MType] */
+2487, /* POSet[MType] */
+92, /* Collection[Object] */
+101, /* Collection[nullable MType] */
+648, /* Collection[NitniCallback] */
+-1, /* empty */
 -1, /* empty */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
 -1, /* empty */
-1737, /* Collection[MType] */
+2033, /* Collection[MType] */
 },
 };
 const struct types resolution_table_poset__POSetmodel__MType = {
@@ -1732,77 +1905,64 @@ NULL, /* empty */
 &type_abstract_collection__Collectionmodel__MType, /* Collection[Collection#0]: Collection[MType] */
 }
 };
+/* runtime type Collection[MType] */
+const struct type type_abstract_collection__Collectionmodel__MType = {
+2033,
+"Collection[MType]", /* class_name_string */
+10,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
 /* runtime type Collection[MClassType] */
 const struct type type_abstract_collection__Collectionmodel__MClassType = {
-1916,
+2240,
 "Collection[MClassType]", /* class_name_string */
-10,
-0,
-NULL,
 11,
-{
-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] */
-},
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type Collection[MType] */
-const struct type type_abstract_collection__Collectionmodel__MType = {
-1737,
-"Collection[MType]", /* class_name_string */
-7,
+/* runtime type Collection[NitniCallback] */
+const struct type type_abstract_collection__Collectionnitni_callbacks__NitniCallback = {
+648,
+"Collection[NitniCallback]", /* class_name_string */
+6,
 0,
-NULL,
-8,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
--1, /* empty */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
--1, /* empty */
-1737, /* Collection[MType] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[nullable MType] */
 const struct type type_abstract_collection__Collectionnullable_model__MType = {
-173,
+101,
 "Collection[nullable MType]", /* class_name_string */
 5,
 0,
-NULL,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable POSet[MType] */
+const struct type type_nullable_poset__POSetmodel__MType = {
 6,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-173, /* Collection[nullable MType] */
-},
+"nullable POSet[MType]", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type MultiHashMap[String, MClass] */
 const struct type type_more_collections__MultiHashMapstring__Stringmodel__MClass = {
-592,
+-1, /*CAST DEAD*/
 "MultiHashMap[String, MClass]", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_more_collections__MultiHashMapstring__Stringmodel__MClass,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-174, /* HashMap[String, Array[MClass]] */
-592, /* MultiHashMap[String, MClass] */
+102, /* HashMap[String, Array[MClass]] */
+649, /* MultiHashMap[String, MClass] */
 },
 };
 const struct types resolution_table_more_collections__MultiHashMapstring__Stringmodel__MClass = {
@@ -1812,10 +1972,10 @@ const struct types resolution_table_more_collections__MultiHashMapstring__String
 &type_model__MClass, /* MultiHashMap#1: MClass */
 &type_array__Arraymodel__MClass, /* Array[MultiHashMap#1]: Array[MClass] */
 &type_array__NativeArraymodel__MClass, /* NativeArray[MultiHashMap#1]: NativeArray[MClass] */
+&type_string__String, /* MapRead#0: String */
 &type_hash_collection__HashMapKeysstring__Stringarray__Arraymodel__MClass, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Array[MClass]] */
-&type_hash_collection__HashMapValuesstring__Stringarray__Arraymodel__MClass, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MClass]] */
 &type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MClass]]] */
-&type_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymodel__MClass, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MClass]] */
 &type_hash_collection__HashMapIteratorstring__Stringarray__Arraymodel__MClass, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, Array[MClass]] */
 &type_string__String, /* Map#0: String */
 &type_array__Arraymodel__MClass, /* Map#1: Array[MClass] */
@@ -1823,36 +1983,33 @@ const struct types resolution_table_more_collections__MultiHashMapstring__String
 NULL, /* empty (Map[Map#0, Map#1]: Map[String, Array[MClass]] not a live type) */
 &type_array__Arraymodel__MClass, /* MapRead#1: Array[MClass] */
 &type_string__String, /* HashCollection#0: String */
+&type_nullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MClass, /* nullable HashCollection#1: nullable HashMapNode[String, Array[MClass]] */
 &type_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MClass, /* HashCollection#1: HashMapNode[String, Array[MClass]] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
 }
 };
 /* runtime type HashMap[String, Array[MClass]] */
 const struct type type_hash_collection__HashMapstring__Stringarray__Arraymodel__MClass = {
-174,
+102,
 "HashMap[String, Array[MClass]]", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-174, /* HashMap[String, Array[MClass]] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type MultiHashMap[String, MProperty] */
 const struct type type_more_collections__MultiHashMapstring__Stringmodel__MProperty = {
-593,
+-1, /*CAST DEAD*/
 "MultiHashMap[String, MProperty]", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_more_collections__MultiHashMapstring__Stringmodel__MProperty,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-175, /* HashMap[String, Array[MProperty]] */
-593, /* MultiHashMap[String, MProperty] */
+103, /* HashMap[String, Array[MProperty]] */
+650, /* MultiHashMap[String, MProperty] */
 },
 };
 const struct types resolution_table_more_collections__MultiHashMapstring__Stringmodel__MProperty = {
@@ -1862,10 +2019,10 @@ const struct types resolution_table_more_collections__MultiHashMapstring__String
 &type_model__MProperty, /* MultiHashMap#1: MProperty */
 &type_array__Arraymodel__MProperty, /* Array[MultiHashMap#1]: Array[MProperty] */
 &type_array__NativeArraymodel__MProperty, /* NativeArray[MultiHashMap#1]: NativeArray[MProperty] */
+&type_string__String, /* MapRead#0: String */
 &type_hash_collection__HashMapKeysstring__Stringarray__Arraymodel__MProperty, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Array[MProperty]] */
-&type_hash_collection__HashMapValuesstring__Stringarray__Arraymodel__MProperty, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MProperty]] */
 &type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MProperty, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MProperty]]] */
-&type_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymodel__MProperty, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MProperty]] */
 &type_hash_collection__HashMapIteratorstring__Stringarray__Arraymodel__MProperty, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, Array[MProperty]] */
 &type_string__String, /* Map#0: String */
 &type_array__Arraymodel__MProperty, /* Map#1: Array[MProperty] */
@@ -1873,111 +2030,107 @@ const struct types resolution_table_more_collections__MultiHashMapstring__String
 NULL, /* empty (Map[Map#0, Map#1]: Map[String, Array[MProperty]] not a live type) */
 &type_array__Arraymodel__MProperty, /* MapRead#1: Array[MProperty] */
 &type_string__String, /* HashCollection#0: String */
+&type_nullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MProperty, /* nullable HashCollection#1: nullable HashMapNode[String, Array[MProperty]] */
 &type_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MProperty, /* HashCollection#1: HashMapNode[String, Array[MProperty]] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
 }
 };
 /* runtime type HashMap[String, Array[MProperty]] */
 const struct type type_hash_collection__HashMapstring__Stringarray__Arraymodel__MProperty = {
-175,
+103,
 "HashMap[String, Array[MProperty]]", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-175, /* HashMap[String, Array[MProperty]] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type MNullType */
 const struct type type_model__MNullType = {
-1738,
+2241,
 "MNullType", /* class_name_string */
-4,
-0,
-&resolution_table_model__MNullType,
 5,
+0,
+NULL, /*NO RESOLUTIONS*/
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable MType */
-594, /* MType */
-1738, /* MNullType */
+7, /* nullable NitniCallback */
+104, /* nullable MType */
+651, /* NitniCallback */
+2241, /* MNullType */
+2034, /* MType */
 },
 };
-const struct types resolution_table_model__MNullType = {
-0, /* dummy */
-{
-}
-};
 /* runtime type MType */
 const struct type type_model__MType = {
-594,
+2034,
 "MType", /* class_name_string */
-3,
+6,
 0,
-NULL,
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-2, /* nullable MType */
-594, /* MType */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type nullable MType */
 const struct type type_nullable_model__MType = {
-2,
+104,
 "nullable MType", /* class_name_string */
+3,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type NitniCallback */
+const struct type type_nitni_callbacks__NitniCallback = {
+651,
+"NitniCallback", /* class_name_string */
+4,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable NitniCallback */
+const struct type type_nullable_nitni_callbacks__NitniCallback = {
+7,
+"nullable NitniCallback", /* class_name_string */
 2,
 1,
-NULL,
-3,
-{
-0, /* nullable Object */
--1, /* empty */
-2, /* nullable MType */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type ModelBuilder */
 const struct type type_modelbuilder__ModelBuilder = {
-176,
+-1, /*CAST DEAD*/
 "ModelBuilder", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_modelbuilder__ModelBuilder,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-176, /* ModelBuilder */
+105, /* ModelBuilder */
 },
 };
-const struct types resolution_table_modelbuilder__ModelBuilder = {
-0, /* dummy */
-{
-}
-};
 /* 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 = {
+-1, /*CAST DEAD*/
 "HashMap3[MModule, MType, String, nullable MProperty]", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 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] */
+106, /* 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,23 +2139,26 @@ const struct types resolution_table_more_collections__HashMap3model_base__MModul
 };
 /* runtime type Array[String] */
 const struct type type_array__Arraystring__String = {
-2482,
+2821,
 "Array[String]", /* class_name_string */
-7,
+12,
 0,
 &resolution_table_array__Arraystring__String,
-10,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2195, /* AbstractArrayRead[String] */
-1728, /* AbstractArrayRead[Object] */
-2482, /* Array[String] */
--1, /* empty */
-1911, /* Array[Object] */
+8, /* nullable Array[String] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+652, /* Collection[Streamable] */
+1870, /* Collection[String] */
+1838, /* AbstractArrayRead[Object] */
+2242, /* AbstractArrayRead[Streamable] */
+2029, /* Array[Object] */
+2662, /* Array[Streamable] */
+2663, /* AbstractArrayRead[String] */
+2821, /* Array[String] */
 },
 };
 const struct types resolution_table_array__Arraystring__String = {
@@ -2029,78 +2185,174 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[String] not a
 &type_array__ArrayIteratorstring__String, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[String] */
 }
 };
-/* runtime type Collection[String] */
-const struct type type_abstract_collection__Collectionstring__String = {
-595,
-"Collection[String]", /* class_name_string */
-2,
+/* runtime type Array[Streamable] */
+const struct type type_array__Arraystream__Streamable = {
+2662,
+"Array[Streamable]", /* class_name_string */
+10,
 0,
-NULL,
-5,
+&resolution_table_array__Arraystream__Streamable,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
 -1, /* empty */
-164, /* Collection[Object] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+652, /* Collection[Streamable] */
+-1, /* empty */
+1838, /* AbstractArrayRead[Object] */
+2242, /* AbstractArrayRead[Streamable] */
+2029, /* Array[Object] */
+2662, /* Array[Streamable] */
 },
 };
+const struct types resolution_table_array__Arraystream__Streamable = {
+0, /* dummy */
+{
+&type_array__Arraystream__Streamable, /* Array[Array#0]: Array[Streamable] */
+&type_array__NativeArraystream__Streamable, /* NativeArray[Array#0]: NativeArray[Streamable] */
+&type_stream__Streamable, /* Sequence#0: Streamable */
+&type_stream__Streamable, /* SimpleCollection#0: Streamable */
+&type_abstract_collection__Collectionstream__Streamable, /* Collection[Array#0]: Collection[Streamable] */
+&type_stream__Streamable, /* Array#0: Streamable */
+&type_array__NativeArraystream__Streamable, /* NativeArray[ArrayCapable#0]: NativeArray[Streamable] */
+&type_stream__Streamable, /* AbstractArray#0: Streamable */
+&type_stream__Streamable, /* RemovableCollection#0: Streamable */
+&type_abstract_collection__Collectionstream__Streamable, /* Collection[Sequence#0]: Collection[Streamable] */
+&type_array__Arraystream__Streamable, /* Array[Sequence#0]: Array[Streamable] */
+&type_abstract_collection__Collectionstream__Streamable, /* Collection[SimpleCollection#0]: Collection[Streamable] */
+&type_stream__Streamable, /* Collection#0: Streamable */
+&type_abstract_collection__Collectionstream__Streamable, /* Collection[Collection#0]: Collection[Streamable] */
+&type_stream__Streamable, /* SequenceRead#0: Streamable */
+&type_stream__Streamable, /* AbstractArrayRead#0: Streamable */
+&type_array__Arraystream__Streamable, /* Array[AbstractArrayRead#0]: Array[Streamable] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Streamable] not a live type) */
+&type_array__ArrayIteratorstream__Streamable, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Streamable] */
+}
+};
+/* runtime type nullable Array[String] */
+const struct type type_nullable_array__Arraystring__String = {
+8,
+"nullable Array[String]", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[String] */
+const struct type type_abstract_collection__Collectionstring__String = {
+1870,
+"Collection[String]", /* class_name_string */
+6,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[Streamable] */
+const struct type type_abstract_collection__Collectionstream__Streamable = {
+652,
+"Collection[Streamable]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
 /* runtime type AbstractArrayRead[String] */
 const struct type type_array__AbstractArrayReadstring__String = {
-2195,
+2663,
 "AbstractArrayRead[String]", /* class_name_string */
-5,
+11,
 0,
-NULL,
-7,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[Streamable] */
+const struct type type_array__AbstractArrayReadstream__Streamable = {
+2242,
+"AbstractArrayRead[Streamable]", /* class_name_string */
+8,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashMap[String, nullable ModulePath] */
+const struct type type_hash_collection__HashMapstring__Stringnullable_modelbuilder__ModulePath = {
+107,
+"HashMap[String, nullable ModulePath]", /* class_name_string */
+2,
+0,
+&resolution_table_hash_collection__HashMapstring__Stringnullable_modelbuilder__ModulePath,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2195, /* AbstractArrayRead[String] */
-1728, /* AbstractArrayRead[Object] */
+107, /* HashMap[String, nullable ModulePath] */
 },
 };
-/* runtime type HashMap[String, AModule] */
-const struct type type_hash_collection__HashMapstring__Stringparser_nodes__AModule = {
-178,
-"HashMap[String, AModule]", /* class_name_string */
+const struct types resolution_table_hash_collection__HashMapstring__Stringnullable_modelbuilder__ModulePath = {
+0, /* dummy */
+{
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapKeysstring__Stringnullable_modelbuilder__ModulePath, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, nullable ModulePath] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, nullable ModulePath]] */
+&type_hash_collection__HashMapValuesstring__Stringnullable_modelbuilder__ModulePath, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, nullable ModulePath] */
+&type_hash_collection__HashMapIteratorstring__Stringnullable_modelbuilder__ModulePath, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, nullable ModulePath] */
+&type_string__String, /* Map#0: String */
+&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_nullable_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* nullable HashCollection#1: nullable HashMapNode[String, nullable ModulePath] */
+&type_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* HashCollection#1: HashMapNode[String, nullable ModulePath] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
+}
+};
+/* runtime type HashMap[String, nullable MGroup] */
+const struct type type_hash_collection__HashMapstring__Stringnullable_mproject__MGroup = {
+108,
+"HashMap[String, nullable MGroup]", /* class_name_string */
 2,
 0,
-&resolution_table_hash_collection__HashMapstring__Stringparser_nodes__AModule,
+&resolution_table_hash_collection__HashMapstring__Stringnullable_mproject__MGroup,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-178, /* HashMap[String, AModule] */
+108, /* HashMap[String, nullable MGroup] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapstring__Stringparser_nodes__AModule = {
+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__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_string__String, /* MapRead#0: String */
-&type_hash_collection__HashMapIteratorstring__Stringparser_nodes__AModule, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, AModule] */
+&type_hash_collection__HashMapKeysstring__Stringnullable_mproject__MGroup, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, nullable MGroup] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, nullable MGroup]] */
+&type_hash_collection__HashMapValuesstring__Stringnullable_mproject__MGroup, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, nullable MGroup] */
+&type_hash_collection__HashMapIteratorstring__Stringnullable_mproject__MGroup, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, nullable MGroup] */
 &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_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_nullable_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* nullable HashCollection#1: nullable HashMapNode[String, nullable MGroup] */
+&type_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* HashCollection#1: HashMapNode[String, nullable MGroup] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
 }
 };
 /* runtime type Array[AModule] */
 const struct type type_array__Arrayparser_nodes__AModule = {
-2608,
+2838,
 "Array[AModule]", /* class_name_string */
 13,
 0,
@@ -2109,19 +2361,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] */
+1871, /* Collection[Prod] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+2035, /* Collection[AModule] */
+1838, /* AbstractArrayRead[Object] */
+2243, /* AbstractArrayRead[ANode] */
+2029, /* Array[Object] */
+2774, /* AbstractArrayRead[AModule] */
+2664, /* Array[ANode] */
+2665, /* AbstractArrayRead[Prod] */
+2838, /* Array[AModule] */
+2802, /* Array[Prod] */
 },
 };
 const struct types resolution_table_array__Arrayparser_nodes__AModule = {
@@ -2150,7 +2402,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[AModule] not a
 };
 /* runtime type Array[Prod] */
 const struct type type_array__Arrayparser_nodes__Prod = {
-2579,
+2802,
 "Array[Prod]", /* class_name_string */
 14,
 0,
@@ -2159,19 +2411,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] */
+1871, /* Collection[Prod] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
 -1, /* empty */
-2196, /* AbstractArrayRead[ANode] */
-1911, /* Array[Object] */
+1838, /* AbstractArrayRead[Object] */
+2243, /* AbstractArrayRead[ANode] */
+2029, /* Array[Object] */
 -1, /* empty */
-2483, /* Array[ANode] */
-2484, /* AbstractArrayRead[Prod] */
+2664, /* Array[ANode] */
+2665, /* AbstractArrayRead[Prod] */
 -1, /* empty */
-2579, /* Array[Prod] */
+2802, /* Array[Prod] */
 },
 };
 const struct types resolution_table_array__Arrayparser_nodes__Prod = {
@@ -2200,7 +2452,7 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Prod] not a li
 };
 /* runtime type Array[ANode] */
 const struct type type_array__Arrayparser_nodes__ANode = {
-2483,
+2664,
 "Array[ANode]", /* class_name_string */
 11,
 0,
@@ -2209,16 +2461,16 @@ const struct type type_array__Arrayparser_nodes__ANode = {
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
 -1, /* empty */
-1728, /* AbstractArrayRead[Object] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
 -1, /* empty */
-2196, /* AbstractArrayRead[ANode] */
-1911, /* Array[Object] */
+1838, /* AbstractArrayRead[Object] */
+2243, /* AbstractArrayRead[ANode] */
+2029, /* Array[Object] */
 -1, /* empty */
-2483, /* Array[ANode] */
+2664, /* Array[ANode] */
 },
 };
 const struct types resolution_table_array__Arrayparser_nodes__ANode = {
@@ -2247,162 +2499,98 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[ANode] not a l
 };
 /* runtime type Collection[AModule] */
 const struct type type_abstract_collection__Collectionparser_nodes__AModule = {
-1917,
+2035,
 "Collection[AModule]", /* 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 */
-1917, /* Collection[AModule] */
-},
-};
-/* runtime type Collection[Prod] */
-const struct type type_abstract_collection__Collectionparser_nodes__Prod = {
-1739,
-"Collection[Prod]", /* class_name_string */
-5,
-0,
-NULL,
 6,
-{
-0, /* nullable Object */
-1, /* Object */
-596, /* Collection[ANode] */
--1, /* empty */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-},
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[ANode] */
 const struct type type_abstract_collection__Collectionparser_nodes__ANode = {
-596,
+653,
 "Collection[ANode]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[Prod] */
+const struct type type_abstract_collection__Collectionparser_nodes__Prod = {
+1871,
+"Collection[Prod]", /* class_name_string */
 2,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-596, /* Collection[ANode] */
--1, /* empty */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[AModule] */
 const struct type type_array__AbstractArrayReadparser_nodes__AModule = {
-2553,
+2774,
 "AbstractArrayRead[AModule]", /* class_name_string */
 10,
 0,
-NULL,
-13,
-{
-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] */
--1, /* empty */
-2553, /* AbstractArrayRead[AModule] */
--1, /* empty */
-2484, /* AbstractArrayRead[Prod] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[Prod] */
 const struct type type_array__AbstractArrayReadparser_nodes__Prod = {
-2484,
+2665,
 "AbstractArrayRead[Prod]", /* class_name_string */
 12,
 0,
-NULL,
-13,
-{
-0, /* nullable Object */
-1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-1728, /* AbstractArrayRead[Object] */
--1, /* empty */
-2196, /* AbstractArrayRead[ANode] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-2484, /* AbstractArrayRead[Prod] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[ANode] */
 const struct type type_array__AbstractArrayReadparser_nodes__ANode = {
-2196,
+2243,
 "AbstractArrayRead[ANode]", /* class_name_string */
 8,
 0,
-NULL,
-9,
-{
-0, /* nullable Object */
-1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
--1, /* empty */
-1728, /* AbstractArrayRead[Object] */
--1, /* empty */
-2196, /* AbstractArrayRead[ANode] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* 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 = {
+109,
 "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] */
+109, /* 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_mmodule__MModule, /* MapRead#0: MModule */
+&type_hash_collection__HashMapKeysmmodule__MModuleparser_nodes__AModule, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, AModule] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, AModule]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleparser_nodes__AModule, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, AModule] */
+&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_nullable_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* nullable HashCollection#1: nullable HashMapNode[MModule, AModule] */
+&type_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* HashCollection#1: HashMapNode[MModule, AModule] */
+&type_nullable_mmodule__MModule, /* nullable HashCollection#0: nullable MModule */
 }
 };
 /* runtime type HashMap[MClassDef, AClassdef] */
 const struct type type_hash_collection__HashMapmodel__MClassDefparser_nodes__AClassdef = {
-180,
+110,
 "HashMap[MClassDef, AClassdef]", /* class_name_string */
 2,
 0,
@@ -2411,7 +2599,7 @@ const struct type type_hash_collection__HashMapmodel__MClassDefparser_nodes__ACl
 {
 0, /* nullable Object */
 1, /* Object */
-180, /* HashMap[MClassDef, AClassdef] */
+110, /* HashMap[MClassDef, AClassdef] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassDefparser_nodes__AClassdef = {
@@ -2421,10 +2609,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MClassDef, /* MapRead#0: MClassDef */
 &type_hash_collection__HashMapKeysmodel__MClassDefparser_nodes__AClassdef, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassDef, AClassdef] */
-&type_hash_collection__HashMapValuesmodel__MClassDefparser_nodes__AClassdef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassDef, AClassdef] */
 &type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassDefparser_nodes__AClassdef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassDef, AClassdef]] */
-&type_model__MClassDef, /* MapRead#0: MClassDef */
+&type_hash_collection__HashMapValuesmodel__MClassDefparser_nodes__AClassdef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassDef, AClassdef] */
 &type_hash_collection__HashMapIteratormodel__MClassDefparser_nodes__AClassdef, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClassDef, AClassdef] */
 &type_model__MClassDef, /* Map#0: MClassDef */
 &type_parser_nodes__AClassdef, /* Map#1: AClassdef */
@@ -2432,12 +2620,14 @@ NULL, /* empty */
 NULL, /* empty (Map[Map#0, Map#1]: Map[MClassDef, AClassdef] not a live type) */
 &type_parser_nodes__AClassdef, /* MapRead#1: AClassdef */
 &type_model__MClassDef, /* HashCollection#0: MClassDef */
+&type_nullable_hash_collection__HashMapNodemodel__MClassDefparser_nodes__AClassdef, /* nullable HashCollection#1: nullable HashMapNode[MClassDef, AClassdef] */
 &type_hash_collection__HashMapNodemodel__MClassDefparser_nodes__AClassdef, /* HashCollection#1: HashMapNode[MClassDef, AClassdef] */
+&type_nullable_model__MClassDef, /* nullable HashCollection#0: nullable MClassDef */
 }
 };
 /* runtime type HashMap[MPropDef, APropdef] */
 const struct type type_hash_collection__HashMapmodel__MPropDefparser_nodes__APropdef = {
-181,
+111,
 "HashMap[MPropDef, APropdef]", /* class_name_string */
 2,
 0,
@@ -2446,7 +2636,7 @@ const struct type type_hash_collection__HashMapmodel__MPropDefparser_nodes__APro
 {
 0, /* nullable Object */
 1, /* Object */
-181, /* HashMap[MPropDef, APropdef] */
+111, /* HashMap[MPropDef, APropdef] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MPropDefparser_nodes__APropdef = {
@@ -2456,10 +2646,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MPropDef, /* MapRead#0: MPropDef */
 &type_hash_collection__HashMapKeysmodel__MPropDefparser_nodes__APropdef, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MPropDef, APropdef] */
-&type_hash_collection__HashMapValuesmodel__MPropDefparser_nodes__APropdef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MPropDef, APropdef] */
 &type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MPropDefparser_nodes__APropdef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MPropDef, APropdef]] */
-&type_model__MPropDef, /* MapRead#0: MPropDef */
+&type_hash_collection__HashMapValuesmodel__MPropDefparser_nodes__APropdef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MPropDef, APropdef] */
 &type_hash_collection__HashMapIteratormodel__MPropDefparser_nodes__APropdef, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MPropDef, APropdef] */
 &type_model__MPropDef, /* Map#0: MPropDef */
 &type_parser_nodes__APropdef, /* Map#1: APropdef */
@@ -2467,83 +2657,94 @@ NULL, /* empty */
 NULL, /* empty (Map[Map#0, Map#1]: Map[MPropDef, APropdef] not a live type) */
 &type_parser_nodes__APropdef, /* MapRead#1: APropdef */
 &type_model__MPropDef, /* HashCollection#0: MPropDef */
+&type_nullable_hash_collection__HashMapNodemodel__MPropDefparser_nodes__APropdef, /* nullable HashCollection#1: nullable HashMapNode[MPropDef, APropdef] */
 &type_hash_collection__HashMapNodemodel__MPropDefparser_nodes__APropdef, /* HashCollection#1: HashMapNode[MPropDef, APropdef] */
+&type_nullable_model__MPropDef, /* nullable HashCollection#0: nullable MPropDef */
 }
 };
 /* runtime type MModule */
-const struct type type_model_base__MModule = {
-182,
+const struct type type_mmodule__MModule = {
+654,
 "MModule", /* class_name_string */
-2,
-0,
-&resolution_table_model_base__MModule,
 3,
+0,
+NULL, /*NO RESOLUTIONS*/
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-182, /* MModule */
+9, /* nullable MModule */
+654, /* MModule */
 },
 };
-const struct types resolution_table_model_base__MModule = {
-0, /* dummy */
-{
-}
+/* runtime type nullable MModule */
+const struct type type_nullable_mmodule__MModule = {
+9,
+"nullable MModule", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashSet[MModule] */
-const struct type type_hash_collection__HashSetmodel_base__MModule = {
-2197,
+const struct type type_hash_collection__HashSetmmodule__MModule = {
+2244,
 "HashSet[MModule]", /* class_name_string */
 5,
 0,
-&resolution_table_hash_collection__HashSetmodel_base__MModule,
-7,
+&resolution_table_hash_collection__HashSetmmodule__MModule,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-588, /* Collection[MModule] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-2197, /* HashSet[MModule] */
-1740, /* HashSet[Object] */
+644, /* Collection[MModule] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+2244, /* HashSet[MModule] */
+-1, /* empty */
+1872, /* 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_nullable_hash_collection__HashSetNodemmodule__MModule, /* nullable HashCollection#1: nullable HashSetNode[MModule] */
+&type_hash_collection__HashSetNodemmodule__MModule, /* HashCollection#1: HashSetNode[MModule] */
+&type_nullable_mmodule__MModule, /* nullable HashCollection#0: nullable MModule */
 }
 };
 /* runtime type HashSet[Object] */
 const struct type type_hash_collection__HashSetkernel__Object = {
-1740,
+1872,
 "HashSet[Object]", /* class_name_string */
-6,
+7,
 0,
 &resolution_table_hash_collection__HashSetkernel__Object,
-7,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-597, /* Set[Object] */
-164, /* Collection[Object] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
 -1, /* empty */
-1740, /* HashSet[Object] */
+-1, /* empty */
+1872, /* HashSet[Object] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetkernel__Object = {
@@ -2564,44 +2765,39 @@ NULL, /* empty */
 &type_kernel__Object, /* Collection#0: Object */
 &type_abstract_collection__Collectionkernel__Object, /* Collection[Collection#0]: Collection[Object] */
 &type_kernel__Object, /* HashCollection#0: Object */
+&type_nullable_hash_collection__HashSetNodekernel__Object, /* nullable HashCollection#1: nullable HashSetNode[Object] */
 &type_hash_collection__HashSetNodekernel__Object, /* HashCollection#1: HashSetNode[Object] */
+&type_nullable_kernel__Object, /* nullable HashCollection#0: nullable Object */
 }
 };
 /* runtime type Set[Object] */
 const struct type type_abstract_collection__Setkernel__Object = {
-597,
+655,
 "Set[Object]", /* class_name_string */
 3,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Array[MClassDef] */
 const struct type type_array__Arraymodel__MClassDef = {
-2485,
+2666,
 "Array[MClassDef]", /* class_name_string */
-7,
+6,
 0,
 &resolution_table_array__Arraymodel__MClassDef,
 10,
 {
 0, /* nullable Object */
 1, /* Object */
-591, /* Collection[MClassDef] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2198, /* AbstractArrayRead[MClassDef] */
-1728, /* AbstractArrayRead[Object] */
-2485, /* Array[MClassDef] */
+647, /* Collection[MClassDef] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2245, /* AbstractArrayRead[MClassDef] */
+2666, /* Array[MClassDef] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
+2029, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MClassDef = {
@@ -2630,25 +2826,16 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MClassDef] not
 };
 /* runtime type AbstractArrayRead[MClassDef] */
 const struct type type_array__AbstractArrayReadmodel__MClassDef = {
-2198,
+2245,
 "AbstractArrayRead[MClassDef]", /* class_name_string */
 5,
 0,
-NULL,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-591, /* Collection[MClassDef] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2198, /* AbstractArrayRead[MClassDef] */
-1728, /* AbstractArrayRead[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashMap[MClass, Set[MProperty]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MProperty = {
-1741,
+1873,
 "HashMap[MClass, Set[MProperty]]", /* class_name_string */
 5,
 0,
@@ -2657,10 +2844,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]] */
+112, /* Map[MClass, Set[PropertyLayoutElement]] */
+656, /* HashMap[MClass, Set[PropertyLayoutElement]] */
 -1, /* empty */
-1741, /* HashMap[MClass, Set[MProperty]] */
+1873, /* HashMap[MClass, Set[MProperty]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MProperty = {
@@ -2670,10 +2857,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MClass, /* MapRead#0: MClass */
 &type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setmodel__MProperty, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Set[MProperty]] */
-&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setmodel__MProperty, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[MProperty]] */
 &type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MProperty, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Set[MProperty]]] */
-&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setmodel__MProperty, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[MProperty]] */
 &type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setmodel__MProperty, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Set[MProperty]] */
 &type_model__MClass, /* Map#0: MClass */
 &type_abstract_collection__Setmodel__MProperty, /* Map#1: Set[MProperty] */
@@ -2681,12 +2868,14 @@ NULL, /* empty */
 NULL, /* empty (Map[Map#0, Map#1]: Map[MClass, Set[MProperty]] not a live type) */
 &type_abstract_collection__Setmodel__MProperty, /* MapRead#1: Set[MProperty] */
 &type_model__MClass, /* HashCollection#0: MClass */
+&type_nullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MProperty, /* nullable HashCollection#1: nullable HashMapNode[MClass, Set[MProperty]] */
 &type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MProperty, /* HashCollection#1: HashMapNode[MClass, Set[MProperty]] */
+&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
 }
 };
 /* runtime type HashMap[MClass, Set[PropertyLayoutElement]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement = {
-598,
+656,
 "HashMap[MClass, Set[PropertyLayoutElement]]", /* class_name_string */
 3,
 0,
@@ -2695,8 +2884,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]] */
+112, /* Map[MClass, Set[PropertyLayoutElement]] */
+656, /* HashMap[MClass, Set[PropertyLayoutElement]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement = {
@@ -2706,10 +2895,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MClass, /* MapRead#0: MClass */
 &type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Set[PropertyLayoutElement]] */
-&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[PropertyLayoutElement]] */
 &type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Set[PropertyLayoutElement]]] */
-&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[PropertyLayoutElement]] */
 &type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Set[PropertyLayoutElement]] */
 &type_model__MClass, /* Map#0: MClass */
 &type_abstract_collection__Setlayout_builders__PropertyLayoutElement, /* Map#1: Set[PropertyLayoutElement] */
@@ -2717,42 +2906,158 @@ NULL, /* empty */
 &type_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement, /* Map[Map#0, Map#1]: Map[MClass, Set[PropertyLayoutElement]] */
 &type_abstract_collection__Setlayout_builders__PropertyLayoutElement, /* MapRead#1: Set[PropertyLayoutElement] */
 &type_model__MClass, /* HashCollection#0: MClass */
+&type_nullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement, /* nullable HashCollection#1: nullable HashMapNode[MClass, Set[PropertyLayoutElement]] */
 &type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement, /* HashCollection#1: HashMapNode[MClass, Set[PropertyLayoutElement]] */
+&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
 }
 };
 /* runtime type Map[MClass, Set[PropertyLayoutElement]] */
 const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setlayout_builders__PropertyLayoutElement = {
-183,
+112,
 "Map[MClass, Set[PropertyLayoutElement]]", /* class_name_string */
 2,
 0,
-NULL,
-3,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type String */
+const struct type type_string__String = {
+2759,
+"String", /* class_name_string */
+9,
+0,
+&resolution_table_string__String,
+10,
+{
+0, /* nullable Object */
+1, /* Object */
+10, /* nullable String */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+113, /* Streamable */
+657, /* Collection[Char] */
+1838, /* AbstractArrayRead[Object] */
+2246, /* AbstractArrayRead[Char] */
+2759, /* String */
+},
+};
+const struct types resolution_table_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 Streamable */
+const struct type type_stream__Streamable = {
+113,
+"Streamable", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable String */
+const struct type type_nullable_string__String = {
+10,
+"nullable String", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[Char] */
+const struct type type_abstract_collection__Collectionkernel__Char = {
+657,
+"Collection[Char]", /* class_name_string */
+6,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[Char] */
+const struct type type_array__AbstractArrayReadkernel__Char = {
+2246,
+"AbstractArrayRead[Char]", /* class_name_string */
+8,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type FlatStringCharView */
+const struct type type_string__FlatStringCharView = {
+-1, /*CAST DEAD*/
+"FlatStringCharView", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_string__FlatStringCharView,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-183, /* Map[MClass, Set[PropertyLayoutElement]] */
+2036, /* FlatStringCharView */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+-1, /* empty */
+657, /* Collection[Char] */
 },
 };
+const struct types resolution_table_string__FlatStringCharView = {
+0, /* dummy */
+{
+&type_string__String, /* SELFTYPE: 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 */
+}
+};
 /* runtime type Array[Option] */
 const struct type type_array__Arrayopts__Option = {
-2486,
+2667,
 "Array[Option]", /* class_name_string */
-7,
+6,
 0,
 &resolution_table_array__Arrayopts__Option,
 10,
 {
 0, /* nullable Object */
 1, /* Object */
-599, /* Collection[Option] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2199, /* AbstractArrayRead[Option] */
-1728, /* AbstractArrayRead[Object] */
-2486, /* Array[Option] */
+658, /* Collection[Option] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2247, /* AbstractArrayRead[Option] */
+2667, /* Array[Option] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
+2029, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arrayopts__Option = {
@@ -2781,41 +3086,25 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[Option] not a
 };
 /* runtime type Collection[Option] */
 const struct type type_abstract_collection__Collectionopts__Option = {
-599,
+658,
 "Collection[Option]", /* class_name_string */
 2,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-599, /* Collection[Option] */
--1, /* empty */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[Option] */
 const struct type type_array__AbstractArrayReadopts__Option = {
-2199,
+2247,
 "AbstractArrayRead[Option]", /* class_name_string */
 5,
 0,
-NULL,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-599, /* Collection[Option] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2199, /* AbstractArrayRead[Option] */
-1728, /* AbstractArrayRead[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashMap[String, Option] */
 const struct type type_hash_collection__HashMapstring__Stringopts__Option = {
-184,
+114,
 "HashMap[String, Option]", /* class_name_string */
 2,
 0,
@@ -2824,7 +3113,7 @@ const struct type type_hash_collection__HashMapstring__Stringopts__Option = {
 {
 0, /* nullable Object */
 1, /* Object */
-184, /* HashMap[String, Option] */
+114, /* HashMap[String, Option] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapstring__Stringopts__Option = {
@@ -2834,10 +3123,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_string__String, /* MapRead#0: String */
 &type_hash_collection__HashMapKeysstring__Stringopts__Option, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Option] */
-&type_hash_collection__HashMapValuesstring__Stringopts__Option, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Option] */
 &type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringopts__Option, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Option]] */
-&type_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapValuesstring__Stringopts__Option, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Option] */
 &type_hash_collection__HashMapIteratorstring__Stringopts__Option, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, Option] */
 &type_string__String, /* Map#0: String */
 &type_opts__Option, /* Map#1: Option */
@@ -2845,22 +3134,25 @@ NULL, /* empty */
 NULL, /* empty (Map[Map#0, Map#1]: Map[String, Option] not a live type) */
 &type_opts__Option, /* MapRead#1: Option */
 &type_string__String, /* HashCollection#0: String */
+&type_nullable_hash_collection__HashMapNodestring__Stringopts__Option, /* nullable HashCollection#1: nullable HashMapNode[String, Option] */
 &type_hash_collection__HashMapNodestring__Stringopts__Option, /* HashCollection#1: HashMapNode[String, Option] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
 }
 };
 /* runtime type NativeArray[String] */
 const struct type type_array__NativeArraystring__String = {
-600,
+1874,
 "NativeArray[String]", /* class_name_string */
-3,
+4,
 0,
 &resolution_table_array__NativeArraystring__String,
-4,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-185, /* NativeArray[Object] */
-600, /* NativeArray[String] */
+115, /* NativeArray[Object] */
+659, /* NativeArray[Streamable] */
+1874, /* NativeArray[String] */
 },
 };
 const struct types resolution_table_array__NativeArraystring__String = {
@@ -2872,7 +3164,7 @@ const struct types resolution_table_array__NativeArraystring__String = {
 };
 /* runtime type NativeArray[Object] */
 const struct type type_array__NativeArraykernel__Object = {
-185,
+115,
 "NativeArray[Object]", /* class_name_string */
 2,
 0,
@@ -2881,7 +3173,7 @@ const struct type type_array__NativeArraykernel__Object = {
 {
 0, /* nullable Object */
 1, /* Object */
-185, /* NativeArray[Object] */
+115, /* NativeArray[Object] */
 },
 };
 const struct types resolution_table_array__NativeArraykernel__Object = {
@@ -2891,68 +3183,68 @@ const struct types resolution_table_array__NativeArraykernel__Object = {
 &type_array__NativeArraykernel__Object, /* NativeArray[NativeArray#0]: NativeArray[Object] */
 }
 };
-/* runtime type NativeArray[Option] */
-const struct type type_array__NativeArrayopts__Option = {
-601,
-"NativeArray[Option]", /* class_name_string */
+/* runtime type NativeArray[Streamable] */
+const struct type type_array__NativeArraystream__Streamable = {
+659,
+"NativeArray[Streamable]", /* class_name_string */
 3,
 0,
-&resolution_table_array__NativeArrayopts__Option,
+&resolution_table_array__NativeArraystream__Streamable,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-185, /* NativeArray[Object] */
-601, /* NativeArray[Option] */
+115, /* NativeArray[Object] */
+659, /* NativeArray[Streamable] */
 },
 };
-const struct types resolution_table_array__NativeArrayopts__Option = {
+const struct types resolution_table_array__NativeArraystream__Streamable = {
 0, /* dummy */
 {
-&type_opts__Option, /* NativeArray#0: Option */
-&type_array__NativeArrayopts__Option, /* NativeArray[NativeArray#0]: NativeArray[Option] */
+&type_stream__Streamable, /* NativeArray#0: Streamable */
+&type_array__NativeArraystream__Streamable, /* NativeArray[NativeArray#0]: NativeArray[Streamable] */
 }
 };
-/* runtime type Char */
-const struct type type_kernel__Char = {
-186,
-"Char", /* class_name_string */
-2,
-0,
-&resolution_table_kernel__Char,
+/* runtime type NativeArray[Option] */
+const struct type type_array__NativeArrayopts__Option = {
+660,
+"NativeArray[Option]", /* class_name_string */
 3,
+0,
+&resolution_table_array__NativeArrayopts__Option,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-186, /* Char */
+115, /* NativeArray[Object] */
+660, /* NativeArray[Option] */
 },
 };
-const struct types resolution_table_kernel__Char = {
+const struct types resolution_table_array__NativeArrayopts__Option = {
 0, /* dummy */
 {
-&type_kernel__Char, /* OTHER: Char */
-NULL, /* empty (Range[OTHER]: Range[Char] not a live type) */
+&type_opts__Option, /* NativeArray#0: Option */
+&type_array__NativeArrayopts__Option, /* NativeArray[NativeArray#0]: NativeArray[Option] */
 }
 };
 /* runtime type Buffer */
 const struct type type_string__Buffer = {
-2546,
+2488,
 "Buffer", /* class_name_string */
 2,
 0,
 &resolution_table_string__Buffer,
-10,
+9,
 {
 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 */
+2488, /* Buffer */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+-1, /* empty */
+657, /* Collection[Char] */
+1838, /* AbstractArrayRead[Object] */
+2246, /* AbstractArrayRead[Char] */
 },
 };
 const struct types resolution_table_string__Buffer = {
@@ -2979,164 +3271,200 @@ 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 */
-5,
+/* runtime type FlatBufferCharView */
+const struct type type_string__FlatBufferCharView = {
+-1, /*CAST DEAD*/
+"FlatBufferCharView", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-NULL,
-6,
+&resolution_table_string__FlatBufferCharView,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
+2037, /* FlatBufferCharView */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
 -1, /* empty */
--1, /* empty */
-164, /* Collection[Object] */
-602, /* Collection[Char] */
+657, /* Collection[Char] */
 },
 };
-/* runtime type AbstractArrayRead[Char] */
-const struct type type_array__AbstractArrayReadkernel__Char = {
-2423,
-"AbstractArrayRead[Char]", /* class_name_string */
-8,
+const struct types resolution_table_string__FlatBufferCharView = {
+0, /* dummy */
+{
+&type_string__Buffer, /* SELFTYPE: Buffer */
+NULL, /* empty */
+&type_kernel__Char, /* Sequence#0: Char */
+&type_kernel__Char, /* SimpleCollection#0: Char */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_kernel__Char, /* RemovableCollection#0: Char */
+&type_abstract_collection__Collectionkernel__Char, /* Collection[Sequence#0]: Collection[Char] */
+&type_array__Arraykernel__Char, /* Array[Sequence#0]: Array[Char] */
+&type_abstract_collection__Collectionkernel__Char, /* Collection[SimpleCollection#0]: Collection[Char] */
+&type_kernel__Char, /* Collection#0: Char */
+&type_abstract_collection__Collectionkernel__Char, /* Collection[Collection#0]: Collection[Char] */
+&type_kernel__Char, /* SequenceRead#0: Char */
+}
+};
+/* runtime type Range[Int] */
+const struct type type_range__Rangekernel__Int = {
+1875,
+"Range[Int]", /* class_name_string */
+2,
 0,
-NULL,
-9,
+&resolution_table_range__Rangekernel__Int,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
+1875, /* Range[Int] */
 -1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-602, /* Collection[Char] */
-1728, /* AbstractArrayRead[Object] */
-1918, /* SequenceRead[Char] */
-2423, /* AbstractArrayRead[Char] */
+92, /* Collection[Object] */
+661, /* Collection[Int] */
 },
 };
-/* runtime type AbstractString */
-const struct type type_string__AbstractString = {
-2487,
-"AbstractString", /* class_name_string */
-9,
-0,
-NULL,
-10,
+const struct types resolution_table_range__Rangekernel__Int = {
+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] */
-2487, /* AbstractString */
-},
-};
-/* runtime type SequenceRead[Char] */
-const struct type type_abstract_collection__SequenceReadkernel__Char = {
-1918,
-"SequenceRead[Char]", /* class_name_string */
-7,
+&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 Collection[Int] */
+const struct type type_abstract_collection__Collectionkernel__Int = {
+661,
+"Collection[Int]", /* class_name_string */
+5,
 0,
-NULL,
-8,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type ArraySet[MModule] */
+const struct type type_array__ArraySetmmodule__MModule = {
+-1, /*CAST DEAD*/
+"ArraySet[MModule]", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_array__ArraySetmmodule__MModule,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-602, /* Collection[Char] */
--1, /* empty */
-1918, /* SequenceRead[Char] */
+644, /* Collection[MModule] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+2038, /* ArraySet[MModule] */
 },
 };
-/* runtime type RapidTypeAnalysis */
-const struct type type_rapid_type_analysis__RapidTypeAnalysis = {
-187,
-"RapidTypeAnalysis", /* class_name_string */
-2,
+const struct types resolution_table_array__ArraySetmmodule__MModule = {
+0, /* dummy */
+{
+&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 SeparateErasureCompiler */
+const struct type type_separate_erasure_compiler__SeparateErasureCompiler = {
+1876,
+"SeparateErasureCompiler", /* class_name_string */
+4,
 0,
-&resolution_table_rapid_type_analysis__RapidTypeAnalysis,
-3,
+&resolution_table_separate_erasure_compiler__SeparateErasureCompiler,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-187, /* RapidTypeAnalysis */
+116, /* AbstractCompiler */
+662, /* SeparateCompiler */
+1876, /* SeparateErasureCompiler */
 },
 };
-const struct types resolution_table_rapid_type_analysis__RapidTypeAnalysis = {
+const struct types resolution_table_separate_erasure_compiler__SeparateErasureCompiler = {
 0, /* dummy */
 {
+&type_separate_compiler__SeparateCompilerVisitor, /* VISITOR: SeparateCompilerVisitor */
 }
 };
-/* runtime type HashSet[MClassType] */
-const struct type type_hash_collection__HashSetmodel__MClassType = {
-2580,
-"HashSet[MClassType]", /* class_name_string */
-11,
+/* runtime type SeparateCompiler */
+const struct type type_separate_compiler__SeparateCompiler = {
+662,
+"SeparateCompiler", /* class_name_string */
+3,
 0,
-&resolution_table_hash_collection__HashSetmodel__MClassType,
-12,
+&resolution_table_separate_compiler__SeparateCompiler,
+4,
 {
 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] */
+116, /* AbstractCompiler */
+662, /* SeparateCompiler */
 },
 };
-const struct types resolution_table_hash_collection__HashSetmodel__MClassType = {
+const struct types resolution_table_separate_compiler__SeparateCompiler = {
 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] */
+&type_separate_compiler__SeparateCompilerVisitor, /* VISITOR: SeparateCompilerVisitor */
 }
 };
+/* runtime type AbstractCompiler */
+const struct type type_abstract_compiler__AbstractCompiler = {
+116,
+"AbstractCompiler", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
 /* runtime type HashSet[MType] */
 const struct type type_hash_collection__HashSetmodel__MType = {
-2488,
+2803,
 "HashSet[MType]", /* class_name_string */
-8,
+13,
 0,
 &resolution_table_hash_collection__HashSetmodel__MType,
-9,
+14,
 {
 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] */
+2668, /* Set[MType] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+101, /* Collection[nullable MType] */
+648, /* Collection[NitniCallback] */
+1872, /* HashSet[Object] */
+2039, /* Set[NitniCallback] */
+2489, /* HashSet[NitniCallback] */
+2033, /* Collection[MType] */
+-1, /* empty */
+-1, /* empty */
+2803, /* HashSet[MType] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MType = {
@@ -3157,910 +3485,901 @@ NULL, /* empty */
 &type_model__MType, /* Collection#0: MType */
 &type_abstract_collection__Collectionmodel__MType, /* Collection[Collection#0]: Collection[MType] */
 &type_model__MType, /* HashCollection#0: MType */
+&type_nullable_hash_collection__HashSetNodemodel__MType, /* nullable HashCollection#1: nullable HashSetNode[MType] */
 &type_hash_collection__HashSetNodemodel__MType, /* HashCollection#1: HashSetNode[MType] */
+&type_nullable_model__MType, /* nullable HashCollection#0: nullable MType */
 }
 };
-/* runtime type Set[MClassType] */
-const struct type type_abstract_collection__Setmodel__MClassType = {
+/* runtime type HashSet[NitniCallback] */
+const struct type type_hash_collection__HashSetnitni_callbacks__NitniCallback = {
 2489,
-"Set[MClassType]", /* class_name_string */
+"HashSet[NitniCallback]", /* class_name_string */
 9,
 0,
-NULL,
-11,
+&resolution_table_hash_collection__HashSetnitni_callbacks__NitniCallback,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-2200, /* Set[MType] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-173, /* Collection[nullable MType] */
 -1, /* empty */
-1737, /* Collection[MType] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
 -1, /* empty */
-2489, /* Set[MClassType] */
-1916, /* Collection[MClassType] */
+648, /* Collection[NitniCallback] */
+1872, /* HashSet[Object] */
+2039, /* Set[NitniCallback] */
+2489, /* HashSet[NitniCallback] */
 },
 };
+const struct types resolution_table_hash_collection__HashSetnitni_callbacks__NitniCallback = {
+0, /* dummy */
+{
+&type_hash_collection__HashSetNodenitni_callbacks__NitniCallback, /* HashSetNode[HashSet#0]: HashSetNode[NitniCallback] */
+&type_hash_collection__HashSetIteratornitni_callbacks__NitniCallback, /* HashSetIterator[HashSet#0]: HashSetIterator[NitniCallback] */
+&type_abstract_collection__Collectionnitni_callbacks__NitniCallback, /* Collection[HashSet#0]: Collection[NitniCallback] */
+&type_nitni_callbacks__NitniCallback, /* SimpleCollection#0: NitniCallback */
+&type_abstract_collection__Collectionnitni_callbacks__NitniCallback, /* Collection[Set#0]: Collection[NitniCallback] */
+NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodenitni_callbacks__NitniCallback, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[NitniCallback]] */
+NULL, /* empty */
+&type_nitni_callbacks__NitniCallback, /* RemovableCollection#0: NitniCallback */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionnitni_callbacks__NitniCallback, /* Collection[SimpleCollection#0]: Collection[NitniCallback] */
+&type_nitni_callbacks__NitniCallback, /* Collection#0: NitniCallback */
+&type_abstract_collection__Collectionnitni_callbacks__NitniCallback, /* Collection[Collection#0]: Collection[NitniCallback] */
+&type_nitni_callbacks__NitniCallback, /* HashCollection#0: NitniCallback */
+&type_nullable_hash_collection__HashSetNodenitni_callbacks__NitniCallback, /* nullable HashCollection#1: nullable HashSetNode[NitniCallback] */
+&type_hash_collection__HashSetNodenitni_callbacks__NitniCallback, /* HashCollection#1: HashSetNode[NitniCallback] */
+&type_nullable_nitni_callbacks__NitniCallback, /* nullable HashCollection#0: nullable NitniCallback */
+}
+};
 /* runtime type Set[MType] */
 const struct type type_abstract_collection__Setmodel__MType = {
-2200,
+2668,
 "Set[MType]", /* class_name_string */
 2,
 0,
-NULL,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Set[NitniCallback] */
+const struct type type_abstract_collection__Setnitni_callbacks__NitniCallback = {
+2039,
+"Set[NitniCallback]", /* class_name_string */
 8,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashMap[MClassDef, HashSet[MType]] */
+const struct type type_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType = {
+117,
+"HashMap[MClassDef, HashSet[MType]]", /* class_name_string */
+2,
+0,
+&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] */
+117, /* 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_model__MClassDef, /* MapRead#0: MClassDef */
+&type_hash_collection__HashMapKeysmodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassDef, HashSet[MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassDef, HashSet[MType]]] */
+&type_hash_collection__HashMapValuesmodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassDef, HashSet[MType]] */
+&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_nullable_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* nullable HashCollection#1: nullable HashMapNode[MClassDef, HashSet[MType]] */
+&type_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* HashCollection#1: HashMapNode[MClassDef, HashSet[MType]] */
+&type_nullable_model__MClassDef, /* nullable HashCollection#0: nullable MClassDef */
+}
+};
+/* runtime type HashMap[MClass, Int] */
+const struct type type_hash_collection__HashMapmodel__MClasskernel__Int = {
+663,
+"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] */
+118, /* Map[MClass, Int] */
+663, /* 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_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapKeysmodel__MClasskernel__Int, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Int] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClasskernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Int]] */
+&type_hash_collection__HashMapValuesmodel__MClasskernel__Int, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Int] */
+&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_nullable_hash_collection__HashMapNodemodel__MClasskernel__Int, /* nullable HashCollection#1: nullable HashMapNode[MClass, Int] */
+&type_hash_collection__HashMapNodemodel__MClasskernel__Int, /* HashCollection#1: HashMapNode[MClass, Int] */
+&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
 }
 };
-/* 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 = {
+118,
+"Map[MClass, Int]", /* class_name_string */
+2,
 0,
-NULL,
-8,
-{
-0, /* nullable Object */
-1, /* Object */
-171, /* Collection[nullable MClass] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-1733, /* Collection[MClass] */
--1, /* empty */
-2201, /* Set[MClass] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* 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 = {
+119,
+"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] */
+119, /* 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_model__MType, /* MapRead#0: MType */
+&type_hash_collection__HashMapKeysmodel__MTypearray__Arraynullable_model__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[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_hash_collection__HashMapValuesmodel__MTypearray__Arraynullable_model__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Array[nullable 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_nullable_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* nullable HashCollection#1: nullable HashMapNode[MType, Array[nullable MType]] */
+&type_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* HashCollection#1: HashMapNode[MType, Array[nullable MType]] */
+&type_nullable_model__MType, /* nullable HashCollection#0: 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 = {
+664,
+"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] */
+119, /* HashMap[MType, Array[nullable MType]] */
+664, /* 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_model__MClassType, /* MapRead#0: MClassType */
+&type_hash_collection__HashMapKeysmodel__MClassTypearray__Arraynullable_model__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[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_hash_collection__HashMapValuesmodel__MClassTypearray__Arraynullable_model__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassType, Array[nullable MType]] */
+&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_nullable_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* nullable HashCollection#1: nullable HashMapNode[MClassType, Array[nullable MType]] */
+&type_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* HashCollection#1: HashMapNode[MClassType, Array[nullable MType]] */
+&type_nullable_model__MClassType, /* nullable HashCollection#0: nullable MClassType */
 }
 };
-/* 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 = {
+120,
+"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] */
+120, /* 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_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapKeysmodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[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_hash_collection__HashMapValuesmodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Array[nullable MPropDef]] */
+&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_nullable_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* nullable HashCollection#1: nullable HashMapNode[MClass, Array[nullable MPropDef]] */
+&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* HashCollection#1: HashMapNode[MClass, Array[nullable MPropDef]] */
+&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
+}
+};
+/* runtime type HashMap[String, String] */
+const struct type type_hash_collection__HashMapstring__Stringstring__String = {
+121,
+"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] */
+121, /* HashMap[String, String] */
 },
 };
-/* runtime type Collection[MPropDef] */
-const struct type type_abstract_collection__Collectionmodel__MPropDef = {
-1920,
-"Collection[MPropDef]", /* class_name_string */
-8,
-0,
-NULL,
-9,
+const struct types resolution_table_hash_collection__HashMapstring__Stringstring__String = {
+0, /* dummy */
 {
-0, /* nullable Object */
-1, /* Object */
-188, /* Collection[nullable MPropDef] */
--1, /* empty */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
--1, /* empty */
--1, /* empty */
-1920, /* Collection[MPropDef] */
-},
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapKeysstring__Stringstring__String, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, String] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringstring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, String]] */
+&type_hash_collection__HashMapValuesstring__Stringstring__String, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, 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_nullable_hash_collection__HashMapNodestring__Stringstring__String, /* nullable HashCollection#1: nullable HashMapNode[String, String] */
+&type_hash_collection__HashMapNodestring__Stringstring__String, /* HashCollection#1: HashMapNode[String, String] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
+}
 };
-/* runtime type Collection[nullable MPropDef] */
-const struct type type_abstract_collection__Collectionnullable_model__MPropDef = {
-188,
-"Collection[nullable MPropDef]", /* class_name_string */
+/* runtime type List[CodeFile] */
+const struct type type_list__Listabstract_compiler__CodeFile = {
+2040,
+"List[CodeFile]", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-188, /* Collection[nullable MPropDef] */
-},
-};
-/* runtime type HashSet[MMethod] */
-const struct type type_hash_collection__HashSetmodel__MMethod = {
-2606,
-"HashSet[MMethod]", /* class_name_string */
-11,
-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] */
+2040, /* List[CodeFile] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+665, /* Collection[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 */
-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_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 */
+&type_nullable_list__ListNodeabstract_compiler__CodeFile, /* nullable ListNode[List#0]: nullable ListNode[CodeFile] */
+&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 = {
+665,
+"Collection[CodeFile]", /* class_name_string */
+5,
 0,
-&resolution_table_hash_collection__HashSetmodel__MProperty,
-14,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashMap[String, ANode] */
+const struct type type_hash_collection__HashMapstring__Stringparser_nodes__ANode = {
+122,
+"HashMap[String, ANode]", /* class_name_string */
+2,
+0,
+&resolution_table_hash_collection__HashMapstring__Stringparser_nodes__ANode,
+3,
 {
 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] */
--1, /* empty */
--1, /* empty */
-2582, /* HashSet[MProperty] */
+122, /* HashMap[String, ANode] */
 },
 };
-const struct types resolution_table_hash_collection__HashSetmodel__MProperty = {
+const struct types resolution_table_hash_collection__HashMapstring__Stringparser_nodes__ANode = {
 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_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapKeysstring__Stringparser_nodes__ANode, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, ANode] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringparser_nodes__ANode, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, ANode]] */
+&type_hash_collection__HashMapValuesstring__Stringparser_nodes__ANode, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, ANode] */
+&type_hash_collection__HashMapIteratorstring__Stringparser_nodes__ANode, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, ANode] */
+&type_string__String, /* Map#0: String */
+&type_parser_nodes__ANode, /* Map#1: ANode */
+&type_hash_collection__HashMapNodestring__Stringparser_nodes__ANode, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, ANode] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[String, ANode] not a live type) */
+&type_parser_nodes__ANode, /* MapRead#1: ANode */
+&type_string__String, /* HashCollection#0: String */
+&type_nullable_hash_collection__HashMapNodestring__Stringparser_nodes__ANode, /* nullable HashCollection#1: nullable HashMapNode[String, ANode] */
+&type_hash_collection__HashMapNodestring__Stringparser_nodes__ANode, /* HashCollection#1: HashMapNode[String, ANode] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
 }
 };
-/* runtime type Set[MProperty] */
-const struct type type_abstract_collection__Setmodel__MProperty = {
-2491,
-"Set[MProperty]", /* class_name_string */
-8,
-0,
-NULL,
-11,
-{
-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] */
-},
-};
-/* runtime type Collection[MMethod] */
-const struct type type_abstract_collection__Collectionmodel__MMethod = {
-2203,
-"Collection[MMethod]", /* class_name_string */
-12,
-0,
-NULL,
-13,
-{
-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] */
-},
-};
-/* runtime type List[MMethodDef] */
-const struct type type_list__Listmodel__MMethodDef = {
-2492,
-"List[MMethodDef]", /* class_name_string */
+/* runtime type Array[ExternFile] */
+const struct type type_array__Arrayffi_base__ExternFile = {
+2669,
+"Array[ExternFile]", /* class_name_string */
 6,
 0,
-&resolution_table_list__Listmodel__MMethodDef,
-13,
+&resolution_table_array__Arrayffi_base__ExternFile,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-188, /* Collection[nullable MPropDef] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-590, /* Collection[PropertyLayoutElement] */
-2492, /* List[MMethodDef] */
+666, /* Collection[ExternFile] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2248, /* AbstractArrayRead[ExternFile] */
+2669, /* Array[ExternFile] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1920, /* Collection[MPropDef] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-2202, /* Collection[MMethodDef] */
+2029, /* Array[Object] */
 },
 };
-const struct types resolution_table_list__Listmodel__MMethodDef = {
+const struct types resolution_table_array__Arrayffi_base__ExternFile = {
 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 */
-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_array__Arrayffi_base__ExternFile, /* Array[Array#0]: Array[ExternFile] */
+&type_array__NativeArrayffi_base__ExternFile, /* NativeArray[Array#0]: NativeArray[ExternFile] */
+&type_ffi_base__ExternFile, /* Sequence#0: ExternFile */
+&type_ffi_base__ExternFile, /* SimpleCollection#0: ExternFile */
+&type_abstract_collection__Collectionffi_base__ExternFile, /* Collection[Array#0]: Collection[ExternFile] */
+&type_ffi_base__ExternFile, /* Array#0: ExternFile */
+&type_array__NativeArrayffi_base__ExternFile, /* NativeArray[ArrayCapable#0]: NativeArray[ExternFile] */
+&type_ffi_base__ExternFile, /* AbstractArray#0: ExternFile */
+&type_ffi_base__ExternFile, /* RemovableCollection#0: ExternFile */
+&type_abstract_collection__Collectionffi_base__ExternFile, /* Collection[Sequence#0]: Collection[ExternFile] */
+&type_array__Arrayffi_base__ExternFile, /* Array[Sequence#0]: Array[ExternFile] */
+&type_abstract_collection__Collectionffi_base__ExternFile, /* Collection[SimpleCollection#0]: Collection[ExternFile] */
+&type_ffi_base__ExternFile, /* Collection#0: ExternFile */
+&type_abstract_collection__Collectionffi_base__ExternFile, /* Collection[Collection#0]: Collection[ExternFile] */
+&type_ffi_base__ExternFile, /* SequenceRead#0: ExternFile */
+&type_ffi_base__ExternFile, /* AbstractArrayRead#0: ExternFile */
+&type_array__Arrayffi_base__ExternFile, /* Array[AbstractArrayRead#0]: Array[ExternFile] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[ExternFile] not a live type) */
+&type_array__ArrayIteratorffi_base__ExternFile, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[ExternFile] */
 }
 };
-/* runtime type SeparateErasureCompiler */
-const struct type type_separate_erasure_compiler__SeparateErasureCompiler = {
-1742,
-"SeparateErasureCompiler", /* class_name_string */
-4,
+/* runtime type Collection[ExternFile] */
+const struct type type_abstract_collection__Collectionffi_base__ExternFile = {
+666,
+"Collection[ExternFile]", /* class_name_string */
+2,
 0,
-&resolution_table_separate_erasure_compiler__SeparateErasureCompiler,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-189, /* AbstractCompiler */
-603, /* SeparateCompiler */
-1742, /* SeparateErasureCompiler */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-const struct types resolution_table_separate_erasure_compiler__SeparateErasureCompiler = {
-0, /* dummy */
-{
-&type_separate_compiler__SeparateCompilerVisitor, /* VISITOR: SeparateCompilerVisitor */
-}
+/* runtime type AbstractArrayRead[ExternFile] */
+const struct type type_array__AbstractArrayReadffi_base__ExternFile = {
+2248,
+"AbstractArrayRead[ExternFile]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type SeparateCompiler */
-const struct type type_separate_compiler__SeparateCompiler = {
-603,
-"SeparateCompiler", /* class_name_string */
-3,
+/* runtime type ArraySet[String] */
+const struct type type_array__ArraySetstring__String = {
+-1, /*CAST DEAD*/
+"ArraySet[String]", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_separate_compiler__SeparateCompiler,
-4,
+&resolution_table_array__ArraySetstring__String,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-189, /* AbstractCompiler */
-603, /* SeparateCompiler */
+2249, /* ArraySet[String] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+652, /* Collection[Streamable] */
+1870, /* Collection[String] */
 },
 };
-const struct types resolution_table_separate_compiler__SeparateCompiler = {
+const struct types resolution_table_array__ArraySetstring__String = {
 0, /* dummy */
 {
-&type_separate_compiler__SeparateCompilerVisitor, /* VISITOR: SeparateCompilerVisitor */
+&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 */
+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 AbstractCompiler */
-const struct type type_abstract_compiler__AbstractCompiler = {
-189,
-"AbstractCompiler", /* class_name_string */
-2,
+/* runtime type RapidTypeAnalysis */
+const struct type type_rapid_type_analysis__RapidTypeAnalysis = {
+-1, /*CAST DEAD*/
+"RapidTypeAnalysis", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-NULL,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-189, /* AbstractCompiler */
+123, /* RapidTypeAnalysis */
 },
 };
-/* 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,
+/* runtime type HashSet[MClassType] */
+const struct type type_hash_collection__HashSetmodel__MClassType = {
+2839,
+"HashSet[MClassType]", /* class_name_string */
+14,
 0,
-&resolution_table_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType,
-3,
+&resolution_table_hash_collection__HashSetmodel__MClassType,
+15,
 {
 0, /* nullable Object */
 1, /* Object */
-190, /* HashMap[MClassDef, HashSet[MType]] */
+2668, /* Set[MType] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+101, /* Collection[nullable MType] */
+648, /* Collection[NitniCallback] */
+1872, /* HashSet[Object] */
+2039, /* Set[NitniCallback] */
+2489, /* HashSet[NitniCallback] */
+2033, /* Collection[MType] */
+2240, /* Collection[MClassType] */
+2775, /* Set[MClassType] */
+2803, /* HashSet[MType] */
+2839, /* HashSet[MClassType] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__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_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]] */
+&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_nullable_hash_collection__HashSetNodemodel__MClassType, /* nullable HashCollection#1: nullable HashSetNode[MClassType] */
+&type_hash_collection__HashSetNodemodel__MClassType, /* HashCollection#1: HashSetNode[MClassType] */
+&type_nullable_model__MClassType, /* nullable HashCollection#0: nullable MClassType */
 }
 };
-/* runtime type HashMap[MClass, Int] */
-const struct type type_hash_collection__HashMapmodel__MClasskernel__Int = {
-604,
-"HashMap[MClass, Int]", /* class_name_string */
-3,
+/* runtime type Set[MClassType] */
+const struct type type_abstract_collection__Setmodel__MClassType = {
+2775,
+"Set[MClassType]", /* class_name_string */
+12,
 0,
-&resolution_table_hash_collection__HashMapmodel__MClasskernel__Int,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashSet[MClass] */
+const struct type type_hash_collection__HashSetmodel__MClass = {
+2670,
+"HashSet[MClass]", /* class_name_string */
+8,
+0,
+&resolution_table_hash_collection__HashSetmodel__MClass,
+9,
 {
 0, /* nullable Object */
 1, /* Object */
-191, /* Map[MClass, Int] */
-604, /* HashMap[MClass, Int] */
+2250, /* Set[MClass] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+99, /* Collection[nullable MClass] */
+1866, /* Collection[MClass] */
+1872, /* HashSet[Object] */
+2670, /* 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_nullable_hash_collection__HashSetNodemodel__MClass, /* nullable HashCollection#1: nullable HashSetNode[MClass] */
+&type_hash_collection__HashSetNodemodel__MClass, /* HashCollection#1: HashSetNode[MClass] */
+&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
 }
 };
-/* runtime type Map[MClass, Int] */
-const struct type type_abstract_collection__Mapmodel__MClasskernel__Int = {
-191,
-"Map[MClass, Int]", /* class_name_string */
+/* runtime type Set[MClass] */
+const struct type type_abstract_collection__Setmodel__MClass = {
+2250,
+"Set[MClass]", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-191, /* Map[MClass, Int] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* 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 */
+/* runtime type HashSet[MMethodDef] */
+const struct type type_hash_collection__HashSetmodel__MMethodDef = {
+2804,
+"HashSet[MMethodDef]", /* class_name_string */
 2,
 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]] */
+2804, /* HashSet[MMethodDef] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+124, /* Collection[nullable MPropDef] */
+646, /* Collection[PropertyLayoutElement] */
+1872, /* HashSet[Object] */
+2041, /* Set[PropertyLayoutElement] */
+2490, /* HashSet[PropertyLayoutElement] */
+2042, /* Collection[MPropDef] */
+-1, /* empty */
+2251, /* 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_nullable_hash_collection__HashSetNodemodel__MMethodDef, /* nullable HashCollection#1: nullable HashSetNode[MMethodDef] */
+&type_hash_collection__HashSetNodemodel__MMethodDef, /* HashCollection#1: HashSetNode[MMethodDef] */
+&type_nullable_model__MMethodDef, /* nullable HashCollection#0: nullable 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 = {
+2490,
+"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 */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+-1, /* empty */
+646, /* Collection[PropertyLayoutElement] */
+1872, /* HashSet[Object] */
+2041, /* Set[PropertyLayoutElement] */
+2490, /* 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_nullable_hash_collection__HashSetNodelayout_builders__PropertyLayoutElement, /* nullable HashCollection#1: nullable HashSetNode[PropertyLayoutElement] */
+&type_hash_collection__HashSetNodelayout_builders__PropertyLayoutElement, /* HashCollection#1: HashSetNode[PropertyLayoutElement] */
+&type_nullable_layout_builders__PropertyLayoutElement, /* nullable HashCollection#0: nullable 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 = {
+2041,
+"Set[PropertyLayoutElement]", /* class_name_string */
+8,
 0,
-&resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef,
-3,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[MMethodDef] */
+const struct type type_abstract_collection__Collectionmodel__MMethodDef = {
+2251,
+"Collection[MMethodDef]", /* class_name_string */
+12,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[nullable MPropDef] */
+const struct type type_abstract_collection__Collectionnullable_model__MPropDef = {
+124,
+"Collection[nullable MPropDef]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[MPropDef] */
+const struct type type_abstract_collection__Collectionmodel__MPropDef = {
+2042,
+"Collection[MPropDef]", /* class_name_string */
+10,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashSet[MMethod] */
+const struct type type_hash_collection__HashSetmodel__MMethod = {
+2836,
+"HashSet[MMethod]", /* class_name_string */
+11,
+0,
+&resolution_table_hash_collection__HashSetmodel__MMethod,
+14,
 {
 0, /* nullable Object */
 1, /* Object */
-193, /* HashMap[MClass, Array[nullable MPropDef]] */
+100, /* Collection[nullable MProperty] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+2671, /* Set[MProperty] */
+646, /* Collection[PropertyLayoutElement] */
+1872, /* HashSet[Object] */
+2041, /* Set[PropertyLayoutElement] */
+2490, /* HashSet[PropertyLayoutElement] */
+2032, /* Collection[MProperty] */
+2836, /* HashSet[MMethod] */
+2252, /* Collection[MMethod] */
+2805, /* HashSet[MProperty] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef = {
+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__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]] */
+&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_nullable_hash_collection__HashSetNodemodel__MMethod, /* nullable HashCollection#1: nullable HashSetNode[MMethod] */
+&type_hash_collection__HashSetNodemodel__MMethod, /* HashCollection#1: HashSetNode[MMethod] */
+&type_nullable_model__MMethod, /* nullable HashCollection#0: nullable MMethod */
 }
 };
-/* runtime type List[CodeFile] */
-const struct type type_list__Listabstract_compiler__CodeFile = {
-1921,
-"List[CodeFile]", /* class_name_string */
-5,
+/* runtime type HashSet[MProperty] */
+const struct type type_hash_collection__HashSetmodel__MProperty = {
+2805,
+"HashSet[MProperty]", /* class_name_string */
+13,
 0,
-&resolution_table_list__Listabstract_compiler__CodeFile,
-6,
+&resolution_table_hash_collection__HashSetmodel__MProperty,
+14,
 {
 0, /* nullable Object */
 1, /* Object */
-606, /* Collection[CodeFile] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1921, /* List[CodeFile] */
+100, /* Collection[nullable MProperty] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+2671, /* Set[MProperty] */
+646, /* Collection[PropertyLayoutElement] */
+1872, /* HashSet[Object] */
+2041, /* Set[PropertyLayoutElement] */
+2490, /* HashSet[PropertyLayoutElement] */
+2032, /* Collection[MProperty] */
+-1, /* empty */
+-1, /* empty */
+2805, /* HashSet[MProperty] */
 },
 };
-const struct types resolution_table_list__Listabstract_compiler__CodeFile = {
+const struct types resolution_table_hash_collection__HashSetmodel__MProperty = {
 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 */
+&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_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 */
+&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_nullable_hash_collection__HashSetNodemodel__MProperty, /* nullable HashCollection#1: nullable HashSetNode[MProperty] */
+&type_hash_collection__HashSetNodemodel__MProperty, /* HashCollection#1: HashSetNode[MProperty] */
+&type_nullable_model__MProperty, /* nullable HashCollection#0: nullable MProperty */
 }
 };
-/* runtime type Collection[CodeFile] */
-const struct type type_abstract_collection__Collectionabstract_compiler__CodeFile = {
-606,
-"Collection[CodeFile]", /* class_name_string */
-2,
-0,
-NULL,
+/* runtime type Set[MProperty] */
+const struct type type_abstract_collection__Setmodel__MProperty = {
+2671,
+"Set[MProperty]", /* class_name_string */
 5,
-{
-0, /* nullable Object */
-1, /* Object */
-606, /* Collection[CodeFile] */
--1, /* empty */
-164, /* Collection[Object] */
-},
-};
-/* runtime type HashMap[String, String] */
-const struct type type_hash_collection__HashMapstring__Stringstring__String = {
-194,
-"HashMap[String, String]", /* class_name_string */
-2,
 0,
-&resolution_table_hash_collection__HashMapstring__Stringstring__String,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-194, /* HashMap[String, String] */
-},
-};
-const struct types resolution_table_hash_collection__HashMapstring__Stringstring__String = {
-0, /* dummy */
-{
-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] */
-}
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type Array[ExternCFile] */
-const struct type type_array__Arrayabstract_compiler__ExternCFile = {
-2493,
-"Array[ExternCFile]", /* class_name_string */
-7,
+/* runtime type Collection[MMethod] */
+const struct type type_abstract_collection__Collectionmodel__MMethod = {
+2252,
+"Collection[MMethod]", /* class_name_string */
+12,
 0,
-&resolution_table_array__Arrayabstract_compiler__ExternCFile,
-10,
-{
-0, /* nullable Object */
-1, /* Object */
-607, /* Collection[ExternCFile] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2204, /* AbstractArrayRead[ExternCFile] */
-1728, /* AbstractArrayRead[Object] */
-2493, /* Array[ExternCFile] */
--1, /* empty */
-1911, /* Array[Object] */
-},
-};
-const struct types resolution_table_array__Arrayabstract_compiler__ExternCFile = {
-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] */
-}
-};
-/* runtime type Collection[ExternCFile] */
-const struct type type_abstract_collection__Collectionabstract_compiler__ExternCFile = {
-607,
-"Collection[ExternCFile]", /* class_name_string */
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type List[MMethodDef] */
+const struct type type_list__Listmodel__MMethodDef = {
+2672,
+"List[MMethodDef]", /* class_name_string */
 2,
 0,
-NULL,
-5,
+&resolution_table_list__Listmodel__MMethodDef,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
-607, /* Collection[ExternCFile] */
+2672, /* List[MMethodDef] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+124, /* Collection[nullable MPropDef] */
+646, /* Collection[PropertyLayoutElement] */
 -1, /* empty */
-164, /* Collection[Object] */
-},
-};
-/* runtime type AbstractArrayRead[ExternCFile] */
-const struct type type_array__AbstractArrayReadabstract_compiler__ExternCFile = {
-2204,
-"AbstractArrayRead[ExternCFile]", /* class_name_string */
-5,
-0,
-NULL,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-607, /* Collection[ExternCFile] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2204, /* AbstractArrayRead[ExternCFile] */
-1728, /* AbstractArrayRead[Object] */
-},
-};
-/* runtime type ArraySet[String] */
-const struct type type_array__ArraySetstring__String = {
-1922,
-"ArraySet[String]", /* class_name_string */
-5,
-0,
-&resolution_table_array__ArraySetstring__String,
-6,
-{
-0, /* nullable Object */
-1, /* Object */
-595, /* Collection[String] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-1922, /* ArraySet[String] */
+-1, /* empty */
+-1, /* empty */
+2042, /* Collection[MPropDef] */
+-1, /* empty */
+2251, /* 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 */
-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_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_nullable_list__ListNodemodel__MMethodDef, /* nullable ListNode[List#0]: nullable ListNode[MMethodDef] */
+&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,
+667,
 "GlobalCompiler", /* class_name_string */
 3,
 0,
@@ -4069,8 +4388,8 @@ const struct type type_global_compiler__GlobalCompiler = {
 {
 0, /* nullable Object */
 1, /* Object */
-189, /* AbstractCompiler */
-608, /* GlobalCompiler */
+116, /* AbstractCompiler */
+667, /* GlobalCompiler */
 },
 };
 const struct types resolution_table_global_compiler__GlobalCompiler = {
@@ -4080,802 +4399,293 @@ const struct types resolution_table_global_compiler__GlobalCompiler = {
 }
 };
 /* runtime type HashMap[MClassType, String] */
-const struct type type_hash_collection__HashMapmodel__MClassTypestring__String = {
-195,
-"HashMap[MClassType, String]", /* class_name_string */
-2,
-0,
-&resolution_table_hash_collection__HashMapmodel__MClassTypestring__String,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-195, /* HashMap[MClassType, String] */
-},
-};
-const struct types resolution_table_hash_collection__HashMapmodel__MClassTypestring__String = {
-0, /* dummy */
-{
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MClassTypestring__String, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassType, String] */
-&type_hash_collection__HashMapValuesmodel__MClassTypestring__String, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassType, String] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassTypestring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassType, String]] */
-&type_model__MClassType, /* MapRead#0: MClassType */
-&type_hash_collection__HashMapIteratormodel__MClassTypestring__String, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClassType, String] */
-&type_model__MClassType, /* Map#0: MClassType */
-&type_string__String, /* Map#1: String */
-&type_hash_collection__HashMapNodemodel__MClassTypestring__String, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClassType, String] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MClassType, String] not a live type) */
-&type_string__String, /* MapRead#1: String */
-&type_model__MClassType, /* HashCollection#0: MClassType */
-&type_hash_collection__HashMapNodemodel__MClassTypestring__String, /* HashCollection#1: HashMapNode[MClassType, String] */
-}
-};
-/* runtime type List[AbstractRuntimeFunction] */
-const struct type type_list__Listabstract_compiler__AbstractRuntimeFunction = {
-1923,
-"List[AbstractRuntimeFunction]", /* class_name_string */
-5,
-0,
-&resolution_table_list__Listabstract_compiler__AbstractRuntimeFunction,
-6,
-{
-0, /* nullable Object */
-1, /* Object */
-609, /* Collection[AbstractRuntimeFunction] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1923, /* List[AbstractRuntimeFunction] */
-},
-};
-const struct types resolution_table_list__Listabstract_compiler__AbstractRuntimeFunction = {
-0, /* dummy */
-{
-&type_list__Listabstract_compiler__AbstractRuntimeFunction, /* List[List#0]: List[AbstractRuntimeFunction] */
-&type_list__ListNodeabstract_compiler__AbstractRuntimeFunction, /* ListNode[List#0]: ListNode[AbstractRuntimeFunction] */
-&type_abstract_compiler__AbstractRuntimeFunction, /* Sequence#0: AbstractRuntimeFunction */
-&type_abstract_compiler__AbstractRuntimeFunction, /* SimpleCollection#0: AbstractRuntimeFunction */
-&type_list__ListIteratorabstract_compiler__AbstractRuntimeFunction, /* ListIterator[List#0]: ListIterator[AbstractRuntimeFunction] */
-&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[List#0]: Collection[AbstractRuntimeFunction] */
-&type_abstract_compiler__AbstractRuntimeFunction, /* List#0: AbstractRuntimeFunction */
-NULL, /* empty */
-&type_abstract_compiler__AbstractRuntimeFunction, /* RemovableCollection#0: AbstractRuntimeFunction */
-&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[Sequence#0]: Collection[AbstractRuntimeFunction] */
-&type_array__Arrayabstract_compiler__AbstractRuntimeFunction, /* Array[Sequence#0]: Array[AbstractRuntimeFunction] */
-&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[SimpleCollection#0]: Collection[AbstractRuntimeFunction] */
-&type_abstract_compiler__AbstractRuntimeFunction, /* Collection#0: AbstractRuntimeFunction */
-&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[Collection#0]: Collection[AbstractRuntimeFunction] */
-&type_abstract_compiler__AbstractRuntimeFunction, /* SequenceRead#0: AbstractRuntimeFunction */
-}
-};
-/* runtime type Collection[AbstractRuntimeFunction] */
-const struct type type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction = {
-609,
-"Collection[AbstractRuntimeFunction]", /* class_name_string */
-2,
-0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-609, /* Collection[AbstractRuntimeFunction] */
--1, /* empty */
-164, /* Collection[Object] */
-},
-};
-/* runtime type HashSet[AbstractRuntimeFunction] */
-const struct type type_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction = {
-2205,
-"HashSet[AbstractRuntimeFunction]", /* class_name_string */
-5,
-0,
-&resolution_table_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-609, /* Collection[AbstractRuntimeFunction] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-2205, /* HashSet[AbstractRuntimeFunction] */
-1740, /* HashSet[Object] */
-},
-};
-const struct types resolution_table_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction = {
-0, /* dummy */
-{
-&type_hash_collection__HashSetNodeabstract_compiler__AbstractRuntimeFunction, /* HashSetNode[HashSet#0]: HashSetNode[AbstractRuntimeFunction] */
-&type_hash_collection__HashSetIteratorabstract_compiler__AbstractRuntimeFunction, /* HashSetIterator[HashSet#0]: HashSetIterator[AbstractRuntimeFunction] */
-&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[HashSet#0]: Collection[AbstractRuntimeFunction] */
-&type_abstract_compiler__AbstractRuntimeFunction, /* SimpleCollection#0: AbstractRuntimeFunction */
-&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[Set#0]: Collection[AbstractRuntimeFunction] */
-NULL, /* empty */
-&type_array__NativeArraynullable_hash_collection__HashSetNodeabstract_compiler__AbstractRuntimeFunction, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[AbstractRuntimeFunction]] */
-NULL, /* empty */
-&type_abstract_compiler__AbstractRuntimeFunction, /* RemovableCollection#0: AbstractRuntimeFunction */
-NULL, /* empty */
-NULL, /* empty */
-&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[SimpleCollection#0]: Collection[AbstractRuntimeFunction] */
-&type_abstract_compiler__AbstractRuntimeFunction, /* Collection#0: AbstractRuntimeFunction */
-&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[Collection#0]: Collection[AbstractRuntimeFunction] */
-&type_abstract_compiler__AbstractRuntimeFunction, /* HashCollection#0: AbstractRuntimeFunction */
-&type_hash_collection__HashSetNodeabstract_compiler__AbstractRuntimeFunction, /* HashCollection#1: HashSetNode[AbstractRuntimeFunction] */
-}
-};
-/* runtime type HashMap[MType, Array[MClassType]] */
-const struct type type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType = {
-1743,
-"HashMap[MType, Array[MClassType]]", /* class_name_string */
-4,
-0,
-&resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-192, /* HashMap[MType, Array[nullable MType]] */
-610, /* HashMap[MType, Array[MType]] */
-1743, /* HashMap[MType, Array[MClassType]] */
-},
-};
-const struct types resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType = {
-0, /* dummy */
-{
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MTypearray__Arraymodel__MClassType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Array[MClassType]] */
-&type_hash_collection__HashMapValuesmodel__MTypearray__Arraymodel__MClassType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Array[MClassType]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Array[MClassType]]] */
-&type_model__MType, /* MapRead#0: MType */
-&type_hash_collection__HashMapIteratormodel__MTypearray__Arraymodel__MClassType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Array[MClassType]] */
-&type_model__MType, /* Map#0: MType */
-&type_array__Arraymodel__MClassType, /* Map#1: Array[MClassType] */
-&type_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MClassType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Array[MClassType]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MType, Array[MClassType]] not a live type) */
-&type_array__Arraymodel__MClassType, /* MapRead#1: Array[MClassType] */
-&type_model__MType, /* HashCollection#0: MType */
-&type_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MClassType, /* HashCollection#1: HashMapNode[MType, Array[MClassType]] */
-}
-};
-/* runtime type HashMap[MType, Array[MType]] */
-const struct type type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MType = {
-610,
-"HashMap[MType, Array[MType]]", /* class_name_string */
-3,
-0,
-&resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__MType,
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-192, /* HashMap[MType, Array[nullable MType]] */
-610, /* HashMap[MType, Array[MType]] */
-},
-};
-const struct types resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__MType = {
-0, /* dummy */
-{
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_hash_collection__HashMapKeysmodel__MTypearray__Arraymodel__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Array[MType]] */
-&type_hash_collection__HashMapValuesmodel__MTypearray__Arraymodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Array[MType]] */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Array[MType]]] */
-&type_model__MType, /* MapRead#0: MType */
-&type_hash_collection__HashMapIteratormodel__MTypearray__Arraymodel__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Array[MType]] */
-&type_model__MType, /* Map#0: MType */
-&type_array__Arraymodel__MType, /* Map#1: Array[MType] */
-&type_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Array[MType]] */
-NULL, /* empty (Map[Map#0, Map#1]: Map[MType, Array[MType]] not a live type) */
-&type_array__Arraymodel__MType, /* MapRead#1: Array[MType] */
-&type_model__MType, /* HashCollection#0: MType */
-&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,
-0,
-&resolution_table_string__String,
-11,
-{
-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 */
-},
-};
-const struct types resolution_table_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 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 */
-3,
-0,
-&resolution_table_file__Stdout,
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-197, /* OFStream */
-611, /* Stdout */
-},
-};
-const struct types resolution_table_file__Stdout = {
-0, /* dummy */
-{
-}
-};
-/* runtime type OFStream */
-const struct type type_file__OFStream = {
-197,
-"OFStream", /* class_name_string */
-2,
-0,
-&resolution_table_file__OFStream,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-197, /* OFStream */
-},
-};
-const struct types resolution_table_file__OFStream = {
-0, /* dummy */
-{
-}
-};
-/* 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 */
+const struct type type_hash_collection__HashMapmodel__MClassTypestring__String = {
+125,
+"HashMap[MClassType, String]", /* class_name_string */
 2,
 0,
-&resolution_table_parser__Parser,
+&resolution_table_hash_collection__HashMapmodel__MClassTypestring__String,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-201, /* Parser */
+125, /* HashMap[MClassType, String] */
 },
 };
-const struct types resolution_table_parser__Parser = {
+const struct types resolution_table_hash_collection__HashMapmodel__MClassTypestring__String = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_model__MClassType, /* MapRead#0: MClassType */
+&type_hash_collection__HashMapKeysmodel__MClassTypestring__String, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClassType, String] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassTypestring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassType, String]] */
+&type_hash_collection__HashMapValuesmodel__MClassTypestring__String, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassType, String] */
+&type_hash_collection__HashMapIteratormodel__MClassTypestring__String, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClassType, String] */
+&type_model__MClassType, /* Map#0: MClassType */
+&type_string__String, /* Map#1: String */
+&type_hash_collection__HashMapNodemodel__MClassTypestring__String, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClassType, String] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MClassType, String] not a live type) */
+&type_string__String, /* MapRead#1: String */
+&type_model__MClassType, /* HashCollection#0: MClassType */
+&type_nullable_hash_collection__HashMapNodemodel__MClassTypestring__String, /* nullable HashCollection#1: nullable HashMapNode[MClassType, String] */
+&type_hash_collection__HashMapNodemodel__MClassTypestring__String, /* HashCollection#1: HashMapNode[MClassType, String] */
+&type_nullable_model__MClassType, /* nullable HashCollection#0: nullable MClassType */
 }
 };
-/* runtime type AnnotationPhaseVisitor */
-const struct type type_phase__AnnotationPhaseVisitor = {
-202,
-"AnnotationPhaseVisitor", /* class_name_string */
+/* runtime type List[AbstractRuntimeFunction] */
+const struct type type_list__Listabstract_compiler__AbstractRuntimeFunction = {
+2043,
+"List[AbstractRuntimeFunction]", /* class_name_string */
 2,
 0,
-&resolution_table_phase__AnnotationPhaseVisitor,
-3,
+&resolution_table_list__Listabstract_compiler__AbstractRuntimeFunction,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-202, /* AnnotationPhaseVisitor */
+2043, /* List[AbstractRuntimeFunction] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+668, /* Collection[AbstractRuntimeFunction] */
 },
 };
-const struct types resolution_table_phase__AnnotationPhaseVisitor = {
+const struct types resolution_table_list__Listabstract_compiler__AbstractRuntimeFunction = {
 0, /* dummy */
 {
+&type_list__Listabstract_compiler__AbstractRuntimeFunction, /* List[List#0]: List[AbstractRuntimeFunction] */
+&type_list__ListNodeabstract_compiler__AbstractRuntimeFunction, /* ListNode[List#0]: ListNode[AbstractRuntimeFunction] */
+&type_abstract_compiler__AbstractRuntimeFunction, /* Sequence#0: AbstractRuntimeFunction */
+&type_abstract_compiler__AbstractRuntimeFunction, /* SimpleCollection#0: AbstractRuntimeFunction */
+&type_list__ListIteratorabstract_compiler__AbstractRuntimeFunction, /* ListIterator[List#0]: ListIterator[AbstractRuntimeFunction] */
+&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[List#0]: Collection[AbstractRuntimeFunction] */
+&type_abstract_compiler__AbstractRuntimeFunction, /* List#0: AbstractRuntimeFunction */
+&type_nullable_list__ListNodeabstract_compiler__AbstractRuntimeFunction, /* nullable ListNode[List#0]: nullable ListNode[AbstractRuntimeFunction] */
+&type_abstract_compiler__AbstractRuntimeFunction, /* RemovableCollection#0: AbstractRuntimeFunction */
+&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[Sequence#0]: Collection[AbstractRuntimeFunction] */
+&type_array__Arrayabstract_compiler__AbstractRuntimeFunction, /* Array[Sequence#0]: Array[AbstractRuntimeFunction] */
+&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[SimpleCollection#0]: Collection[AbstractRuntimeFunction] */
+&type_abstract_compiler__AbstractRuntimeFunction, /* Collection#0: AbstractRuntimeFunction */
+&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[Collection#0]: Collection[AbstractRuntimeFunction] */
+&type_abstract_compiler__AbstractRuntimeFunction, /* SequenceRead#0: AbstractRuntimeFunction */
 }
 };
-/* runtime type RapidTypeVisitor */
-const struct type type_rapid_type_analysis__RapidTypeVisitor = {
-203,
-"RapidTypeVisitor", /* class_name_string */
+/* runtime type Collection[AbstractRuntimeFunction] */
+const struct type type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction = {
+668,
+"Collection[AbstractRuntimeFunction]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashSet[AbstractRuntimeFunction] */
+const struct type type_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction = {
+2253,
+"HashSet[AbstractRuntimeFunction]", /* class_name_string */
 2,
 0,
-&resolution_table_rapid_type_analysis__RapidTypeVisitor,
-3,
+&resolution_table_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-203, /* RapidTypeVisitor */
+2253, /* HashSet[AbstractRuntimeFunction] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+668, /* Collection[AbstractRuntimeFunction] */
+-1, /* empty */
+1872, /* HashSet[Object] */
 },
 };
-const struct types resolution_table_rapid_type_analysis__RapidTypeVisitor = {
+const struct types resolution_table_hash_collection__HashSetabstract_compiler__AbstractRuntimeFunction = {
 0, /* dummy */
 {
+&type_hash_collection__HashSetNodeabstract_compiler__AbstractRuntimeFunction, /* HashSetNode[HashSet#0]: HashSetNode[AbstractRuntimeFunction] */
+&type_hash_collection__HashSetIteratorabstract_compiler__AbstractRuntimeFunction, /* HashSetIterator[HashSet#0]: HashSetIterator[AbstractRuntimeFunction] */
+&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[HashSet#0]: Collection[AbstractRuntimeFunction] */
+&type_abstract_compiler__AbstractRuntimeFunction, /* SimpleCollection#0: AbstractRuntimeFunction */
+&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[Set#0]: Collection[AbstractRuntimeFunction] */
+NULL, /* empty */
+&type_array__NativeArraynullable_hash_collection__HashSetNodeabstract_compiler__AbstractRuntimeFunction, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[AbstractRuntimeFunction]] */
+NULL, /* empty */
+&type_abstract_compiler__AbstractRuntimeFunction, /* RemovableCollection#0: AbstractRuntimeFunction */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[SimpleCollection#0]: Collection[AbstractRuntimeFunction] */
+&type_abstract_compiler__AbstractRuntimeFunction, /* Collection#0: AbstractRuntimeFunction */
+&type_abstract_collection__Collectionabstract_compiler__AbstractRuntimeFunction, /* Collection[Collection#0]: Collection[AbstractRuntimeFunction] */
+&type_abstract_compiler__AbstractRuntimeFunction, /* HashCollection#0: AbstractRuntimeFunction */
+&type_nullable_hash_collection__HashSetNodeabstract_compiler__AbstractRuntimeFunction, /* nullable HashCollection#1: nullable HashSetNode[AbstractRuntimeFunction] */
+&type_hash_collection__HashSetNodeabstract_compiler__AbstractRuntimeFunction, /* HashCollection#1: HashSetNode[AbstractRuntimeFunction] */
+&type_nullable_abstract_compiler__AbstractRuntimeFunction, /* nullable HashCollection#0: nullable AbstractRuntimeFunction */
 }
 };
-/* runtime type Array[MType] */
-const struct type type_array__Arraymodel__MType = {
-2594,
-"Array[MType]", /* class_name_string */
-15,
+/* runtime type HashMap[MType, Array[MClassType]] */
+const struct type type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType = {
+1877,
+"HashMap[MType, Array[MClassType]]", /* class_name_string */
+4,
 0,
-&resolution_table_array__Arraymodel__MType,
-16,
+&resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType,
+5,
 {
 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] */
+119, /* HashMap[MType, Array[nullable MType]] */
+669, /* HashMap[MType, Array[MType]] */
+1877, /* HashMap[MType, Array[MClassType]] */
 },
 };
-const struct types resolution_table_array__Arraymodel__MType = {
+const struct types resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__MClassType = {
 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] */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_model__MType, /* MapRead#0: MType */
+&type_hash_collection__HashMapKeysmodel__MTypearray__Arraymodel__MClassType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Array[MClassType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Array[MClassType]]] */
+&type_hash_collection__HashMapValuesmodel__MTypearray__Arraymodel__MClassType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Array[MClassType]] */
+&type_hash_collection__HashMapIteratormodel__MTypearray__Arraymodel__MClassType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Array[MClassType]] */
+&type_model__MType, /* Map#0: MType */
+&type_array__Arraymodel__MClassType, /* Map#1: Array[MClassType] */
+&type_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MClassType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Array[MClassType]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MType, Array[MClassType]] not a live type) */
+&type_array__Arraymodel__MClassType, /* MapRead#1: Array[MClassType] */
+&type_model__MType, /* HashCollection#0: MType */
+&type_nullable_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MClassType, /* nullable HashCollection#1: nullable HashMapNode[MType, Array[MClassType]] */
+&type_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MClassType, /* HashCollection#1: HashMapNode[MType, Array[MClassType]] */
+&type_nullable_model__MType, /* nullable HashCollection#0: nullable MType */
 }
 };
-/* runtime type Array[nullable MType] */
-const struct type type_array__Arraynullable_model__MType = {
-2207,
-"Array[nullable MType]", /* class_name_string */
-11,
+/* runtime type HashMap[MType, Array[MType]] */
+const struct type type_hash_collection__HashMapmodel__MTypearray__Arraymodel__MType = {
+669,
+"HashMap[MType, Array[MType]]", /* class_name_string */
+3,
 0,
-&resolution_table_array__Arraynullable_model__MType,
-12,
+&resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__MType,
+4,
 {
 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] */
+119, /* HashMap[MType, Array[nullable MType]] */
+669, /* HashMap[MType, Array[MType]] */
 },
 };
-const struct types resolution_table_array__Arraynullable_model__MType = {
+const struct types resolution_table_hash_collection__HashMapmodel__MTypearray__Arraymodel__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] */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_model__MType, /* MapRead#0: MType */
+&type_hash_collection__HashMapKeysmodel__MTypearray__Arraymodel__MType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MType, Array[MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Array[MType]]] */
+&type_hash_collection__HashMapValuesmodel__MTypearray__Arraymodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Array[MType]] */
+&type_hash_collection__HashMapIteratormodel__MTypearray__Arraymodel__MType, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MType, Array[MType]] */
+&type_model__MType, /* Map#0: MType */
+&type_array__Arraymodel__MType, /* Map#1: Array[MType] */
+&type_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MType, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MType, Array[MType]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[MType, Array[MType]] not a live type) */
+&type_array__Arraymodel__MType, /* MapRead#1: Array[MType] */
+&type_model__MType, /* HashCollection#0: MType */
+&type_nullable_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MType, /* nullable HashCollection#1: nullable HashMapNode[MType, Array[MType]] */
+&type_hash_collection__HashMapNodemodel__MTypearray__Arraymodel__MType, /* HashCollection#1: HashMapNode[MType, Array[MType]] */
+&type_nullable_model__MType, /* nullable HashCollection#0: nullable MType */
 }
 };
-/* runtime type AbstractArrayRead[MType] */
-const struct type type_array__AbstractArrayReadmodel__MType = {
-2495,
-"AbstractArrayRead[MType]", /* class_name_string */
-13,
+/* runtime type FlatStringIterator */
+const struct type type_string__FlatStringIterator = {
+-1, /*CAST DEAD*/
+"FlatStringIterator", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-NULL,
-14,
+&resolution_table_string__FlatStringIterator,
+3,
 {
 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] */
+126, /* FlatStringIterator */
 },
 };
-/* runtime type AbstractArrayRead[nullable MType] */
-const struct type type_array__AbstractArrayReadnullable_model__MType = {
-1744,
-"AbstractArrayRead[nullable MType]", /* class_name_string */
-8,
+const struct types resolution_table_string__FlatStringIterator = {
+0, /* dummy */
+{
+&type_array__Arraykernel__Char, /* Array[Iterator#0]: Array[Char] */
+}
+};
+/* runtime type Stdout */
+const struct type type_file__Stdout = {
+-1, /*CAST DEAD*/
+"Stdout", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-NULL,
-9,
+NULL, /*NO RESOLUTIONS*/
+4,
 {
 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] */
+127, /* OFStream */
+670, /* Stdout */
 },
 };
-/* 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,
+/* runtime type OFStream */
+const struct type type_file__OFStream = {
+-1, /*CAST DEAD*/
+"OFStream", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
--1, /* empty */
-4, /* nullable Array[nullable MType] */
+1, /* Object */
+127, /* OFStream */
 },
 };
-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,
+/* runtime type FlatBufferIterator */
+const struct type type_string__FlatBufferIterator = {
+-1, /*CAST DEAD*/
+"FlatBufferIterator", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_range__Rangekernel__Int,
-5,
+&resolution_table_string__FlatBufferIterator,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-612, /* Collection[Int] */
-1745, /* Range[Int] */
-164, /* Collection[Object] */
+128, /* FlatBufferIterator */
 },
 };
-const struct types resolution_table_range__Rangekernel__Int = {
+const struct types resolution_table_string__FlatBufferIterator = {
 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] */
+&type_array__Arraykernel__Char, /* Array[Iterator#0]: Array[Char] */
 }
 };
-/* runtime type List[MClassType] */
-const struct type type_list__Listmodel__MClassType = {
-2425,
-"List[MClassType]", /* class_name_string */
-2,
+/* runtime type AnnotationPhaseVisitor */
+const struct type type_phase__AnnotationPhaseVisitor = {
+-1, /*CAST DEAD*/
+"AnnotationPhaseVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_list__Listmodel__MClassType,
-11,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 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] */
+129, /* AnnotationPhaseVisitor */
 },
 };
-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 HashMap[String, Int] */
 const struct type type_hash_collection__HashMapstring__Stringkernel__Int = {
-204,
+130,
 "HashMap[String, Int]", /* class_name_string */
 2,
 0,
@@ -4884,7 +4694,7 @@ const struct type type_hash_collection__HashMapstring__Stringkernel__Int = {
 {
 0, /* nullable Object */
 1, /* Object */
-204, /* HashMap[String, Int] */
+130, /* HashMap[String, Int] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapstring__Stringkernel__Int = {
@@ -4894,10 +4704,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_string__String, /* MapRead#0: String */
 &type_hash_collection__HashMapKeysstring__Stringkernel__Int, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Int] */
-&type_hash_collection__HashMapValuesstring__Stringkernel__Int, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Int] */
 &type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringkernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Int]] */
-&type_string__String, /* MapRead#0: String */
+&type_hash_collection__HashMapValuesstring__Stringkernel__Int, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Int] */
 &type_hash_collection__HashMapIteratorstring__Stringkernel__Int, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, Int] */
 &type_string__String, /* Map#0: String */
 &type_kernel__Int, /* Map#1: Int */
@@ -4905,21 +4715,23 @@ NULL, /* empty */
 NULL, /* empty (Map[Map#0, Map#1]: Map[String, Int] not a live type) */
 &type_kernel__Int, /* MapRead#1: Int */
 &type_string__String, /* HashCollection#0: String */
+&type_nullable_hash_collection__HashMapNodestring__Stringkernel__Int, /* nullable HashCollection#1: nullable HashMapNode[String, Int] */
 &type_hash_collection__HashMapNodestring__Stringkernel__Int, /* HashCollection#1: HashMapNode[String, Int] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
 }
 };
 /* runtime type MClassColorer */
 const struct type type_layout_builders__MClassColorer = {
-205,
+-1, /*CAST DEAD*/
 "MClassColorer", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MClassColorer,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-205, /* MClassColorer */
+131, /* MClassColorer */
 },
 };
 const struct types resolution_table_layout_builders__MClassColorer = {
@@ -4931,11 +4743,11 @@ const struct types resolution_table_layout_builders__MClassColorer = {
 &type_abstract_collection__Setmodel__MClass, /* Set[TypingColorer#0]: Set[MClass] */
 &type_abstract_collection__Mapmodel__MClasskernel__Int, /* Map[TypingColorer#0, Int]: Map[MClass, Int] */
 &type_layout_builders__POSetBuildermodel__MClass, /* POSetBuilder[TypingColorer#0]: POSetBuilder[MClass] */
-&type_poset__POSetmodel__MClass, /* POSet[TypingColorer#0]: POSet[MClass] */
+&type_nullable_poset__POSetmodel__MClass, /* nullable POSet[TypingColorer#0]: nullable POSet[MClass] */
 &type_layout_builders__Layoutmodel__MClass, /* Layout[TypingColorer#0]: Layout[MClass] */
 &type_model__MClass, /* TypingColorer#0: MClass */
 &type_hash_collection__HashMapmodel__MClasshash_collection__HashSetmodel__MClass, /* HashMap[TypingColorer#0, HashSet[TypingColorer#0]]: HashMap[MClass, HashSet[MClass]] */
-&type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MClass, /* HashMap[TypingColorer#0, Set[TypingColorer#0]]: HashMap[MClass, Set[MClass]] */
+&type_nullable_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MClass, /* nullable HashMap[TypingColorer#0, Set[TypingColorer#0]]: nullable HashMap[MClass, Set[MClass]] */
 NULL, /* empty (Map[TypingColorer#0, Array[TypingColorer#0]]: Map[MClass, Array[MClass]] not a live type) */
 &type_array__Arraymodel__MClass, /* Array[TypingColorer#0]: Array[MClass] */
 &type_abstract_collection__Setmodel__MClass, /* Set[TypingLayoutBuilder#0]: Set[MClass] */
@@ -4943,23 +4755,23 @@ NULL, /* empty (Map[TypingColorer#0, Array[TypingColorer#0]]: Map[MClass, Array[
 };
 /* runtime type MClassHasher */
 const struct type type_layout_builders__MClassHasher = {
-206,
+-1, /*CAST DEAD*/
 "MClassHasher", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MClassHasher,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-206, /* MClassHasher */
+132, /* MClassHasher */
 },
 };
 const struct types resolution_table_layout_builders__MClassHasher = {
 0, /* dummy */
 {
 &type_layout_builders__POSetBuildermodel__MClass, /* POSetBuilder[TypingHasher#0]: POSetBuilder[MClass] */
-&type_poset__POSetmodel__MClass, /* POSet[TypingHasher#0]: POSet[MClass] */
+&type_nullable_poset__POSetmodel__MClass, /* nullable POSet[TypingHasher#0]: nullable POSet[MClass] */
 &type_abstract_collection__Setmodel__MClass, /* Set[TypingHasher#0]: Set[MClass] */
 &type_layout_builders__PHLayoutmodel__MClassmodel__MClass, /* PHLayout[TypingHasher#0, TypingHasher#0]: PHLayout[MClass, MClass] */
 &type_hash_collection__HashMapmodel__MClasskernel__Int, /* HashMap[TypingHasher#0, Int]: HashMap[MClass, Int] */
@@ -4977,61 +4789,51 @@ const struct types resolution_table_layout_builders__MClassHasher = {
 };
 /* runtime type PHModOperator */
 const struct type type_layout_builders__PHModOperator = {
-207,
+-1, /*CAST DEAD*/
 "PHModOperator", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_layout_builders__PHModOperator,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-207, /* PHModOperator */
+133, /* PHModOperator */
 },
 };
-const struct types resolution_table_layout_builders__PHModOperator = {
-0, /* dummy */
-{
-}
-};
 /* runtime type PHAndOperator */
 const struct type type_layout_builders__PHAndOperator = {
-208,
+-1, /*CAST DEAD*/
 "PHAndOperator", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_layout_builders__PHAndOperator,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-208, /* PHAndOperator */
+134, /* PHAndOperator */
 },
 };
-const struct types resolution_table_layout_builders__PHAndOperator = {
-0, /* dummy */
-{
-}
-};
 /* runtime type MClassBMizer */
 const struct type type_layout_builders__MClassBMizer = {
-209,
+-1, /*CAST DEAD*/
 "MClassBMizer", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MClassBMizer,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-209, /* MClassBMizer */
+135, /* MClassBMizer */
 },
 };
 const struct types resolution_table_layout_builders__MClassBMizer = {
 0, /* dummy */
 {
 &type_layout_builders__POSetBuildermodel__MClass, /* POSetBuilder[TypingBMizer#0]: POSetBuilder[MClass] */
-&type_poset__POSetmodel__MClass, /* POSet[TypingBMizer#0]: POSet[MClass] */
+&type_nullable_poset__POSetmodel__MClass, /* nullable POSet[TypingBMizer#0]: nullable POSet[MClass] */
 &type_abstract_collection__Setmodel__MClass, /* Set[TypingBMizer#0]: Set[MClass] */
 &type_layout_builders__Layoutmodel__MClass, /* Layout[TypingBMizer#0]: Layout[MClass] */
 &type_hash_collection__HashMapmodel__MClasskernel__Int, /* HashMap[TypingBMizer#0, Int]: HashMap[MClass, Int] */
@@ -5048,7 +4850,7 @@ NULL, /* empty */
 };
 /* runtime type HashMap[MClass, Set[MVirtualTypeProp]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp = {
-2208,
+2254,
 "HashMap[MClass, Set[MVirtualTypeProp]]", /* class_name_string */
 6,
 0,
@@ -5057,11 +4859,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]] */
+112, /* Map[MClass, Set[PropertyLayoutElement]] */
+656, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+671, /* Map[MClass, Set[MVirtualTypeProp]] */
+1873, /* HashMap[MClass, Set[MProperty]] */
+2254, /* HashMap[MClass, Set[MVirtualTypeProp]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp = {
@@ -5071,10 +4873,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MClass, /* MapRead#0: MClass */
 &type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Set[MVirtualTypeProp]] */
-&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[MVirtualTypeProp]] */
 &type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Set[MVirtualTypeProp]]] */
-&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[MVirtualTypeProp]] */
 &type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Set[MVirtualTypeProp]] */
 &type_model__MClass, /* Map#0: MClass */
 &type_abstract_collection__Setmodel__MVirtualTypeProp, /* Map#1: Set[MVirtualTypeProp] */
@@ -5082,28 +4884,23 @@ NULL, /* empty */
 &type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* Map[Map#0, Map#1]: Map[MClass, Set[MVirtualTypeProp]] */
 &type_abstract_collection__Setmodel__MVirtualTypeProp, /* MapRead#1: Set[MVirtualTypeProp] */
 &type_model__MClass, /* HashCollection#0: MClass */
+&type_nullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* nullable HashCollection#1: nullable HashMapNode[MClass, Set[MVirtualTypeProp]] */
 &type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashCollection#1: HashMapNode[MClass, Set[MVirtualTypeProp]] */
+&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
 }
 };
 /* runtime type Map[MClass, Set[MVirtualTypeProp]] */
 const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp = {
-613,
+671,
 "Map[MClass, Set[MVirtualTypeProp]]", /* class_name_string */
 4,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-183, /* Map[MClass, Set[PropertyLayoutElement]] */
--1, /* empty */
-613, /* Map[MClass, Set[MVirtualTypeProp]] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashSet[MVirtualTypeProp] */
 const struct type type_hash_collection__HashSetmodel__MVirtualTypeProp = {
-2609,
+2840,
 "HashSet[MVirtualTypeProp]", /* class_name_string */
 14,
 0,
@@ -5112,19 +4909,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] */
+100, /* Collection[nullable MProperty] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+2671, /* Set[MProperty] */
+646, /* Collection[PropertyLayoutElement] */
+1872, /* HashSet[Object] */
+2041, /* Set[PropertyLayoutElement] */
+2490, /* HashSet[PropertyLayoutElement] */
+2032, /* Collection[MProperty] */
+2776, /* Set[MVirtualTypeProp] */
+2255, /* Collection[MVirtualTypeProp] */
+2805, /* HashSet[MProperty] */
+2840, /* HashSet[MVirtualTypeProp] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MVirtualTypeProp = {
@@ -5145,70 +4942,42 @@ NULL, /* empty */
 &type_model__MVirtualTypeProp, /* Collection#0: MVirtualTypeProp */
 &type_abstract_collection__Collectionmodel__MVirtualTypeProp, /* Collection[Collection#0]: Collection[MVirtualTypeProp] */
 &type_model__MVirtualTypeProp, /* HashCollection#0: MVirtualTypeProp */
+&type_nullable_hash_collection__HashSetNodemodel__MVirtualTypeProp, /* nullable HashCollection#1: nullable HashSetNode[MVirtualTypeProp] */
 &type_hash_collection__HashSetNodemodel__MVirtualTypeProp, /* HashCollection#1: HashSetNode[MVirtualTypeProp] */
+&type_nullable_model__MVirtualTypeProp, /* nullable HashCollection#0: nullable MVirtualTypeProp */
 }
 };
 /* runtime type Set[MVirtualTypeProp] */
 const struct type type_abstract_collection__Setmodel__MVirtualTypeProp = {
-2555,
+2776,
 "Set[MVirtualTypeProp]", /* class_name_string */
 11,
 0,
-NULL,
-13,
-{
-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] */
-2555, /* Set[MVirtualTypeProp] */
-2209, /* Collection[MVirtualTypeProp] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[MVirtualTypeProp] */
 const struct type type_abstract_collection__Collectionmodel__MVirtualTypeProp = {
-2209,
+2255,
 "Collection[MVirtualTypeProp]", /* class_name_string */
 12,
 0,
-NULL,
-13,
-{
-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 */
-2209, /* Collection[MVirtualTypeProp] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type MPropertyColorer[MVirtualTypeProp] */
 const struct type type_layout_builders__MPropertyColorermodel__MVirtualTypeProp = {
-614,
+-1, /*CAST DEAD*/
 "MPropertyColorer[MVirtualTypeProp]", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MPropertyColorermodel__MVirtualTypeProp,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-210, /* MPropertyColorer[PropertyLayoutElement] */
-614, /* MPropertyColorer[MVirtualTypeProp] */
+136, /* MPropertyColorer[PropertyLayoutElement] */
+672, /* MPropertyColorer[MVirtualTypeProp] */
 },
 };
 const struct types resolution_table_layout_builders__MPropertyColorermodel__MVirtualTypeProp = {
@@ -5224,16 +4993,16 @@ const struct types resolution_table_layout_builders__MPropertyColorermodel__MVir
 };
 /* runtime type MPropertyColorer[PropertyLayoutElement] */
 const struct type type_layout_builders__MPropertyColorerlayout_builders__PropertyLayoutElement = {
-210,
+-1, /*CAST DEAD*/
 "MPropertyColorer[PropertyLayoutElement]", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MPropertyColorerlayout_builders__PropertyLayoutElement,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-210, /* MPropertyColorer[PropertyLayoutElement] */
+136, /* MPropertyColorer[PropertyLayoutElement] */
 },
 };
 const struct types resolution_table_layout_builders__MPropertyColorerlayout_builders__PropertyLayoutElement = {
@@ -5249,42 +5018,37 @@ const struct types resolution_table_layout_builders__MPropertyColorerlayout_buil
 };
 /* runtime type CodeFile */
 const struct type type_abstract_compiler__CodeFile = {
-211,
+137,
 "CodeFile", /* class_name_string */
 2,
 0,
-&resolution_table_abstract_compiler__CodeFile,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-211, /* CodeFile */
+137, /* CodeFile */
 },
 };
-const struct types resolution_table_abstract_compiler__CodeFile = {
-0, /* dummy */
-{
-}
-};
 /* runtime type Array[CodeWriter] */
 const struct type type_array__Arrayabstract_compiler__CodeWriter = {
-2496,
+2673,
 "Array[CodeWriter]", /* class_name_string */
-7,
+6,
 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] */
+673, /* Collection[CodeWriter] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2256, /* AbstractArrayRead[CodeWriter] */
+2673, /* Array[CodeWriter] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
+2029, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arrayabstract_compiler__CodeWriter = {
@@ -5313,54 +5077,39 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[CodeWriter] no
 };
 /* runtime type Collection[CodeWriter] */
 const struct type type_abstract_collection__Collectionabstract_compiler__CodeWriter = {
-615,
+673,
 "Collection[CodeWriter]", /* class_name_string */
 2,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-615, /* Collection[CodeWriter] */
--1, /* empty */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[CodeWriter] */
 const struct type type_array__AbstractArrayReadabstract_compiler__CodeWriter = {
-2210,
+2256,
 "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] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashSet[String] */
 const struct type type_hash_collection__HashSetstring__String = {
-2211,
+2491,
 "HashSet[String]", /* class_name_string */
-5,
+2,
 0,
 &resolution_table_hash_collection__HashSetstring__String,
-7,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-2211, /* HashSet[String] */
-1740, /* HashSet[Object] */
+2491, /* HashSet[String] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+652, /* Collection[Streamable] */
+1870, /* Collection[String] */
+1872, /* HashSet[Object] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetstring__String = {
@@ -5381,22 +5130,24 @@ NULL, /* empty */
 &type_string__String, /* Collection#0: String */
 &type_abstract_collection__Collectionstring__String, /* Collection[Collection#0]: Collection[String] */
 &type_string__String, /* HashCollection#0: String */
+&type_nullable_hash_collection__HashSetNodestring__String, /* nullable HashCollection#1: nullable HashSetNode[String] */
 &type_hash_collection__HashSetNodestring__String, /* HashCollection#1: HashSetNode[String] */
+&type_nullable_string__String, /* nullable HashCollection#0: nullable String */
 }
 };
 /* runtime type MPropertyColorer[MAttribute] */
 const struct type type_layout_builders__MPropertyColorermodel__MAttribute = {
-616,
+-1, /*CAST DEAD*/
 "MPropertyColorer[MAttribute]", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MPropertyColorermodel__MAttribute,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-210, /* MPropertyColorer[PropertyLayoutElement] */
-616, /* MPropertyColorer[MAttribute] */
+136, /* MPropertyColorer[PropertyLayoutElement] */
+674, /* MPropertyColorer[MAttribute] */
 },
 };
 const struct types resolution_table_layout_builders__MPropertyColorermodel__MAttribute = {
@@ -5412,7 +5163,7 @@ const struct types resolution_table_layout_builders__MPropertyColorermodel__MAtt
 };
 /* runtime type HashMap[MClass, Set[MAttribute]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute = {
-2212,
+2257,
 "HashMap[MClass, Set[MAttribute]]", /* class_name_string */
 6,
 0,
@@ -5421,11 +5172,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]] */
-617, /* Map[MClass, Set[MAttribute]] */
-1741, /* HashMap[MClass, Set[MProperty]] */
-2212, /* HashMap[MClass, Set[MAttribute]] */
+112, /* Map[MClass, Set[PropertyLayoutElement]] */
+656, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+675, /* Map[MClass, Set[MAttribute]] */
+1873, /* HashMap[MClass, Set[MProperty]] */
+2257, /* HashMap[MClass, Set[MAttribute]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute = {
@@ -5435,10 +5186,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MClass, /* MapRead#0: MClass */
 &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__HashMapValuesmodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[MAttribute]] */
 &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] */
@@ -5446,28 +5197,23 @@ NULL, /* empty */
 &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_nullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* nullable HashCollection#1: nullable HashMapNode[MClass, Set[MAttribute]] */
 &type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* HashCollection#1: HashMapNode[MClass, Set[MAttribute]] */
+&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
 }
 };
 /* runtime type Map[MClass, Set[MAttribute]] */
 const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute = {
-617,
+675,
 "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]] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashSet[MAttribute] */
 const struct type type_hash_collection__HashSetmodel__MAttribute = {
-2610,
+2841,
 "HashSet[MAttribute]", /* class_name_string */
 14,
 0,
@@ -5476,19 +5222,19 @@ const struct type type_hash_collection__HashSetmodel__MAttribute = {
 {
 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] */
+100, /* Collection[nullable MProperty] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+2671, /* Set[MProperty] */
+646, /* Collection[PropertyLayoutElement] */
+1872, /* HashSet[Object] */
+2041, /* Set[PropertyLayoutElement] */
+2490, /* HashSet[PropertyLayoutElement] */
+2032, /* Collection[MProperty] */
+2777, /* Set[MAttribute] */
+2258, /* Collection[MAttribute] */
+2805, /* HashSet[MProperty] */
+2841, /* HashSet[MAttribute] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MAttribute = {
@@ -5509,76 +5255,48 @@ NULL, /* empty */
 &type_model__MAttribute, /* Collection#0: MAttribute */
 &type_abstract_collection__Collectionmodel__MAttribute, /* Collection[Collection#0]: Collection[MAttribute] */
 &type_model__MAttribute, /* HashCollection#0: MAttribute */
+&type_nullable_hash_collection__HashSetNodemodel__MAttribute, /* nullable HashCollection#1: nullable HashSetNode[MAttribute] */
 &type_hash_collection__HashSetNodemodel__MAttribute, /* HashCollection#1: HashSetNode[MAttribute] */
+&type_nullable_model__MAttribute, /* nullable HashCollection#0: nullable MAttribute */
 }
 };
 /* runtime type Set[MAttribute] */
 const struct type type_abstract_collection__Setmodel__MAttribute = {
-2556,
+2777,
 "Set[MAttribute]", /* class_name_string */
 11,
 0,
-NULL,
-13,
-{
-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] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[MAttribute] */
 const struct type type_abstract_collection__Collectionmodel__MAttribute = {
-2213,
+2258,
 "Collection[MAttribute]", /* class_name_string */
 12,
 0,
-NULL,
-13,
-{
-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] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Array[RuntimeVariable] */
 const struct type type_array__Arrayabstract_compiler__RuntimeVariable = {
-2497,
+2674,
 "Array[RuntimeVariable]", /* class_name_string */
-7,
+6,
 0,
 &resolution_table_array__Arrayabstract_compiler__RuntimeVariable,
 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] */
+676, /* Collection[RuntimeVariable] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2259, /* AbstractArrayRead[RuntimeVariable] */
+2674, /* Array[RuntimeVariable] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
+2029, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arrayabstract_compiler__RuntimeVariable = {
@@ -5605,93 +5323,315 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[RuntimeVariabl
 &type_array__ArrayIteratorabstract_compiler__RuntimeVariable, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[RuntimeVariable] */
 }
 };
-/* runtime type Collection[RuntimeVariable] */
-const struct type type_abstract_collection__Collectionabstract_compiler__RuntimeVariable = {
-618,
-"Collection[RuntimeVariable]", /* class_name_string */
-2,
+/* runtime type Collection[RuntimeVariable] */
+const struct type type_abstract_collection__Collectionabstract_compiler__RuntimeVariable = {
+676,
+"Collection[RuntimeVariable]", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[RuntimeVariable] */
+const struct type type_array__AbstractArrayReadabstract_compiler__RuntimeVariable = {
+2259,
+"AbstractArrayRead[RuntimeVariable]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type MakefileToolchain */
+const struct type type_abstract_compiler__MakefileToolchain = {
+-1, /*CAST DEAD*/
+"MakefileToolchain", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+138, /* MakefileToolchain */
+},
+};
+/* runtime type RapidTypeVisitor */
+const struct type type_rapid_type_analysis__RapidTypeVisitor = {
+-1, /*CAST DEAD*/
+"RapidTypeVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+139, /* RapidTypeVisitor */
+},
+};
+/* runtime type Array[MType] */
+const struct type type_array__Arraymodel__MType = {
+2863,
+"Array[MType]", /* class_name_string */
+19,
+0,
+&resolution_table_array__Arraymodel__MType,
+20,
+{
+0, /* nullable Object */
+1, /* Object */
+11, /* nullable Array[nullable MType] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+101, /* Collection[nullable MType] */
+648, /* Collection[NitniCallback] */
+1838, /* AbstractArrayRead[Object] */
+1878, /* AbstractArrayRead[nullable MType] */
+2029, /* Array[Object] */
+2033, /* Collection[MType] */
+-1, /* empty */
+2260, /* Array[nullable MType] */
+2261, /* AbstractArrayRead[NitniCallback] */
+-1, /* empty */
+2675, /* Array[NitniCallback] */
+2778, /* AbstractArrayRead[MType] */
+-1, /* empty */
+-1, /* empty */
+2863, /* 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 = {
+2260,
+"Array[nullable MType]", /* class_name_string */
+12,
+0,
+&resolution_table_array__Arraynullable_model__MType,
+13,
+{
+0, /* nullable Object */
+1, /* Object */
+11, /* nullable Array[nullable MType] */
+91, /* SequenceRead[nullable Object] */
+-1, /* empty */
+101, /* Collection[nullable MType] */
+-1, /* empty */
+-1, /* empty */
+1878, /* AbstractArrayRead[nullable MType] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+2260, /* 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 Array[NitniCallback] */
+const struct type type_array__Arraynitni_callbacks__NitniCallback = {
+2675,
+"Array[NitniCallback]", /* class_name_string */
+15,
 0,
-NULL,
-5,
+&resolution_table_array__Arraynitni_callbacks__NitniCallback,
+16,
 {
 0, /* nullable Object */
 1, /* Object */
-618, /* Collection[RuntimeVariable] */
 -1, /* empty */
-164, /* Collection[Object] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+-1, /* empty */
+648, /* Collection[NitniCallback] */
+1838, /* AbstractArrayRead[Object] */
+-1, /* empty */
+2029, /* Array[Object] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+2261, /* AbstractArrayRead[NitniCallback] */
+-1, /* empty */
+2675, /* Array[NitniCallback] */
 },
 };
-/* runtime type AbstractArrayRead[RuntimeVariable] */
-const struct type type_array__AbstractArrayReadabstract_compiler__RuntimeVariable = {
-2214,
-"AbstractArrayRead[RuntimeVariable]", /* class_name_string */
-5,
-0,
-NULL,
-7,
+const struct types resolution_table_array__Arraynitni_callbacks__NitniCallback = {
+0, /* dummy */
 {
-0, /* nullable Object */
-1, /* Object */
-618, /* Collection[RuntimeVariable] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2214, /* AbstractArrayRead[RuntimeVariable] */
-1728, /* AbstractArrayRead[Object] */
-},
+&type_array__Arraynitni_callbacks__NitniCallback, /* Array[Array#0]: Array[NitniCallback] */
+&type_array__NativeArraynitni_callbacks__NitniCallback, /* NativeArray[Array#0]: NativeArray[NitniCallback] */
+&type_nitni_callbacks__NitniCallback, /* Sequence#0: NitniCallback */
+&type_nitni_callbacks__NitniCallback, /* SimpleCollection#0: NitniCallback */
+&type_abstract_collection__Collectionnitni_callbacks__NitniCallback, /* Collection[Array#0]: Collection[NitniCallback] */
+&type_nitni_callbacks__NitniCallback, /* Array#0: NitniCallback */
+&type_array__NativeArraynitni_callbacks__NitniCallback, /* NativeArray[ArrayCapable#0]: NativeArray[NitniCallback] */
+&type_nitni_callbacks__NitniCallback, /* AbstractArray#0: NitniCallback */
+&type_nitni_callbacks__NitniCallback, /* RemovableCollection#0: NitniCallback */
+&type_abstract_collection__Collectionnitni_callbacks__NitniCallback, /* Collection[Sequence#0]: Collection[NitniCallback] */
+&type_array__Arraynitni_callbacks__NitniCallback, /* Array[Sequence#0]: Array[NitniCallback] */
+&type_abstract_collection__Collectionnitni_callbacks__NitniCallback, /* Collection[SimpleCollection#0]: Collection[NitniCallback] */
+&type_nitni_callbacks__NitniCallback, /* Collection#0: NitniCallback */
+&type_abstract_collection__Collectionnitni_callbacks__NitniCallback, /* Collection[Collection#0]: Collection[NitniCallback] */
+&type_nitni_callbacks__NitniCallback, /* SequenceRead#0: NitniCallback */
+&type_nitni_callbacks__NitniCallback, /* AbstractArrayRead#0: NitniCallback */
+&type_array__Arraynitni_callbacks__NitniCallback, /* Array[AbstractArrayRead#0]: Array[NitniCallback] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[NitniCallback] not a live type) */
+&type_array__ArrayIteratornitni_callbacks__NitniCallback, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[NitniCallback] */
+}
 };
-/* runtime type ExternCFile */
-const struct type type_abstract_compiler__ExternCFile = {
-212,
-"ExternCFile", /* class_name_string */
+/* runtime type nullable Array[nullable MType] */
+const struct type type_nullable_array__Arraynullable_model__MType = {
+11,
+"nullable Array[nullable MType]", /* class_name_string */
 2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[MType] */
+const struct type type_array__AbstractArrayReadmodel__MType = {
+2778,
+"AbstractArrayRead[MType]", /* class_name_string */
+16,
 0,
-&resolution_table_abstract_compiler__ExternCFile,
-3,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[nullable MType] */
+const struct type type_array__AbstractArrayReadnullable_model__MType = {
+1878,
+"AbstractArrayRead[nullable MType]", /* class_name_string */
+8,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[NitniCallback] */
+const struct type type_array__AbstractArrayReadnitni_callbacks__NitniCallback = {
+2261,
+"AbstractArrayRead[NitniCallback]", /* class_name_string */
+13,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type List[MClassType] */
+const struct type type_list__Listmodel__MClassType = {
+2676,
+"List[MClassType]", /* class_name_string */
+2,
+0,
+&resolution_table_list__Listmodel__MClassType,
+12,
 {
 0, /* nullable Object */
 1, /* Object */
-212, /* ExternCFile */
+2676, /* List[MClassType] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+101, /* Collection[nullable MType] */
+648, /* Collection[NitniCallback] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+2033, /* Collection[MType] */
+2240, /* Collection[MClassType] */
 },
 };
-const struct types resolution_table_abstract_compiler__ExternCFile = {
+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 */
+&type_nullable_list__ListNodemodel__MClassType, /* nullable ListNode[List#0]: nullable ListNode[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 */
 }
 };
 /* runtime type CodeWriter */
 const struct type type_abstract_compiler__CodeWriter = {
-213,
+140,
 "CodeWriter", /* class_name_string */
 2,
 0,
-&resolution_table_abstract_compiler__CodeWriter,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-213, /* CodeWriter */
+140, /* CodeWriter */
 },
 };
-const struct types resolution_table_abstract_compiler__CodeWriter = {
-0, /* dummy */
-{
-}
-};
 /* runtime type List[String] */
 const struct type type_list__Liststring__String = {
-1924,
+2262,
 "List[String]", /* class_name_string */
-5,
+2,
 0,
 &resolution_table_list__Liststring__String,
-6,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-595, /* Collection[String] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1924, /* List[String] */
+2262, /* List[String] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+652, /* Collection[Streamable] */
+1870, /* Collection[String] */
 },
 };
 const struct types resolution_table_list__Liststring__String = {
@@ -5704,7 +5644,7 @@ const struct types resolution_table_list__Liststring__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_nullable_list__ListNodestring__String, /* nullable ListNode[List#0]: nullable ListNode[String] */
 &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] */
@@ -5716,31 +5656,34 @@ NULL, /* empty */
 };
 /* runtime type Array[MClassType] */
 const struct type type_array__Arraymodel__MClassType = {
-2629,
+2875,
 "Array[MClassType]", /* class_name_string */
-17,
+20,
 0,
 &resolution_table_array__Arraymodel__MClassType,
-18,
+21,
 {
 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] */
+11, /* nullable Array[nullable MType] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+101, /* Collection[nullable MType] */
+648, /* Collection[NitniCallback] */
+1838, /* AbstractArrayRead[Object] */
+1878, /* AbstractArrayRead[nullable MType] */
+2029, /* Array[Object] */
+2033, /* Collection[MType] */
+2240, /* Collection[MClassType] */
+2260, /* Array[nullable MType] */
+2261, /* AbstractArrayRead[NitniCallback] */
 -1, /* empty */
-2495, /* AbstractArrayRead[MType] */
-2557, /* AbstractArrayRead[MClassType] */
-2594, /* Array[MType] */
+2675, /* Array[NitniCallback] */
+2778, /* AbstractArrayRead[MType] */
+2822, /* AbstractArrayRead[MClassType] */
 -1, /* empty */
-2629, /* Array[MClassType] */
+2863, /* Array[MType] */
+2875, /* Array[MClassType] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MClassType = {
@@ -5769,87 +5712,46 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MClassType] no
 };
 /* runtime type AbstractArrayRead[MClassType] */
 const struct type type_array__AbstractArrayReadmodel__MClassType = {
-2557,
+2822,
 "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,
+17,
 0,
-&resolution_table_abstract_compiler__RuntimeVariable,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-214, /* RuntimeVariable */
-},
-};
-const struct types resolution_table_abstract_compiler__RuntimeVariable = {
-0, /* dummy */
-{
-}
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type MClassKind */
 const struct type type_model__MClassKind = {
-215,
+-1, /*CAST DEAD*/
 "MClassKind", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_model__MClassKind,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-215, /* MClassKind */
+141, /* MClassKind */
 },
 };
-const struct types resolution_table_model__MClassKind = {
-0, /* dummy */
-{
-}
-};
 /* runtime type MTypeBMizer */
 const struct type type_layout_builders__MTypeBMizer = {
-216,
+-1, /*CAST DEAD*/
 "MTypeBMizer", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MTypeBMizer,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-216, /* MTypeBMizer */
+142, /* MTypeBMizer */
 },
 };
 const struct types resolution_table_layout_builders__MTypeBMizer = {
 0, /* dummy */
 {
 &type_layout_builders__POSetBuildermodel__MType, /* POSetBuilder[TypingBMizer#0]: POSetBuilder[MType] */
-&type_poset__POSetmodel__MType, /* POSet[TypingBMizer#0]: POSet[MType] */
+&type_nullable_poset__POSetmodel__MType, /* nullable POSet[TypingBMizer#0]: nullable 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] */
@@ -5866,23 +5768,23 @@ NULL, /* empty */
 };
 /* runtime type MTypeHasher */
 const struct type type_layout_builders__MTypeHasher = {
-217,
+-1, /*CAST DEAD*/
 "MTypeHasher", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MTypeHasher,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-217, /* MTypeHasher */
+143, /* MTypeHasher */
 },
 };
 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_nullable_poset__POSetmodel__MType, /* nullable POSet[TypingHasher#0]: nullable 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] */
@@ -5900,16 +5802,16 @@ const struct types resolution_table_layout_builders__MTypeHasher = {
 };
 /* runtime type MTypeColorer */
 const struct type type_layout_builders__MTypeColorer = {
-218,
+-1, /*CAST DEAD*/
 "MTypeColorer", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MTypeColorer,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-218, /* MTypeColorer */
+144, /* MTypeColorer */
 },
 };
 const struct types resolution_table_layout_builders__MTypeColorer = {
@@ -5921,11 +5823,11 @@ const struct types resolution_table_layout_builders__MTypeColorer = {
 &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_nullable_poset__POSetmodel__MType, /* nullable POSet[TypingColorer#0]: nullable 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]] */
+&type_nullable_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType, /* nullable HashMap[TypingColorer#0, Set[TypingColorer#0]]: nullable 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] */
@@ -5933,7 +5835,7 @@ NULL, /* empty (Map[TypingColorer#0, Array[TypingColorer#0]]: Map[MType, Array[M
 };
 /* runtime type SeparateCompilerVisitor */
 const struct type type_separate_compiler__SeparateCompilerVisitor = {
-619,
+677,
 "SeparateCompilerVisitor", /* class_name_string */
 3,
 0,
@@ -5942,8 +5844,8 @@ const struct type type_separate_compiler__SeparateCompilerVisitor = {
 {
 0, /* nullable Object */
 1, /* Object */
-219, /* AbstractCompilerVisitor */
-619, /* SeparateCompilerVisitor */
+145, /* AbstractCompilerVisitor */
+677, /* SeparateCompilerVisitor */
 },
 };
 const struct types resolution_table_separate_compiler__SeparateCompilerVisitor = {
@@ -5954,21 +5856,16 @@ const struct types resolution_table_separate_compiler__SeparateCompilerVisitor =
 };
 /* runtime type AbstractCompilerVisitor */
 const struct type type_abstract_compiler__AbstractCompilerVisitor = {
-219,
+145,
 "AbstractCompilerVisitor", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-219, /* AbstractCompilerVisitor */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashMap[EscapeMark, String] */
 const struct type type_hash_collection__HashMapscope__EscapeMarkstring__String = {
-220,
+146,
 "HashMap[EscapeMark, String]", /* class_name_string */
 2,
 0,
@@ -5977,7 +5874,7 @@ const struct type type_hash_collection__HashMapscope__EscapeMarkstring__String =
 {
 0, /* nullable Object */
 1, /* Object */
-220, /* HashMap[EscapeMark, String] */
+146, /* HashMap[EscapeMark, String] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapscope__EscapeMarkstring__String = {
@@ -5987,10 +5884,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_scope__EscapeMark, /* MapRead#0: EscapeMark */
 &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__HashMapValuesscope__EscapeMarkstring__String, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[EscapeMark, String] */
 &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 */
@@ -5998,12 +5895,14 @@ NULL, /* empty */
 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_nullable_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* nullable HashCollection#1: nullable HashMapNode[EscapeMark, String] */
 &type_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* HashCollection#1: HashMapNode[EscapeMark, String] */
+&type_nullable_scope__EscapeMark, /* nullable HashCollection#0: nullable EscapeMark */
 }
 };
 /* runtime type HashMap[Variable, RuntimeVariable] */
 const struct type type_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable = {
-221,
+147,
 "HashMap[Variable, RuntimeVariable]", /* class_name_string */
 2,
 0,
@@ -6012,7 +5911,7 @@ const struct type type_hash_collection__HashMapscope__Variableabstract_compiler_
 {
 0, /* nullable Object */
 1, /* Object */
-221, /* HashMap[Variable, RuntimeVariable] */
+147, /* HashMap[Variable, RuntimeVariable] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable = {
@@ -6022,10 +5921,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_scope__Variable, /* MapRead#0: Variable */
 &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__HashMapValuesscope__Variableabstract_compiler__RuntimeVariable, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[Variable, RuntimeVariable] */
 &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 */
@@ -6033,326 +5932,464 @@ NULL, /* empty */
 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_nullable_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* nullable HashCollection#1: nullable HashMapNode[Variable, RuntimeVariable] */
 &type_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* HashCollection#1: HashMapNode[Variable, RuntimeVariable] */
+&type_nullable_scope__Variable, /* nullable HashCollection#0: nullable Variable */
 }
 };
 /* runtime type NativeFile */
 const struct type type_file__NativeFile = {
-620,
+-1, /*CAST DEAD*/
 "NativeFile", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_file__NativeFile,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-222, /* Pointer */
-620, /* NativeFile */
+148, /* Pointer */
+678, /* NativeFile */
 },
 };
-const struct types resolution_table_file__NativeFile = {
-0, /* dummy */
-{
-}
-};
 /* runtime type Pointer */
 const struct type type_kernel__Pointer = {
-222,
+-1, /*CAST DEAD*/
 "Pointer", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type MProject */
+const struct type type_mproject__MProject = {
+149,
+"MProject", /* class_name_string */
 2,
 0,
-NULL,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-222, /* Pointer */
+149, /* MProject */
 },
 };
-/* runtime type Array[State] */
-const struct type type_array__Arrayparser__State = {
-2498,
-"Array[State]", /* class_name_string */
-7,
+/* runtime type POSet[MGroup] */
+const struct type type_poset__POSetmproject__MGroup = {
+2044,
+"POSet[MGroup]", /* class_name_string */
+3,
 0,
-&resolution_table_array__Arrayparser__State,
-10,
+&resolution_table_poset__POSetmproject__MGroup,
+6,
 {
 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] */
+150, /* Collection[nullable MGroup] */
+2044, /* POSet[MGroup] */
+92, /* Collection[Object] */
+1879, /* Collection[MGroup] */
 },
 };
-const struct types resolution_table_array__Arrayparser__State = {
+const struct types resolution_table_poset__POSetmproject__MGroup = {
 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] */
+&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 */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_mproject__MGroup, /* Collection#0: MGroup */
+&type_abstract_collection__Collectionmproject__MGroup, /* Collection[Collection#0]: Collection[MGroup] */
 }
 };
-/* runtime type Collection[State] */
-const struct type type_abstract_collection__Collectionparser__State = {
-621,
-"Collection[State]", /* class_name_string */
+/* runtime type Collection[MGroup] */
+const struct type type_abstract_collection__Collectionmproject__MGroup = {
+1879,
+"Collection[MGroup]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[nullable MGroup] */
+const struct type type_abstract_collection__Collectionnullable_mproject__MGroup = {
+150,
+"Collection[nullable MGroup]", /* class_name_string */
 2,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-621, /* Collection[State] */
--1, /* empty */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type AbstractArrayRead[State] */
-const struct type type_array__AbstractArrayReadparser__State = {
-2215,
-"AbstractArrayRead[State]", /* class_name_string */
-5,
+/* runtime type MGroup */
+const struct type type_mproject__MGroup = {
+679,
+"MGroup", /* class_name_string */
+3,
 0,
-NULL,
-7,
+NULL, /*NO RESOLUTIONS*/
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-621, /* Collection[State] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2215, /* AbstractArrayRead[State] */
-1728, /* AbstractArrayRead[Object] */
+12, /* nullable MGroup */
+679, /* MGroup */
 },
 };
-/* runtime type Start */
-const struct type type_parser_nodes__Start = {
-1746,
-"Start", /* class_name_string */
+/* runtime type nullable MGroup */
+const struct type type_nullable_mproject__MGroup = {
+12,
+"nullable MGroup", /* class_name_string */
 2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type ModulePath */
+const struct type type_modelbuilder__ModulePath = {
+-1, /*CAST DEAD*/
+"ModulePath", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser_nodes__Start,
-5,
+NULL, /*NO RESOLUTIONS*/
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-1746, /* Start */
-223, /* ANode */
-622, /* Prod */
+13, /* nullable ModulePath */
+680, /* ModulePath */
 },
 };
-const struct types resolution_table_parser_nodes__Start = {
-0, /* dummy */
-{
-}
+/* runtime type nullable ModulePath */
+const struct type type_nullable_modelbuilder__ModulePath = {
+13,
+"nullable ModulePath", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type Prod */
-const struct type type_parser_nodes__Prod = {
-622,
-"Prod", /* class_name_string */
-4,
+/* runtime type IFStream */
+const struct type type_file__IFStream = {
+-1, /*CAST DEAD*/
+"IFStream", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-NULL,
-5,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-223, /* ANode */
-622, /* Prod */
+151, /* IFStream */
 },
 };
-/* runtime type ANode */
-const struct type type_parser_nodes__ANode = {
-223,
-"ANode", /* class_name_string */
-3,
+/* runtime type Lexer */
+const struct type type_lexer__Lexer = {
+-1, /*CAST DEAD*/
+"Lexer", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-NULL,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-223, /* ANode */
+152, /* TablesCapable */
+681, /* Lexer */
 },
 };
-/* runtime type ComputeProdLocationVisitor */
-const struct type type_parser__ComputeProdLocationVisitor = {
-224,
-"ComputeProdLocationVisitor", /* class_name_string */
-2,
+/* runtime type TablesCapable */
+const struct type type_tables__TablesCapable = {
+-1, /*CAST DEAD*/
+"TablesCapable", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ComputeProdLocationVisitor,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-224, /* ComputeProdLocationVisitor */
+152, /* TablesCapable */
 },
 };
-const struct types resolution_table_parser__ComputeProdLocationVisitor = {
-0, /* dummy */
+/* runtime type SourceFile */
+const struct type type_location__SourceFile = {
+-1, /*CAST DEAD*/
+"SourceFile", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+153, /* SourceFile */
+},
 };
-/* runtime type AParserError */
-const struct type type_parser_nodes__AParserError = {
-2216,
-"AParserError", /* class_name_string */
+/* runtime type Array[Int] */
+const struct type type_array__Arraykernel__Int = {
+2677,
+"Array[Int]", /* class_name_string */
 6,
 0,
-&resolution_table_parser_nodes__AParserError,
-7,
+&resolution_table_array__Arraykernel__Int,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-1747, /* EOF */
-223, /* ANode */
-623, /* Token */
-1925, /* AError */
-2216, /* AParserError */
+2263, /* AbstractArrayRead[Int] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+661, /* Collection[Int] */
+2677, /* Array[Int] */
+1838, /* AbstractArrayRead[Object] */
+-1, /* empty */
+2029, /* Array[Object] */
 },
 };
-const struct types resolution_table_parser_nodes__AParserError = {
+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 EOF */
-const struct type type_parser_nodes__EOF = {
-1747,
-"EOF", /* class_name_string */
+/* runtime type AbstractArrayRead[Int] */
+const struct type type_array__AbstractArrayReadkernel__Int = {
+2263,
+"AbstractArrayRead[Int]", /* class_name_string */
 2,
 0,
-&resolution_table_parser_nodes__EOF,
-5,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Parser */
+const struct type type_parser__Parser = {
+-1, /*CAST DEAD*/
+"Parser", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-1747, /* EOF */
-223, /* ANode */
-623, /* Token */
+152, /* TablesCapable */
+682, /* Parser */
 },
 };
-const struct types resolution_table_parser_nodes__EOF = {
-0, /* dummy */
-{
-}
-};
-/* runtime type AError */
-const struct type type_parser_nodes__AError = {
-1925,
-"AError", /* class_name_string */
-5,
+/* runtime type Stderr */
+const struct type type_file__Stderr = {
+-1, /*CAST DEAD*/
+"Stderr", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-NULL,
-6,
+NULL, /*NO RESOLUTIONS*/
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-1747, /* EOF */
-223, /* ANode */
-623, /* Token */
-1925, /* AError */
+127, /* OFStream */
+683, /* Stderr */
 },
 };
-/* runtime type Token */
-const struct type type_parser_nodes__Token = {
-623,
-"Token", /* class_name_string */
-4,
+/* runtime type Array[AStdClassdef] */
+const struct type type_array__Arrayparser_nodes__AStdClassdef = {
+2864,
+"Array[AStdClassdef]", /* class_name_string */
+17,
 0,
-NULL,
-5,
+&resolution_table_array__Arrayparser_nodes__AStdClassdef,
+18,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-223, /* ANode */
-623, /* Token */
-},
-};
-/* runtime type Stderr */
-const struct type type_file__Stderr = {
-624,
-"Stderr", /* class_name_string */
-3,
+1871, /* Collection[Prod] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+2045, /* Collection[AClassdef] */
+1838, /* AbstractArrayRead[Object] */
+2243, /* AbstractArrayRead[ANode] */
+2029, /* Array[Object] */
+2264, /* Collection[AStdClassdef] */
+2664, /* Array[ANode] */
+2665, /* AbstractArrayRead[Prod] */
+2779, /* AbstractArrayRead[AClassdef] */
+2802, /* Array[Prod] */
+2823, /* AbstractArrayRead[AStdClassdef] */
+2842, /* Array[AClassdef] */
+2864, /* Array[AStdClassdef] */
+},
+};
+const struct types resolution_table_array__Arrayparser_nodes__AStdClassdef = {
+0, /* dummy */
+{
+&type_array__Arrayparser_nodes__AStdClassdef, /* Array[Array#0]: Array[AStdClassdef] */
+&type_array__NativeArrayparser_nodes__AStdClassdef, /* NativeArray[Array#0]: NativeArray[AStdClassdef] */
+&type_parser_nodes__AStdClassdef, /* Sequence#0: AStdClassdef */
+&type_parser_nodes__AStdClassdef, /* SimpleCollection#0: AStdClassdef */
+&type_abstract_collection__Collectionparser_nodes__AStdClassdef, /* Collection[Array#0]: Collection[AStdClassdef] */
+&type_parser_nodes__AStdClassdef, /* Array#0: AStdClassdef */
+&type_array__NativeArrayparser_nodes__AStdClassdef, /* NativeArray[ArrayCapable#0]: NativeArray[AStdClassdef] */
+&type_parser_nodes__AStdClassdef, /* AbstractArray#0: AStdClassdef */
+&type_parser_nodes__AStdClassdef, /* RemovableCollection#0: AStdClassdef */
+&type_abstract_collection__Collectionparser_nodes__AStdClassdef, /* Collection[Sequence#0]: Collection[AStdClassdef] */
+&type_array__Arrayparser_nodes__AStdClassdef, /* Array[Sequence#0]: Array[AStdClassdef] */
+&type_abstract_collection__Collectionparser_nodes__AStdClassdef, /* Collection[SimpleCollection#0]: Collection[AStdClassdef] */
+&type_parser_nodes__AStdClassdef, /* Collection#0: AStdClassdef */
+&type_abstract_collection__Collectionparser_nodes__AStdClassdef, /* Collection[Collection#0]: Collection[AStdClassdef] */
+&type_parser_nodes__AStdClassdef, /* SequenceRead#0: AStdClassdef */
+&type_parser_nodes__AStdClassdef, /* AbstractArrayRead#0: AStdClassdef */
+&type_array__Arrayparser_nodes__AStdClassdef, /* Array[AbstractArrayRead#0]: Array[AStdClassdef] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[AStdClassdef] not a live type) */
+&type_array__ArrayIteratorparser_nodes__AStdClassdef, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[AStdClassdef] */
+}
+};
+/* runtime type Array[AClassdef] */
+const struct type type_array__Arrayparser_nodes__AClassdef = {
+2842,
+"Array[AClassdef]", /* class_name_string */
+16,
 0,
-&resolution_table_file__Stderr,
-4,
+&resolution_table_array__Arrayparser_nodes__AClassdef,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
-197, /* OFStream */
-624, /* Stderr */
+1871, /* Collection[Prod] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+2045, /* Collection[AClassdef] */
+1838, /* AbstractArrayRead[Object] */
+2243, /* AbstractArrayRead[ANode] */
+2029, /* Array[Object] */
+-1, /* empty */
+2664, /* Array[ANode] */
+2665, /* AbstractArrayRead[Prod] */
+2779, /* AbstractArrayRead[AClassdef] */
+2802, /* Array[Prod] */
+-1, /* empty */
+2842, /* Array[AClassdef] */
 },
 };
-const struct types resolution_table_file__Stderr = {
+const struct types resolution_table_array__Arrayparser_nodes__AClassdef = {
 0, /* dummy */
 {
+&type_array__Arrayparser_nodes__AClassdef, /* Array[Array#0]: Array[AClassdef] */
+&type_array__NativeArrayparser_nodes__AClassdef, /* NativeArray[Array#0]: NativeArray[AClassdef] */
+&type_parser_nodes__AClassdef, /* Sequence#0: AClassdef */
+&type_parser_nodes__AClassdef, /* SimpleCollection#0: AClassdef */
+&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[Array#0]: Collection[AClassdef] */
+&type_parser_nodes__AClassdef, /* Array#0: AClassdef */
+&type_array__NativeArrayparser_nodes__AClassdef, /* NativeArray[ArrayCapable#0]: NativeArray[AClassdef] */
+&type_parser_nodes__AClassdef, /* AbstractArray#0: AClassdef */
+&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 */
+&type_parser_nodes__AClassdef, /* AbstractArrayRead#0: AClassdef */
+&type_array__Arrayparser_nodes__AClassdef, /* Array[AbstractArrayRead#0]: Array[AClassdef] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[AClassdef] not a live type) */
+&type_array__ArrayIteratorparser_nodes__AClassdef, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[AClassdef] */
 }
 };
+/* runtime type Collection[AStdClassdef] */
+const struct type type_abstract_collection__Collectionparser_nodes__AStdClassdef = {
+2264,
+"Collection[AStdClassdef]", /* class_name_string */
+10,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[AClassdef] */
+const struct type type_abstract_collection__Collectionparser_nodes__AClassdef = {
+2045,
+"Collection[AClassdef]", /* class_name_string */
+6,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[AStdClassdef] */
+const struct type type_array__AbstractArrayReadparser_nodes__AStdClassdef = {
+2823,
+"AbstractArrayRead[AStdClassdef]", /* class_name_string */
+15,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[AClassdef] */
+const struct type type_array__AbstractArrayReadparser_nodes__AClassdef = {
+2779,
+"AbstractArrayRead[AClassdef]", /* class_name_string */
+13,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
 /* runtime type DivByZeroVisitor */
 const struct type type_div_by_zero__DivByZeroVisitor = {
-225,
+-1, /*CAST DEAD*/
 "DivByZeroVisitor", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_div_by_zero__DivByZeroVisitor,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-225, /* DivByZeroVisitor */
+154, /* DivByZeroVisitor */
 },
 };
-const struct types resolution_table_div_by_zero__DivByZeroVisitor = {
-0, /* dummy */
-{
-}
-};
 /* runtime type ANodes[AClassdef] */
 const struct type type_parser_nodes__ANodesparser_nodes__AClassdef = {
-2426,
+-1, /*CAST DEAD*/
 "ANodes[AClassdef]", /* class_name_string */
-6,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_parser_nodes__ANodesparser_nodes__AClassdef,
 8,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-2426, /* ANodes[AClassdef] */
-1926, /* Collection[AClassdef] */
+1871, /* Collection[Prod] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+2045, /* Collection[AClassdef] */
+2492, /* ANodes[AClassdef] */
 },
 };
 const struct types resolution_table_parser_nodes__ANodesparser_nodes__AClassdef = {
@@ -6375,42 +6412,23 @@ NULL, /* empty */
 &type_parser_nodes__AClassdef, /* SequenceRead#0: AClassdef */
 }
 };
-/* 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,
+-1, /*CAST DEAD*/
 "ANodes[APropdef]", /* class_name_string */
-6,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_parser_nodes__ANodesparser_nodes__APropdef,
 8,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
-2427, /* ANodes[APropdef] */
-1927, /* Collection[APropdef] */
+1871, /* Collection[Prod] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+2046, /* Collection[APropdef] */
+2493, /* ANodes[APropdef] */
 },
 };
 const struct types resolution_table_parser_nodes__ANodesparser_nodes__APropdef = {
@@ -6435,452 +6453,243 @@ NULL, /* empty */
 };
 /* runtime type Collection[APropdef] */
 const struct type type_abstract_collection__Collectionparser_nodes__APropdef = {
-1927,
+2046,
 "Collection[APropdef]", /* class_name_string */
-7,
+6,
 0,
-NULL,
-8,
-{
-0, /* nullable Object */
-1, /* Object */
-596, /* Collection[ANode] */
--1, /* empty */
-164, /* Collection[Object] */
-1739, /* Collection[Prod] */
--1, /* empty */
-1927, /* Collection[APropdef] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type TransformVisitor */
 const struct type type_transform__TransformVisitor = {
-226,
+-1, /*CAST DEAD*/
 "TransformVisitor", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_transform__TransformVisitor,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-226, /* TransformVisitor */
+155, /* TransformVisitor */
 },
 };
-const struct types resolution_table_transform__TransformVisitor = {
-0, /* dummy */
-{
-}
-};
 /* runtime type ASTValidationVisitor */
 const struct type type_astvalidation__ASTValidationVisitor = {
-227,
+-1, /*CAST DEAD*/
 "ASTValidationVisitor", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_astvalidation__ASTValidationVisitor,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-227, /* ASTValidationVisitor */
+156, /* ASTValidationVisitor */
 },
 };
-const struct types resolution_table_astvalidation__ASTValidationVisitor = {
-0, /* dummy */
-{
-}
-};
 /* runtime type List[ANode] */
 const struct type type_list__Listparser_nodes__ANode = {
-1928,
+2047,
 "List[ANode]", /* class_name_string */
-5,
+2,
 0,
 &resolution_table_list__Listparser_nodes__ANode,
 6,
 {
 0, /* nullable Object */
 1, /* Object */
-596, /* Collection[ANode] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-1928, /* List[ANode] */
-},
-};
-const struct types resolution_table_list__Listparser_nodes__ANode = {
-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 */
-}
-};
-/* runtime type HashSet[ANode] */
-const struct type type_hash_collection__HashSetparser_nodes__ANode = {
-2217,
-"HashSet[ANode]", /* class_name_string */
-5,
-0,
-&resolution_table_hash_collection__HashSetparser_nodes__ANode,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-596, /* Collection[ANode] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-2217, /* HashSet[ANode] */
-1740, /* HashSet[Object] */
-},
-};
-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 MGenericType */
-const struct type type_model__MGenericType = {
-1929,
-"MGenericType", /* class_name_string */
-5,
-0,
-&resolution_table_model__MGenericType,
-6,
-{
-0, /* nullable Object */
-1, /* Object */
-2, /* nullable MType */
-594, /* MType */
-1748, /* MClassType */
-1929, /* MGenericType */
-},
-};
-const struct types resolution_table_model__MGenericType = {
-0, /* dummy */
-{
-}
-};
-/* runtime type MClassType */
-const struct type type_model__MClassType = {
-1748,
-"MClassType", /* class_name_string */
-4,
-0,
-&resolution_table_model__MClassType,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-2, /* nullable MType */
-594, /* MType */
-1748, /* MClassType */
-},
-};
-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 */
-2,
-0,
-&resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassDef,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-228, /* HashMap[MModule, Set[MClassDef]] */
-},
-};
-const struct types resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassDef = {
-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,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-229, /* HashMap[MModule, Set[MClass]] */
-},
-};
-const struct types resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClass = {
-0, /* dummy */
-{
-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]] */
+2047, /* List[ANode] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+},
+};
+const struct types resolution_table_list__Listparser_nodes__ANode = {
+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 */
+&type_nullable_list__ListNodeparser_nodes__ANode, /* nullable ListNode[List#0]: nullable ListNode[ANode] */
+&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 HashMap[MModule, Set[MClassType]] */
-const struct type type_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassType = {
-230,
-"HashMap[MModule, Set[MClassType]]", /* class_name_string */
+/* runtime type HashSet[ANode] */
+const struct type type_hash_collection__HashSetparser_nodes__ANode = {
+2265,
+"HashSet[ANode]", /* class_name_string */
 2,
 0,
-&resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassType,
-3,
+&resolution_table_hash_collection__HashSetparser_nodes__ANode,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-230, /* HashMap[MModule, Set[MClassType]] */
+2265, /* HashSet[ANode] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+-1, /* empty */
+1872, /* HashSet[Object] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel_base__MModuleabstract_collection__Setmodel__MClassType = {
+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_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]] */
+&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_nullable_hash_collection__HashSetNodeparser_nodes__ANode, /* nullable HashCollection#1: nullable HashSetNode[ANode] */
+&type_hash_collection__HashSetNodeparser_nodes__ANode, /* HashCollection#1: HashSetNode[ANode] */
+&type_nullable_parser_nodes__ANode, /* nullable HashCollection#0: nullable ANode */
 }
 };
-/* runtime type MClass */
-const struct type type_model__MClass = {
-625,
-"MClass", /* class_name_string */
-3,
+/* runtime type MClassPOSetBuilder */
+const struct type type_layout_builders__MClassPOSetBuilder = {
+-1, /*CAST DEAD*/
+"MClassPOSetBuilder", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_model__MClass,
+&resolution_table_layout_builders__MClassPOSetBuilder,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-5, /* nullable MClass */
-625, /* MClass */
+157, /* POSetBuilder[MClass] */
+684, /* MClassPOSetBuilder */
 },
 };
-const struct types resolution_table_model__MClass = {
+const struct types resolution_table_layout_builders__MClassPOSetBuilder = {
 0, /* dummy */
 {
+&type_abstract_collection__Setmodel__MClass, /* Set[POSetBuilder#0]: Set[MClass] */
 }
 };
-/* runtime type nullable MClass */
-const struct type type_nullable_model__MClass = {
-5,
-"nullable MClass", /* class_name_string */
+/* runtime type POSetBuilder[MClass] */
+const struct type type_layout_builders__POSetBuildermodel__MClass = {
+157,
+"POSetBuilder[MClass]", /* class_name_string */
 2,
-1,
-&resolution_table_nullable_model__MClass,
-3,
-{
-0, /* nullable Object */
--1, /* empty */
-5, /* nullable MClass */
-},
-};
-const struct types resolution_table_nullable_model__MClass = {
-0, /* dummy */
-{
-}
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type Array[MGenericType] */
-const struct type type_array__Arraymodel__MGenericType = {
-2642,
-"Array[MGenericType]", /* class_name_string */
-18,
+/* runtime type HashMap[MClass, Array[nullable MClass]] */
+const struct type type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass = {
+158,
+"HashMap[MClass, Array[nullable MClass]]", /* class_name_string */
+2,
 0,
-&resolution_table_array__Arraymodel__MGenericType,
-19,
+&resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass,
+3,
 {
 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] */
+158, /* HashMap[MClass, Array[nullable MClass]] */
 },
 };
-const struct types resolution_table_array__Arraymodel__MGenericType = {
+const struct types resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass = {
 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] */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapKeysmodel__MClassarray__Arraynullable_model__MClass, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[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_hash_collection__HashMapValuesmodel__MClassarray__Arraynullable_model__MClass, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Array[nullable 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_nullable_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MClass, /* nullable HashCollection#1: nullable HashMapNode[MClass, Array[nullable MClass]] */
+&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MClass, /* HashCollection#1: HashMapNode[MClass, Array[nullable MClass]] */
+&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
 }
 };
-/* runtime type Collection[MGenericType] */
-const struct type type_abstract_collection__Collectionmodel__MGenericType = {
-2218,
-"Collection[MGenericType]", /* class_name_string */
-12,
+/* runtime type Array[nullable MPropDef] */
+const struct type type_array__Arraynullable_model__MPropDef = {
+2048,
+"Array[nullable MPropDef]", /* class_name_string */
+8,
 0,
-NULL,
-13,
+&resolution_table_array__Arraynullable_model__MPropDef,
+9,
 {
 0, /* nullable Object */
 1, /* Object */
+1880, /* AbstractArrayRead[nullable MPropDef] */
+91, /* SequenceRead[nullable Object] */
 -1, /* empty */
+124, /* Collection[nullable MPropDef] */
 -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] */
+2048, /* Array[nullable MPropDef] */
 },
 };
-/* 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_array__Arraynullable_model__MPropDef = {
+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] */
-},
+&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 MClassDef */
-const struct type type_model__MClassDef = {
-231,
-"MClassDef", /* class_name_string */
+/* runtime type AbstractArrayRead[nullable MPropDef] */
+const struct type type_array__AbstractArrayReadnullable_model__MPropDef = {
+1880,
+"AbstractArrayRead[nullable MPropDef]", /* class_name_string */
 2,
 0,
-&resolution_table_model__MClassDef,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-231, /* MClassDef */
-},
-};
-const struct types resolution_table_model__MClassDef = {
-0, /* dummy */
-{
-}
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Array[MPropDef] */
 const struct type type_array__Arraymodel__MPropDef = {
-2611,
+2843,
 "Array[MPropDef]", /* class_name_string */
 16,
 0,
@@ -6889,21 +6698,21 @@ const struct type type_array__Arraymodel__MPropDef = {
 {
 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] */
+1880, /* AbstractArrayRead[nullable MPropDef] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+124, /* Collection[nullable MPropDef] */
+646, /* Collection[PropertyLayoutElement] */
+1838, /* AbstractArrayRead[Object] */
+2048, /* Array[nullable MPropDef] */
+2029, /* Array[Object] */
+2042, /* Collection[MPropDef] */
+2239, /* AbstractArrayRead[PropertyLayoutElement] */
 -1, /* empty */
-2481, /* Array[PropertyLayoutElement] */
-2558, /* AbstractArrayRead[MPropDef] */
+2661, /* Array[PropertyLayoutElement] */
+2780, /* AbstractArrayRead[MPropDef] */
 -1, /* empty */
-2611, /* Array[MPropDef] */
+2843, /* Array[MPropDef] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MPropDef = {
@@ -6930,324 +6739,455 @@ NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[MPropDef] not
 &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 AbstractArrayRead[MPropDef] */
+const struct type type_array__AbstractArrayReadmodel__MPropDef = {
+2780,
+"AbstractArrayRead[MPropDef]", /* class_name_string */
+14,
 0,
-&resolution_table_array__Arraynullable_model__MPropDef,
-11,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type SeparateErasureCompilerVisitor */
+const struct type type_separate_erasure_compiler__SeparateErasureCompilerVisitor = {
+-1, /*CAST DEAD*/
+"SeparateErasureCompilerVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_separate_erasure_compiler__SeparateErasureCompilerVisitor,
+5,
 {
 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] */
+145, /* AbstractCompilerVisitor */
+677, /* SeparateCompilerVisitor */
+1881, /* SeparateErasureCompilerVisitor */
 },
 };
-const struct types resolution_table_array__Arraynullable_model__MPropDef = {
+const struct types resolution_table_separate_erasure_compiler__SeparateErasureCompilerVisitor = {
 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] */
+&type_separate_compiler__SeparateCompiler, /* COMPILER: SeparateCompiler */
 }
 };
-/* runtime type AbstractArrayRead[MPropDef] */
-const struct type type_array__AbstractArrayReadmodel__MPropDef = {
-2558,
-"AbstractArrayRead[MPropDef]", /* class_name_string */
-14,
+/* runtime type GlobalCompilerVisitor */
+const struct type type_global_compiler__GlobalCompilerVisitor = {
+685,
+"GlobalCompilerVisitor", /* class_name_string */
+3,
 0,
-NULL,
-15,
+&resolution_table_global_compiler__GlobalCompilerVisitor,
+4,
 {
 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] */
--1, /* empty */
--1, /* empty */
-2194, /* AbstractArrayRead[PropertyLayoutElement] */
--1, /* empty */
--1, /* empty */
-2558, /* AbstractArrayRead[MPropDef] */
+145, /* AbstractCompilerVisitor */
+685, /* GlobalCompilerVisitor */
 },
 };
-/* 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_global_compiler__GlobalCompilerVisitor = {
+0, /* dummy */
+{
+&type_global_compiler__GlobalCompiler, /* COMPILER: GlobalCompiler */
+}
+};
+/* runtime type RuntimeVariable */
+const struct type type_abstract_compiler__RuntimeVariable = {
+159,
+"RuntimeVariable", /* class_name_string */
+2,
 0,
-NULL,
-8,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-188, /* Collection[nullable MPropDef] */
-163, /* SequenceRead[nullable Object] */
--1, /* empty */
--1, /* empty */
--1, /* empty */
-1749, /* AbstractArrayRead[nullable MPropDef] */
+159, /* RuntimeVariable */
 },
 };
-/* runtime type Location */
-const struct type type_location__Location = {
-232,
-"Location", /* class_name_string */
-2,
+/* runtime type SeparateRuntimeFunction */
+const struct type type_separate_compiler__SeparateRuntimeFunction = {
+-1, /*CAST DEAD*/
+"SeparateRuntimeFunction", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_location__Location,
-3,
+&resolution_table_separate_compiler__SeparateRuntimeFunction,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-232, /* Location */
+14, /* nullable AbstractRuntimeFunction */
+686, /* AbstractRuntimeFunction */
+1882, /* SeparateRuntimeFunction */
 },
 };
-const struct types resolution_table_location__Location = {
+const struct types resolution_table_separate_compiler__SeparateRuntimeFunction = {
 0, /* dummy */
 {
-&type_location__Location, /* OTHER: Location */
+&type_abstract_compiler__AbstractCompiler, /* COMPILER: AbstractCompiler */
+&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
 }
 };
-/* runtime type MClassPOSetBuilder */
-const struct type type_layout_builders__MClassPOSetBuilder = {
-626,
-"MClassPOSetBuilder", /* class_name_string */
+/* runtime type AbstractRuntimeFunction */
+const struct type type_abstract_compiler__AbstractRuntimeFunction = {
+686,
+"AbstractRuntimeFunction", /* class_name_string */
 3,
 0,
-&resolution_table_layout_builders__MClassPOSetBuilder,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable AbstractRuntimeFunction */
+const struct type type_nullable_abstract_compiler__AbstractRuntimeFunction = {
+14,
+"nullable AbstractRuntimeFunction", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type VirtualRuntimeFunction */
+const struct type type_separate_compiler__VirtualRuntimeFunction = {
+-1, /*CAST DEAD*/
+"VirtualRuntimeFunction", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_separate_compiler__VirtualRuntimeFunction,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-233, /* POSetBuilder[MClass] */
-626, /* MClassPOSetBuilder */
+14, /* nullable AbstractRuntimeFunction */
+686, /* AbstractRuntimeFunction */
+1883, /* VirtualRuntimeFunction */
 },
 };
-const struct types resolution_table_layout_builders__MClassPOSetBuilder = {
+const struct types resolution_table_separate_compiler__VirtualRuntimeFunction = {
 0, /* dummy */
 {
-&type_abstract_collection__Setmodel__MClass, /* Set[POSetBuilder#0]: Set[MClass] */
+&type_abstract_compiler__AbstractCompiler, /* COMPILER: AbstractCompiler */
+&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
 }
 };
-/* runtime type POSetBuilder[MClass] */
-const struct type type_layout_builders__POSetBuildermodel__MClass = {
-233,
-"POSetBuilder[MClass]", /* class_name_string */
-2,
+/* runtime type MGenericType */
+const struct type type_model__MGenericType = {
+2678,
+"MGenericType", /* class_name_string */
+8,
 0,
-NULL,
-3,
+NULL, /*NO RESOLUTIONS*/
+9,
 {
 0, /* nullable Object */
 1, /* Object */
-233, /* POSetBuilder[MClass] */
+7, /* nullable NitniCallback */
+104, /* nullable MType */
+651, /* NitniCallback */
+687, /* nullable MClassType */
+2034, /* MType */
+2494, /* MClassType */
+2678, /* MGenericType */
 },
 };
-/* 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 MClassType */
+const struct type type_model__MClassType = {
+2494,
+"MClassType", /* class_name_string */
+7,
+0,
+NULL, /*NO RESOLUTIONS*/
+8,
+{
+0, /* nullable Object */
+1, /* Object */
+7, /* nullable NitniCallback */
+104, /* nullable MType */
+651, /* NitniCallback */
+687, /* nullable MClassType */
+2034, /* MType */
+2494, /* MClassType */
+},
+};
+/* runtime type nullable MClassType */
+const struct type type_nullable_model__MClassType = {
+687,
+"nullable MClassType", /* class_name_string */
+5,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashMap[MModule, Set[MClassDef]] */
+const struct type type_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassDef = {
+160,
+"HashMap[MModule, Set[MClassDef]]", /* class_name_string */
 2,
 0,
-&resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass,
+&resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassDef,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-234, /* HashMap[MClass, Array[nullable MClass]] */
+160, /* HashMap[MModule, Set[MClassDef]] */
 },
 };
-const struct types resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MClass = {
+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__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]] */
+&type_mmodule__MModule, /* MapRead#0: MModule */
+&type_hash_collection__HashMapKeysmmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, Set[MClassDef]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, Set[MClassDef]]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, Set[MClassDef]] */
+&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_nullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* nullable HashCollection#1: nullable HashMapNode[MModule, Set[MClassDef]] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashCollection#1: HashMapNode[MModule, Set[MClassDef]] */
+&type_nullable_mmodule__MModule, /* nullable HashCollection#0: nullable MModule */
 }
 };
-/* runtime type SeparateErasureCompilerVisitor */
-const struct type type_separate_erasure_compiler__SeparateErasureCompilerVisitor = {
-1750,
-"SeparateErasureCompilerVisitor", /* class_name_string */
-4,
+/* runtime type HashMap[MModule, Set[MClass]] */
+const struct type type_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClass = {
+161,
+"HashMap[MModule, Set[MClass]]", /* class_name_string */
+2,
 0,
-&resolution_table_separate_erasure_compiler__SeparateErasureCompilerVisitor,
-5,
+&resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClass,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-219, /* AbstractCompilerVisitor */
-619, /* SeparateCompilerVisitor */
-1750, /* SeparateErasureCompilerVisitor */
+161, /* HashMap[MModule, Set[MClass]] */
 },
 };
-const struct types resolution_table_separate_erasure_compiler__SeparateErasureCompilerVisitor = {
+const struct types resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClass = {
 0, /* dummy */
 {
-&type_separate_compiler__SeparateCompiler, /* COMPILER: SeparateCompiler */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_mmodule__MModule, /* MapRead#0: MModule */
+&type_hash_collection__HashMapKeysmmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, Set[MClass]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, Set[MClass]]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, Set[MClass]] */
+&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_nullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* nullable HashCollection#1: nullable HashMapNode[MModule, Set[MClass]] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* HashCollection#1: HashMapNode[MModule, Set[MClass]] */
+&type_nullable_mmodule__MModule, /* nullable HashCollection#0: nullable MModule */
 }
 };
-/* runtime type GlobalCompilerVisitor */
-const struct type type_global_compiler__GlobalCompilerVisitor = {
-627,
-"GlobalCompilerVisitor", /* class_name_string */
-3,
+/* runtime type HashMap[MModule, Set[MClassType]] */
+const struct type type_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassType = {
+162,
+"HashMap[MModule, Set[MClassType]]", /* class_name_string */
+2,
 0,
-&resolution_table_global_compiler__GlobalCompilerVisitor,
-4,
+&resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-219, /* AbstractCompilerVisitor */
-627, /* GlobalCompilerVisitor */
+162, /* HashMap[MModule, Set[MClassType]] */
 },
 };
-const struct types resolution_table_global_compiler__GlobalCompilerVisitor = {
+const struct types resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassType = {
 0, /* dummy */
 {
-&type_global_compiler__GlobalCompiler, /* COMPILER: GlobalCompiler */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_mmodule__MModule, /* MapRead#0: MModule */
+&type_hash_collection__HashMapKeysmmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, Set[MClassType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, Set[MClassType]]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, Set[MClassType]] */
+&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_nullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* nullable HashCollection#1: nullable HashMapNode[MModule, Set[MClassType]] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashCollection#1: HashMapNode[MModule, Set[MClassType]] */
+&type_nullable_mmodule__MModule, /* nullable HashCollection#0: nullable MModule */
 }
 };
-/* runtime type SeparateRuntimeFunction */
-const struct type type_separate_compiler__SeparateRuntimeFunction = {
-628,
-"SeparateRuntimeFunction", /* class_name_string */
+/* runtime type MClass */
+const struct type type_model__MClass = {
+688,
+"MClass", /* class_name_string */
 3,
 0,
-&resolution_table_separate_compiler__SeparateRuntimeFunction,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-235, /* AbstractRuntimeFunction */
-628, /* SeparateRuntimeFunction */
+15, /* nullable MClass */
+688, /* MClass */
 },
 };
-const struct types resolution_table_separate_compiler__SeparateRuntimeFunction = {
+/* runtime type nullable MClass */
+const struct type type_nullable_model__MClass = {
+15,
+"nullable MClass", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Array[MGenericType] */
+const struct type type_array__Arraymodel__MGenericType = {
+2878,
+"Array[MGenericType]", /* class_name_string */
+21,
+0,
+&resolution_table_array__Arraymodel__MGenericType,
+22,
+{
+0, /* nullable Object */
+1, /* Object */
+11, /* nullable Array[nullable MType] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+101, /* Collection[nullable MType] */
+648, /* Collection[NitniCallback] */
+1838, /* AbstractArrayRead[Object] */
+1878, /* AbstractArrayRead[nullable MType] */
+2029, /* Array[Object] */
+2033, /* Collection[MType] */
+2240, /* Collection[MClassType] */
+2260, /* Array[nullable MType] */
+2261, /* AbstractArrayRead[NitniCallback] */
+2495, /* Collection[MGenericType] */
+2675, /* Array[NitniCallback] */
+2778, /* AbstractArrayRead[MType] */
+2822, /* AbstractArrayRead[MClassType] */
+2844, /* AbstractArrayRead[MGenericType] */
+2863, /* Array[MType] */
+2875, /* Array[MClassType] */
+2878, /* Array[MGenericType] */
+},
+};
+const struct types resolution_table_array__Arraymodel__MGenericType = {
 0, /* dummy */
 {
-&type_abstract_compiler__AbstractCompiler, /* COMPILER: AbstractCompiler */
-&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
+&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 AbstractRuntimeFunction */
-const struct type type_abstract_compiler__AbstractRuntimeFunction = {
-235,
-"AbstractRuntimeFunction", /* class_name_string */
-2,
+/* runtime type Collection[MGenericType] */
+const struct type type_abstract_collection__Collectionmodel__MGenericType = {
+2495,
+"Collection[MGenericType]", /* class_name_string */
+14,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-235, /* AbstractRuntimeFunction */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type VirtualRuntimeFunction */
-const struct type type_separate_compiler__VirtualRuntimeFunction = {
-629,
-"VirtualRuntimeFunction", /* class_name_string */
+/* runtime type AbstractArrayRead[MGenericType] */
+const struct type type_array__AbstractArrayReadmodel__MGenericType = {
+2844,
+"AbstractArrayRead[MGenericType]", /* class_name_string */
+18,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type MClassDef */
+const struct type type_model__MClassDef = {
+689,
+"MClassDef", /* class_name_string */
 3,
 0,
-&resolution_table_separate_compiler__VirtualRuntimeFunction,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-235, /* AbstractRuntimeFunction */
-629, /* VirtualRuntimeFunction */
+16, /* nullable MClassDef */
+689, /* MClassDef */
 },
 };
-const struct types resolution_table_separate_compiler__VirtualRuntimeFunction = {
-0, /* dummy */
-{
-&type_abstract_compiler__AbstractCompiler, /* COMPILER: AbstractCompiler */
-&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
-}
+/* runtime type nullable MClassDef */
+const struct type type_nullable_model__MClassDef = {
+16,
+"nullable MClassDef", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type Float */
-const struct type type_kernel__Float = {
-236,
-"Float", /* class_name_string */
+/* runtime type Location */
+const struct type type_location__Location = {
+163,
+"Location", /* class_name_string */
 2,
 0,
-&resolution_table_kernel__Float,
+&resolution_table_location__Location,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-236, /* Float */
+163, /* Location */
 },
 };
-const struct types resolution_table_kernel__Float = {
+const struct types resolution_table_location__Location = {
 0, /* dummy */
 {
+&type_location__Location, /* OTHER: Location */
 }
 };
 /* runtime type HashSet[MClassDef] */
 const struct type type_hash_collection__HashSetmodel__MClassDef = {
-2428,
+2496,
 "HashSet[MClassDef]", /* class_name_string */
-7,
+6,
 0,
 &resolution_table_hash_collection__HashSetmodel__MClassDef,
 8,
 {
 0, /* nullable Object */
 1, /* Object */
-591, /* Collection[MClassDef] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-1931, /* Set[MClassDef] */
-1740, /* HashSet[Object] */
-2428, /* HashSet[MClassDef] */
+647, /* Collection[MClassDef] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+2049, /* Set[MClassDef] */
+2496, /* HashSet[MClassDef] */
+1872, /* HashSet[Object] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MClassDef = {
@@ -7268,39 +7208,33 @@ NULL, /* empty */
 &type_model__MClassDef, /* Collection#0: MClassDef */
 &type_abstract_collection__Collectionmodel__MClassDef, /* Collection[Collection#0]: Collection[MClassDef] */
 &type_model__MClassDef, /* HashCollection#0: MClassDef */
+&type_nullable_hash_collection__HashSetNodemodel__MClassDef, /* nullable HashCollection#1: nullable HashSetNode[MClassDef] */
 &type_hash_collection__HashSetNodemodel__MClassDef, /* HashCollection#1: HashSetNode[MClassDef] */
+&type_nullable_model__MClassDef, /* nullable HashCollection#0: nullable MClassDef */
 }
 };
 /* runtime type Set[MClassDef] */
 const struct type type_abstract_collection__Setmodel__MClassDef = {
-1931,
+2049,
 "Set[MClassDef]", /* class_name_string */
 5,
 0,
-NULL,
-6,
-{
-0, /* nullable Object */
-1, /* Object */
-591, /* Collection[MClassDef] */
-597, /* Set[Object] */
-164, /* Collection[Object] */
-1931, /* Set[MClassDef] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type MTypePOSetBuilder */
 const struct type type_layout_builders__MTypePOSetBuilder = {
-630,
+-1, /*CAST DEAD*/
 "MTypePOSetBuilder", /* class_name_string */
-3,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__MTypePOSetBuilder,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-237, /* POSetBuilder[MType] */
-630, /* MTypePOSetBuilder */
+164, /* POSetBuilder[MType] */
+690, /* MTypePOSetBuilder */
 },
 };
 const struct types resolution_table_layout_builders__MTypePOSetBuilder = {
@@ -7311,33 +7245,29 @@ const struct types resolution_table_layout_builders__MTypePOSetBuilder = {
 };
 /* runtime type POSetBuilder[MType] */
 const struct type type_layout_builders__POSetBuildermodel__MType = {
-237,
+164,
 "POSetBuilder[MType]", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-237, /* POSetBuilder[MType] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashMap[MClassType, Set[MType]] */
 const struct type type_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType = {
-1932,
+2266,
 "HashMap[MClassType, Set[MType]]", /* class_name_string */
-5,
+6,
 0,
 &resolution_table_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType,
-6,
+7,
 {
 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]] */
+17, /* nullable HashMap[MType, Set[MType]] */
+165, /* Map[MType, Set[MType]] */
+691, /* Map[MClassType, Set[MType]] */
+1884, /* HashMap[MType, Set[MType]] */
+2266, /* HashMap[MClassType, Set[MType]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassTypeabstract_collection__Setmodel__MType = {
@@ -7347,10 +7277,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MClassType, /* MapRead#0: MClassType */
 &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__HashMapValuesmodel__MClassTypeabstract_collection__Setmodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClassType, Set[MType]] */
 &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] */
@@ -7358,22 +7288,26 @@ NULL, /* empty */
 &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_nullable_hash_collection__HashMapNodemodel__MClassTypeabstract_collection__Setmodel__MType, /* nullable HashCollection#1: nullable HashMapNode[MClassType, Set[MType]] */
 &type_hash_collection__HashMapNodemodel__MClassTypeabstract_collection__Setmodel__MType, /* HashCollection#1: HashMapNode[MClassType, Set[MType]] */
+&type_nullable_model__MClassType, /* nullable HashCollection#0: nullable MClassType */
 }
 };
 /* runtime type HashMap[MType, Set[MType]] */
 const struct type type_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType = {
-631,
+1884,
 "HashMap[MType, Set[MType]]", /* class_name_string */
-3,
+5,
 0,
 &resolution_table_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType,
-4,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-238, /* Map[MType, Set[MType]] */
-631, /* HashMap[MType, Set[MType]] */
+17, /* nullable HashMap[MType, Set[MType]] */
+165, /* Map[MType, Set[MType]] */
+-1, /* empty */
+1884, /* HashMap[MType, Set[MType]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType = {
@@ -7383,10 +7317,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MType, /* MapRead#0: MType */
 &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__HashMapValuesmodel__MTypeabstract_collection__Setmodel__MType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Set[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] */
@@ -7394,70 +7328,64 @@ NULL, /* empty */
 &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_nullable_hash_collection__HashMapNodemodel__MTypeabstract_collection__Setmodel__MType, /* nullable HashCollection#1: nullable HashMapNode[MType, Set[MType]] */
 &type_hash_collection__HashMapNodemodel__MTypeabstract_collection__Setmodel__MType, /* HashCollection#1: HashMapNode[MType, Set[MType]] */
+&type_nullable_model__MType, /* nullable HashCollection#0: nullable MType */
 }
 };
 /* runtime type Map[MType, Set[MType]] */
 const struct type type_abstract_collection__Mapmodel__MTypeabstract_collection__Setmodel__MType = {
-238,
+165,
 "Map[MType, Set[MType]]", /* class_name_string */
-2,
-0,
-NULL,
 3,
-{
-0, /* nullable Object */
-1, /* Object */
-238, /* Map[MType, Set[MType]] */
-},
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type Map[MClassType, Set[MType]] */
 const struct type type_abstract_collection__Mapmodel__MClassTypeabstract_collection__Setmodel__MType = {
-632,
+691,
 "Map[MClassType, Set[MType]]", /* class_name_string */
 4,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-238, /* Map[MType, Set[MType]] */
--1, /* empty */
-632, /* Map[MClassType, Set[MType]] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable HashMap[MType, Set[MType]] */
+const struct type type_nullable_hash_collection__HashMapmodel__MTypeabstract_collection__Setmodel__MType = {
+17,
+"nullable HashMap[MType, Set[MType]]", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type ResolutionBMizer */
 const struct type type_layout_builders__ResolutionBMizer = {
-239,
+-1, /*CAST DEAD*/
 "ResolutionBMizer", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_layout_builders__ResolutionBMizer,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-239, /* ResolutionBMizer */
+166, /* ResolutionBMizer */
 },
 };
-const struct types resolution_table_layout_builders__ResolutionBMizer = {
-0, /* dummy */
-{
-}
-};
 /* runtime type ResolutionHasher */
 const struct type type_layout_builders__ResolutionHasher = {
-240,
+-1, /*CAST DEAD*/
 "ResolutionHasher", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_layout_builders__ResolutionHasher,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-240, /* ResolutionHasher */
+167, /* ResolutionHasher */
 },
 };
 const struct types resolution_table_layout_builders__ResolutionHasher = {
@@ -7482,26 +7410,21 @@ NULL, /* empty */
 };
 /* runtime type ResolutionColorer */
 const struct type type_layout_builders__ResolutionColorer = {
-241,
+-1, /*CAST DEAD*/
 "ResolutionColorer", /* class_name_string */
-2,
+-1, /*CAST DEAD*/
 0,
-&resolution_table_layout_builders__ResolutionColorer,
+NULL, /*NO RESOLUTIONS*/
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-241, /* ResolutionColorer */
+168, /* ResolutionColorer */
 },
 };
-const struct types resolution_table_layout_builders__ResolutionColorer = {
-0, /* dummy */
-{
-}
-};
 /* runtime type HashMap[MType, Int] */
 const struct type type_hash_collection__HashMapmodel__MTypekernel__Int = {
-633,
+692,
 "HashMap[MType, Int]", /* class_name_string */
 3,
 0,
@@ -7510,8 +7433,8 @@ const struct type type_hash_collection__HashMapmodel__MTypekernel__Int = {
 {
 0, /* nullable Object */
 1, /* Object */
-242, /* Map[MType, Int] */
-633, /* HashMap[MType, Int] */
+169, /* Map[MType, Int] */
+692, /* HashMap[MType, Int] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MTypekernel__Int = {
@@ -7521,10 +7444,10 @@ NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
 NULL, /* empty */
+&type_model__MType, /* MapRead#0: MType */
 &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__HashMapValuesmodel__MTypekernel__Int, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MType, Int] */
 &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 */
@@ -7532,2466 +7455,2545 @@ NULL, /* empty */
 &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_nullable_hash_collection__HashMapNodemodel__MTypekernel__Int, /* nullable HashCollection#1: nullable HashMapNode[MType, Int] */
 &type_hash_collection__HashMapNodemodel__MTypekernel__Int, /* HashCollection#1: HashMapNode[MType, Int] */
+&type_nullable_model__MType, /* nullable HashCollection#0: nullable MType */
 }
 };
 /* runtime type Map[MType, Int] */
 const struct type type_abstract_collection__Mapmodel__MTypekernel__Int = {
-242,
+169,
 "Map[MType, Int]", /* class_name_string */
 2,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-242, /* Map[MType, Int] */
-},
-};
-/* runtime type Array[Match] */
-const struct type type_array__Arraystring_search__Match = {
-2499,
-"Array[Match]", /* class_name_string */
-7,
-0,
-&resolution_table_array__Arraystring_search__Match,
-10,
-{
-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] */
-},
-};
-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 Collection[Match] */
-const struct type type_abstract_collection__Collectionstring_search__Match = {
-634,
-"Collection[Match]", /* class_name_string */
-2,
-0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-634, /* Collection[Match] */
--1, /* empty */
-164, /* Collection[Object] */
-},
-};
-/* runtime type AbstractArrayRead[Match] */
-const struct type type_array__AbstractArrayReadstring_search__Match = {
-2219,
-"AbstractArrayRead[Match]", /* class_name_string */
-5,
-0,
-NULL,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-634, /* Collection[Match] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2219, /* AbstractArrayRead[Match] */
-1728, /* AbstractArrayRead[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type Match */
-const struct type type_string_search__Match = {
-243,
-"Match", /* class_name_string */
+/* runtime type Message */
+const struct type type_toolcontext__Message = {
+170,
+"Message", /* class_name_string */
 2,
 0,
-&resolution_table_string_search__Match,
+&resolution_table_toolcontext__Message,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-243, /* Match */
+170, /* Message */
 },
 };
-const struct types resolution_table_string_search__Match = {
+const struct types resolution_table_toolcontext__Message = {
 0, /* dummy */
 {
+&type_toolcontext__Message, /* OTHER: Message */
 }
 };
-/* runtime type Array[ReduceAction] */
-const struct type type_array__Arrayparser__ReduceAction = {
-2500,
-"Array[ReduceAction]", /* class_name_string */
-7,
+/* runtime type Array[State] */
+const struct type type_array__Arrayparser__State = {
+2679,
+"Array[State]", /* class_name_string */
+6,
 0,
-&resolution_table_array__Arrayparser__ReduceAction,
+&resolution_table_array__Arrayparser__State,
 10,
 {
 0, /* nullable Object */
 1, /* Object */
-635, /* Collection[ReduceAction] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2220, /* AbstractArrayRead[ReduceAction] */
-1728, /* AbstractArrayRead[Object] */
-2500, /* Array[ReduceAction] */
+693, /* Collection[State] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2267, /* AbstractArrayRead[State] */
+2679, /* Array[State] */
+1838, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1911, /* Array[Object] */
+2029, /* Array[Object] */
 },
 };
-const struct types resolution_table_array__Arrayparser__ReduceAction = {
+const struct types resolution_table_array__Arrayparser__State = {
 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_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[ReduceAction] */
-const struct type type_abstract_collection__Collectionparser__ReduceAction = {
-635,
-"Collection[ReduceAction]", /* class_name_string */
+/* runtime type Collection[State] */
+const struct type type_abstract_collection__Collectionparser__State = {
+693,
+"Collection[State]", /* class_name_string */
 2,
 0,
-NULL,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-635, /* Collection[ReduceAction] */
--1, /* empty */
-164, /* Collection[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type AbstractArrayRead[ReduceAction] */
-const struct type type_array__AbstractArrayReadparser__ReduceAction = {
-2220,
-"AbstractArrayRead[ReduceAction]", /* class_name_string */
+/* runtime type AbstractArrayRead[State] */
+const struct type type_array__AbstractArrayReadparser__State = {
+2267,
+"AbstractArrayRead[State]", /* class_name_string */
 5,
 0,
-NULL,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-635, /* Collection[ReduceAction] */
-163, /* SequenceRead[nullable Object] */
-164, /* Collection[Object] */
-2220, /* AbstractArrayRead[ReduceAction] */
-1728, /* AbstractArrayRead[Object] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction0 */
-const struct type type_parser__ReduceAction0 = {
-636,
-"ReduceAction0", /* class_name_string */
-3,
+/* runtime type Start */
+const struct type type_parser_nodes__Start = {
+-1, /*CAST DEAD*/
+"Start", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction0,
-4,
+NULL, /*NO RESOLUTIONS*/
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-636, /* ReduceAction0 */
+18, /* nullable ANode */
+2050, /* Start */
+694, /* ANode */
+1885, /* Prod */
 },
 };
-const struct types resolution_table_parser__ReduceAction0 = {
-0, /* dummy */
-{
-}
+/* runtime type Prod */
+const struct type type_parser_nodes__Prod = {
+1885,
+"Prod", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction */
-const struct type type_parser__ReduceAction = {
-244,
-"ReduceAction", /* class_name_string */
-2,
+/* runtime type ANode */
+const struct type type_parser_nodes__ANode = {
+694,
+"ANode", /* class_name_string */
+4,
 0,
-NULL,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-244, /* ReduceAction */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction1 */
-const struct type type_parser__ReduceAction1 = {
-637,
-"ReduceAction1", /* class_name_string */
-3,
+/* runtime type nullable ANode */
+const struct type type_nullable_parser_nodes__ANode = {
+18,
+"nullable ANode", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type ComputeProdLocationVisitor */
+const struct type type_parser__ComputeProdLocationVisitor = {
+-1, /*CAST DEAD*/
+"ComputeProdLocationVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction1,
-4,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-637, /* ReduceAction1 */
+171, /* ComputeProdLocationVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction1 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction2 */
-const struct type type_parser__ReduceAction2 = {
-638,
-"ReduceAction2", /* class_name_string */
-3,
+/* runtime type AParserError */
+const struct type type_parser_nodes__AParserError = {
+-1, /*CAST DEAD*/
+"AParserError", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction2,
-4,
+NULL, /*NO RESOLUTIONS*/
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-638, /* ReduceAction2 */
+18, /* nullable ANode */
+2051, /* EOF */
+694, /* ANode */
+1886, /* Token */
+2268, /* AError */
+2497, /* AParserError */
 },
 };
-const struct types resolution_table_parser__ReduceAction2 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction3 */
-const struct type type_parser__ReduceAction3 = {
-639,
-"ReduceAction3", /* class_name_string */
+/* runtime type EOF */
+const struct type type_parser_nodes__EOF = {
+2051,
+"EOF", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction3,
-4,
+NULL, /*NO RESOLUTIONS*/
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-639, /* ReduceAction3 */
+18, /* nullable ANode */
+2051, /* EOF */
+694, /* ANode */
+1886, /* Token */
 },
 };
-const struct types resolution_table_parser__ReduceAction3 = {
-0, /* dummy */
-{
-}
+/* runtime type AError */
+const struct type type_parser_nodes__AError = {
+2268,
+"AError", /* class_name_string */
+6,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction4 */
-const struct type type_parser__ReduceAction4 = {
-640,
-"ReduceAction4", /* class_name_string */
-3,
+/* runtime type Token */
+const struct type type_parser_nodes__Token = {
+1886,
+"Token", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction4,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type ANodes[AImport] */
+const struct type type_parser_nodes__ANodesparser_nodes__AImport = {
+-1, /*CAST DEAD*/
+"ANodes[AImport]", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_parser_nodes__ANodesparser_nodes__AImport,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-640, /* ReduceAction4 */
+1871, /* Collection[Prod] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+2052, /* Collection[AImport] */
+2498, /* ANodes[AImport] */
 },
 };
-const struct types resolution_table_parser__ReduceAction4 = {
+const struct types resolution_table_parser_nodes__ANodesparser_nodes__AImport = {
 0, /* dummy */
 {
+&type_array__Arrayparser_nodes__AImport, /* Array[ANodes#0]: Array[AImport] */
+&type_parser_nodes__AImport, /* ANodes#0: AImport */
+&type_parser_nodes__AImport, /* Sequence#0: AImport */
+&type_parser_nodes__AImport, /* SimpleCollection#0: AImport */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_parser_nodes__AImport, /* RemovableCollection#0: AImport */
+&type_abstract_collection__Collectionparser_nodes__AImport, /* Collection[Sequence#0]: Collection[AImport] */
+&type_array__Arrayparser_nodes__AImport, /* Array[Sequence#0]: Array[AImport] */
+&type_abstract_collection__Collectionparser_nodes__AImport, /* Collection[SimpleCollection#0]: Collection[AImport] */
+&type_parser_nodes__AImport, /* Collection#0: AImport */
+&type_abstract_collection__Collectionparser_nodes__AImport, /* Collection[Collection#0]: Collection[AImport] */
+&type_parser_nodes__AImport, /* SequenceRead#0: AImport */
 }
 };
-/* runtime type ReduceAction5 */
-const struct type type_parser__ReduceAction5 = {
-641,
-"ReduceAction5", /* class_name_string */
-3,
+/* runtime type Collection[AImport] */
+const struct type type_abstract_collection__Collectionparser_nodes__AImport = {
+2052,
+"Collection[AImport]", /* class_name_string */
+6,
 0,
-&resolution_table_parser__ReduceAction5,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type MVisibility */
+const struct type type_model_base__MVisibility = {
+172,
+"MVisibility", /* class_name_string */
+2,
+0,
+&resolution_table_model_base__MVisibility,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-641, /* ReduceAction5 */
+172, /* MVisibility */
 },
 };
-const struct types resolution_table_parser__ReduceAction5 = {
+const struct types resolution_table_model_base__MVisibility = {
 0, /* dummy */
 {
+&type_model_base__MVisibility, /* OTHER: MVisibility */
 }
 };
-/* runtime type ReduceAction6 */
-const struct type type_parser__ReduceAction6 = {
-642,
-"ReduceAction6", /* class_name_string */
-3,
+/* runtime type SimpleMiscVisitor */
+const struct type type_simple_misc_analysis__SimpleMiscVisitor = {
+-1, /*CAST DEAD*/
+"SimpleMiscVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction6,
-4,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-642, /* ReduceAction6 */
+173, /* SimpleMiscVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction6 = {
-0, /* dummy */
+/* runtime type LiteralVisitor */
+const struct type type_literal__LiteralVisitor = {
+-1, /*CAST DEAD*/
+"LiteralVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+174, /* LiteralVisitor */
+},
 };
-/* runtime type ReduceAction7 */
-const struct type type_parser__ReduceAction7 = {
-643,
-"ReduceAction7", /* class_name_string */
-3,
+/* runtime type CollectAnnotationsByNameVisitor */
+const struct type type_parser_util__CollectAnnotationsByNameVisitor = {
+-1, /*CAST DEAD*/
+"CollectAnnotationsByNameVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction7,
-4,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-643, /* ReduceAction7 */
+175, /* CollectAnnotationsByNameVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction7 = {
-0, /* dummy */
+/* runtime type Array[AAnnotation] */
+const struct type type_array__Arrayparser_nodes__AAnnotation = {
+2845,
+"Array[AAnnotation]", /* class_name_string */
+13,
+0,
+&resolution_table_array__Arrayparser_nodes__AAnnotation,
+15,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+1871, /* Collection[Prod] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+2053, /* Collection[AAnnotation] */
+1838, /* AbstractArrayRead[Object] */
+2243, /* AbstractArrayRead[ANode] */
+2029, /* Array[Object] */
+2781, /* AbstractArrayRead[AAnnotation] */
+2664, /* Array[ANode] */
+2665, /* AbstractArrayRead[Prod] */
+2845, /* Array[AAnnotation] */
+2802, /* Array[Prod] */
+},
+};
+const struct types resolution_table_array__Arrayparser_nodes__AAnnotation = {
+0, /* dummy */
+{
+&type_array__Arrayparser_nodes__AAnnotation, /* Array[Array#0]: Array[AAnnotation] */
+&type_array__NativeArrayparser_nodes__AAnnotation, /* NativeArray[Array#0]: NativeArray[AAnnotation] */
+&type_parser_nodes__AAnnotation, /* Sequence#0: AAnnotation */
+&type_parser_nodes__AAnnotation, /* SimpleCollection#0: AAnnotation */
+&type_abstract_collection__Collectionparser_nodes__AAnnotation, /* Collection[Array#0]: Collection[AAnnotation] */
+&type_parser_nodes__AAnnotation, /* Array#0: AAnnotation */
+&type_array__NativeArrayparser_nodes__AAnnotation, /* NativeArray[ArrayCapable#0]: NativeArray[AAnnotation] */
+&type_parser_nodes__AAnnotation, /* AbstractArray#0: AAnnotation */
+&type_parser_nodes__AAnnotation, /* RemovableCollection#0: AAnnotation */
+&type_abstract_collection__Collectionparser_nodes__AAnnotation, /* Collection[Sequence#0]: Collection[AAnnotation] */
+&type_array__Arrayparser_nodes__AAnnotation, /* Array[Sequence#0]: Array[AAnnotation] */
+&type_abstract_collection__Collectionparser_nodes__AAnnotation, /* Collection[SimpleCollection#0]: Collection[AAnnotation] */
+&type_parser_nodes__AAnnotation, /* Collection#0: AAnnotation */
+&type_abstract_collection__Collectionparser_nodes__AAnnotation, /* Collection[Collection#0]: Collection[AAnnotation] */
+&type_parser_nodes__AAnnotation, /* SequenceRead#0: AAnnotation */
+&type_parser_nodes__AAnnotation, /* AbstractArrayRead#0: AAnnotation */
+&type_array__Arrayparser_nodes__AAnnotation, /* Array[AbstractArrayRead#0]: Array[AAnnotation] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[AAnnotation] not a live type) */
+&type_array__ArrayIteratorparser_nodes__AAnnotation, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[AAnnotation] */
+}
+};
+/* runtime type Collection[AAnnotation] */
+const struct type type_abstract_collection__Collectionparser_nodes__AAnnotation = {
+2053,
+"Collection[AAnnotation]", /* class_name_string */
+6,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction8 */
-const struct type type_parser__ReduceAction8 = {
-644,
-"ReduceAction8", /* class_name_string */
-3,
+/* runtime type AbstractArrayRead[AAnnotation] */
+const struct type type_array__AbstractArrayReadparser_nodes__AAnnotation = {
+2781,
+"AbstractArrayRead[AAnnotation]", /* class_name_string */
+10,
 0,
-&resolution_table_parser__ReduceAction8,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashMap[MClass, MClassType] */
+const struct type type_hash_collection__HashMapmodel__MClassmodel__MClassType = {
+176,
+"HashMap[MClass, MClassType]", /* class_name_string */
+2,
+0,
+&resolution_table_hash_collection__HashMapmodel__MClassmodel__MClassType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-644, /* ReduceAction8 */
+176, /* HashMap[MClass, MClassType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction8 = {
+const struct types resolution_table_hash_collection__HashMapmodel__MClassmodel__MClassType = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_model__MClass, /* MapRead#0: MClass */
+&type_hash_collection__HashMapKeysmodel__MClassmodel__MClassType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, MClassType] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, MClassType]] */
+&type_hash_collection__HashMapValuesmodel__MClassmodel__MClassType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, MClassType] */
+&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_nullable_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* nullable HashCollection#1: nullable HashMapNode[MClass, MClassType] */
+&type_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* HashCollection#1: HashMapNode[MClass, MClassType] */
+&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
 }
 };
-/* runtime type ReduceAction9 */
-const struct type type_parser__ReduceAction9 = {
-645,
-"ReduceAction9", /* class_name_string */
-3,
+/* runtime type ArrayMap[MClass, AType] */
+const struct type type_array__ArrayMapmodel__MClassparser_nodes__AType = {
+177,
+"ArrayMap[MClass, AType]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction9,
-4,
+&resolution_table_array__ArrayMapmodel__MClassparser_nodes__AType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-645, /* ReduceAction9 */
+177, /* ArrayMap[MClass, AType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction9 = {
+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, /* MapRead#0: MClass */
+&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]] */
+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 ReduceAction10 */
-const struct type type_parser__ReduceAction10 = {
-646,
-"ReduceAction10", /* class_name_string */
-3,
+/* runtime type ANodes[AExternCodeBlock] */
+const struct type type_parser_nodes__ANodesparser_nodes__AExternCodeBlock = {
+-1, /*CAST DEAD*/
+"ANodes[AExternCodeBlock]", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction10,
-4,
+&resolution_table_parser_nodes__ANodesparser_nodes__AExternCodeBlock,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-646, /* ReduceAction10 */
+1871, /* Collection[Prod] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+653, /* Collection[ANode] */
+2054, /* Collection[AExternCodeBlock] */
+2499, /* ANodes[AExternCodeBlock] */
 },
 };
-const struct types resolution_table_parser__ReduceAction10 = {
+const struct types resolution_table_parser_nodes__ANodesparser_nodes__AExternCodeBlock = {
 0, /* dummy */
 {
+&type_array__Arrayparser_nodes__AExternCodeBlock, /* Array[ANodes#0]: Array[AExternCodeBlock] */
+&type_parser_nodes__AExternCodeBlock, /* ANodes#0: AExternCodeBlock */
+&type_parser_nodes__AExternCodeBlock, /* Sequence#0: AExternCodeBlock */
+&type_parser_nodes__AExternCodeBlock, /* SimpleCollection#0: AExternCodeBlock */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_parser_nodes__AExternCodeBlock, /* RemovableCollection#0: AExternCodeBlock */
+&type_abstract_collection__Collectionparser_nodes__AExternCodeBlock, /* Collection[Sequence#0]: Collection[AExternCodeBlock] */
+&type_array__Arrayparser_nodes__AExternCodeBlock, /* Array[Sequence#0]: Array[AExternCodeBlock] */
+&type_abstract_collection__Collectionparser_nodes__AExternCodeBlock, /* Collection[SimpleCollection#0]: Collection[AExternCodeBlock] */
+&type_parser_nodes__AExternCodeBlock, /* Collection#0: AExternCodeBlock */
+&type_abstract_collection__Collectionparser_nodes__AExternCodeBlock, /* Collection[Collection#0]: Collection[AExternCodeBlock] */
+&type_parser_nodes__AExternCodeBlock, /* SequenceRead#0: AExternCodeBlock */
 }
 };
-/* runtime type ReduceAction11 */
-const struct type type_parser__ReduceAction11 = {
-647,
-"ReduceAction11", /* class_name_string */
-3,
+/* runtime type Collection[AExternCodeBlock] */
+const struct type type_abstract_collection__Collectionparser_nodes__AExternCodeBlock = {
+2054,
+"Collection[AExternCodeBlock]", /* class_name_string */
+6,
 0,
-&resolution_table_parser__ReduceAction11,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type ForeignCType */
+const struct type type_c__ForeignCType = {
+-1, /*CAST DEAD*/
+"ForeignCType", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-647, /* ReduceAction11 */
+178, /* ForeignType */
+695, /* ForeignCType */
 },
 };
-const struct types resolution_table_parser__ReduceAction11 = {
-0, /* dummy */
+/* runtime type ForeignType */
+const struct type type_ffi_base__ForeignType = {
+-1, /*CAST DEAD*/
+"ForeignType", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+178, /* ForeignType */
+},
 };
-/* runtime type ReduceAction12 */
-const struct type type_parser__ReduceAction12 = {
-648,
-"ReduceAction12", /* class_name_string */
+/* runtime type ForeignCppType */
+const struct type type_cpp__ForeignCppType = {
+696,
+"ForeignCppType", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction12,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-648, /* ReduceAction12 */
+178, /* ForeignType */
+696, /* ForeignCppType */
 },
 };
-const struct types resolution_table_parser__ReduceAction12 = {
-0, /* dummy */
+/* runtime type ScopeVisitor */
+const struct type type_scope__ScopeVisitor = {
+-1, /*CAST DEAD*/
+"ScopeVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+179, /* ScopeVisitor */
+},
 };
-/* runtime type ReduceAction13 */
-const struct type type_parser__ReduceAction13 = {
-649,
-"ReduceAction13", /* class_name_string */
+/* runtime type Variable */
+const struct type type_scope__Variable = {
+697,
+"Variable", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction13,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-649, /* ReduceAction13 */
+19, /* nullable Variable */
+697, /* Variable */
 },
 };
-const struct types resolution_table_parser__ReduceAction13 = {
-0, /* dummy */
-{
-}
+/* runtime type nullable Variable */
+const struct type type_nullable_scope__Variable = {
+19,
+"nullable Variable", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction14 */
-const struct type type_parser__ReduceAction14 = {
-650,
-"ReduceAction14", /* class_name_string */
-3,
+/* runtime type List[Scope] */
+const struct type type_list__Listscope__Scope = {
+2055,
+"List[Scope]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction14,
-4,
+&resolution_table_list__Listscope__Scope,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-650, /* ReduceAction14 */
+2055, /* List[Scope] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+698, /* Collection[Scope] */
 },
 };
-const struct types resolution_table_parser__ReduceAction14 = {
+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 */
+&type_nullable_list__ListNodescope__Scope, /* nullable ListNode[List#0]: nullable ListNode[Scope] */
+&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 ReduceAction15 */
-const struct type type_parser__ReduceAction15 = {
-651,
-"ReduceAction15", /* class_name_string */
-3,
+/* runtime type Collection[Scope] */
+const struct type type_abstract_collection__Collectionscope__Scope = {
+698,
+"Collection[Scope]", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction15,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type FlowVisitor */
+const struct type type_flow__FlowVisitor = {
+-1, /*CAST DEAD*/
+"FlowVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-651, /* ReduceAction15 */
+180, /* FlowVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction15 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction16 */
-const struct type type_parser__ReduceAction16 = {
-652,
-"ReduceAction16", /* class_name_string */
-3,
+/* runtime type Array[FlowContext] */
+const struct type type_array__Arrayflow__FlowContext = {
+2680,
+"Array[FlowContext]", /* class_name_string */
+6,
 0,
-&resolution_table_parser__ReduceAction16,
-4,
+&resolution_table_array__Arrayflow__FlowContext,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-652, /* ReduceAction16 */
+699, /* Collection[FlowContext] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2269, /* AbstractArrayRead[FlowContext] */
+2680, /* Array[FlowContext] */
+1838, /* AbstractArrayRead[Object] */
+-1, /* empty */
+2029, /* Array[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction16 = {
+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 ReduceAction17 */
-const struct type type_parser__ReduceAction17 = {
-653,
-"ReduceAction17", /* class_name_string */
-3,
+/* runtime type Collection[FlowContext] */
+const struct type type_abstract_collection__Collectionflow__FlowContext = {
+699,
+"Collection[FlowContext]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction17,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[FlowContext] */
+const struct type type_array__AbstractArrayReadflow__FlowContext = {
+2269,
+"AbstractArrayRead[FlowContext]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type LocalVarInitVisitor */
+const struct type type_local_var_init__LocalVarInitVisitor = {
+-1, /*CAST DEAD*/
+"LocalVarInitVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-653, /* ReduceAction17 */
+181, /* LocalVarInitVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction17 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction18 */
-const struct type type_parser__ReduceAction18 = {
-654,
-"ReduceAction18", /* class_name_string */
-3,
+/* runtime type HashSet[Variable] */
+const struct type type_hash_collection__HashSetscope__Variable = {
+2270,
+"HashSet[Variable]", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction18,
-4,
+&resolution_table_hash_collection__HashSetscope__Variable,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-654, /* ReduceAction18 */
+700, /* Collection[Variable] */
+655, /* Set[Object] */
+92, /* Collection[Object] */
+2270, /* HashSet[Variable] */
+-1, /* empty */
+1872, /* HashSet[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction18 = {
+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_nullable_hash_collection__HashSetNodescope__Variable, /* nullable HashCollection#1: nullable HashSetNode[Variable] */
+&type_hash_collection__HashSetNodescope__Variable, /* HashCollection#1: HashSetNode[Variable] */
+&type_nullable_scope__Variable, /* nullable HashCollection#0: nullable Variable */
 }
 };
-/* runtime type ReduceAction19 */
-const struct type type_parser__ReduceAction19 = {
-655,
-"ReduceAction19", /* class_name_string */
-3,
+/* runtime type Collection[Variable] */
+const struct type type_abstract_collection__Collectionscope__Variable = {
+700,
+"Collection[Variable]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction19,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AutoSuperInitVisitor */
+const struct type type_auto_super_init__AutoSuperInitVisitor = {
+-1, /*CAST DEAD*/
+"AutoSuperInitVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-655, /* ReduceAction19 */
+182, /* AutoSuperInitVisitor */
 },
 };
-const struct types resolution_table_parser__ReduceAction19 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction20 */
-const struct type type_parser__ReduceAction20 = {
-656,
-"ReduceAction20", /* class_name_string */
-3,
+/* runtime type Array[CallSite] */
+const struct type type_array__Arraytyping__CallSite = {
+2681,
+"Array[CallSite]", /* class_name_string */
+6,
 0,
-&resolution_table_parser__ReduceAction20,
-4,
+&resolution_table_array__Arraytyping__CallSite,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-656, /* ReduceAction20 */
+701, /* Collection[CallSite] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2271, /* AbstractArrayRead[CallSite] */
+2681, /* Array[CallSite] */
+1838, /* AbstractArrayRead[Object] */
+-1, /* empty */
+2029, /* Array[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction20 = {
+const struct types resolution_table_array__Arraytyping__CallSite = {
 0, /* dummy */
 {
+&type_array__Arraytyping__CallSite, /* Array[Array#0]: Array[CallSite] */
+&type_array__NativeArraytyping__CallSite, /* NativeArray[Array#0]: NativeArray[CallSite] */
+&type_typing__CallSite, /* Sequence#0: CallSite */
+&type_typing__CallSite, /* SimpleCollection#0: CallSite */
+&type_abstract_collection__Collectiontyping__CallSite, /* Collection[Array#0]: Collection[CallSite] */
+&type_typing__CallSite, /* Array#0: CallSite */
+&type_array__NativeArraytyping__CallSite, /* NativeArray[ArrayCapable#0]: NativeArray[CallSite] */
+&type_typing__CallSite, /* AbstractArray#0: CallSite */
+&type_typing__CallSite, /* RemovableCollection#0: CallSite */
+&type_abstract_collection__Collectiontyping__CallSite, /* Collection[Sequence#0]: Collection[CallSite] */
+&type_array__Arraytyping__CallSite, /* Array[Sequence#0]: Array[CallSite] */
+&type_abstract_collection__Collectiontyping__CallSite, /* Collection[SimpleCollection#0]: Collection[CallSite] */
+&type_typing__CallSite, /* Collection#0: CallSite */
+&type_abstract_collection__Collectiontyping__CallSite, /* Collection[Collection#0]: Collection[CallSite] */
+&type_typing__CallSite, /* SequenceRead#0: CallSite */
+&type_typing__CallSite, /* AbstractArrayRead#0: CallSite */
+&type_array__Arraytyping__CallSite, /* Array[AbstractArrayRead#0]: Array[CallSite] */
+NULL, /* empty (AbstractArray[AbstractArrayRead#0]: AbstractArray[CallSite] not a live type) */
+&type_array__ArrayIteratortyping__CallSite, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[CallSite] */
 }
 };
-/* runtime type ReduceAction21 */
-const struct type type_parser__ReduceAction21 = {
-657,
-"ReduceAction21", /* class_name_string */
-3,
+/* runtime type Collection[CallSite] */
+const struct type type_abstract_collection__Collectiontyping__CallSite = {
+701,
+"Collection[CallSite]", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[CallSite] */
+const struct type type_array__AbstractArrayReadtyping__CallSite = {
+2271,
+"AbstractArrayRead[CallSite]", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction21,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type CallSite */
+const struct type type_typing__CallSite = {
+183,
+"CallSite", /* class_name_string */
+2,
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-657, /* ReduceAction21 */
+183, /* CallSite */
 },
 };
-const struct types resolution_table_parser__ReduceAction21 = {
-0, /* dummy */
+/* runtime type ASTBuilder */
+const struct type type_astbuilder__ASTBuilder = {
+-1, /*CAST DEAD*/
+"ASTBuilder", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+184, /* ASTBuilder */
+},
 };
-/* runtime type ReduceAction22 */
-const struct type type_parser__ReduceAction22 = {
-658,
-"ReduceAction22", /* class_name_string */
-3,
+/* runtime type HashMap[FFILanguage, Set[NitniCallback]] */
+const struct type type_hash_collection__HashMapffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback = {
+185,
+"HashMap[FFILanguage, Set[NitniCallback]]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction22,
-4,
+&resolution_table_hash_collection__HashMapffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-658, /* ReduceAction22 */
+185, /* HashMap[FFILanguage, Set[NitniCallback]] */
 },
 };
-const struct types resolution_table_parser__ReduceAction22 = {
+const struct types resolution_table_hash_collection__HashMapffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback = {
 0, /* dummy */
 {
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_ffi_base__FFILanguage, /* MapRead#0: FFILanguage */
+&type_hash_collection__HashMapKeysffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[FFILanguage, Set[NitniCallback]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodeffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[FFILanguage, Set[NitniCallback]]] */
+&type_hash_collection__HashMapValuesffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[FFILanguage, Set[NitniCallback]] */
+&type_hash_collection__HashMapIteratorffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[FFILanguage, Set[NitniCallback]] */
+&type_ffi_base__FFILanguage, /* Map#0: FFILanguage */
+&type_abstract_collection__Setnitni_callbacks__NitniCallback, /* Map#1: Set[NitniCallback] */
+&type_hash_collection__HashMapNodeffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[FFILanguage, Set[NitniCallback]] */
+NULL, /* empty (Map[Map#0, Map#1]: Map[FFILanguage, Set[NitniCallback]] not a live type) */
+&type_abstract_collection__Setnitni_callbacks__NitniCallback, /* MapRead#1: Set[NitniCallback] */
+&type_ffi_base__FFILanguage, /* HashCollection#0: FFILanguage */
+&type_nullable_hash_collection__HashMapNodeffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback, /* nullable HashCollection#1: nullable HashMapNode[FFILanguage, Set[NitniCallback]] */
+&type_hash_collection__HashMapNodeffi_base__FFILanguageabstract_collection__Setnitni_callbacks__NitniCallback, /* HashCollection#1: HashMapNode[FFILanguage, Set[NitniCallback]] */
+&type_nullable_ffi_base__FFILanguage, /* nullable HashCollection#0: nullable FFILanguage */
 }
 };
-/* runtime type ReduceAction23 */
-const struct type type_parser__ReduceAction23 = {
-659,
-"ReduceAction23", /* class_name_string */
+/* runtime type POSet[MClass] */
+const struct type type_poset__POSetmodel__MClass = {
+2272,
+"POSet[MClass]", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction23,
-4,
+&resolution_table_poset__POSetmodel__MClass,
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-659, /* ReduceAction23 */
+20, /* nullable POSet[MClass] */
+2272, /* POSet[MClass] */
+92, /* Collection[Object] */
+99, /* Collection[nullable MClass] */
+1866, /* Collection[MClass] */
 },
 };
-const struct types resolution_table_parser__ReduceAction23 = {
+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 ReduceAction24 */
-const struct type type_parser__ReduceAction24 = {
-660,
-"ReduceAction24", /* class_name_string */
-3,
+/* runtime type nullable POSet[MClass] */
+const struct type type_nullable_poset__POSetmodel__MClass = {
+20,
+"nullable POSet[MClass]", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type MClassDefSorter */
+const struct type type_model__MClassDefSorter = {
+-1, /*CAST DEAD*/
+"MClassDefSorter", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction24,
-4,
+&resolution_table_model__MClassDefSorter,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-660, /* ReduceAction24 */
+186, /* MClassDefSorter */
 },
 };
-const struct types resolution_table_parser__ReduceAction24 = {
+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 ReduceAction25 */
-const struct type type_parser__ReduceAction25 = {
-661,
-"ReduceAction25", /* class_name_string */
-3,
+/* runtime type Frame */
+const struct type type_abstract_compiler__Frame = {
+-1, /*CAST DEAD*/
+"Frame", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction25,
-4,
+&resolution_table_abstract_compiler__Frame,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-661, /* ReduceAction25 */
+187, /* Frame */
 },
 };
-const struct types resolution_table_parser__ReduceAction25 = {
+const struct types resolution_table_abstract_compiler__Frame = {
 0, /* dummy */
 {
+&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
 }
 };
-/* runtime type ReduceAction26 */
-const struct type type_parser__ReduceAction26 = {
-662,
-"ReduceAction26", /* class_name_string */
+/* runtime type ExternCFile */
+const struct type type_c__ExternCFile = {
+702,
+"ExternCFile", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction26,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-662, /* ReduceAction26 */
+188, /* ExternFile */
+702, /* ExternCFile */
 },
 };
-const struct types resolution_table_parser__ReduceAction26 = {
-0, /* dummy */
-{
-}
+/* runtime type ExternFile */
+const struct type type_ffi_base__ExternFile = {
+188,
+"ExternFile", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction27 */
-const struct type type_parser__ReduceAction27 = {
-663,
-"ReduceAction27", /* class_name_string */
-3,
+/* runtime type Array[MParameterType] */
+const struct type type_array__Arraymodel__MParameterType = {
+2876,
+"Array[MParameterType]", /* class_name_string */
+17,
 0,
-&resolution_table_parser__ReduceAction27,
-4,
+&resolution_table_array__Arraymodel__MParameterType,
+20,
+{
+0, /* nullable Object */
+1, /* Object */
+11, /* nullable Array[nullable MType] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+101, /* Collection[nullable MType] */
+648, /* Collection[NitniCallback] */
+1838, /* AbstractArrayRead[Object] */
+1878, /* AbstractArrayRead[nullable MType] */
+2029, /* Array[Object] */
+2033, /* Collection[MType] */
+2273, /* Collection[MParameterType] */
+2260, /* Array[nullable MType] */
+2261, /* AbstractArrayRead[NitniCallback] */
+2824, /* AbstractArrayRead[MParameterType] */
+2675, /* Array[NitniCallback] */
+2778, /* AbstractArrayRead[MType] */
+2876, /* Array[MParameterType] */
+-1, /* empty */
+2863, /* 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 = {
+2273,
+"Collection[MParameterType]", /* class_name_string */
+11,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[MParameterType] */
+const struct type type_array__AbstractArrayReadmodel__MParameterType = {
+2824,
+"AbstractArrayRead[MParameterType]", /* class_name_string */
+14,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type MParameterType */
+const struct type type_model__MParameterType = {
+2274,
+"MParameterType", /* class_name_string */
+5,
+0,
+NULL, /*NO RESOLUTIONS*/
+7,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-663, /* ReduceAction27 */
+7, /* nullable NitniCallback */
+104, /* nullable MType */
+651, /* NitniCallback */
+2274, /* MParameterType */
+2034, /* MType */
 },
 };
-const struct types resolution_table_parser__ReduceAction27 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction28 */
-const struct type type_parser__ReduceAction28 = {
-664,
-"ReduceAction28", /* class_name_string */
-3,
+/* runtime type Layout[MType] */
+const struct type type_layout_builders__Layoutmodel__MType = {
+-1, /*CAST DEAD*/
+"Layout[MType]", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction28,
-4,
+&resolution_table_layout_builders__Layoutmodel__MType,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-664, /* ReduceAction28 */
+189, /* Layout[MType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction28 = {
+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 ReduceAction29 */
-const struct type type_parser__ReduceAction29 = {
-665,
-"ReduceAction29", /* class_name_string */
-3,
-0,
-&resolution_table_parser__ReduceAction29,
+/* runtime type PHLayout[MClassType, MType] */
+const struct type type_layout_builders__PHLayoutmodel__MClassTypemodel__MType = {
+1887,
+"PHLayout[MClassType, MType]", /* class_name_string */
 4,
+0,
+&resolution_table_layout_builders__PHLayoutmodel__MClassTypemodel__MType,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-665, /* ReduceAction29 */
+189, /* Layout[MType] */
+703, /* PHLayout[MType, MType] */
+1887, /* PHLayout[MClassType, MType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction29 = {
+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 ReduceAction30 */
-const struct type type_parser__ReduceAction30 = {
-666,
-"ReduceAction30", /* class_name_string */
+/* runtime type PHLayout[MType, MType] */
+const struct type type_layout_builders__PHLayoutmodel__MTypemodel__MType = {
+703,
+"PHLayout[MType, MType]", /* class_name_string */
 3,
 0,
-&resolution_table_parser__ReduceAction30,
+&resolution_table_layout_builders__PHLayoutmodel__MTypemodel__MType,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-666, /* ReduceAction30 */
+189, /* Layout[MType] */
+703, /* PHLayout[MType, MType] */
 },
 };
-const struct types resolution_table_parser__ReduceAction30 = {
+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 ReduceAction31 */
-const struct type type_parser__ReduceAction31 = {
-667,
-"ReduceAction31", /* class_name_string */
-3,
+/* runtime type Array[Match] */
+const struct type type_array__Arraystring_search__Match = {
+2682,
+"Array[Match]", /* class_name_string */
+6,
 0,
-&resolution_table_parser__ReduceAction31,
-4,
+&resolution_table_array__Arraystring_search__Match,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-667, /* ReduceAction31 */
+704, /* Collection[Match] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2275, /* AbstractArrayRead[Match] */
+2682, /* Array[Match] */
+1838, /* AbstractArrayRead[Object] */
+-1, /* empty */
+2029, /* Array[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction31 = {
+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 ReduceAction32 */
-const struct type type_parser__ReduceAction32 = {
-668,
-"ReduceAction32", /* class_name_string */
-3,
+/* runtime type Collection[Match] */
+const struct type type_abstract_collection__Collectionstring_search__Match = {
+704,
+"Collection[Match]", /* class_name_string */
+2,
 0,
-&resolution_table_parser__ReduceAction32,
-4,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[Match] */
+const struct type type_array__AbstractArrayReadstring_search__Match = {
+2275,
+"AbstractArrayRead[Match]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Match */
+const struct type type_string_search__Match = {
+190,
+"Match", /* class_name_string */
+2,
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-668, /* ReduceAction32 */
+190, /* Match */
 },
 };
-const struct types resolution_table_parser__ReduceAction32 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction33 */
-const struct type type_parser__ReduceAction33 = {
-669,
-"ReduceAction33", /* class_name_string */
-3,
+/* runtime type Array[ReduceAction] */
+const struct type type_array__Arrayparser__ReduceAction = {
+2683,
+"Array[ReduceAction]", /* class_name_string */
+6,
 0,
-&resolution_table_parser__ReduceAction33,
-4,
+&resolution_table_array__Arrayparser__ReduceAction,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-669, /* ReduceAction33 */
+705, /* Collection[ReduceAction] */
+91, /* SequenceRead[nullable Object] */
+92, /* Collection[Object] */
+2276, /* AbstractArrayRead[ReduceAction] */
+2683, /* Array[ReduceAction] */
+1838, /* AbstractArrayRead[Object] */
+-1, /* empty */
+2029, /* Array[Object] */
 },
 };
-const struct types resolution_table_parser__ReduceAction33 = {
+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 ReduceAction34 */
-const struct type type_parser__ReduceAction34 = {
-670,
-"ReduceAction34", /* class_name_string */
-3,
+/* runtime type Collection[ReduceAction] */
+const struct type type_abstract_collection__Collectionparser__ReduceAction = {
+705,
+"Collection[ReduceAction]", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[ReduceAction] */
+const struct type type_array__AbstractArrayReadparser__ReduceAction = {
+2276,
+"AbstractArrayRead[ReduceAction]", /* class_name_string */
+5,
 0,
-&resolution_table_parser__ReduceAction34,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type ReduceAction0 */
+const struct type type_parser__ReduceAction0 = {
+-1, /*CAST DEAD*/
+"ReduceAction0", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-670, /* ReduceAction34 */
+191, /* ReduceAction */
+706, /* ReduceAction0 */
 },
 };
-const struct types resolution_table_parser__ReduceAction34 = {
-0, /* dummy */
-{
-}
+/* runtime type ReduceAction */
+const struct type type_parser__ReduceAction = {
+191,
+"ReduceAction", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction35 */
-const struct type type_parser__ReduceAction35 = {
-671,
-"ReduceAction35", /* class_name_string */
-3,
+/* runtime type ReduceAction1 */
+const struct type type_parser__ReduceAction1 = {
+-1, /*CAST DEAD*/
+"ReduceAction1", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction35,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-671, /* ReduceAction35 */
+191, /* ReduceAction */
+707, /* ReduceAction1 */
 },
 };
-const struct types resolution_table_parser__ReduceAction35 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction36 */
-const struct type type_parser__ReduceAction36 = {
-672,
-"ReduceAction36", /* class_name_string */
-3,
+/* runtime type ReduceAction2 */
+const struct type type_parser__ReduceAction2 = {
+-1, /*CAST DEAD*/
+"ReduceAction2", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction36,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-672, /* ReduceAction36 */
+191, /* ReduceAction */
+708, /* ReduceAction2 */
 },
 };
-const struct types resolution_table_parser__ReduceAction36 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction37 */
-const struct type type_parser__ReduceAction37 = {
-673,
-"ReduceAction37", /* class_name_string */
-3,
+/* runtime type ReduceAction3 */
+const struct type type_parser__ReduceAction3 = {
+-1, /*CAST DEAD*/
+"ReduceAction3", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction37,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-673, /* ReduceAction37 */
+191, /* ReduceAction */
+709, /* ReduceAction3 */
 },
 };
-const struct types resolution_table_parser__ReduceAction37 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction38 */
-const struct type type_parser__ReduceAction38 = {
-674,
-"ReduceAction38", /* class_name_string */
-3,
+/* runtime type ReduceAction4 */
+const struct type type_parser__ReduceAction4 = {
+-1, /*CAST DEAD*/
+"ReduceAction4", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction38,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-674, /* ReduceAction38 */
+191, /* ReduceAction */
+710, /* ReduceAction4 */
 },
 };
-const struct types resolution_table_parser__ReduceAction38 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction39 */
-const struct type type_parser__ReduceAction39 = {
-675,
-"ReduceAction39", /* class_name_string */
-3,
+/* runtime type ReduceAction5 */
+const struct type type_parser__ReduceAction5 = {
+-1, /*CAST DEAD*/
+"ReduceAction5", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction39,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-675, /* ReduceAction39 */
+191, /* ReduceAction */
+711, /* ReduceAction5 */
 },
 };
-const struct types resolution_table_parser__ReduceAction39 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction40 */
-const struct type type_parser__ReduceAction40 = {
-676,
-"ReduceAction40", /* class_name_string */
-3,
+/* runtime type ReduceAction6 */
+const struct type type_parser__ReduceAction6 = {
+-1, /*CAST DEAD*/
+"ReduceAction6", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction40,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-676, /* ReduceAction40 */
+191, /* ReduceAction */
+712, /* ReduceAction6 */
 },
 };
-const struct types resolution_table_parser__ReduceAction40 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction41 */
-const struct type type_parser__ReduceAction41 = {
-677,
-"ReduceAction41", /* class_name_string */
-3,
+/* runtime type ReduceAction7 */
+const struct type type_parser__ReduceAction7 = {
+-1, /*CAST DEAD*/
+"ReduceAction7", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction41,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-677, /* ReduceAction41 */
+191, /* ReduceAction */
+713, /* ReduceAction7 */
 },
 };
-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 ReduceAction8 */
+const struct type type_parser__ReduceAction8 = {
+-1, /*CAST DEAD*/
+"ReduceAction8", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction42,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-678, /* ReduceAction42 */
+191, /* ReduceAction */
+714, /* ReduceAction8 */
 },
 };
-const struct types resolution_table_parser__ReduceAction42 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction43 */
-const struct type type_parser__ReduceAction43 = {
-679,
-"ReduceAction43", /* class_name_string */
-3,
+/* runtime type ReduceAction9 */
+const struct type type_parser__ReduceAction9 = {
+-1, /*CAST DEAD*/
+"ReduceAction9", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction43,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-679, /* ReduceAction43 */
+191, /* ReduceAction */
+715, /* ReduceAction9 */
 },
 };
-const struct types resolution_table_parser__ReduceAction43 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction44 */
-const struct type type_parser__ReduceAction44 = {
-680,
-"ReduceAction44", /* class_name_string */
-3,
+/* runtime type ReduceAction10 */
+const struct type type_parser__ReduceAction10 = {
+-1, /*CAST DEAD*/
+"ReduceAction10", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction44,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-680, /* ReduceAction44 */
+191, /* ReduceAction */
+716, /* ReduceAction10 */
 },
 };
-const struct types resolution_table_parser__ReduceAction44 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction45 */
-const struct type type_parser__ReduceAction45 = {
-681,
-"ReduceAction45", /* class_name_string */
-3,
+/* runtime type ReduceAction11 */
+const struct type type_parser__ReduceAction11 = {
+-1, /*CAST DEAD*/
+"ReduceAction11", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction45,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-681, /* ReduceAction45 */
+191, /* ReduceAction */
+717, /* ReduceAction11 */
 },
 };
-const struct types resolution_table_parser__ReduceAction45 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction46 */
-const struct type type_parser__ReduceAction46 = {
-682,
-"ReduceAction46", /* class_name_string */
-3,
+/* runtime type ReduceAction12 */
+const struct type type_parser__ReduceAction12 = {
+-1, /*CAST DEAD*/
+"ReduceAction12", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction46,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-682, /* ReduceAction46 */
+191, /* ReduceAction */
+718, /* ReduceAction12 */
 },
 };
-const struct types resolution_table_parser__ReduceAction46 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction47 */
-const struct type type_parser__ReduceAction47 = {
-683,
-"ReduceAction47", /* class_name_string */
-3,
+/* runtime type ReduceAction13 */
+const struct type type_parser__ReduceAction13 = {
+-1, /*CAST DEAD*/
+"ReduceAction13", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction47,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-683, /* ReduceAction47 */
+191, /* ReduceAction */
+719, /* ReduceAction13 */
 },
 };
-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 ReduceAction14 */
+const struct type type_parser__ReduceAction14 = {
+-1, /*CAST DEAD*/
+"ReduceAction14", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction48,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-684, /* ReduceAction48 */
+191, /* ReduceAction */
+720, /* ReduceAction14 */
 },
 };
-const struct types resolution_table_parser__ReduceAction48 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction49 */
-const struct type type_parser__ReduceAction49 = {
-685,
-"ReduceAction49", /* class_name_string */
-3,
+/* runtime type ReduceAction15 */
+const struct type type_parser__ReduceAction15 = {
+-1, /*CAST DEAD*/
+"ReduceAction15", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction49,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-685, /* ReduceAction49 */
+191, /* ReduceAction */
+721, /* ReduceAction15 */
 },
 };
-const struct types resolution_table_parser__ReduceAction49 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction50 */
-const struct type type_parser__ReduceAction50 = {
-686,
-"ReduceAction50", /* class_name_string */
-3,
+/* runtime type ReduceAction16 */
+const struct type type_parser__ReduceAction16 = {
+-1, /*CAST DEAD*/
+"ReduceAction16", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction50,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-686, /* ReduceAction50 */
+191, /* ReduceAction */
+722, /* ReduceAction16 */
 },
 };
-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 ReduceAction17 */
+const struct type type_parser__ReduceAction17 = {
+-1, /*CAST DEAD*/
+"ReduceAction17", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction51,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-687, /* ReduceAction51 */
+191, /* ReduceAction */
+723, /* ReduceAction17 */
 },
 };
-const struct types resolution_table_parser__ReduceAction51 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction52 */
-const struct type type_parser__ReduceAction52 = {
-688,
-"ReduceAction52", /* class_name_string */
-3,
+/* runtime type ReduceAction18 */
+const struct type type_parser__ReduceAction18 = {
+-1, /*CAST DEAD*/
+"ReduceAction18", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction52,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-688, /* ReduceAction52 */
+191, /* ReduceAction */
+724, /* ReduceAction18 */
 },
 };
-const struct types resolution_table_parser__ReduceAction52 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction53 */
-const struct type type_parser__ReduceAction53 = {
-689,
-"ReduceAction53", /* class_name_string */
-3,
+/* runtime type ReduceAction19 */
+const struct type type_parser__ReduceAction19 = {
+-1, /*CAST DEAD*/
+"ReduceAction19", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction53,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-689, /* ReduceAction53 */
+191, /* ReduceAction */
+725, /* ReduceAction19 */
 },
 };
-const struct types resolution_table_parser__ReduceAction53 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction54 */
-const struct type type_parser__ReduceAction54 = {
-690,
-"ReduceAction54", /* class_name_string */
-3,
+/* runtime type ReduceAction20 */
+const struct type type_parser__ReduceAction20 = {
+-1, /*CAST DEAD*/
+"ReduceAction20", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction54,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-690, /* ReduceAction54 */
+191, /* ReduceAction */
+726, /* ReduceAction20 */
 },
 };
-const struct types resolution_table_parser__ReduceAction54 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction55 */
-const struct type type_parser__ReduceAction55 = {
-691,
-"ReduceAction55", /* class_name_string */
-3,
+/* runtime type ReduceAction21 */
+const struct type type_parser__ReduceAction21 = {
+-1, /*CAST DEAD*/
+"ReduceAction21", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction55,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-691, /* ReduceAction55 */
+191, /* ReduceAction */
+727, /* ReduceAction21 */
 },
 };
-const struct types resolution_table_parser__ReduceAction55 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction56 */
-const struct type type_parser__ReduceAction56 = {
-692,
-"ReduceAction56", /* class_name_string */
-3,
+/* runtime type ReduceAction22 */
+const struct type type_parser__ReduceAction22 = {
+-1, /*CAST DEAD*/
+"ReduceAction22", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction56,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-692, /* ReduceAction56 */
+191, /* ReduceAction */
+728, /* ReduceAction22 */
 },
 };
-const struct types resolution_table_parser__ReduceAction56 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction57 */
-const struct type type_parser__ReduceAction57 = {
-693,
-"ReduceAction57", /* class_name_string */
-3,
+/* runtime type ReduceAction23 */
+const struct type type_parser__ReduceAction23 = {
+-1, /*CAST DEAD*/
+"ReduceAction23", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction57,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-693, /* ReduceAction57 */
+191, /* ReduceAction */
+729, /* ReduceAction23 */
 },
 };
-const struct types resolution_table_parser__ReduceAction57 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction58 */
-const struct type type_parser__ReduceAction58 = {
-694,
-"ReduceAction58", /* class_name_string */
-3,
+/* runtime type ReduceAction24 */
+const struct type type_parser__ReduceAction24 = {
+-1, /*CAST DEAD*/
+"ReduceAction24", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction58,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-694, /* ReduceAction58 */
+191, /* ReduceAction */
+730, /* ReduceAction24 */
 },
 };
-const struct types resolution_table_parser__ReduceAction58 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction59 */
-const struct type type_parser__ReduceAction59 = {
-695,
-"ReduceAction59", /* class_name_string */
-3,
+/* runtime type ReduceAction25 */
+const struct type type_parser__ReduceAction25 = {
+-1, /*CAST DEAD*/
+"ReduceAction25", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction59,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-695, /* ReduceAction59 */
+191, /* ReduceAction */
+731, /* ReduceAction25 */
 },
 };
-const struct types resolution_table_parser__ReduceAction59 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction60 */
-const struct type type_parser__ReduceAction60 = {
-696,
-"ReduceAction60", /* class_name_string */
-3,
+/* runtime type ReduceAction26 */
+const struct type type_parser__ReduceAction26 = {
+-1, /*CAST DEAD*/
+"ReduceAction26", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction60,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-696, /* ReduceAction60 */
+191, /* ReduceAction */
+732, /* ReduceAction26 */
 },
 };
-const struct types resolution_table_parser__ReduceAction60 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction61 */
-const struct type type_parser__ReduceAction61 = {
-697,
-"ReduceAction61", /* class_name_string */
-3,
+/* runtime type ReduceAction27 */
+const struct type type_parser__ReduceAction27 = {
+-1, /*CAST DEAD*/
+"ReduceAction27", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction61,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-697, /* ReduceAction61 */
+191, /* ReduceAction */
+733, /* ReduceAction27 */
 },
 };
-const struct types resolution_table_parser__ReduceAction61 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction62 */
-const struct type type_parser__ReduceAction62 = {
-698,
-"ReduceAction62", /* class_name_string */
-3,
+/* runtime type ReduceAction28 */
+const struct type type_parser__ReduceAction28 = {
+-1, /*CAST DEAD*/
+"ReduceAction28", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction62,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-698, /* ReduceAction62 */
+191, /* ReduceAction */
+734, /* ReduceAction28 */
 },
 };
-const struct types resolution_table_parser__ReduceAction62 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction63 */
-const struct type type_parser__ReduceAction63 = {
-699,
-"ReduceAction63", /* class_name_string */
-3,
+/* runtime type ReduceAction29 */
+const struct type type_parser__ReduceAction29 = {
+-1, /*CAST DEAD*/
+"ReduceAction29", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction63,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-699, /* ReduceAction63 */
+191, /* ReduceAction */
+735, /* ReduceAction29 */
 },
 };
-const struct types resolution_table_parser__ReduceAction63 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction64 */
-const struct type type_parser__ReduceAction64 = {
-700,
-"ReduceAction64", /* class_name_string */
-3,
+/* runtime type ReduceAction30 */
+const struct type type_parser__ReduceAction30 = {
+-1, /*CAST DEAD*/
+"ReduceAction30", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction64,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-700, /* ReduceAction64 */
+191, /* ReduceAction */
+736, /* ReduceAction30 */
 },
 };
-const struct types resolution_table_parser__ReduceAction64 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction65 */
-const struct type type_parser__ReduceAction65 = {
-701,
-"ReduceAction65", /* class_name_string */
-3,
+/* runtime type ReduceAction31 */
+const struct type type_parser__ReduceAction31 = {
+-1, /*CAST DEAD*/
+"ReduceAction31", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction65,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-701, /* ReduceAction65 */
+191, /* ReduceAction */
+737, /* ReduceAction31 */
 },
 };
-const struct types resolution_table_parser__ReduceAction65 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction66 */
-const struct type type_parser__ReduceAction66 = {
-702,
-"ReduceAction66", /* class_name_string */
-3,
+/* runtime type ReduceAction32 */
+const struct type type_parser__ReduceAction32 = {
+-1, /*CAST DEAD*/
+"ReduceAction32", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction66,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-702, /* ReduceAction66 */
+191, /* ReduceAction */
+738, /* ReduceAction32 */
 },
 };
-const struct types resolution_table_parser__ReduceAction66 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction67 */
-const struct type type_parser__ReduceAction67 = {
-703,
-"ReduceAction67", /* class_name_string */
-3,
+/* runtime type ReduceAction33 */
+const struct type type_parser__ReduceAction33 = {
+-1, /*CAST DEAD*/
+"ReduceAction33", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction67,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-703, /* ReduceAction67 */
+191, /* ReduceAction */
+739, /* ReduceAction33 */
 },
 };
-const struct types resolution_table_parser__ReduceAction67 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction68 */
-const struct type type_parser__ReduceAction68 = {
-704,
-"ReduceAction68", /* class_name_string */
-3,
+/* runtime type ReduceAction34 */
+const struct type type_parser__ReduceAction34 = {
+-1, /*CAST DEAD*/
+"ReduceAction34", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction68,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-704, /* ReduceAction68 */
+191, /* ReduceAction */
+740, /* ReduceAction34 */
 },
 };
-const struct types resolution_table_parser__ReduceAction68 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction69 */
-const struct type type_parser__ReduceAction69 = {
-705,
-"ReduceAction69", /* class_name_string */
-3,
+/* runtime type ReduceAction35 */
+const struct type type_parser__ReduceAction35 = {
+-1, /*CAST DEAD*/
+"ReduceAction35", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction69,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-705, /* ReduceAction69 */
+191, /* ReduceAction */
+741, /* ReduceAction35 */
 },
 };
-const struct types resolution_table_parser__ReduceAction69 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction70 */
-const struct type type_parser__ReduceAction70 = {
-706,
-"ReduceAction70", /* class_name_string */
-3,
+/* runtime type ReduceAction36 */
+const struct type type_parser__ReduceAction36 = {
+-1, /*CAST DEAD*/
+"ReduceAction36", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction70,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-706, /* ReduceAction70 */
+191, /* ReduceAction */
+742, /* ReduceAction36 */
 },
 };
-const struct types resolution_table_parser__ReduceAction70 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction71 */
-const struct type type_parser__ReduceAction71 = {
-707,
-"ReduceAction71", /* class_name_string */
-3,
+/* runtime type ReduceAction37 */
+const struct type type_parser__ReduceAction37 = {
+-1, /*CAST DEAD*/
+"ReduceAction37", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction71,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-707, /* ReduceAction71 */
+191, /* ReduceAction */
+743, /* ReduceAction37 */
 },
 };
-const struct types resolution_table_parser__ReduceAction71 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction73 */
-const struct type type_parser__ReduceAction73 = {
-708,
-"ReduceAction73", /* class_name_string */
-3,
+/* runtime type ReduceAction38 */
+const struct type type_parser__ReduceAction38 = {
+-1, /*CAST DEAD*/
+"ReduceAction38", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction73,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-708, /* ReduceAction73 */
+191, /* ReduceAction */
+744, /* ReduceAction38 */
 },
 };
-const struct types resolution_table_parser__ReduceAction73 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction74 */
-const struct type type_parser__ReduceAction74 = {
-709,
-"ReduceAction74", /* class_name_string */
-3,
+/* runtime type ReduceAction39 */
+const struct type type_parser__ReduceAction39 = {
+-1, /*CAST DEAD*/
+"ReduceAction39", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction74,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-709, /* ReduceAction74 */
+191, /* ReduceAction */
+745, /* ReduceAction39 */
 },
 };
-const struct types resolution_table_parser__ReduceAction74 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction75 */
-const struct type type_parser__ReduceAction75 = {
-710,
-"ReduceAction75", /* class_name_string */
-3,
+/* runtime type ReduceAction40 */
+const struct type type_parser__ReduceAction40 = {
+-1, /*CAST DEAD*/
+"ReduceAction40", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction75,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-710, /* ReduceAction75 */
+191, /* ReduceAction */
+746, /* ReduceAction40 */
 },
 };
-const struct types resolution_table_parser__ReduceAction75 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction76 */
-const struct type type_parser__ReduceAction76 = {
-711,
-"ReduceAction76", /* class_name_string */
-3,
+/* runtime type ReduceAction41 */
+const struct type type_parser__ReduceAction41 = {
+-1, /*CAST DEAD*/
+"ReduceAction41", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction76,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-711, /* ReduceAction76 */
+191, /* ReduceAction */
+747, /* ReduceAction41 */
 },
 };
-const struct types resolution_table_parser__ReduceAction76 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction78 */
-const struct type type_parser__ReduceAction78 = {
-712,
-"ReduceAction78", /* class_name_string */
-3,
+/* runtime type ReduceAction42 */
+const struct type type_parser__ReduceAction42 = {
+-1, /*CAST DEAD*/
+"ReduceAction42", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction78,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-712, /* ReduceAction78 */
+191, /* ReduceAction */
+748, /* ReduceAction42 */
 },
 };
-const struct types resolution_table_parser__ReduceAction78 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction79 */
-const struct type type_parser__ReduceAction79 = {
-713,
-"ReduceAction79", /* class_name_string */
-3,
+/* runtime type ReduceAction43 */
+const struct type type_parser__ReduceAction43 = {
+-1, /*CAST DEAD*/
+"ReduceAction43", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction79,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-713, /* ReduceAction79 */
+191, /* ReduceAction */
+749, /* ReduceAction43 */
 },
 };
-const struct types resolution_table_parser__ReduceAction79 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction81 */
-const struct type type_parser__ReduceAction81 = {
-714,
-"ReduceAction81", /* class_name_string */
-3,
+/* runtime type ReduceAction44 */
+const struct type type_parser__ReduceAction44 = {
+-1, /*CAST DEAD*/
+"ReduceAction44", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction81,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-714, /* ReduceAction81 */
+191, /* ReduceAction */
+750, /* ReduceAction44 */
 },
 };
-const struct types resolution_table_parser__ReduceAction81 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction82 */
-const struct type type_parser__ReduceAction82 = {
-715,
-"ReduceAction82", /* class_name_string */
-3,
+/* runtime type ReduceAction45 */
+const struct type type_parser__ReduceAction45 = {
+-1, /*CAST DEAD*/
+"ReduceAction45", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction82,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-715, /* ReduceAction82 */
+191, /* ReduceAction */
+751, /* ReduceAction45 */
 },
 };
-const struct types resolution_table_parser__ReduceAction82 = {
-0, /* dummy */
+/* runtime type ReduceAction46 */
+const struct type type_parser__ReduceAction46 = {
+-1, /*CAST DEAD*/
+"ReduceAction46", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+4,
 {
-}
+0, /* nullable Object */
+1, /* Object */
+191, /* ReduceAction */
+752, /* ReduceAction46 */
+},
 };
-/* runtime type ReduceAction83 */
-const struct type type_parser__ReduceAction83 = {
-716,
-"ReduceAction83", /* class_name_string */
-3,
+/* runtime type ReduceAction47 */
+const struct type type_parser__ReduceAction47 = {
+-1, /*CAST DEAD*/
+"ReduceAction47", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction83,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-716, /* ReduceAction83 */
+191, /* ReduceAction */
+753, /* ReduceAction47 */
 },
 };
-const struct types resolution_table_parser__ReduceAction83 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction84 */
-const struct type type_parser__ReduceAction84 = {
-717,
-"ReduceAction84", /* class_name_string */
-3,
+/* runtime type ReduceAction48 */
+const struct type type_parser__ReduceAction48 = {
+-1, /*CAST DEAD*/
+"ReduceAction48", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction84,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-717, /* ReduceAction84 */
+191, /* ReduceAction */
+754, /* ReduceAction48 */
 },
 };
-const struct types resolution_table_parser__ReduceAction84 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction86 */
-const struct type type_parser__ReduceAction86 = {
-718,
-"ReduceAction86", /* class_name_string */
-3,
+/* runtime type ReduceAction49 */
+const struct type type_parser__ReduceAction49 = {
+-1, /*CAST DEAD*/
+"ReduceAction49", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction86,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-718, /* ReduceAction86 */
+191, /* ReduceAction */
+755, /* ReduceAction49 */
 },
 };
-const struct types resolution_table_parser__ReduceAction86 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction87 */
-const struct type type_parser__ReduceAction87 = {
-719,
-"ReduceAction87", /* class_name_string */
-3,
+/* runtime type ReduceAction50 */
+const struct type type_parser__ReduceAction50 = {
+-1, /*CAST DEAD*/
+"ReduceAction50", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction87,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-719, /* ReduceAction87 */
+191, /* ReduceAction */
+756, /* ReduceAction50 */
 },
 };
-const struct types resolution_table_parser__ReduceAction87 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction89 */
-const struct type type_parser__ReduceAction89 = {
-720,
-"ReduceAction89", /* class_name_string */
-3,
+/* runtime type ReduceAction51 */
+const struct type type_parser__ReduceAction51 = {
+-1, /*CAST DEAD*/
+"ReduceAction51", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction89,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-720, /* ReduceAction89 */
+191, /* ReduceAction */
+757, /* ReduceAction51 */
 },
 };
-const struct types resolution_table_parser__ReduceAction89 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction90 */
-const struct type type_parser__ReduceAction90 = {
-721,
-"ReduceAction90", /* class_name_string */
-3,
+/* runtime type ReduceAction52 */
+const struct type type_parser__ReduceAction52 = {
+-1, /*CAST DEAD*/
+"ReduceAction52", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction90,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-721, /* ReduceAction90 */
+191, /* ReduceAction */
+758, /* ReduceAction52 */
 },
 };
-const struct types resolution_table_parser__ReduceAction90 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction91 */
-const struct type type_parser__ReduceAction91 = {
-722,
-"ReduceAction91", /* class_name_string */
-3,
+/* runtime type ReduceAction53 */
+const struct type type_parser__ReduceAction53 = {
+-1, /*CAST DEAD*/
+"ReduceAction53", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction91,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-722, /* ReduceAction91 */
+191, /* ReduceAction */
+759, /* ReduceAction53 */
 },
 };
-const struct types resolution_table_parser__ReduceAction91 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction92 */
-const struct type type_parser__ReduceAction92 = {
-723,
-"ReduceAction92", /* class_name_string */
-3,
+/* runtime type ReduceAction54 */
+const struct type type_parser__ReduceAction54 = {
+-1, /*CAST DEAD*/
+"ReduceAction54", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction92,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-723, /* ReduceAction92 */
+191, /* ReduceAction */
+760, /* ReduceAction54 */
 },
 };
-const struct types resolution_table_parser__ReduceAction92 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction94 */
-const struct type type_parser__ReduceAction94 = {
-724,
-"ReduceAction94", /* class_name_string */
-3,
+/* runtime type ReduceAction55 */
+const struct type type_parser__ReduceAction55 = {
+-1, /*CAST DEAD*/
+"ReduceAction55", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction94,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-724, /* ReduceAction94 */
+191, /* ReduceAction */
+761, /* ReduceAction55 */
 },
 };
-const struct types resolution_table_parser__ReduceAction94 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction95 */
-const struct type type_parser__ReduceAction95 = {
-725,
-"ReduceAction95", /* class_name_string */
-3,
+/* runtime type ReduceAction56 */
+const struct type type_parser__ReduceAction56 = {
+-1, /*CAST DEAD*/
+"ReduceAction56", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction95,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-725, /* ReduceAction95 */
+191, /* ReduceAction */
+762, /* ReduceAction56 */
 },
 };
-const struct types resolution_table_parser__ReduceAction95 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction97 */
-const struct type type_parser__ReduceAction97 = {
-726,
-"ReduceAction97", /* class_name_string */
-3,
+/* runtime type ReduceAction57 */
+const struct type type_parser__ReduceAction57 = {
+-1, /*CAST DEAD*/
+"ReduceAction57", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction97,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-726, /* ReduceAction97 */
+191, /* ReduceAction */
+763, /* ReduceAction57 */
 },
 };
-const struct types resolution_table_parser__ReduceAction97 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction98 */
-const struct type type_parser__ReduceAction98 = {
-727,
-"ReduceAction98", /* class_name_string */
-3,
+/* runtime type ReduceAction58 */
+const struct type type_parser__ReduceAction58 = {
+-1, /*CAST DEAD*/
+"ReduceAction58", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction98,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-727, /* ReduceAction98 */
+191, /* ReduceAction */
+764, /* ReduceAction58 */
 },
 };
-const struct types resolution_table_parser__ReduceAction98 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction99 */
-const struct type type_parser__ReduceAction99 = {
-728,
-"ReduceAction99", /* class_name_string */
-3,
+/* runtime type ReduceAction59 */
+const struct type type_parser__ReduceAction59 = {
+-1, /*CAST DEAD*/
+"ReduceAction59", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction99,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-728, /* ReduceAction99 */
+191, /* ReduceAction */
+765, /* ReduceAction59 */
 },
 };
-const struct types resolution_table_parser__ReduceAction99 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction100 */
-const struct type type_parser__ReduceAction100 = {
-729,
-"ReduceAction100", /* class_name_string */
-3,
+/* runtime type ReduceAction60 */
+const struct type type_parser__ReduceAction60 = {
+-1, /*CAST DEAD*/
+"ReduceAction60", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction100,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-729, /* ReduceAction100 */
+191, /* ReduceAction */
+766, /* ReduceAction60 */
 },
 };
-const struct types resolution_table_parser__ReduceAction100 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction102 */
-const struct type type_parser__ReduceAction102 = {
-730,
-"ReduceAction102", /* class_name_string */
-3,
+/* runtime type ReduceAction61 */
+const struct type type_parser__ReduceAction61 = {
+-1, /*CAST DEAD*/
+"ReduceAction61", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction102,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-730, /* ReduceAction102 */
+191, /* ReduceAction */
+767, /* ReduceAction61 */
 },
 };
-const struct types resolution_table_parser__ReduceAction102 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction103 */
-const struct type type_parser__ReduceAction103 = {
-731,
-"ReduceAction103", /* class_name_string */
-3,
+/* runtime type ReduceAction62 */
+const struct type type_parser__ReduceAction62 = {
+-1, /*CAST DEAD*/
+"ReduceAction62", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction103,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-731, /* ReduceAction103 */
+191, /* ReduceAction */
+768, /* ReduceAction62 */
 },
 };
-const struct types resolution_table_parser__ReduceAction103 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction105 */
-const struct type type_parser__ReduceAction105 = {
-732,
-"ReduceAction105", /* class_name_string */
-3,
+/* runtime type ReduceAction63 */
+const struct type type_parser__ReduceAction63 = {
+-1, /*CAST DEAD*/
+"ReduceAction63", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction105,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-732, /* ReduceAction105 */
+191, /* ReduceAction */
+769, /* ReduceAction63 */
 },
 };
-const struct types resolution_table_parser__ReduceAction105 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction106 */
-const struct type type_parser__ReduceAction106 = {
-733,
-"ReduceAction106", /* class_name_string */
-3,
+/* runtime type ReduceAction64 */
+const struct type type_parser__ReduceAction64 = {
+-1, /*CAST DEAD*/
+"ReduceAction64", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction106,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-733, /* ReduceAction106 */
+191, /* ReduceAction */
+770, /* ReduceAction64 */
 },
 };
-const struct types resolution_table_parser__ReduceAction106 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction107 */
-const struct type type_parser__ReduceAction107 = {
-734,
-"ReduceAction107", /* class_name_string */
-3,
+/* runtime type ReduceAction65 */
+const struct type type_parser__ReduceAction65 = {
+-1, /*CAST DEAD*/
+"ReduceAction65", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction107,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-734, /* ReduceAction107 */
+191, /* ReduceAction */
+771, /* ReduceAction65 */
 },
 };
-const struct types resolution_table_parser__ReduceAction107 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction108 */
-const struct type type_parser__ReduceAction108 = {
-735,
-"ReduceAction108", /* class_name_string */
-3,
+/* runtime type ReduceAction66 */
+const struct type type_parser__ReduceAction66 = {
+-1, /*CAST DEAD*/
+"ReduceAction66", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction108,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-735, /* ReduceAction108 */
+191, /* ReduceAction */
+772, /* ReduceAction66 */
 },
 };
-const struct types resolution_table_parser__ReduceAction108 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction110 */
-const struct type type_parser__ReduceAction110 = {
-736,
-"ReduceAction110", /* class_name_string */
-3,
+/* runtime type ReduceAction67 */
+const struct type type_parser__ReduceAction67 = {
+-1, /*CAST DEAD*/
+"ReduceAction67", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction110,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-736, /* ReduceAction110 */
+191, /* ReduceAction */
+773, /* ReduceAction67 */
 },
 };
-const struct types resolution_table_parser__ReduceAction110 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction111 */
-const struct type type_parser__ReduceAction111 = {
-737,
-"ReduceAction111", /* class_name_string */
-3,
+/* runtime type ReduceAction68 */
+const struct type type_parser__ReduceAction68 = {
+-1, /*CAST DEAD*/
+"ReduceAction68", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction111,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-737, /* ReduceAction111 */
+191, /* ReduceAction */
+774, /* ReduceAction68 */
 },
 };
-const struct types resolution_table_parser__ReduceAction111 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction113 */
-const struct type type_parser__ReduceAction113 = {
-738,
-"ReduceAction113", /* class_name_string */
-3,
+/* runtime type ReduceAction69 */
+const struct type type_parser__ReduceAction69 = {
+-1, /*CAST DEAD*/
+"ReduceAction69", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction113,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-738, /* ReduceAction113 */
+191, /* ReduceAction */
+775, /* ReduceAction69 */
 },
 };
-const struct types resolution_table_parser__ReduceAction113 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction114 */
-const struct type type_parser__ReduceAction114 = {
-739,
-"ReduceAction114", /* class_name_string */
-3,
+/* runtime type ReduceAction70 */
+const struct type type_parser__ReduceAction70 = {
+-1, /*CAST DEAD*/
+"ReduceAction70", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction114,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-739, /* ReduceAction114 */
+191, /* ReduceAction */
+776, /* ReduceAction70 */
 },
 };
-const struct types resolution_table_parser__ReduceAction114 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction115 */
-const struct type type_parser__ReduceAction115 = {
-740,
-"ReduceAction115", /* class_name_string */
-3,
+/* runtime type ReduceAction71 */
+const struct type type_parser__ReduceAction71 = {
+-1, /*CAST DEAD*/
+"ReduceAction71", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction115,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-740, /* ReduceAction115 */
+191, /* ReduceAction */
+777, /* ReduceAction71 */
 },
 };
-const struct types resolution_table_parser__ReduceAction115 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction116 */
-const struct type type_parser__ReduceAction116 = {
-741,
-"ReduceAction116", /* class_name_string */
-3,
+/* runtime type ReduceAction73 */
+const struct type type_parser__ReduceAction73 = {
+-1, /*CAST DEAD*/
+"ReduceAction73", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction116,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-741, /* ReduceAction116 */
+191, /* ReduceAction */
+778, /* ReduceAction73 */
 },
 };
-const struct types resolution_table_parser__ReduceAction116 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction118 */
-const struct type type_parser__ReduceAction118 = {
-742,
-"ReduceAction118", /* class_name_string */
-3,
+/* runtime type ReduceAction74 */
+const struct type type_parser__ReduceAction74 = {
+-1, /*CAST DEAD*/
+"ReduceAction74", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction118,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-742, /* ReduceAction118 */
+191, /* ReduceAction */
+779, /* ReduceAction74 */
 },
 };
-const struct types resolution_table_parser__ReduceAction118 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction119 */
-const struct type type_parser__ReduceAction119 = {
-743,
-"ReduceAction119", /* class_name_string */
-3,
+/* runtime type ReduceAction75 */
+const struct type type_parser__ReduceAction75 = {
+-1, /*CAST DEAD*/
+"ReduceAction75", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction119,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-743, /* ReduceAction119 */
+191, /* ReduceAction */
+780, /* ReduceAction75 */
 },
 };
-const struct types resolution_table_parser__ReduceAction119 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction121 */
-const struct type type_parser__ReduceAction121 = {
-744,
-"ReduceAction121", /* class_name_string */
-3,
+/* runtime type ReduceAction76 */
+const struct type type_parser__ReduceAction76 = {
+-1, /*CAST DEAD*/
+"ReduceAction76", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction121,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-744, /* ReduceAction121 */
+191, /* ReduceAction */
+781, /* ReduceAction76 */
 },
 };
-const struct types resolution_table_parser__ReduceAction121 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction122 */
-const struct type type_parser__ReduceAction122 = {
-745,
-"ReduceAction122", /* class_name_string */
-3,
+/* runtime type ReduceAction78 */
+const struct type type_parser__ReduceAction78 = {
+-1, /*CAST DEAD*/
+"ReduceAction78", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction122,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-745, /* ReduceAction122 */
+191, /* ReduceAction */
+782, /* ReduceAction78 */
 },
 };
-const struct types resolution_table_parser__ReduceAction122 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction123 */
-const struct type type_parser__ReduceAction123 = {
-746,
-"ReduceAction123", /* class_name_string */
-3,
+/* runtime type ReduceAction79 */
+const struct type type_parser__ReduceAction79 = {
+-1, /*CAST DEAD*/
+"ReduceAction79", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction123,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-746, /* ReduceAction123 */
+191, /* ReduceAction */
+783, /* ReduceAction79 */
 },
 };
-const struct types resolution_table_parser__ReduceAction123 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction124 */
-const struct type type_parser__ReduceAction124 = {
-747,
-"ReduceAction124", /* class_name_string */
-3,
+/* runtime type ReduceAction81 */
+const struct type type_parser__ReduceAction81 = {
+-1, /*CAST DEAD*/
+"ReduceAction81", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction124,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-747, /* ReduceAction124 */
+191, /* ReduceAction */
+784, /* ReduceAction81 */
 },
 };
-const struct types resolution_table_parser__ReduceAction124 = {
-0, /* dummy */
-{
-}
-};
-/* runtime type ReduceAction126 */
-const struct type type_parser__ReduceAction126 = {
-748,
-"ReduceAction126", /* class_name_string */
-3,
+/* runtime type ReduceAction82 */
+const struct type type_parser__ReduceAction82 = {
+-1, /*CAST DEAD*/
+"ReduceAction82", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_parser__ReduceAction126,
+NULL, /*NO RESOLUTIONS*/
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-244, /* ReduceAction */
-748, /* ReduceAction126 */
+191, /* ReduceAction */
+785, /* ReduceAction82 */
 },
 };