update c_src
[nit.git] / c_src / nith.types.1.c
index 7b4f02e..ff35279 100644 (file)
@@ -10,7 +10,7 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-74, /* Sys */
+75, /* Sys */
 },
 };
 /* runtime type Object */
@@ -46,8 +46,8 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-75, /* IFStream */
-580, /* Stdin */
+76, /* IFStream */
+581, /* Stdin */
 },
 };
 /* runtime type IFStream */
@@ -61,12 +61,12 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-75, /* IFStream */
+76, /* IFStream */
 },
 };
 /* runtime type Bool */
 const struct type type_kernel__Bool = {
-76,
+77,
 "Bool", /* class_name_string */
 2,
 0,
@@ -75,21 +75,23 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-76, /* Bool */
+77, /* Bool */
 },
 };
 /* runtime type Int */
 const struct type type_kernel__Int = {
-77,
+582,
 "Int", /* class_name_string */
-2,
+4,
 0,
 &resolution_table_kernel__Int,
-3,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-77, /* Int */
+-1, /* empty */
+78, /* Comparable */
+582, /* Int */
 },
 };
 const struct types resolution_table_kernel__Int = {
@@ -98,6 +100,15 @@ const struct types resolution_table_kernel__Int = {
 &type_kernel__Int, /* OTHER: Int */
 }
 };
+/* runtime type Comparable */
+const struct type type_kernel__Comparable = {
+78,
+"Comparable", /* class_name_string */
+3,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
 /* runtime type Stdout */
 const struct type type_file__Stdout = {
 -1, /*CAST DEAD*/
@@ -109,8 +120,8 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-78, /* OFStream */
-581, /* Stdout */
+79, /* OFStream */
+583, /* Stdout */
 },
 };
 /* runtime type OFStream */
@@ -124,7 +135,7 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-78, /* OFStream */
+79, /* OFStream */
 },
 };
 /* runtime type Stderr */
@@ -138,22 +149,24 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-78, /* OFStream */
-582, /* Stderr */
+79, /* OFStream */
+584, /* Stderr */
 },
 };
 /* runtime type Float */
 const struct type type_kernel__Float = {
-79,
+585,
 "Float", /* class_name_string */
-2,
+4,
 0,
 &resolution_table_kernel__Float,
-3,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-79, /* Float */
+-1, /* empty */
+78, /* Comparable */
+585, /* Float */
 },
 };
 const struct types resolution_table_kernel__Float = {
@@ -164,16 +177,18 @@ const struct types resolution_table_kernel__Float = {
 };
 /* runtime type Char */
 const struct type type_kernel__Char = {
-80,
+586,
 "Char", /* class_name_string */
-2,
+4,
 0,
 &resolution_table_kernel__Char,
-3,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-80, /* Char */
+-1, /* empty */
+78, /* Comparable */
+586, /* Char */
 },
 };
 const struct types resolution_table_kernel__Char = {
@@ -182,33 +197,33 @@ const struct types resolution_table_kernel__Char = {
 &type_kernel__Char, /* OTHER: Char */
 }
 };
-/* runtime type NativeFile */
-const struct type type_file__NativeFile = {
+/* runtime type Pointer */
+const struct type type_kernel__Pointer = {
 -1, /*CAST DEAD*/
-"NativeFile", /* class_name_string */
+"Pointer", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
-4,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-81, /* Pointer */
-583, /* NativeFile */
+80, /* Pointer */
 },
 };
-/* runtime type Pointer */
-const struct type type_kernel__Pointer = {
+/* runtime type NativeFile */
+const struct type type_file__NativeFile = {
 -1, /*CAST DEAD*/
-"Pointer", /* class_name_string */
+"NativeFile", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
-3,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-81, /* Pointer */
+80, /* Pointer */
+587, /* NativeFile */
 },
 };
 /* runtime type NativeString */
@@ -222,10 +237,198 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-81, /* Pointer */
-584, /* NativeString */
+80, /* Pointer */
+588, /* NativeString */
+},
+};
+/* runtime type FlatString */
+const struct type type_string__FlatString = {
+2071,
+"FlatString", /* class_name_string */
+8,
+0,
+&resolution_table_string__FlatString,
+9,
+{
+0, /* nullable Object */
+1, /* Object */
+2, /* nullable String */
+78, /* Comparable */
+81, /* Streamable */
+1344, /* Text */
+1509, /* FlatText */
+1674, /* String */
+2071, /* FlatString */
+},
+};
+const struct types resolution_table_string__FlatString = {
+0, /* dummy */
+{
+&type_string__Text, /* OTHER: Text */
+&type_string__String, /* SELFTYPE: String */
+&type_array__Arraystring__String, /* Array[SELFTYPE]: Array[String] */
+}
+};
+/* runtime type Text */
+const struct type type_string__Text = {
+1344,
+"Text", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type FlatText */
+const struct type type_string__FlatText = {
+1509,
+"FlatText", /* class_name_string */
+6,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type String */
+const struct type type_string__String = {
+1674,
+"String", /* class_name_string */
+7,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable String */
+const struct type type_nullable_string__String = {
+2,
+"nullable String", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Streamable */
+const struct type type_stream__Streamable = {
+81,
+"Streamable", /* class_name_string */
+4,
+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 */
+-1, /* empty */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+589, /* Collection[Char] */
+1510, /* FlatStringCharView */
+},
+};
+const struct types resolution_table_string__FlatStringCharView = {
+0, /* dummy */
+{
+&type_string__FlatString, /* SELFTYPE: FlatString */
+&type_kernel__Char, /* E: Char */
+&type_kernel__Char, /* E: Char */
+&type_abstract_collection__Collectionkernel__Char, /* Collection[E]: Collection[Char] */
+&type_array__Arraykernel__Char, /* Array[E]: Array[Char] */
+}
+};
+/* runtime type SequenceRead[nullable Object] */
+const struct type type_abstract_collection__SequenceReadnullable_kernel__Object = {
+82,
+"SequenceRead[nullable Object]", /* class_name_string */
+3,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[Object] */
+const struct type type_abstract_collection__Collectionkernel__Object = {
+83,
+"Collection[Object]", /* class_name_string */
+4,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[Char] */
+const struct type type_abstract_collection__Collectionkernel__Char = {
+589,
+"Collection[Char]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type FlatBuffer */
+const struct type type_string__FlatBuffer = {
+1675,
+"FlatBuffer", /* class_name_string */
+7,
+0,
+&resolution_table_string__FlatBuffer,
+8,
+{
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+78, /* Comparable */
+81, /* Streamable */
+1344, /* Text */
+1509, /* FlatText */
+1675, /* FlatBuffer */
+},
+};
+const struct types resolution_table_string__FlatBuffer = {
+0, /* dummy */
+{
+&type_string__Text, /* OTHER: Text */
+&type_string__FlatBuffer, /* SELFTYPE: FlatBuffer */
+&type_array__Arraystring__FlatBuffer, /* Array[SELFTYPE]: Array[FlatBuffer] */
+}
+};
+/* runtime type FlatBufferCharView */
+const struct type type_string__FlatBufferCharView = {
+-1, /*CAST DEAD*/
+"FlatBufferCharView", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_string__FlatBufferCharView,
+7,
+{
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+589, /* Collection[Char] */
+1511, /* FlatBufferCharView */
 },
 };
+const struct types resolution_table_string__FlatBufferCharView = {
+0, /* dummy */
+{
+&type_string__FlatBuffer, /* SELFTYPE: FlatBuffer */
+&type_kernel__Char, /* E: Char */
+&type_kernel__Char, /* E: Char */
+&type_abstract_collection__Collectionkernel__Char, /* Collection[E]: Collection[Char] */
+&type_array__Arraykernel__Char, /* Array[E]: Array[Char] */
+&type_kernel__Char, /* E: Char */
+&type_kernel__Char, /* E: Char */
+&type_abstract_collection__Collectionkernel__Char, /* Collection[E]: Collection[Char] */
+&type_abstract_collection__Collectionkernel__Char, /* Collection[E]: Collection[Char] */
+&type_kernel__Char, /* E: Char */
+}
+};
 /* runtime type ToolContext */
 const struct type type_toolcontext__ToolContext = {
 -1, /*CAST DEAD*/
@@ -237,155 +440,171 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-82, /* ToolContext */
+84, /* ToolContext */
 },
 };
 /* runtime type Array[Message] */
 const struct type type_array__Arraytoolcontext__Message = {
-2015,
+-1, /*CAST DEAD*/
 "Array[Message]", /* class_name_string */
-10,
+-1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arraytoolcontext__Message,
-11,
+18,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-585, /* Collection[Message] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+591, /* Collection[Message] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1676, /* AbstractArrayRead[Message] */
+1512, /* AbstractArray[Object] */
+2073, /* AbstractArray[Message] */
+-1, /* empty */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1642, /* AbstractArrayRead[Message] */
-1459, /* Array[Object] */
-2015, /* Array[Message] */
+-1, /* empty */
+1909, /* Array[Object] */
+2072, /* Array[Comparable] */
+2265, /* Array[Message] */
 },
 };
 const struct types resolution_table_array__Arraytoolcontext__Message = {
 0, /* dummy */
 {
-&type_toolcontext__Message, /* Sequence#0: Message */
-&type_toolcontext__Message, /* SimpleCollection#0: Message */
-&type_array__NativeArraytoolcontext__Message, /* NativeArray[Array#0]: NativeArray[Message] */
-&type_array__Arraytoolcontext__Message, /* Array[Array#0]: Array[Message] */
-&type_array__NativeArraytoolcontext__Message, /* NativeArray[ArrayCapable#0]: NativeArray[Message] */
-&type_toolcontext__Message, /* RemovableCollection#0: Message */
-&type_abstract_collection__Collectiontoolcontext__Message, /* Collection[Sequence#0]: Collection[Message] */
-&type_abstract_collection__Collectiontoolcontext__Message, /* Collection[SimpleCollection#0]: Collection[Message] */
-&type_toolcontext__Message, /* Collection#0: Message */
-&type_abstract_collection__Collectiontoolcontext__Message, /* Collection[Collection#0]: Collection[Message] */
-&type_toolcontext__Message, /* SequenceRead#0: Message */
-&type_toolcontext__Message, /* AbstractArrayRead#0: Message */
-&type_array__Arraytoolcontext__Message, /* Array[AbstractArrayRead#0]: Array[Message] */
-&type_array__ArrayIteratortoolcontext__Message, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Message] */
+&type_array__NativeArraytoolcontext__Message, /* NativeArray[E]: NativeArray[Message] */
+&type_toolcontext__Message, /* E: Message */
+&type_toolcontext__Message, /* E: Message */
+&type_abstract_collection__Collectiontoolcontext__Message, /* Collection[E]: Collection[Message] */
+&type_array__Arraytoolcontext__Message, /* Array[E]: Array[Message] */
+&type_toolcontext__Message, /* E: Message */
+&type_toolcontext__Message, /* E: Message */
+&type_abstract_collection__Collectiontoolcontext__Message, /* Collection[E]: Collection[Message] */
+&type_abstract_collection__Collectiontoolcontext__Message, /* Collection[E]: Collection[Message] */
+&type_toolcontext__Message, /* E: Message */
+&type_array__Arraytoolcontext__Message, /* Array[E]: Array[Message] */
+&type_array__NativeArraytoolcontext__Message, /* NativeArray[E]: NativeArray[Message] */
+&type_toolcontext__Message, /* E: Message */
+&type_toolcontext__Message, /* E: Message */
+&type_array__Arraytoolcontext__Message, /* Array[E]: Array[Message] */
+&type_array__AbstractArraytoolcontext__Message, /* AbstractArray[E]: AbstractArray[Message] */
+&type_array__ArrayIteratortoolcontext__Message, /* ArrayIterator[E]: ArrayIterator[Message] */
 }
 };
 /* runtime type Array[Object] */
 const struct type type_array__Arraykernel__Object = {
-1459,
+1909,
 "Array[Object]", /* class_name_string */
-9,
+15,
 0,
 &resolution_table_array__Arraykernel__Object,
-10,
+16,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+-1, /* empty */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+-1, /* empty */
+1512, /* AbstractArray[Object] */
 -1, /* empty */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1459, /* Array[Object] */
+-1, /* empty */
+1909, /* Array[Object] */
 },
 };
 const struct types resolution_table_array__Arraykernel__Object = {
 0, /* dummy */
 {
-&type_kernel__Object, /* Sequence#0: Object */
-&type_kernel__Object, /* SimpleCollection#0: Object */
-&type_array__NativeArraykernel__Object, /* NativeArray[Array#0]: NativeArray[Object] */
-&type_array__Arraykernel__Object, /* Array[Array#0]: Array[Object] */
-&type_array__NativeArraykernel__Object, /* NativeArray[ArrayCapable#0]: NativeArray[Object] */
-&type_kernel__Object, /* RemovableCollection#0: Object */
-&type_abstract_collection__Collectionkernel__Object, /* Collection[Sequence#0]: Collection[Object] */
-&type_abstract_collection__Collectionkernel__Object, /* Collection[SimpleCollection#0]: Collection[Object] */
-&type_kernel__Object, /* Collection#0: Object */
-&type_abstract_collection__Collectionkernel__Object, /* Collection[Collection#0]: Collection[Object] */
-&type_kernel__Object, /* SequenceRead#0: Object */
-&type_kernel__Object, /* AbstractArrayRead#0: Object */
-&type_array__Arraykernel__Object, /* Array[AbstractArrayRead#0]: Array[Object] */
-&type_array__ArrayIteratorkernel__Object, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Object] */
+&type_array__NativeArraykernel__Object, /* NativeArray[E]: NativeArray[Object] */
+&type_kernel__Object, /* E: Object */
+&type_kernel__Object, /* E: Object */
+&type_abstract_collection__Collectionkernel__Object, /* Collection[E]: Collection[Object] */
+&type_array__Arraykernel__Object, /* Array[E]: Array[Object] */
+&type_kernel__Object, /* E: Object */
+&type_kernel__Object, /* E: Object */
+&type_abstract_collection__Collectionkernel__Object, /* Collection[E]: Collection[Object] */
+&type_abstract_collection__Collectionkernel__Object, /* Collection[E]: Collection[Object] */
+&type_kernel__Object, /* E: Object */
+&type_array__Arraykernel__Object, /* Array[E]: Array[Object] */
+&type_array__NativeArraykernel__Object, /* NativeArray[E]: NativeArray[Object] */
+&type_kernel__Object, /* E: Object */
+&type_kernel__Object, /* E: Object */
+&type_array__Arraykernel__Object, /* Array[E]: Array[Object] */
+&type_array__AbstractArraykernel__Object, /* AbstractArray[E]: AbstractArray[Object] */
+&type_array__ArrayIteratorkernel__Object, /* ArrayIterator[E]: ArrayIterator[Object] */
 }
 };
-/* runtime type SequenceRead[nullable Object] */
-const struct type type_abstract_collection__SequenceReadnullable_kernel__Object = {
-83,
-"SequenceRead[nullable Object]", /* class_name_string */
-3,
+/* runtime type Array[nullable Object] */
+const struct type type_array__Arraynullable_kernel__Object = {
+590,
+"Array[nullable Object]", /* class_name_string */
+6,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[Message] */
 const struct type type_abstract_collection__Collectiontoolcontext__Message = {
-585,
+591,
 "Collection[Message]", /* class_name_string */
 5,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type Collection[Object] */
-const struct type type_abstract_collection__Collectionkernel__Object = {
-84,
-"Collection[Object]", /* class_name_string */
-4,
+/* runtime type Array[Comparable] */
+const struct type type_array__Arraykernel__Comparable = {
+2072,
+"Array[Comparable]", /* class_name_string */
+16,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[Message] */
 const struct type type_array__AbstractArrayReadtoolcontext__Message = {
-1642,
+1676,
 "AbstractArrayRead[Message]", /* class_name_string */
-8,
+9,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[Object] */
 const struct type type_array__AbstractArrayReadkernel__Object = {
-1294,
+1345,
 "AbstractArrayRead[Object]", /* class_name_string */
-7,
+8,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type ComparableSorter[Message] */
-const struct type type_sorter__ComparableSortertoolcontext__Message = {
--1, /*CAST DEAD*/
-"ComparableSorter[Message]", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type AbstractArray[Message] */
+const struct type type_array__AbstractArraytoolcontext__Message = {
+2073,
+"AbstractArray[Message]", /* class_name_string */
+11,
 0,
-&resolution_table_sorter__ComparableSortertoolcontext__Message,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-85, /* ComparableSorter[Message] */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-const struct types resolution_table_sorter__ComparableSortertoolcontext__Message = {
-0, /* dummy */
-{
-&type_toolcontext__Message, /* Comparator#0: Message */
-&type_array__Arraytoolcontext__Message, /* Array[Comparator#0]: Array[Message] */
-}
+/* runtime type AbstractArray[Object] */
+const struct type type_array__AbstractArraykernel__Object = {
+1512,
+"AbstractArray[Object]", /* class_name_string */
+10,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
 /* runtime type OptionContext */
 const struct type type_opts__OptionContext = {
@@ -398,81 +617,197 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-86, /* OptionContext */
+85, /* OptionContext */
 },
 };
-/* runtime type OptionCount */
-const struct type type_opts__OptionCount = {
+/* runtime type Array[Option] */
+const struct type type_array__Arrayopts__Option = {
 -1, /*CAST DEAD*/
-"OptionCount", /* class_name_string */
+"Array[Option]", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
-&resolution_table_opts__OptionCount,
-4,
+&resolution_table_array__Arrayopts__Option,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
-87, /* Option */
-586, /* OptionCount */
-},
-};
-const struct types resolution_table_opts__OptionCount = {
-0, /* dummy */
+-1, /* empty */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+592, /* Collection[Option] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1677, /* AbstractArrayRead[Option] */
+1512, /* AbstractArray[Object] */
+2074, /* AbstractArray[Option] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+1909, /* Array[Object] */
+2201, /* Array[Option] */
+},
+};
+const struct types resolution_table_array__Arrayopts__Option = {
+0, /* dummy */
 {
-&type_kernel__Int, /* VALUE: Int */
+&type_array__NativeArrayopts__Option, /* NativeArray[E]: NativeArray[Option] */
+&type_opts__Option, /* E: Option */
+&type_opts__Option, /* E: Option */
+&type_abstract_collection__Collectionopts__Option, /* Collection[E]: Collection[Option] */
+&type_array__Arrayopts__Option, /* Array[E]: Array[Option] */
+&type_opts__Option, /* E: Option */
+&type_opts__Option, /* E: Option */
+&type_abstract_collection__Collectionopts__Option, /* Collection[E]: Collection[Option] */
+&type_abstract_collection__Collectionopts__Option, /* Collection[E]: Collection[Option] */
+&type_opts__Option, /* E: Option */
+&type_array__Arrayopts__Option, /* Array[E]: Array[Option] */
+&type_array__NativeArrayopts__Option, /* NativeArray[E]: NativeArray[Option] */
+&type_opts__Option, /* E: Option */
+&type_opts__Option, /* E: Option */
+&type_array__Arrayopts__Option, /* Array[E]: Array[Option] */
+&type_array__AbstractArrayopts__Option, /* AbstractArray[E]: AbstractArray[Option] */
+&type_array__ArrayIteratoropts__Option, /* ArrayIterator[E]: ArrayIterator[Option] */
 }
 };
-/* runtime type Option */
-const struct type type_opts__Option = {
-87,
-"Option", /* class_name_string */
-2,
+/* runtime type Collection[Option] */
+const struct type type_abstract_collection__Collectionopts__Option = {
+592,
+"Collection[Option]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[Option] */
+const struct type type_array__AbstractArrayReadopts__Option = {
+1677,
+"AbstractArrayRead[Option]", /* class_name_string */
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[Option] */
+const struct type type_array__AbstractArrayopts__Option = {
+2074,
+"AbstractArray[Option]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type Array[String] */
 const struct type type_array__Arraystring__String = {
-2143,
+2349,
 "Array[String]", /* class_name_string */
-13,
+23,
 0,
 &resolution_table_array__Arraystring__String,
-14,
+24,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-587, /* Collection[Streamable] */
-1295, /* Collection[String] */
-1294, /* AbstractArrayRead[Object] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+593, /* Collection[Streamable] */
+590, /* Array[nullable Object] */
+1346, /* Collection[Text] */
+1345, /* AbstractArrayRead[Object] */
+1513, /* Collection[String] */
+1512, /* AbstractArray[Object] */
+1678, /* AbstractArrayRead[Streamable] */
+-1, /* empty */
+2075, /* AbstractArrayRead[Text] */
+2076, /* AbstractArray[Streamable] */
+1909, /* Array[Object] */
+2072, /* Array[Comparable] */
+2177, /* AbstractArrayRead[String] */
+2202, /* Array[Streamable] */
+2203, /* AbstractArray[Text] */
+2281, /* AbstractArray[String] */
 -1, /* empty */
-1459, /* Array[Object] */
-1643, /* AbstractArrayRead[Streamable] */
-2016, /* Array[Streamable] */
-2017, /* AbstractArrayRead[String] */
-2143, /* Array[String] */
+2320, /* Array[Text] */
+2349, /* Array[String] */
 },
 };
 const struct types resolution_table_array__Arraystring__String = {
 0, /* dummy */
 {
-&type_string__String, /* Sequence#0: String */
-&type_string__String, /* SimpleCollection#0: String */
-&type_array__NativeArraystring__String, /* NativeArray[Array#0]: NativeArray[String] */
-&type_array__Arraystring__String, /* Array[Array#0]: Array[String] */
-&type_array__NativeArraystring__String, /* NativeArray[ArrayCapable#0]: NativeArray[String] */
-&type_string__String, /* RemovableCollection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Sequence#0]: Collection[String] */
-&type_abstract_collection__Collectionstring__String, /* Collection[SimpleCollection#0]: Collection[String] */
-&type_string__String, /* Collection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Collection#0]: Collection[String] */
-&type_string__String, /* SequenceRead#0: String */
-&type_string__String, /* AbstractArrayRead#0: String */
-&type_array__Arraystring__String, /* Array[AbstractArrayRead#0]: Array[String] */
-&type_array__ArrayIteratorstring__String, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[String] */
+&type_array__NativeArraystring__String, /* NativeArray[E]: NativeArray[String] */
+&type_string__String, /* E: String */
+&type_string__String, /* E: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_array__Arraystring__String, /* Array[E]: Array[String] */
+&type_string__String, /* E: String */
+&type_string__String, /* E: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_string__String, /* E: String */
+&type_array__Arraystring__String, /* Array[E]: Array[String] */
+&type_array__NativeArraystring__String, /* NativeArray[E]: NativeArray[String] */
+&type_string__String, /* E: String */
+&type_string__String, /* E: String */
+&type_array__Arraystring__String, /* Array[E]: Array[String] */
+&type_array__AbstractArraystring__String, /* AbstractArray[E]: AbstractArray[String] */
+&type_array__ArrayIteratorstring__String, /* ArrayIterator[E]: ArrayIterator[String] */
+}
+};
+/* runtime type Array[Text] */
+const struct type type_array__Arraystring__Text = {
+-1, /*CAST DEAD*/
+"Array[Text]", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_array__Arraystring__Text,
+23,
+{
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+593, /* Collection[Streamable] */
+590, /* Array[nullable Object] */
+1346, /* Collection[Text] */
+1345, /* AbstractArrayRead[Object] */
+-1, /* empty */
+1512, /* AbstractArray[Object] */
+1678, /* AbstractArrayRead[Streamable] */
+-1, /* empty */
+2075, /* AbstractArrayRead[Text] */
+2076, /* AbstractArray[Streamable] */
+1909, /* Array[Object] */
+2072, /* Array[Comparable] */
+-1, /* empty */
+2202, /* Array[Streamable] */
+2203, /* AbstractArray[Text] */
+-1, /* empty */
+-1, /* empty */
+2320, /* Array[Text] */
+},
+};
+const struct types resolution_table_array__Arraystring__Text = {
+0, /* dummy */
+{
+&type_array__NativeArraystring__Text, /* NativeArray[E]: NativeArray[Text] */
+&type_string__Text, /* E: Text */
+&type_string__Text, /* E: Text */
+&type_abstract_collection__Collectionstring__Text, /* Collection[E]: Collection[Text] */
+&type_array__Arraystring__Text, /* Array[E]: Array[Text] */
+&type_string__Text, /* E: Text */
+&type_string__Text, /* E: Text */
+&type_abstract_collection__Collectionstring__Text, /* Collection[E]: Collection[Text] */
+&type_abstract_collection__Collectionstring__Text, /* Collection[E]: Collection[Text] */
+&type_string__Text, /* E: Text */
+&type_array__Arraystring__Text, /* Array[E]: Array[Text] */
+&type_array__NativeArraystring__Text, /* NativeArray[E]: NativeArray[Text] */
+&type_string__Text, /* E: Text */
+&type_string__Text, /* E: Text */
+&type_array__Arraystring__Text, /* Array[E]: Array[Text] */
+&type_array__AbstractArraystring__Text, /* AbstractArray[E]: AbstractArray[Text] */
+&type_array__ArrayIteratorstring__Text, /* ArrayIterator[E]: ArrayIterator[Text] */
 }
 };
 /* runtime type Array[Streamable] */
@@ -482,53 +817,72 @@ const struct type type_array__Arraystream__Streamable = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arraystream__Streamable,
-12,
+19,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-587, /* Collection[Streamable] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+593, /* Collection[Streamable] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
+1512, /* AbstractArray[Object] */
+1678, /* AbstractArrayRead[Streamable] */
 -1, /* empty */
-1459, /* Array[Object] */
-1643, /* AbstractArrayRead[Streamable] */
-2016, /* Array[Streamable] */
+-1, /* empty */
+2076, /* AbstractArray[Streamable] */
+1909, /* Array[Object] */
+-1, /* empty */
+-1, /* empty */
+2202, /* Array[Streamable] */
 },
 };
 const struct types resolution_table_array__Arraystream__Streamable = {
 0, /* dummy */
 {
-&type_stream__Streamable, /* Sequence#0: Streamable */
-&type_stream__Streamable, /* SimpleCollection#0: Streamable */
-&type_array__NativeArraystream__Streamable, /* NativeArray[Array#0]: NativeArray[Streamable] */
-&type_array__Arraystream__Streamable, /* Array[Array#0]: Array[Streamable] */
-&type_array__NativeArraystream__Streamable, /* NativeArray[ArrayCapable#0]: NativeArray[Streamable] */
-&type_stream__Streamable, /* RemovableCollection#0: Streamable */
-&type_abstract_collection__Collectionstream__Streamable, /* Collection[Sequence#0]: Collection[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] */
-&type_array__ArrayIteratorstream__Streamable, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Streamable] */
+&type_array__NativeArraystream__Streamable, /* NativeArray[E]: NativeArray[Streamable] */
+&type_stream__Streamable, /* E: Streamable */
+&type_stream__Streamable, /* E: Streamable */
+&type_abstract_collection__Collectionstream__Streamable, /* Collection[E]: Collection[Streamable] */
+&type_array__Arraystream__Streamable, /* Array[E]: Array[Streamable] */
+&type_stream__Streamable, /* E: Streamable */
+&type_stream__Streamable, /* E: Streamable */
+&type_abstract_collection__Collectionstream__Streamable, /* Collection[E]: Collection[Streamable] */
+&type_abstract_collection__Collectionstream__Streamable, /* Collection[E]: Collection[Streamable] */
+&type_stream__Streamable, /* E: Streamable */
+&type_array__Arraystream__Streamable, /* Array[E]: Array[Streamable] */
+&type_array__NativeArraystream__Streamable, /* NativeArray[E]: NativeArray[Streamable] */
+&type_stream__Streamable, /* E: Streamable */
+&type_stream__Streamable, /* E: Streamable */
+&type_array__Arraystream__Streamable, /* Array[E]: Array[Streamable] */
+&type_array__AbstractArraystream__Streamable, /* AbstractArray[E]: AbstractArray[Streamable] */
+&type_array__ArrayIteratorstream__Streamable, /* ArrayIterator[E]: ArrayIterator[Streamable] */
 }
 };
 /* runtime type Collection[String] */
 const struct type type_abstract_collection__Collectionstring__String = {
-1295,
+1513,
 "Collection[String]", /* class_name_string */
-6,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[Text] */
+const struct type type_abstract_collection__Collectionstring__Text = {
+1346,
+"Collection[Text]", /* class_name_string */
+7,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[Streamable] */
 const struct type type_abstract_collection__Collectionstream__Streamable = {
-587,
+593,
 "Collection[Streamable]", /* class_name_string */
 5,
 0,
@@ -537,18 +891,148 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[String] */
 const struct type type_array__AbstractArrayReadstring__String = {
-2017,
+2177,
 "AbstractArrayRead[String]", /* class_name_string */
-12,
+17,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[Text] */
+const struct type type_array__AbstractArrayReadstring__Text = {
+2075,
+"AbstractArrayRead[Text]", /* class_name_string */
+13,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[Streamable] */
 const struct type type_array__AbstractArrayReadstream__Streamable = {
-1643,
+1678,
 "AbstractArrayRead[Streamable]", /* class_name_string */
-10,
+11,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[String] */
+const struct type type_array__AbstractArraystring__String = {
+2281,
+"AbstractArray[String]", /* class_name_string */
+20,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[Text] */
+const struct type type_array__AbstractArraystring__Text = {
+2203,
+"AbstractArray[Text]", /* class_name_string */
+19,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[Streamable] */
+const struct type type_array__AbstractArraystream__Streamable = {
+2076,
+"AbstractArray[Streamable]", /* class_name_string */
+14,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashMap[String, Option] */
+const struct type type_hash_collection__HashMapstring__Stringopts__Option = {
+86,
+"HashMap[String, Option]", /* class_name_string */
+2,
+0,
+&resolution_table_hash_collection__HashMapstring__Stringopts__Option,
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+86, /* HashMap[String, Option] */
+},
+};
+const struct types resolution_table_hash_collection__HashMapstring__Stringopts__Option = {
+0, /* dummy */
+{
+&type_hash_collection__HashMapKeysstring__Stringopts__Option, /* HashMapKeys[K, V]: HashMapKeys[String, Option] */
+&type_hash_collection__HashMapValuesstring__Stringopts__Option, /* HashMapValues[K, V]: HashMapValues[String, Option] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringopts__Option, /* HashMapIterator[K, V]: HashMapIterator[String, Option] */
+&type_string__String, /* K: String */
+&type_opts__Option, /* V: Option */
+&type_hash_collection__HashMapNodestring__Stringopts__Option, /* HashMapNode[K, V]: HashMapNode[String, Option] */
+&type_string__String, /* K: String */
+NULL, /* empty */
+NULL, /* empty */
+&type_nullable_hash_collection__HashMapNodestring__Stringopts__Option, /* nullable N: nullable HashMapNode[String, Option] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringopts__Option, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, Option]] */
+&type_hash_collection__HashMapNodestring__Stringopts__Option, /* N: HashMapNode[String, Option] */
+&type_nullable_string__String, /* nullable K: nullable String */
+}
+};
+/* runtime type OptionCount */
+const struct type type_opts__OptionCount = {
+-1, /*CAST DEAD*/
+"OptionCount", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_opts__OptionCount,
+4,
+{
+0, /* nullable Object */
+1, /* Object */
+87, /* Option */
+594, /* OptionCount */
+},
+};
+const struct types resolution_table_opts__OptionCount = {
+0, /* dummy */
+{
+&type_kernel__Int, /* VALUE: Int */
+}
+};
+/* runtime type Option */
+const struct type type_opts__Option = {
+87,
+"Option", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type OptionArray */
+const struct type type_opts__OptionArray = {
+-1, /*CAST DEAD*/
+"OptionArray", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_opts__OptionArray,
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+87, /* Option */
+595, /* OptionParameter */
+1347, /* OptionArray */
+},
+};
+const struct types resolution_table_opts__OptionArray = {
+0, /* dummy */
+{
+&type_array__Arraystring__String, /* VALUE: Array[String] */
+}
+};
+/* runtime type OptionParameter */
+const struct type type_opts__OptionParameter = {
+595,
+"OptionParameter", /* class_name_string */
+3,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -565,7 +1049,7 @@ const struct type type_opts__OptionBool = {
 0, /* nullable Object */
 1, /* Object */
 87, /* Option */
-588, /* OptionBool */
+596, /* OptionBool */
 },
 };
 const struct types resolution_table_opts__OptionBool = {
@@ -586,8 +1070,8 @@ const struct type type_opts__OptionString = {
 0, /* nullable Object */
 1, /* Object */
 87, /* Option */
-589, /* OptionParameter */
-1296, /* OptionString */
+595, /* OptionParameter */
+1348, /* OptionString */
 },
 };
 const struct types resolution_table_opts__OptionString = {
@@ -596,18 +1080,9 @@ const struct types resolution_table_opts__OptionString = {
 &type_nullable_string__String, /* VALUE: nullable String */
 }
 };
-/* runtime type OptionParameter */
-const struct type type_opts__OptionParameter = {
-589,
-"OptionParameter", /* class_name_string */
-3,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
 /* runtime type POSet[Phase] */
 const struct type type_poset__POSetphase__Phase = {
-1297,
+1349,
 "POSet[Phase]", /* class_name_string */
 6,
 0,
@@ -618,169 +1093,324 @@ const struct type type_poset__POSetphase__Phase = {
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
-590, /* Collection[Phase] */
-1297, /* POSet[Phase] */
+83, /* Collection[Object] */
+597, /* Collection[Phase] */
+1349, /* POSet[Phase] */
 },
 };
 const struct types resolution_table_poset__POSetphase__Phase = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapphase__Phaseposet__POSetElementphase__Phase, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[Phase, POSetElement[Phase]] */
-&type_array__Arrayphase__Phase, /* Array[Comparator#0]: Array[Phase] */
-&type_phase__Phase, /* POSet#0: Phase */
-&type_poset__POSetElementphase__Phase, /* POSetElement[POSet#0]: POSetElement[Phase] */
-&type_abstract_collection__Collectionphase__Phase, /* Collection[POSet#0]: Collection[Phase] */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_phase__Phase, /* Collection#0: Phase */
-&type_abstract_collection__Collectionphase__Phase, /* Collection[Collection#0]: Collection[Phase] */
+&type_hash_collection__HashMapphase__Phaseposet__POSetElementphase__Phase, /* HashMap[E, POSetElement[E]]: HashMap[Phase, POSetElement[Phase]] */
+&type_phase__Phase, /* E: Phase */
+&type_phase__Phase, /* E: Phase */
+&type_abstract_collection__Collectionphase__Phase, /* Collection[E]: Collection[Phase] */
+&type_array__Arrayphase__Phase, /* Array[E]: Array[Phase] */
+&type_poset__POSetElementphase__Phase, /* POSetElement[E]: POSetElement[Phase] */
+&type_abstract_collection__Collectionphase__Phase, /* Collection[E]: Collection[Phase] */
+&type_array__Arrayphase__Phase, /* Array[COMPARED]: Array[Phase] */
 }
 };
 /* runtime type Collection[Phase] */
 const struct type type_abstract_collection__Collectionphase__Phase = {
-590,
+597,
 "Collection[Phase]", /* class_name_string */
 5,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type OptionArray */
-const struct type type_opts__OptionArray = {
--1, /*CAST DEAD*/
-"OptionArray", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type HashSet[AModule] */
+const struct type type_hash_collection__HashSetparser_nodes__AModule = {
+2171,
+"HashSet[AModule]", /* class_name_string */
+11,
 0,
-&resolution_table_opts__OptionArray,
-5,
+&resolution_table_hash_collection__HashSetparser_nodes__AModule,
+12,
 {
 0, /* nullable Object */
 1, /* Object */
-87, /* Option */
-589, /* OptionParameter */
-1298, /* OptionArray */
+-1, /* empty */
+-1, /* empty */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
+598, /* Set[Object] */
+1351, /* Collection[Prod] */
+1350, /* HashSet[Object] */
+1514, /* Collection[AModule] */
+1679, /* HashSet[ANode] */
+2171, /* HashSet[AModule] */
 },
 };
-const struct types resolution_table_opts__OptionArray = {
+const struct types resolution_table_hash_collection__HashSetparser_nodes__AModule = {
 0, /* dummy */
 {
-&type_array__Arraystring__String, /* VALUE: Array[String] */
+&type_hash_collection__HashSetNodeparser_nodes__AModule, /* HashSetNode[E]: HashSetNode[AModule] */
+&type_hash_collection__HashSetIteratorparser_nodes__AModule, /* HashSetIterator[E]: HashSetIterator[AModule] */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[E]: Collection[AModule] */
+&type_array__Arrayparser_nodes__AModule, /* Array[E]: Array[AModule] */
+&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[E]: Collection[AModule] */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_parser_nodes__AModule, /* K: AModule */
+&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[E]: Collection[AModule] */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_nullable_hash_collection__HashSetNodeparser_nodes__AModule, /* nullable N: nullable HashSetNode[AModule] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodeparser_nodes__AModule, /* NativeArray[E]: NativeArray[nullable HashSetNode[AModule]] */
+&type_hash_collection__HashSetNodeparser_nodes__AModule, /* N: HashSetNode[AModule] */
+&type_nullable_parser_nodes__AModule, /* nullable K: nullable AModule */
+&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[E]: Collection[AModule] */
 }
 };
-/* runtime type LiteralPhase */
-const struct type type_literal__LiteralPhase = {
--1, /*CAST DEAD*/
-"LiteralPhase", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type HashSet[Object] */
+const struct type type_hash_collection__HashSetkernel__Object = {
+1350,
+"HashSet[Object]", /* class_name_string */
+8,
 0,
-NULL, /*NO RESOLUTIONS*/
-5,
+&resolution_table_hash_collection__HashSetkernel__Object,
+9,
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1299, /* LiteralPhase */
+-1, /* empty */
+-1, /* empty */
+83, /* Collection[Object] */
+-1, /* empty */
+598, /* Set[Object] */
+-1, /* empty */
+1350, /* HashSet[Object] */
 },
 };
-/* runtime type Phase */
-const struct type type_phase__Phase = {
-591,
-"Phase", /* class_name_string */
-3,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type nullable Phase */
-const struct type type_nullable_phase__Phase = {
-2,
-"nullable Phase", /* class_name_string */
-2,
-1,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
+const struct types resolution_table_hash_collection__HashSetkernel__Object = {
+0, /* dummy */
+{
+&type_hash_collection__HashSetNodekernel__Object, /* HashSetNode[E]: HashSetNode[Object] */
+&type_hash_collection__HashSetIteratorkernel__Object, /* HashSetIterator[E]: HashSetIterator[Object] */
+&type_kernel__Object, /* E: Object */
+&type_abstract_collection__Collectionkernel__Object, /* Collection[E]: Collection[Object] */
+&type_array__Arraykernel__Object, /* Array[E]: Array[Object] */
+&type_abstract_collection__Collectionkernel__Object, /* Collection[E]: Collection[Object] */
+&type_kernel__Object, /* E: Object */
+&type_kernel__Object, /* K: Object */
+&type_abstract_collection__Collectionkernel__Object, /* Collection[E]: Collection[Object] */
+&type_kernel__Object, /* E: Object */
+&type_nullable_hash_collection__HashSetNodekernel__Object, /* nullable N: nullable HashSetNode[Object] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodekernel__Object, /* NativeArray[E]: NativeArray[nullable HashSetNode[Object]] */
+&type_hash_collection__HashSetNodekernel__Object, /* N: HashSetNode[Object] */
+&type_nullable_kernel__Object, /* nullable K: nullable Object */
+&type_abstract_collection__Collectionkernel__Object, /* Collection[E]: Collection[Object] */
+}
 };
-/* runtime type ScopePhase */
-const struct type type_scope__ScopePhase = {
--1, /*CAST DEAD*/
-"ScopePhase", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type HashSet[ANode] */
+const struct type type_hash_collection__HashSetparser_nodes__ANode = {
+1679,
+"HashSet[ANode]", /* class_name_string */
+10,
 0,
-NULL, /*NO RESOLUTIONS*/
-5,
+&resolution_table_hash_collection__HashSetparser_nodes__ANode,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1300, /* ScopePhase */
+-1, /* empty */
+-1, /* empty */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
+598, /* Set[Object] */
+-1, /* empty */
+1350, /* HashSet[Object] */
+-1, /* empty */
+1679, /* HashSet[ANode] */
 },
 };
-/* runtime type FlowPhase */
-const struct type type_flow__FlowPhase = {
--1, /*CAST DEAD*/
-"FlowPhase", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-5,
-{
+const struct types resolution_table_hash_collection__HashSetparser_nodes__ANode = {
+0, /* dummy */
+{
+&type_hash_collection__HashSetNodeparser_nodes__ANode, /* HashSetNode[E]: HashSetNode[ANode] */
+&type_hash_collection__HashSetIteratorparser_nodes__ANode, /* HashSetIterator[E]: HashSetIterator[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+&type_array__Arrayparser_nodes__ANode, /* Array[E]: Array[ANode] */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_parser_nodes__ANode, /* K: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_nullable_hash_collection__HashSetNodeparser_nodes__ANode, /* nullable N: nullable HashSetNode[ANode] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodeparser_nodes__ANode, /* NativeArray[E]: NativeArray[nullable HashSetNode[ANode]] */
+&type_hash_collection__HashSetNodeparser_nodes__ANode, /* N: HashSetNode[ANode] */
+&type_nullable_parser_nodes__ANode, /* nullable K: nullable ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+}
+};
+/* runtime type Set[Object] */
+const struct type type_abstract_collection__Setkernel__Object = {
+598,
+"Set[Object]", /* class_name_string */
+6,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[AModule] */
+const struct type type_abstract_collection__Collectionparser_nodes__AModule = {
+1514,
+"Collection[AModule]", /* class_name_string */
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[ANode] */
+const struct type type_abstract_collection__Collectionparser_nodes__ANode = {
+599,
+"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 = {
+1351,
+"Collection[Prod]", /* class_name_string */
+7,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type LiteralPhase */
+const struct type type_literal__LiteralPhase = {
+-1, /*CAST DEAD*/
+"LiteralPhase", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+3, /* nullable Phase */
+600, /* Phase */
+1352, /* LiteralPhase */
+},
+};
+/* runtime type Phase */
+const struct type type_phase__Phase = {
+600,
+"Phase", /* class_name_string */
+3,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable Phase */
+const struct type type_nullable_phase__Phase = {
+3,
+"nullable Phase", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type ScopePhase */
+const struct type type_scope__ScopePhase = {
+-1, /*CAST DEAD*/
+"ScopePhase", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+3, /* nullable Phase */
+600, /* Phase */
+1353, /* ScopePhase */
+},
+};
+/* runtime type FlowPhase */
+const struct type type_flow__FlowPhase = {
+-1, /*CAST DEAD*/
+"FlowPhase", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+NULL, /*NO RESOLUTIONS*/
+5,
+{
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1301, /* FlowPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1354, /* FlowPhase */
 },
 };
 /* runtime type Array[Phase] */
 const struct type type_array__Arrayphase__Phase = {
-2018,
+2204,
 "Array[Phase]", /* class_name_string */
-10,
+16,
 0,
 &resolution_table_array__Arrayphase__Phase,
-11,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-590, /* Collection[Phase] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+597, /* Collection[Phase] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1680, /* AbstractArrayRead[Phase] */
+1512, /* AbstractArray[Object] */
+2077, /* AbstractArray[Phase] */
+-1, /* empty */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1644, /* AbstractArrayRead[Phase] */
-1459, /* Array[Object] */
-2018, /* Array[Phase] */
+-1, /* empty */
+1909, /* Array[Object] */
+2204, /* Array[Phase] */
 },
 };
 const struct types resolution_table_array__Arrayphase__Phase = {
 0, /* dummy */
 {
-&type_phase__Phase, /* Sequence#0: Phase */
-&type_phase__Phase, /* SimpleCollection#0: Phase */
-&type_array__NativeArrayphase__Phase, /* NativeArray[Array#0]: NativeArray[Phase] */
-&type_array__Arrayphase__Phase, /* Array[Array#0]: Array[Phase] */
-&type_array__NativeArrayphase__Phase, /* NativeArray[ArrayCapable#0]: NativeArray[Phase] */
-&type_phase__Phase, /* RemovableCollection#0: Phase */
-&type_abstract_collection__Collectionphase__Phase, /* Collection[Sequence#0]: Collection[Phase] */
-&type_abstract_collection__Collectionphase__Phase, /* Collection[SimpleCollection#0]: Collection[Phase] */
-&type_phase__Phase, /* Collection#0: Phase */
-&type_abstract_collection__Collectionphase__Phase, /* Collection[Collection#0]: Collection[Phase] */
-&type_phase__Phase, /* SequenceRead#0: Phase */
-&type_phase__Phase, /* AbstractArrayRead#0: Phase */
-&type_array__Arrayphase__Phase, /* Array[AbstractArrayRead#0]: Array[Phase] */
-&type_array__ArrayIteratorphase__Phase, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Phase] */
+&type_array__NativeArrayphase__Phase, /* NativeArray[E]: NativeArray[Phase] */
+&type_phase__Phase, /* E: Phase */
+&type_phase__Phase, /* E: Phase */
+&type_abstract_collection__Collectionphase__Phase, /* Collection[E]: Collection[Phase] */
+&type_array__Arrayphase__Phase, /* Array[E]: Array[Phase] */
+&type_phase__Phase, /* E: Phase */
+&type_phase__Phase, /* E: Phase */
+&type_abstract_collection__Collectionphase__Phase, /* Collection[E]: Collection[Phase] */
+&type_abstract_collection__Collectionphase__Phase, /* Collection[E]: Collection[Phase] */
+&type_phase__Phase, /* E: Phase */
+&type_array__Arrayphase__Phase, /* Array[E]: Array[Phase] */
+&type_array__NativeArrayphase__Phase, /* NativeArray[E]: NativeArray[Phase] */
+&type_phase__Phase, /* E: Phase */
+&type_phase__Phase, /* E: Phase */
+&type_array__Arrayphase__Phase, /* Array[E]: Array[Phase] */
+&type_array__AbstractArrayphase__Phase, /* AbstractArray[E]: AbstractArray[Phase] */
+&type_array__ArrayIteratorphase__Phase, /* ArrayIterator[E]: ArrayIterator[Phase] */
 }
 };
 /* runtime type AbstractArrayRead[Phase] */
 const struct type type_array__AbstractArrayReadphase__Phase = {
-1644,
+1680,
 "AbstractArrayRead[Phase]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[Phase] */
+const struct type type_array__AbstractArrayphase__Phase = {
+2077,
+"AbstractArray[Phase]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -796,9 +1426,9 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1302, /* LocalVarInitPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1355, /* LocalVarInitPhase */
 },
 };
 /* runtime type ModelizeClassPhase */
@@ -812,9 +1442,9 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1303, /* ModelizeClassPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1356, /* ModelizeClassPhase */
 },
 };
 /* runtime type ModelizePropertyPhase */
@@ -828,9 +1458,9 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1304, /* ModelizePropertyPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1357, /* ModelizePropertyPhase */
 },
 };
 /* runtime type PlatformPhase */
@@ -844,9 +1474,9 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1305, /* PlatformPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1358, /* PlatformPhase */
 },
 };
 /* runtime type TypingPhase */
@@ -860,9 +1490,9 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1306, /* TypingPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1359, /* TypingPhase */
 },
 };
 /* runtime type AutoSuperInitPhase */
@@ -876,9 +1506,9 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1307, /* AutoSuperInitPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1360, /* AutoSuperInitPhase */
 },
 };
 /* runtime type TransformPhase */
@@ -892,11 +1522,33 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1308, /* TransformPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1361, /* TransformPhase */
+},
+};
+/* runtime type OptionInt */
+const struct type type_opts__OptionInt = {
+-1, /*CAST DEAD*/
+"OptionInt", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_opts__OptionInt,
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+87, /* Option */
+595, /* OptionParameter */
+1362, /* OptionInt */
 },
 };
+const struct types resolution_table_opts__OptionInt = {
+0, /* dummy */
+{
+&type_kernel__Int, /* VALUE: Int */
+}
+};
 /* runtime type SeparateCompilerPhase */
 const struct type type_separate_compiler__SeparateCompilerPhase = {
 -1, /*CAST DEAD*/
@@ -908,9 +1560,9 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1309, /* SeparateCompilerPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1363, /* SeparateCompilerPhase */
 },
 };
 /* runtime type ErasureCompilerPhase */
@@ -924,9 +1576,9 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-2, /* nullable Phase */
-591, /* Phase */
-1310, /* ErasureCompilerPhase */
+3, /* nullable Phase */
+600, /* Phase */
+1364, /* ErasureCompilerPhase */
 },
 };
 /* runtime type Model */
@@ -945,48 +1597,57 @@ NULL, /*NO RESOLUTIONS*/
 };
 /* runtime type Array[MProject] */
 const struct type type_array__Arraymproject__MProject = {
-2019,
+2205,
 "Array[MProject]", /* class_name_string */
-10,
+16,
 0,
 &resolution_table_array__Arraymproject__MProject,
-11,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-592, /* Collection[MProject] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+601, /* Collection[MProject] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1681, /* AbstractArrayRead[MProject] */
+1512, /* AbstractArray[Object] */
+2078, /* AbstractArray[MProject] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1645, /* AbstractArrayRead[MProject] */
-1459, /* Array[Object] */
-2019, /* Array[MProject] */
+-1, /* empty */
+-1, /* empty */
+1909, /* Array[Object] */
+2205, /* Array[MProject] */
 },
 };
 const struct types resolution_table_array__Arraymproject__MProject = {
 0, /* dummy */
 {
-&type_mproject__MProject, /* Sequence#0: MProject */
-&type_mproject__MProject, /* SimpleCollection#0: MProject */
-&type_array__NativeArraymproject__MProject, /* NativeArray[Array#0]: NativeArray[MProject] */
-&type_array__Arraymproject__MProject, /* Array[Array#0]: Array[MProject] */
-&type_array__NativeArraymproject__MProject, /* NativeArray[ArrayCapable#0]: NativeArray[MProject] */
-&type_mproject__MProject, /* RemovableCollection#0: MProject */
-&type_abstract_collection__Collectionmproject__MProject, /* Collection[Sequence#0]: Collection[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] */
-&type_array__ArrayIteratormproject__MProject, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MProject] */
+&type_array__NativeArraymproject__MProject, /* NativeArray[E]: NativeArray[MProject] */
+&type_mproject__MProject, /* E: MProject */
+&type_mproject__MProject, /* E: MProject */
+&type_abstract_collection__Collectionmproject__MProject, /* Collection[E]: Collection[MProject] */
+&type_array__Arraymproject__MProject, /* Array[E]: Array[MProject] */
+&type_mproject__MProject, /* E: MProject */
+&type_mproject__MProject, /* E: MProject */
+&type_abstract_collection__Collectionmproject__MProject, /* Collection[E]: Collection[MProject] */
+&type_abstract_collection__Collectionmproject__MProject, /* Collection[E]: Collection[MProject] */
+&type_mproject__MProject, /* E: MProject */
+&type_array__Arraymproject__MProject, /* Array[E]: Array[MProject] */
+&type_array__NativeArraymproject__MProject, /* NativeArray[E]: NativeArray[MProject] */
+&type_mproject__MProject, /* E: MProject */
+&type_mproject__MProject, /* E: MProject */
+&type_array__Arraymproject__MProject, /* Array[E]: Array[MProject] */
+&type_array__AbstractArraymproject__MProject, /* AbstractArray[E]: AbstractArray[MProject] */
+&type_array__ArrayIteratormproject__MProject, /* ArrayIterator[E]: ArrayIterator[MProject] */
 }
 };
 /* runtime type Collection[MProject] */
 const struct type type_abstract_collection__Collectionmproject__MProject = {
-592,
+601,
 "Collection[MProject]", /* class_name_string */
 5,
 0,
@@ -995,9 +1656,18 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[MProject] */
 const struct type type_array__AbstractArrayReadmproject__MProject = {
-1645,
+1681,
 "AbstractArrayRead[MProject]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MProject] */
+const struct type type_array__AbstractArraymproject__MProject = {
+2078,
+"AbstractArray[MProject]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -1014,27 +1684,27 @@ const struct type type_more_collections__MultiHashMapstring__Stringmproject__MPr
 0, /* nullable Object */
 1, /* Object */
 89, /* HashMap[String, Array[MProject]] */
-593, /* MultiHashMap[String, MProject] */
+602, /* 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_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MProject]]] */
-&type_hash_collection__HashMapKeysstring__Stringarray__Arraymproject__MProject, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Array[MProject]] */
-&type_hash_collection__HashMapValuesstring__Stringarray__Arraymproject__MProject, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MProject]] */
-&type_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]] */
-&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 */
+&type_hash_collection__HashMapKeysstring__Stringarray__Arraymproject__MProject, /* HashMapKeys[K, V]: HashMapKeys[String, Array[MProject]] */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymproject__MProject, /* HashMapValues[K, V]: HashMapValues[String, Array[MProject]] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringarray__Arraymproject__MProject, /* HashMapIterator[K, V]: HashMapIterator[String, Array[MProject]] */
+&type_string__String, /* K: String */
+&type_array__Arraymproject__MProject, /* V: Array[MProject] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* HashMapNode[K, V]: HashMapNode[String, Array[MProject]] */
+&type_string__String, /* K: String */
+&type_string__String, /* K: String */
+&type_mproject__MProject, /* V: MProject */
+&type_nullable_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* nullable N: nullable HashMapNode[String, Array[MProject]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, Array[MProject]]] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymproject__MProject, /* N: HashMapNode[String, Array[MProject]] */
+&type_nullable_string__String, /* nullable K: nullable String */
+&type_array__Arraymproject__MProject, /* Array[V]: Array[MProject] */
 }
 };
 /* runtime type HashMap[String, Array[MProject]] */
@@ -1048,48 +1718,57 @@ NULL, /*DEAD*/
 };
 /* runtime type Array[MModule] */
 const struct type type_array__Arraymmodule__MModule = {
-2020,
+2206,
 "Array[MModule]", /* class_name_string */
-10,
+16,
 0,
 &resolution_table_array__Arraymmodule__MModule,
-11,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-594, /* Collection[MModule] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+603, /* Collection[MModule] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1682, /* AbstractArrayRead[MModule] */
+1512, /* AbstractArray[Object] */
+2079, /* AbstractArray[MModule] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1646, /* AbstractArrayRead[MModule] */
-1459, /* Array[Object] */
-2020, /* Array[MModule] */
+-1, /* empty */
+-1, /* empty */
+1909, /* Array[Object] */
+2206, /* Array[MModule] */
 },
 };
 const struct types resolution_table_array__Arraymmodule__MModule = {
 0, /* dummy */
 {
-&type_mmodule__MModule, /* Sequence#0: MModule */
-&type_mmodule__MModule, /* SimpleCollection#0: MModule */
-&type_array__NativeArraymmodule__MModule, /* NativeArray[Array#0]: NativeArray[MModule] */
-&type_array__Arraymmodule__MModule, /* Array[Array#0]: Array[MModule] */
-&type_array__NativeArraymmodule__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[MModule] */
-&type_mmodule__MModule, /* RemovableCollection#0: MModule */
-&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Sequence#0]: Collection[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] */
-&type_array__ArrayIteratormmodule__MModule, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MModule] */
+&type_array__NativeArraymmodule__MModule, /* NativeArray[E]: NativeArray[MModule] */
+&type_mmodule__MModule, /* E: MModule */
+&type_mmodule__MModule, /* E: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_array__Arraymmodule__MModule, /* Array[E]: Array[MModule] */
+&type_mmodule__MModule, /* E: MModule */
+&type_mmodule__MModule, /* E: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_mmodule__MModule, /* E: MModule */
+&type_array__Arraymmodule__MModule, /* Array[E]: Array[MModule] */
+&type_array__NativeArraymmodule__MModule, /* NativeArray[E]: NativeArray[MModule] */
+&type_mmodule__MModule, /* E: MModule */
+&type_mmodule__MModule, /* E: MModule */
+&type_array__Arraymmodule__MModule, /* Array[E]: Array[MModule] */
+&type_array__AbstractArraymmodule__MModule, /* AbstractArray[E]: AbstractArray[MModule] */
+&type_array__ArrayIteratormmodule__MModule, /* ArrayIterator[E]: ArrayIterator[MModule] */
 }
 };
 /* runtime type Collection[MModule] */
 const struct type type_abstract_collection__Collectionmmodule__MModule = {
-594,
+603,
 "Collection[MModule]", /* class_name_string */
 5,
 0,
@@ -1098,16 +1777,25 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[MModule] */
 const struct type type_array__AbstractArrayReadmmodule__MModule = {
-1646,
+1682,
 "AbstractArrayRead[MModule]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MModule] */
+const struct type type_array__AbstractArraymmodule__MModule = {
+2079,
+"AbstractArray[MModule]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type POSet[MModule] */
 const struct type type_poset__POSetmmodule__MModule = {
-1311,
+1365,
 "POSet[MModule]", /* class_name_string */
 6,
 0,
@@ -1118,24 +1806,22 @@ const struct type type_poset__POSetmmodule__MModule = {
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
-594, /* Collection[MModule] */
-1311, /* POSet[MModule] */
+83, /* Collection[Object] */
+603, /* Collection[MModule] */
+1365, /* POSet[MModule] */
 },
 };
 const struct types resolution_table_poset__POSetmmodule__MModule = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmmodule__MModuleposet__POSetElementmmodule__MModule, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[MModule, POSetElement[MModule]] */
-&type_array__Arraymmodule__MModule, /* Array[Comparator#0]: Array[MModule] */
-&type_mmodule__MModule, /* POSet#0: MModule */
-&type_poset__POSetElementmmodule__MModule, /* POSetElement[POSet#0]: POSetElement[MModule] */
-&type_abstract_collection__Collectionmmodule__MModule, /* Collection[POSet#0]: Collection[MModule] */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_mmodule__MModule, /* Collection#0: MModule */
-&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Collection#0]: Collection[MModule] */
+&type_hash_collection__HashMapmmodule__MModuleposet__POSetElementmmodule__MModule, /* HashMap[E, POSetElement[E]]: HashMap[MModule, POSetElement[MModule]] */
+&type_mmodule__MModule, /* E: MModule */
+&type_mmodule__MModule, /* E: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_array__Arraymmodule__MModule, /* Array[E]: Array[MModule] */
+&type_poset__POSetElementmmodule__MModule, /* POSetElement[E]: POSetElement[MModule] */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_array__Arraymmodule__MModule, /* Array[COMPARED]: Array[MModule] */
 }
 };
 /* runtime type MultiHashMap[String, MModule] */
@@ -1150,27 +1836,27 @@ const struct type type_more_collections__MultiHashMapstring__Stringmmodule__MMod
 0, /* nullable Object */
 1, /* Object */
 90, /* HashMap[String, Array[MModule]] */
-595, /* MultiHashMap[String, MModule] */
+604, /* MultiHashMap[String, MModule] */
 },
 };
 const struct types resolution_table_more_collections__MultiHashMapstring__Stringmmodule__MModule = {
 0, /* dummy */
 {
-&type_string__String, /* MultiHashMap#0: String */
-&type_mmodule__MModule, /* MultiHashMap#1: MModule */
-&type_array__Arraymmodule__MModule, /* Array[MultiHashMap#1]: Array[MModule] */
-&type_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MModule]]] */
-&type_hash_collection__HashMapKeysstring__Stringarray__Arraymmodule__MModule, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, Array[MModule]] */
-&type_hash_collection__HashMapValuesstring__Stringarray__Arraymmodule__MModule, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, Array[MModule]] */
-&type_hash_collection__HashMapIteratorstring__Stringarray__Arraymmodule__MModule, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, Array[MModule]] */
-&type_string__String, /* Map#0: String */
-&type_array__Arraymmodule__MModule, /* Map#1: Array[MModule] */
-&type_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, Array[MModule]] */
-&type_string__String, /* HashCollection#0: String */
-&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 */
+&type_hash_collection__HashMapKeysstring__Stringarray__Arraymmodule__MModule, /* HashMapKeys[K, V]: HashMapKeys[String, Array[MModule]] */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymmodule__MModule, /* HashMapValues[K, V]: HashMapValues[String, Array[MModule]] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringarray__Arraymmodule__MModule, /* HashMapIterator[K, V]: HashMapIterator[String, Array[MModule]] */
+&type_string__String, /* K: String */
+&type_array__Arraymmodule__MModule, /* V: Array[MModule] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* HashMapNode[K, V]: HashMapNode[String, Array[MModule]] */
+&type_string__String, /* K: String */
+&type_string__String, /* K: String */
+&type_mmodule__MModule, /* V: MModule */
+&type_nullable_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* nullable N: nullable HashMapNode[String, Array[MModule]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, Array[MModule]]] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymmodule__MModule, /* N: HashMapNode[String, Array[MModule]] */
+&type_nullable_string__String, /* nullable K: nullable String */
+&type_array__Arraymmodule__MModule, /* Array[V]: Array[MModule] */
 }
 };
 /* runtime type HashMap[String, Array[MModule]] */
@@ -1184,88 +1870,102 @@ NULL, /*DEAD*/
 };
 /* runtime type Array[MClass] */
 const struct type type_array__Arraymodel__MClass = {
-2144,
+2304,
 "Array[MClass]", /* class_name_string */
-11,
+16,
 0,
 &resolution_table_array__Arraymodel__MClass,
-12,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 91, /* Collection[nullable MClass] */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-1312, /* Collection[MClass] */
-1313, /* AbstractArrayRead[nullable MClass] */
-1294, /* AbstractArrayRead[Object] */
-1460, /* Array[nullable MClass] */
-1459, /* Array[Object] */
-2021, /* AbstractArrayRead[MClass] */
-2144, /* Array[MClass] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+1366, /* Collection[MClass] */
+590, /* Array[nullable Object] */
+1367, /* AbstractArrayRead[nullable MClass] */
+1345, /* AbstractArrayRead[Object] */
+1515, /* AbstractArray[nullable MClass] */
+1512, /* AbstractArray[Object] */
+1910, /* Array[nullable MClass] */
+2080, /* AbstractArrayRead[MClass] */
+2207, /* AbstractArray[MClass] */
+-1, /* empty */
+1909, /* Array[Object] */
+2304, /* Array[MClass] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MClass = {
 0, /* dummy */
 {
-&type_model__MClass, /* Sequence#0: MClass */
-&type_model__MClass, /* SimpleCollection#0: MClass */
-&type_array__NativeArraymodel__MClass, /* NativeArray[Array#0]: NativeArray[MClass] */
-&type_array__Arraymodel__MClass, /* Array[Array#0]: Array[MClass] */
-&type_array__NativeArraymodel__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[MClass] */
-&type_model__MClass, /* RemovableCollection#0: MClass */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[Sequence#0]: Collection[MClass] */
-&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, /* SequenceRead#0: MClass */
-&type_model__MClass, /* AbstractArrayRead#0: MClass */
-&type_array__Arraymodel__MClass, /* Array[AbstractArrayRead#0]: Array[MClass] */
-&type_array__ArrayIteratormodel__MClass, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MClass] */
+&type_array__NativeArraymodel__MClass, /* NativeArray[E]: NativeArray[MClass] */
+&type_model__MClass, /* E: MClass */
+&type_model__MClass, /* E: MClass */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[E]: Collection[MClass] */
+&type_array__Arraymodel__MClass, /* Array[E]: Array[MClass] */
+&type_model__MClass, /* E: MClass */
+&type_model__MClass, /* E: MClass */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[E]: Collection[MClass] */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[E]: Collection[MClass] */
+&type_model__MClass, /* E: MClass */
+&type_array__Arraymodel__MClass, /* Array[E]: Array[MClass] */
+&type_array__NativeArraymodel__MClass, /* NativeArray[E]: NativeArray[MClass] */
+&type_model__MClass, /* E: MClass */
+&type_model__MClass, /* E: MClass */
+&type_array__Arraymodel__MClass, /* Array[E]: Array[MClass] */
+&type_array__AbstractArraymodel__MClass, /* AbstractArray[E]: AbstractArray[MClass] */
+&type_array__ArrayIteratormodel__MClass, /* ArrayIterator[E]: ArrayIterator[MClass] */
 }
 };
 /* runtime type Array[nullable MClass] */
 const struct type type_array__Arraynullable_model__MClass = {
-1460,
+1910,
 "Array[nullable MClass]", /* class_name_string */
-8,
+11,
 0,
 &resolution_table_array__Arraynullable_model__MClass,
-9,
+12,
 {
 0, /* nullable Object */
 1, /* Object */
 91, /* Collection[nullable MClass] */
-83, /* SequenceRead[nullable Object] */
+82, /* SequenceRead[nullable Object] */
+-1, /* empty */
 -1, /* empty */
+590, /* Array[nullable Object] */
+1367, /* AbstractArrayRead[nullable MClass] */
 -1, /* empty */
-1313, /* AbstractArrayRead[nullable MClass] */
+1515, /* AbstractArray[nullable MClass] */
 -1, /* empty */
-1460, /* Array[nullable MClass] */
+1910, /* Array[nullable MClass] */
 },
 };
 const struct types resolution_table_array__Arraynullable_model__MClass = {
 0, /* dummy */
 {
-&type_nullable_model__MClass, /* Sequence#0: nullable MClass */
-&type_nullable_model__MClass, /* SimpleCollection#0: nullable MClass */
-&type_array__NativeArraynullable_model__MClass, /* NativeArray[Array#0]: NativeArray[nullable MClass] */
-&type_array__Arraynullable_model__MClass, /* Array[Array#0]: Array[nullable MClass] */
-&type_array__NativeArraynullable_model__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable MClass] */
-&type_nullable_model__MClass, /* RemovableCollection#0: nullable MClass */
-&type_abstract_collection__Collectionnullable_model__MClass, /* Collection[Sequence#0]: Collection[nullable MClass] */
-&type_abstract_collection__Collectionnullable_model__MClass, /* Collection[SimpleCollection#0]: Collection[nullable MClass] */
-&type_nullable_model__MClass, /* Collection#0: nullable MClass */
-&type_abstract_collection__Collectionnullable_model__MClass, /* Collection[Collection#0]: Collection[nullable MClass] */
-&type_nullable_model__MClass, /* SequenceRead#0: nullable MClass */
-&type_nullable_model__MClass, /* AbstractArrayRead#0: nullable MClass */
-&type_array__Arraynullable_model__MClass, /* Array[AbstractArrayRead#0]: Array[nullable MClass] */
-&type_array__ArrayIteratornullable_model__MClass, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable MClass] */
+&type_array__NativeArraynullable_model__MClass, /* NativeArray[E]: NativeArray[nullable MClass] */
+&type_nullable_model__MClass, /* E: nullable MClass */
+&type_nullable_model__MClass, /* E: nullable MClass */
+&type_abstract_collection__Collectionnullable_model__MClass, /* Collection[E]: Collection[nullable MClass] */
+&type_array__Arraynullable_model__MClass, /* Array[E]: Array[nullable MClass] */
+&type_nullable_model__MClass, /* E: nullable MClass */
+&type_nullable_model__MClass, /* E: nullable MClass */
+&type_abstract_collection__Collectionnullable_model__MClass, /* Collection[E]: Collection[nullable MClass] */
+&type_abstract_collection__Collectionnullable_model__MClass, /* Collection[E]: Collection[nullable MClass] */
+&type_nullable_model__MClass, /* E: nullable MClass */
+&type_array__Arraynullable_model__MClass, /* Array[E]: Array[nullable MClass] */
+&type_array__NativeArraynullable_model__MClass, /* NativeArray[E]: NativeArray[nullable MClass] */
+&type_nullable_model__MClass, /* E: nullable MClass */
+&type_nullable_model__MClass, /* E: nullable MClass */
+&type_array__Arraynullable_model__MClass, /* Array[E]: Array[nullable MClass] */
+&type_array__AbstractArraynullable_model__MClass, /* AbstractArray[E]: AbstractArray[nullable MClass] */
+&type_array__ArrayIteratornullable_model__MClass, /* ArrayIterator[E]: ArrayIterator[nullable MClass] */
 }
 };
 /* runtime type Collection[MClass] */
 const struct type type_abstract_collection__Collectionmodel__MClass = {
-1312,
+1366,
 "Collection[MClass]", /* class_name_string */
 5,
 0,
@@ -1283,67 +1983,94 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[MClass] */
 const struct type type_array__AbstractArrayReadmodel__MClass = {
-2021,
+2080,
 "AbstractArrayRead[MClass]", /* class_name_string */
-10,
+12,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[nullable MClass] */
 const struct type type_array__AbstractArrayReadnullable_model__MClass = {
-1313,
+1367,
 "AbstractArrayRead[nullable MClass]", /* class_name_string */
-6,
+7,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MClass] */
+const struct type type_array__AbstractArraymodel__MClass = {
+2207,
+"AbstractArray[MClass]", /* class_name_string */
+13,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[nullable MClass] */
+const struct type type_array__AbstractArraynullable_model__MClass = {
+1515,
+"AbstractArray[nullable MClass]", /* class_name_string */
+9,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type Array[MProperty] */
 const struct type type_array__Arraymodel__MProperty = {
-2176,
+2333,
 "Array[MProperty]", /* class_name_string */
-16,
+22,
 0,
 &resolution_table_array__Arraymodel__MProperty,
-17,
+23,
 {
 0, /* nullable Object */
 1, /* Object */
 92, /* Collection[nullable MProperty] */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-1314, /* AbstractArrayRead[nullable MProperty] */
-596, /* Collection[PropertyLayoutElement] */
-1294, /* AbstractArrayRead[Object] */
-1461, /* Array[nullable MProperty] */
-1459, /* Array[Object] */
-1462, /* Collection[MProperty] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+1368, /* AbstractArrayRead[nullable MProperty] */
+590, /* Array[nullable Object] */
+605, /* Collection[PropertyLayoutElement] */
+1345, /* AbstractArrayRead[Object] */
+1516, /* Collection[MProperty] */
+1512, /* AbstractArray[Object] */
+1517, /* AbstractArray[nullable MProperty] */
 -1, /* empty */
-1647, /* AbstractArrayRead[PropertyLayoutElement] */
-2119, /* AbstractArrayRead[MProperty] */
-2022, /* Array[PropertyLayoutElement] */
+1683, /* AbstractArrayRead[PropertyLayoutElement] */
+1911, /* Array[nullable MProperty] */
+1909, /* Array[Object] */
+2178, /* AbstractArrayRead[MProperty] */
+2081, /* AbstractArray[PropertyLayoutElement] */
 -1, /* empty */
-2176, /* Array[MProperty] */
+2208, /* Array[PropertyLayoutElement] */
+2282, /* AbstractArray[MProperty] */
+-1, /* empty */
+2333, /* Array[MProperty] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MProperty = {
 0, /* dummy */
 {
-&type_model__MProperty, /* Sequence#0: MProperty */
-&type_model__MProperty, /* SimpleCollection#0: MProperty */
-&type_array__NativeArraymodel__MProperty, /* NativeArray[Array#0]: NativeArray[MProperty] */
-&type_array__Arraymodel__MProperty, /* Array[Array#0]: Array[MProperty] */
-&type_array__NativeArraymodel__MProperty, /* NativeArray[ArrayCapable#0]: NativeArray[MProperty] */
-&type_model__MProperty, /* RemovableCollection#0: MProperty */
-&type_abstract_collection__Collectionmodel__MProperty, /* Collection[Sequence#0]: Collection[MProperty] */
-&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, /* SequenceRead#0: MProperty */
-&type_model__MProperty, /* AbstractArrayRead#0: MProperty */
-&type_array__Arraymodel__MProperty, /* Array[AbstractArrayRead#0]: Array[MProperty] */
-&type_array__ArrayIteratormodel__MProperty, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MProperty] */
+&type_array__NativeArraymodel__MProperty, /* NativeArray[E]: NativeArray[MProperty] */
+&type_model__MProperty, /* E: MProperty */
+&type_model__MProperty, /* E: MProperty */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[E]: Collection[MProperty] */
+&type_array__Arraymodel__MProperty, /* Array[E]: Array[MProperty] */
+&type_model__MProperty, /* E: MProperty */
+&type_model__MProperty, /* E: MProperty */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[E]: Collection[MProperty] */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[E]: Collection[MProperty] */
+&type_model__MProperty, /* E: MProperty */
+&type_array__Arraymodel__MProperty, /* Array[E]: Array[MProperty] */
+&type_array__NativeArraymodel__MProperty, /* NativeArray[E]: NativeArray[MProperty] */
+&type_model__MProperty, /* E: MProperty */
+&type_model__MProperty, /* E: MProperty */
+&type_array__Arraymodel__MProperty, /* Array[E]: Array[MProperty] */
+&type_array__AbstractArraymodel__MProperty, /* AbstractArray[E]: AbstractArray[MProperty] */
+&type_array__ArrayIteratormodel__MProperty, /* ArrayIterator[E]: ArrayIterator[MProperty] */
 }
 };
 /* runtime type Array[PropertyLayoutElement] */
@@ -1353,42 +2080,50 @@ const struct type type_array__Arrayseparate_compiler__PropertyLayoutElement = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arrayseparate_compiler__PropertyLayoutElement,
-15,
+20,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
 -1, /* empty */
-596, /* Collection[PropertyLayoutElement] */
-1294, /* AbstractArrayRead[Object] */
+590, /* Array[nullable Object] */
+605, /* Collection[PropertyLayoutElement] */
+1345, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1459, /* Array[Object] */
+1512, /* AbstractArray[Object] */
 -1, /* empty */
 -1, /* empty */
-1647, /* AbstractArrayRead[PropertyLayoutElement] */
+1683, /* AbstractArrayRead[PropertyLayoutElement] */
 -1, /* empty */
-2022, /* Array[PropertyLayoutElement] */
+1909, /* Array[Object] */
+-1, /* empty */
+2081, /* AbstractArray[PropertyLayoutElement] */
+-1, /* empty */
+2208, /* Array[PropertyLayoutElement] */
 },
 };
 const struct types resolution_table_array__Arrayseparate_compiler__PropertyLayoutElement = {
 0, /* dummy */
 {
-&type_separate_compiler__PropertyLayoutElement, /* Sequence#0: PropertyLayoutElement */
-&type_separate_compiler__PropertyLayoutElement, /* SimpleCollection#0: PropertyLayoutElement */
-&type_array__NativeArrayseparate_compiler__PropertyLayoutElement, /* NativeArray[Array#0]: NativeArray[PropertyLayoutElement] */
-&type_array__Arrayseparate_compiler__PropertyLayoutElement, /* Array[Array#0]: Array[PropertyLayoutElement] */
-&type_array__NativeArrayseparate_compiler__PropertyLayoutElement, /* NativeArray[ArrayCapable#0]: NativeArray[PropertyLayoutElement] */
-&type_separate_compiler__PropertyLayoutElement, /* RemovableCollection#0: PropertyLayoutElement */
-&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[Sequence#0]: Collection[PropertyLayoutElement] */
-&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[SimpleCollection#0]: Collection[PropertyLayoutElement] */
-&type_separate_compiler__PropertyLayoutElement, /* Collection#0: PropertyLayoutElement */
-&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[Collection#0]: Collection[PropertyLayoutElement] */
-&type_separate_compiler__PropertyLayoutElement, /* SequenceRead#0: PropertyLayoutElement */
-&type_separate_compiler__PropertyLayoutElement, /* AbstractArrayRead#0: PropertyLayoutElement */
-&type_array__Arrayseparate_compiler__PropertyLayoutElement, /* Array[AbstractArrayRead#0]: Array[PropertyLayoutElement] */
-&type_array__ArrayIteratorseparate_compiler__PropertyLayoutElement, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[PropertyLayoutElement] */
+&type_array__NativeArrayseparate_compiler__PropertyLayoutElement, /* NativeArray[E]: NativeArray[PropertyLayoutElement] */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[E]: Collection[PropertyLayoutElement] */
+&type_array__Arrayseparate_compiler__PropertyLayoutElement, /* Array[E]: Array[PropertyLayoutElement] */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[E]: Collection[PropertyLayoutElement] */
+&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[E]: Collection[PropertyLayoutElement] */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_array__Arrayseparate_compiler__PropertyLayoutElement, /* Array[E]: Array[PropertyLayoutElement] */
+&type_array__NativeArrayseparate_compiler__PropertyLayoutElement, /* NativeArray[E]: NativeArray[PropertyLayoutElement] */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_array__Arrayseparate_compiler__PropertyLayoutElement, /* Array[E]: Array[PropertyLayoutElement] */
+&type_array__AbstractArrayseparate_compiler__PropertyLayoutElement, /* AbstractArray[E]: AbstractArray[PropertyLayoutElement] */
+&type_array__ArrayIteratorseparate_compiler__PropertyLayoutElement, /* ArrayIterator[E]: ArrayIterator[PropertyLayoutElement] */
 }
 };
 /* runtime type Array[nullable MProperty] */
@@ -1398,52 +2133,61 @@ const struct type type_array__Arraynullable_model__MProperty = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arraynullable_model__MProperty,
-9,
+15,
 {
 0, /* nullable Object */
 1, /* Object */
 92, /* Collection[nullable MProperty] */
-83, /* SequenceRead[nullable Object] */
+82, /* SequenceRead[nullable Object] */
 -1, /* empty */
-1314, /* AbstractArrayRead[nullable MProperty] */
+1368, /* AbstractArrayRead[nullable MProperty] */
+590, /* Array[nullable Object] */
 -1, /* empty */
 -1, /* empty */
-1461, /* Array[nullable MProperty] */
+-1, /* empty */
+-1, /* empty */
+1517, /* AbstractArray[nullable MProperty] */
+-1, /* empty */
+-1, /* empty */
+1911, /* Array[nullable MProperty] */
 },
 };
 const struct types resolution_table_array__Arraynullable_model__MProperty = {
 0, /* dummy */
 {
-&type_nullable_model__MProperty, /* Sequence#0: nullable MProperty */
-&type_nullable_model__MProperty, /* SimpleCollection#0: nullable MProperty */
-&type_array__NativeArraynullable_model__MProperty, /* NativeArray[Array#0]: NativeArray[nullable MProperty] */
-&type_array__Arraynullable_model__MProperty, /* Array[Array#0]: Array[nullable MProperty] */
-&type_array__NativeArraynullable_model__MProperty, /* NativeArray[ArrayCapable#0]: NativeArray[nullable MProperty] */
-&type_nullable_model__MProperty, /* RemovableCollection#0: nullable MProperty */
-&type_abstract_collection__Collectionnullable_model__MProperty, /* Collection[Sequence#0]: Collection[nullable MProperty] */
-&type_abstract_collection__Collectionnullable_model__MProperty, /* Collection[SimpleCollection#0]: Collection[nullable MProperty] */
-&type_nullable_model__MProperty, /* Collection#0: nullable MProperty */
-&type_abstract_collection__Collectionnullable_model__MProperty, /* Collection[Collection#0]: Collection[nullable MProperty] */
-&type_nullable_model__MProperty, /* SequenceRead#0: nullable MProperty */
-&type_nullable_model__MProperty, /* AbstractArrayRead#0: nullable MProperty */
-&type_array__Arraynullable_model__MProperty, /* Array[AbstractArrayRead#0]: Array[nullable MProperty] */
-&type_array__ArrayIteratornullable_model__MProperty, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable MProperty] */
+&type_array__NativeArraynullable_model__MProperty, /* NativeArray[E]: NativeArray[nullable MProperty] */
+&type_nullable_model__MProperty, /* E: nullable MProperty */
+&type_nullable_model__MProperty, /* E: nullable MProperty */
+&type_abstract_collection__Collectionnullable_model__MProperty, /* Collection[E]: Collection[nullable MProperty] */
+&type_array__Arraynullable_model__MProperty, /* Array[E]: Array[nullable MProperty] */
+&type_nullable_model__MProperty, /* E: nullable MProperty */
+&type_nullable_model__MProperty, /* E: nullable MProperty */
+&type_abstract_collection__Collectionnullable_model__MProperty, /* Collection[E]: Collection[nullable MProperty] */
+&type_abstract_collection__Collectionnullable_model__MProperty, /* Collection[E]: Collection[nullable MProperty] */
+&type_nullable_model__MProperty, /* E: nullable MProperty */
+&type_array__Arraynullable_model__MProperty, /* Array[E]: Array[nullable MProperty] */
+&type_array__NativeArraynullable_model__MProperty, /* NativeArray[E]: NativeArray[nullable MProperty] */
+&type_nullable_model__MProperty, /* E: nullable MProperty */
+&type_nullable_model__MProperty, /* E: nullable MProperty */
+&type_array__Arraynullable_model__MProperty, /* Array[E]: Array[nullable MProperty] */
+&type_array__AbstractArraynullable_model__MProperty, /* AbstractArray[E]: AbstractArray[nullable MProperty] */
+&type_array__ArrayIteratornullable_model__MProperty, /* ArrayIterator[E]: ArrayIterator[nullable MProperty] */
 }
 };
-/* runtime type Collection[MProperty] */
-const struct type type_abstract_collection__Collectionmodel__MProperty = {
-1462,
-"Collection[MProperty]", /* class_name_string */
-10,
+/* runtime type Collection[PropertyLayoutElement] */
+const struct type type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement = {
+605,
+"Collection[PropertyLayoutElement]", /* class_name_string */
+7,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type Collection[PropertyLayoutElement] */
-const struct type type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement = {
-596,
-"Collection[PropertyLayoutElement]", /* class_name_string */
-6,
+/* runtime type Collection[MProperty] */
+const struct type type_abstract_collection__Collectionmodel__MProperty = {
+1516,
+"Collection[MProperty]", /* class_name_string */
+9,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -1459,34 +2203,61 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[MProperty] */
 const struct type type_array__AbstractArrayReadmodel__MProperty = {
-2119,
+2178,
 "AbstractArrayRead[MProperty]", /* class_name_string */
-13,
+16,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[PropertyLayoutElement] */
 const struct type type_array__AbstractArrayReadseparate_compiler__PropertyLayoutElement = {
-1647,
+1683,
 "AbstractArrayRead[PropertyLayoutElement]", /* class_name_string */
-12,
+13,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[nullable MProperty] */
 const struct type type_array__AbstractArrayReadnullable_model__MProperty = {
-1314,
+1368,
 "AbstractArrayRead[nullable MProperty]", /* class_name_string */
 5,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
+/* runtime type AbstractArray[MProperty] */
+const struct type type_array__AbstractArraymodel__MProperty = {
+2282,
+"AbstractArray[MProperty]", /* class_name_string */
+20,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[PropertyLayoutElement] */
+const struct type type_array__AbstractArrayseparate_compiler__PropertyLayoutElement = {
+2081,
+"AbstractArray[PropertyLayoutElement]", /* class_name_string */
+17,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[nullable MProperty] */
+const struct type type_array__AbstractArraynullable_model__MProperty = {
+1517,
+"AbstractArray[nullable MProperty]", /* class_name_string */
+11,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
 /* runtime type POSet[MClassDef] */
 const struct type type_poset__POSetmodel__MClassDef = {
-1315,
+1369,
 "POSet[MClassDef]", /* class_name_string */
 6,
 0,
@@ -1497,29 +2268,27 @@ const struct type type_poset__POSetmodel__MClassDef = {
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
-597, /* Collection[MClassDef] */
-1315, /* POSet[MClassDef] */
+83, /* Collection[Object] */
+606, /* Collection[MClassDef] */
+1369, /* POSet[MClassDef] */
 },
 };
 const struct types resolution_table_poset__POSetmodel__MClassDef = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmodel__MClassDefposet__POSetElementmodel__MClassDef, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[MClassDef, POSetElement[MClassDef]] */
-&type_array__Arraymodel__MClassDef, /* Array[Comparator#0]: Array[MClassDef] */
-&type_model__MClassDef, /* POSet#0: MClassDef */
-&type_poset__POSetElementmodel__MClassDef, /* POSetElement[POSet#0]: POSetElement[MClassDef] */
-&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[POSet#0]: Collection[MClassDef] */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_model__MClassDef, /* Collection#0: MClassDef */
-&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[Collection#0]: Collection[MClassDef] */
+&type_hash_collection__HashMapmodel__MClassDefposet__POSetElementmodel__MClassDef, /* HashMap[E, POSetElement[E]]: HashMap[MClassDef, POSetElement[MClassDef]] */
+&type_model__MClassDef, /* E: MClassDef */
+&type_model__MClassDef, /* E: MClassDef */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[E]: Collection[MClassDef] */
+&type_array__Arraymodel__MClassDef, /* Array[E]: Array[MClassDef] */
+&type_poset__POSetElementmodel__MClassDef, /* POSetElement[E]: POSetElement[MClassDef] */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[E]: Collection[MClassDef] */
+&type_array__Arraymodel__MClassDef, /* Array[COMPARED]: Array[MClassDef] */
 }
 };
 /* runtime type Collection[MClassDef] */
 const struct type type_abstract_collection__Collectionmodel__MClassDef = {
-597,
+606,
 "Collection[MClassDef]", /* class_name_string */
 5,
 0,
@@ -1528,90 +2297,88 @@ NULL, /*DEAD*/
 };
 /* runtime type POSet[MClassType] */
 const struct type type_poset__POSetmodel__MClassType = {
-1863,
+1912,
 "POSet[MClassType]", /* class_name_string */
-11,
+12,
 0,
 &resolution_table_poset__POSetmodel__MClassType,
-12,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
+83, /* Collection[Object] */
 93, /* Collection[nullable MType] */
-1316, /* Collection[MType] */
-1463, /* POSet[MType] */
+-1, /* empty */
+1370, /* Collection[MType] */
+1518, /* POSet[MType] */
 -1, /* empty */
 -1, /* empty */
-1464, /* Collection[MClassType] */
-1863, /* POSet[MClassType] */
+1519, /* Collection[MClassType] */
+1912, /* POSet[MClassType] */
 },
 };
 const struct types resolution_table_poset__POSetmodel__MClassType = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmodel__MClassTypeposet__POSetElementmodel__MClassType, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[MClassType, POSetElement[MClassType]] */
-&type_array__Arraymodel__MClassType, /* Array[Comparator#0]: Array[MClassType] */
-&type_model__MClassType, /* POSet#0: MClassType */
-&type_poset__POSetElementmodel__MClassType, /* POSetElement[POSet#0]: POSetElement[MClassType] */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[POSet#0]: Collection[MClassType] */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_model__MClassType, /* Collection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Collection#0]: Collection[MClassType] */
+&type_hash_collection__HashMapmodel__MClassTypeposet__POSetElementmodel__MClassType, /* HashMap[E, POSetElement[E]]: HashMap[MClassType, POSetElement[MClassType]] */
+&type_model__MClassType, /* E: MClassType */
+&type_model__MClassType, /* E: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_array__Arraymodel__MClassType, /* Array[E]: Array[MClassType] */
+&type_poset__POSetElementmodel__MClassType, /* POSetElement[E]: POSetElement[MClassType] */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_array__Arraymodel__MClassType, /* Array[COMPARED]: Array[MClassType] */
 }
 };
 /* runtime type POSet[MType] */
 const struct type type_poset__POSetmodel__MType = {
-1463,
+1518,
 "POSet[MType]", /* class_name_string */
-7,
+8,
 0,
 &resolution_table_poset__POSetmodel__MType,
-8,
+9,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
+83, /* Collection[Object] */
 93, /* Collection[nullable MType] */
-1316, /* Collection[MType] */
-1463, /* POSet[MType] */
+-1, /* empty */
+1370, /* Collection[MType] */
+1518, /* POSet[MType] */
 },
 };
 const struct types resolution_table_poset__POSetmodel__MType = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmodel__MTypeposet__POSetElementmodel__MType, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[MType, POSetElement[MType]] */
-&type_array__Arraymodel__MType, /* Array[Comparator#0]: Array[MType] */
-&type_model__MType, /* POSet#0: MType */
-&type_poset__POSetElementmodel__MType, /* POSetElement[POSet#0]: POSetElement[MType] */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[POSet#0]: Collection[MType] */
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_model__MType, /* Collection#0: MType */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[Collection#0]: Collection[MType] */
+&type_hash_collection__HashMapmodel__MTypeposet__POSetElementmodel__MType, /* HashMap[E, POSetElement[E]]: HashMap[MType, POSetElement[MType]] */
+&type_model__MType, /* E: MType */
+&type_model__MType, /* E: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
+&type_array__Arraymodel__MType, /* Array[E]: Array[MType] */
+&type_poset__POSetElementmodel__MType, /* POSetElement[E]: POSetElement[MType] */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
+&type_array__Arraymodel__MType, /* Array[COMPARED]: Array[MType] */
 }
 };
 /* runtime type Collection[MClassType] */
 const struct type type_abstract_collection__Collectionmodel__MClassType = {
-1464,
+1519,
 "Collection[MClassType]", /* class_name_string */
-10,
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[MType] */
 const struct type type_abstract_collection__Collectionmodel__MType = {
-1316,
+1370,
 "Collection[MType]", /* class_name_string */
-6,
+7,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -1637,27 +2404,27 @@ const struct type type_more_collections__MultiHashMapstring__Stringmodel__MClass
 0, /* nullable Object */
 1, /* Object */
 94, /* HashMap[String, Array[MClass]] */
-598, /* MultiHashMap[String, MClass] */
+607, /* MultiHashMap[String, MClass] */
 },
 };
 const struct types resolution_table_more_collections__MultiHashMapstring__Stringmodel__MClass = {
 0, /* dummy */
 {
-&type_string__String, /* MultiHashMap#0: String */
-&type_model__MClass, /* MultiHashMap#1: MClass */
-&type_array__Arraymodel__MClass, /* Array[MultiHashMap#1]: Array[MClass] */
-&type_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MClass]]] */
-&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_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] */
-&type_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MClass, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, 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 */
+&type_hash_collection__HashMapKeysstring__Stringarray__Arraymodel__MClass, /* HashMapKeys[K, V]: HashMapKeys[String, Array[MClass]] */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymodel__MClass, /* HashMapValues[K, V]: HashMapValues[String, Array[MClass]] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringarray__Arraymodel__MClass, /* HashMapIterator[K, V]: HashMapIterator[String, Array[MClass]] */
+&type_string__String, /* K: String */
+&type_array__Arraymodel__MClass, /* V: Array[MClass] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MClass, /* HashMapNode[K, V]: HashMapNode[String, Array[MClass]] */
+&type_string__String, /* K: String */
+&type_string__String, /* K: String */
+&type_model__MClass, /* V: MClass */
+&type_nullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MClass, /* nullable N: nullable HashMapNode[String, Array[MClass]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MClass, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, Array[MClass]]] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MClass, /* N: HashMapNode[String, Array[MClass]] */
+&type_nullable_string__String, /* nullable K: nullable String */
+&type_array__Arraymodel__MClass, /* Array[V]: Array[MClass] */
 }
 };
 /* runtime type HashMap[String, Array[MClass]] */
@@ -1681,27 +2448,27 @@ const struct type type_more_collections__MultiHashMapstring__Stringmodel__MPrope
 0, /* nullable Object */
 1, /* Object */
 95, /* HashMap[String, Array[MProperty]] */
-599, /* MultiHashMap[String, MProperty] */
+608, /* MultiHashMap[String, MProperty] */
 },
 };
 const struct types resolution_table_more_collections__MultiHashMapstring__Stringmodel__MProperty = {
 0, /* dummy */
 {
-&type_string__String, /* MultiHashMap#0: String */
-&type_model__MProperty, /* MultiHashMap#1: MProperty */
-&type_array__Arraymodel__MProperty, /* Array[MultiHashMap#1]: Array[MProperty] */
-&type_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MProperty, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Array[MProperty]]] */
-&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_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] */
-&type_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MProperty, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, 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 */
+&type_hash_collection__HashMapKeysstring__Stringarray__Arraymodel__MProperty, /* HashMapKeys[K, V]: HashMapKeys[String, Array[MProperty]] */
+&type_hash_collection__HashMapValuesstring__Stringarray__Arraymodel__MProperty, /* HashMapValues[K, V]: HashMapValues[String, Array[MProperty]] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringarray__Arraymodel__MProperty, /* HashMapIterator[K, V]: HashMapIterator[String, Array[MProperty]] */
+&type_string__String, /* K: String */
+&type_array__Arraymodel__MProperty, /* V: Array[MProperty] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MProperty, /* HashMapNode[K, V]: HashMapNode[String, Array[MProperty]] */
+&type_string__String, /* K: String */
+&type_string__String, /* K: String */
+&type_model__MProperty, /* V: MProperty */
+&type_nullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MProperty, /* nullable N: nullable HashMapNode[String, Array[MProperty]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MProperty, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, Array[MProperty]]] */
+&type_hash_collection__HashMapNodestring__Stringarray__Arraymodel__MProperty, /* N: HashMapNode[String, Array[MProperty]] */
+&type_nullable_string__String, /* nullable K: nullable String */
+&type_array__Arraymodel__MProperty, /* Array[V]: Array[MProperty] */
 }
 };
 /* runtime type HashMap[String, Array[MProperty]] */
@@ -1715,7 +2482,7 @@ NULL, /*DEAD*/
 };
 /* runtime type MNullType */
 const struct type type_model__MNullType = {
-1317,
+1371,
 "MNullType", /* class_name_string */
 5,
 0,
@@ -1724,15 +2491,15 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-3, /* nullable MType */
+4, /* nullable MType */
 -1, /* empty */
-600, /* MType */
-1317, /* MNullType */
+609, /* MType */
+1371, /* MNullType */
 },
 };
 /* runtime type MType */
 const struct type type_model__MType = {
-600,
+609,
 "MType", /* class_name_string */
 4,
 0,
@@ -1741,7 +2508,7 @@ NULL, /*DEAD*/
 };
 /* runtime type nullable MType */
 const struct type type_nullable_model__MType = {
-3,
+4,
 "nullable MType", /* class_name_string */
 2,
 1,
@@ -1779,12 +2546,12 @@ const struct type type_more_collections__HashMap3mmodule__MModulemodel__MTypestr
 const struct types resolution_table_more_collections__HashMap3mmodule__MModulemodel__MTypestring__Stringnullable_model__MProperty = {
 0, /* dummy */
 {
-&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 */
-&type_more_collections__HashMap2model__MTypestring__Stringnullable_model__MProperty, /* HashMap2[HashMap3#1, HashMap3#2, HashMap3#3]: HashMap2[MType, String, nullable MProperty] */
+&type_hash_collection__HashMapmmodule__MModulemore_collections__HashMap2model__MTypestring__Stringnullable_model__MProperty, /* HashMap[K1, HashMap2[K2, K3, V]]: HashMap[MModule, HashMap2[MType, String, nullable MProperty]] */
+&type_mmodule__MModule, /* K1: MModule */
+&type_model__MType, /* K2: MType */
+&type_string__String, /* K3: String */
+&type_nullable_model__MProperty, /* V: nullable MProperty */
+&type_more_collections__HashMap2model__MTypestring__Stringnullable_model__MProperty, /* HashMap2[K2, K3, V]: HashMap2[MType, String, nullable MProperty] */
 }
 };
 /* runtime type HashMap[String, nullable ModulePath] */
@@ -1804,21 +2571,20 @@ const struct type type_hash_collection__HashMapstring__Stringnullable_modelbuild
 const struct types resolution_table_hash_collection__HashMapstring__Stringnullable_modelbuilder__ModulePath = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysstring__Stringnullable_modelbuilder__ModulePath, /* HashMapKeys[K, V]: HashMapKeys[String, nullable ModulePath] */
+&type_hash_collection__HashMapValuesstring__Stringnullable_modelbuilder__ModulePath, /* HashMapValues[K, V]: HashMapValues[String, nullable ModulePath] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringnullable_modelbuilder__ModulePath, /* HashMapIterator[K, V]: HashMapIterator[String, nullable ModulePath] */
+&type_string__String, /* K: String */
+&type_nullable_modelbuilder__ModulePath, /* V: nullable ModulePath */
+&type_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* HashMapNode[K, V]: HashMapNode[String, nullable ModulePath] */
+&type_string__String, /* K: String */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, nullable ModulePath]] */
-&type_hash_collection__HashMapKeysstring__Stringnullable_modelbuilder__ModulePath, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, nullable ModulePath] */
-&type_hash_collection__HashMapValuesstring__Stringnullable_modelbuilder__ModulePath, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, nullable ModulePath] */
-&type_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] */
-&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 */
+&type_nullable_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* nullable N: nullable HashMapNode[String, nullable ModulePath] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, nullable ModulePath]] */
+&type_hash_collection__HashMapNodestring__Stringnullable_modelbuilder__ModulePath, /* N: HashMapNode[String, nullable ModulePath] */
+&type_nullable_string__String, /* nullable K: nullable String */
 }
 };
 /* runtime type HashMap[String, nullable MGroup] */
@@ -1838,21 +2604,20 @@ const struct type type_hash_collection__HashMapstring__Stringnullable_mproject__
 const struct types resolution_table_hash_collection__HashMapstring__Stringnullable_mproject__MGroup = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysstring__Stringnullable_mproject__MGroup, /* HashMapKeys[K, V]: HashMapKeys[String, nullable MGroup] */
+&type_hash_collection__HashMapValuesstring__Stringnullable_mproject__MGroup, /* HashMapValues[K, V]: HashMapValues[String, nullable MGroup] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringnullable_mproject__MGroup, /* HashMapIterator[K, V]: HashMapIterator[String, nullable MGroup] */
+&type_string__String, /* K: String */
+&type_nullable_mproject__MGroup, /* V: nullable MGroup */
+&type_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* HashMapNode[K, V]: HashMapNode[String, nullable MGroup] */
+&type_string__String, /* K: String */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, nullable MGroup]] */
-&type_hash_collection__HashMapKeysstring__Stringnullable_mproject__MGroup, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[String, nullable MGroup] */
-&type_hash_collection__HashMapValuesstring__Stringnullable_mproject__MGroup, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[String, nullable MGroup] */
-&type_hash_collection__HashMapIteratorstring__Stringnullable_mproject__MGroup, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[String, nullable MGroup] */
-&type_string__String, /* Map#0: String */
-&type_nullable_mproject__MGroup, /* Map#1: nullable MGroup */
-&type_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, nullable MGroup] */
-&type_string__String, /* HashCollection#0: String */
-&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 */
+&type_nullable_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* nullable N: nullable HashMapNode[String, nullable MGroup] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, nullable MGroup]] */
+&type_hash_collection__HashMapNodestring__Stringnullable_mproject__MGroup, /* N: HashMapNode[String, nullable MGroup] */
+&type_nullable_string__String, /* nullable K: nullable String */
 }
 };
 /* runtime type Array[AModule] */
@@ -1862,44 +2627,53 @@ const struct type type_array__Arrayparser_nodes__AModule = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arrayparser_nodes__AModule,
-17,
+23,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-601, /* Collection[ANode] */
-1318, /* Collection[Prod] */
-1294, /* AbstractArrayRead[Object] */
-1465, /* Collection[AModule] */
-1459, /* Array[Object] */
-1648, /* AbstractArrayRead[ANode] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
+590, /* Array[nullable Object] */
+1351, /* Collection[Prod] */
+1345, /* AbstractArrayRead[Object] */
+1514, /* Collection[AModule] */
+1512, /* AbstractArray[Object] */
+1684, /* AbstractArrayRead[ANode] */
 -1, /* empty */
-2023, /* Array[ANode] */
-2024, /* AbstractArrayRead[Prod] */
-2120, /* AbstractArrayRead[AModule] */
-2145, /* Array[Prod] */
-2177, /* Array[AModule] */
+2082, /* AbstractArrayRead[Prod] */
+2083, /* AbstractArray[ANode] */
+1909, /* Array[Object] */
+2179, /* AbstractArrayRead[AModule] */
+2209, /* Array[ANode] */
+2210, /* AbstractArray[Prod] */
+2283, /* AbstractArray[AModule] */
+-1, /* empty */
+2305, /* Array[Prod] */
+2334, /* Array[AModule] */
 },
 };
 const struct types resolution_table_array__Arrayparser_nodes__AModule = {
 0, /* dummy */
 {
-&type_parser_nodes__AModule, /* Sequence#0: AModule */
-&type_parser_nodes__AModule, /* SimpleCollection#0: AModule */
-&type_array__NativeArrayparser_nodes__AModule, /* NativeArray[Array#0]: NativeArray[AModule] */
-&type_array__Arrayparser_nodes__AModule, /* Array[Array#0]: Array[AModule] */
-&type_array__NativeArrayparser_nodes__AModule, /* NativeArray[ArrayCapable#0]: NativeArray[AModule] */
-&type_parser_nodes__AModule, /* RemovableCollection#0: AModule */
-&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[Sequence#0]: Collection[AModule] */
-&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[SimpleCollection#0]: Collection[AModule] */
-&type_parser_nodes__AModule, /* Collection#0: AModule */
-&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[Collection#0]: Collection[AModule] */
-&type_parser_nodes__AModule, /* SequenceRead#0: AModule */
-&type_parser_nodes__AModule, /* AbstractArrayRead#0: AModule */
-&type_array__Arrayparser_nodes__AModule, /* Array[AbstractArrayRead#0]: Array[AModule] */
-&type_array__ArrayIteratorparser_nodes__AModule, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[AModule] */
+&type_array__NativeArrayparser_nodes__AModule, /* NativeArray[E]: NativeArray[AModule] */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[E]: Collection[AModule] */
+&type_array__Arrayparser_nodes__AModule, /* Array[E]: Array[AModule] */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[E]: Collection[AModule] */
+&type_abstract_collection__Collectionparser_nodes__AModule, /* Collection[E]: Collection[AModule] */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_array__Arrayparser_nodes__AModule, /* Array[E]: Array[AModule] */
+&type_array__NativeArrayparser_nodes__AModule, /* NativeArray[E]: NativeArray[AModule] */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_parser_nodes__AModule, /* E: AModule */
+&type_array__Arrayparser_nodes__AModule, /* Array[E]: Array[AModule] */
+&type_array__AbstractArrayparser_nodes__AModule, /* AbstractArray[E]: AbstractArray[AModule] */
+&type_array__ArrayIteratorparser_nodes__AModule, /* ArrayIterator[E]: ArrayIterator[AModule] */
 }
 };
 /* runtime type Array[Prod] */
@@ -1909,43 +2683,52 @@ const struct type type_array__Arrayparser_nodes__Prod = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arrayparser_nodes__Prod,
-16,
+22,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-601, /* Collection[ANode] */
-1318, /* Collection[Prod] */
-1294, /* AbstractArrayRead[Object] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
+590, /* Array[nullable Object] */
+1351, /* Collection[Prod] */
+1345, /* AbstractArrayRead[Object] */
+-1, /* empty */
+1512, /* AbstractArray[Object] */
+1684, /* AbstractArrayRead[ANode] */
+-1, /* empty */
+2082, /* AbstractArrayRead[Prod] */
+2083, /* AbstractArray[ANode] */
+1909, /* Array[Object] */
 -1, /* empty */
-1459, /* Array[Object] */
-1648, /* AbstractArrayRead[ANode] */
+2209, /* Array[ANode] */
+2210, /* AbstractArray[Prod] */
 -1, /* empty */
-2023, /* Array[ANode] */
-2024, /* AbstractArrayRead[Prod] */
 -1, /* empty */
-2145, /* Array[Prod] */
+2305, /* Array[Prod] */
 },
 };
 const struct types resolution_table_array__Arrayparser_nodes__Prod = {
 0, /* dummy */
 {
-&type_parser_nodes__Prod, /* Sequence#0: Prod */
-&type_parser_nodes__Prod, /* SimpleCollection#0: Prod */
-&type_array__NativeArrayparser_nodes__Prod, /* NativeArray[Array#0]: NativeArray[Prod] */
-&type_array__Arrayparser_nodes__Prod, /* Array[Array#0]: Array[Prod] */
-&type_array__NativeArrayparser_nodes__Prod, /* NativeArray[ArrayCapable#0]: NativeArray[Prod] */
-&type_parser_nodes__Prod, /* RemovableCollection#0: Prod */
-&type_abstract_collection__Collectionparser_nodes__Prod, /* Collection[Sequence#0]: Collection[Prod] */
-&type_abstract_collection__Collectionparser_nodes__Prod, /* Collection[SimpleCollection#0]: Collection[Prod] */
-&type_parser_nodes__Prod, /* Collection#0: Prod */
-&type_abstract_collection__Collectionparser_nodes__Prod, /* Collection[Collection#0]: Collection[Prod] */
-&type_parser_nodes__Prod, /* SequenceRead#0: Prod */
-&type_parser_nodes__Prod, /* AbstractArrayRead#0: Prod */
-&type_array__Arrayparser_nodes__Prod, /* Array[AbstractArrayRead#0]: Array[Prod] */
-&type_array__ArrayIteratorparser_nodes__Prod, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Prod] */
+&type_array__NativeArrayparser_nodes__Prod, /* NativeArray[E]: NativeArray[Prod] */
+&type_parser_nodes__Prod, /* E: Prod */
+&type_parser_nodes__Prod, /* E: Prod */
+&type_abstract_collection__Collectionparser_nodes__Prod, /* Collection[E]: Collection[Prod] */
+&type_array__Arrayparser_nodes__Prod, /* Array[E]: Array[Prod] */
+&type_parser_nodes__Prod, /* E: Prod */
+&type_parser_nodes__Prod, /* E: Prod */
+&type_abstract_collection__Collectionparser_nodes__Prod, /* Collection[E]: Collection[Prod] */
+&type_abstract_collection__Collectionparser_nodes__Prod, /* Collection[E]: Collection[Prod] */
+&type_parser_nodes__Prod, /* E: Prod */
+&type_array__Arrayparser_nodes__Prod, /* Array[E]: Array[Prod] */
+&type_array__NativeArrayparser_nodes__Prod, /* NativeArray[E]: NativeArray[Prod] */
+&type_parser_nodes__Prod, /* E: Prod */
+&type_parser_nodes__Prod, /* E: Prod */
+&type_array__Arrayparser_nodes__Prod, /* Array[E]: Array[Prod] */
+&type_array__AbstractArrayparser_nodes__Prod, /* AbstractArray[E]: AbstractArray[Prod] */
+&type_array__ArrayIteratorparser_nodes__Prod, /* ArrayIterator[E]: ArrayIterator[Prod] */
 }
 };
 /* runtime type Array[ANode] */
@@ -1955,92 +2738,100 @@ const struct type type_array__Arrayparser_nodes__ANode = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arrayparser_nodes__ANode,
-13,
+18,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-601, /* Collection[ANode] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+-1, /* empty */
+1512, /* AbstractArray[Object] */
+1684, /* AbstractArrayRead[ANode] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
 -1, /* empty */
-1459, /* Array[Object] */
-1648, /* AbstractArrayRead[ANode] */
+2083, /* AbstractArray[ANode] */
+1909, /* Array[Object] */
 -1, /* empty */
-2023, /* Array[ANode] */
+2209, /* Array[ANode] */
 },
 };
 const struct types resolution_table_array__Arrayparser_nodes__ANode = {
 0, /* dummy */
 {
-&type_parser_nodes__ANode, /* Sequence#0: ANode */
-&type_parser_nodes__ANode, /* SimpleCollection#0: ANode */
-&type_array__NativeArrayparser_nodes__ANode, /* NativeArray[Array#0]: NativeArray[ANode] */
-&type_array__Arrayparser_nodes__ANode, /* Array[Array#0]: Array[ANode] */
-&type_array__NativeArrayparser_nodes__ANode, /* NativeArray[ArrayCapable#0]: NativeArray[ANode] */
-&type_parser_nodes__ANode, /* RemovableCollection#0: ANode */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Sequence#0]: Collection[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 */
-&type_parser_nodes__ANode, /* AbstractArrayRead#0: ANode */
-&type_array__Arrayparser_nodes__ANode, /* Array[AbstractArrayRead#0]: Array[ANode] */
-&type_array__ArrayIteratorparser_nodes__ANode, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[ANode] */
+&type_array__NativeArrayparser_nodes__ANode, /* NativeArray[E]: NativeArray[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+&type_array__Arrayparser_nodes__ANode, /* Array[E]: Array[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_array__Arrayparser_nodes__ANode, /* Array[E]: Array[ANode] */
+&type_array__NativeArrayparser_nodes__ANode, /* NativeArray[E]: NativeArray[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_array__Arrayparser_nodes__ANode, /* Array[E]: Array[ANode] */
+&type_array__AbstractArrayparser_nodes__ANode, /* AbstractArray[E]: AbstractArray[ANode] */
+&type_array__ArrayIteratorparser_nodes__ANode, /* ArrayIterator[E]: ArrayIterator[ANode] */
 }
 };
-/* runtime type Collection[AModule] */
-const struct type type_abstract_collection__Collectionparser_nodes__AModule = {
-1465,
-"Collection[AModule]", /* class_name_string */
-8,
+/* runtime type AbstractArrayRead[AModule] */
+const struct type type_array__AbstractArrayReadparser_nodes__AModule = {
+2179,
+"AbstractArrayRead[AModule]", /* class_name_string */
+16,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type Collection[ANode] */
-const struct type type_abstract_collection__Collectionparser_nodes__ANode = {
-601,
-"Collection[ANode]", /* class_name_string */
-5,
+/* runtime type AbstractArrayRead[Prod] */
+const struct type type_array__AbstractArrayReadparser_nodes__Prod = {
+2082,
+"AbstractArrayRead[Prod]", /* class_name_string */
+13,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type Collection[Prod] */
-const struct type type_abstract_collection__Collectionparser_nodes__Prod = {
-1318,
-"Collection[Prod]", /* class_name_string */
-6,
+/* runtime type AbstractArrayRead[ANode] */
+const struct type type_array__AbstractArrayReadparser_nodes__ANode = {
+1684,
+"AbstractArrayRead[ANode]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type AbstractArrayRead[AModule] */
-const struct type type_array__AbstractArrayReadparser_nodes__AModule = {
-2120,
-"AbstractArrayRead[AModule]", /* class_name_string */
-14,
+/* runtime type AbstractArray[AModule] */
+const struct type type_array__AbstractArrayparser_nodes__AModule = {
+2283,
+"AbstractArray[AModule]", /* class_name_string */
+19,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type AbstractArrayRead[Prod] */
-const struct type type_array__AbstractArrayReadparser_nodes__Prod = {
-2024,
-"AbstractArrayRead[Prod]", /* class_name_string */
-13,
+/* runtime type AbstractArray[Prod] */
+const struct type type_array__AbstractArrayparser_nodes__Prod = {
+2210,
+"AbstractArray[Prod]", /* class_name_string */
+18,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type AbstractArrayRead[ANode] */
-const struct type type_array__AbstractArrayReadparser_nodes__ANode = {
-1648,
-"AbstractArrayRead[ANode]", /* class_name_string */
-10,
+/* runtime type AbstractArray[ANode] */
+const struct type type_array__AbstractArrayparser_nodes__ANode = {
+2083,
+"AbstractArray[ANode]", /* class_name_string */
+14,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -2062,21 +2853,20 @@ const struct type type_hash_collection__HashMapmmodule__MModuleparser_nodes__AMo
 const struct types resolution_table_hash_collection__HashMapmmodule__MModuleparser_nodes__AModule = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmmodule__MModuleparser_nodes__AModule, /* HashMapKeys[K, V]: HashMapKeys[MModule, AModule] */
+&type_hash_collection__HashMapValuesmmodule__MModuleparser_nodes__AModule, /* HashMapValues[K, V]: HashMapValues[MModule, AModule] */
+&type_mmodule__MModule, /* K: MModule */
+&type_hash_collection__HashMapIteratormmodule__MModuleparser_nodes__AModule, /* HashMapIterator[K, V]: HashMapIterator[MModule, AModule] */
+&type_mmodule__MModule, /* K: MModule */
+&type_parser_nodes__AModule, /* V: AModule */
+&type_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* HashMapNode[K, V]: HashMapNode[MModule, AModule] */
+&type_mmodule__MModule, /* K: MModule */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_mmodule__MModule, /* MapRead#0: MModule */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MModule, AModule]] */
-&type_hash_collection__HashMapKeysmmodule__MModuleparser_nodes__AModule, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MModule, AModule] */
-&type_hash_collection__HashMapValuesmmodule__MModuleparser_nodes__AModule, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MModule, AModule] */
-&type_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__HashMapNodemmodule__MModuleparser_nodes__AModule, /* HashMapNode[HashMap#0, HashMap#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 */
+&type_nullable_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* nullable N: nullable HashMapNode[MModule, AModule] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* NativeArray[E]: NativeArray[nullable HashMapNode[MModule, AModule]] */
+&type_hash_collection__HashMapNodemmodule__MModuleparser_nodes__AModule, /* N: HashMapNode[MModule, AModule] */
+&type_nullable_mmodule__MModule, /* nullable K: nullable MModule */
 }
 };
 /* runtime type HashMap[MClassDef, AClassdef] */
@@ -2096,26 +2886,58 @@ const struct type type_hash_collection__HashMapmodel__MClassDefparser_nodes__ACl
 const struct types resolution_table_hash_collection__HashMapmodel__MClassDefparser_nodes__AClassdef = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClassDefparser_nodes__AClassdef, /* HashMapKeys[K, V]: HashMapKeys[MClassDef, AClassdef] */
+&type_hash_collection__HashMapValuesmodel__MClassDefparser_nodes__AClassdef, /* HashMapValues[K, V]: HashMapValues[MClassDef, AClassdef] */
+&type_model__MClassDef, /* K: MClassDef */
+&type_hash_collection__HashMapIteratormodel__MClassDefparser_nodes__AClassdef, /* HashMapIterator[K, V]: HashMapIterator[MClassDef, AClassdef] */
+&type_model__MClassDef, /* K: MClassDef */
+&type_parser_nodes__AClassdef, /* V: AClassdef */
+&type_hash_collection__HashMapNodemodel__MClassDefparser_nodes__AClassdef, /* HashMapNode[K, V]: HashMapNode[MClassDef, AClassdef] */
+&type_model__MClassDef, /* K: MClassDef */
+NULL, /* empty */
 NULL, /* empty */
+&type_nullable_hash_collection__HashMapNodemodel__MClassDefparser_nodes__AClassdef, /* nullable N: nullable HashMapNode[MClassDef, AClassdef] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassDefparser_nodes__AClassdef, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClassDef, AClassdef]] */
+&type_hash_collection__HashMapNodemodel__MClassDefparser_nodes__AClassdef, /* N: HashMapNode[MClassDef, AClassdef] */
+&type_nullable_model__MClassDef, /* nullable K: nullable MClassDef */
+}
+};
+/* runtime type HashMap[String, MModuleData[AAnnotation]] */
+const struct type type_hash_collection__HashMapstring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation = {
+102,
+"HashMap[String, MModuleData[AAnnotation]]", /* class_name_string */
+2,
+0,
+&resolution_table_hash_collection__HashMapstring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation,
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+102, /* HashMap[String, MModuleData[AAnnotation]] */
+},
+};
+const struct types resolution_table_hash_collection__HashMapstring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation = {
+0, /* dummy */
+{
+&type_hash_collection__HashMapKeysstring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation, /* HashMapKeys[K, V]: HashMapKeys[String, MModuleData[AAnnotation]] */
+&type_hash_collection__HashMapValuesstring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation, /* HashMapValues[K, V]: HashMapValues[String, MModuleData[AAnnotation]] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation, /* HashMapIterator[K, V]: HashMapIterator[String, MModuleData[AAnnotation]] */
+&type_string__String, /* K: String */
+&type_mmodule_data__MModuleDataparser_nodes__AAnnotation, /* V: MModuleData[AAnnotation] */
+&type_hash_collection__HashMapNodestring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation, /* HashMapNode[K, V]: HashMapNode[String, MModuleData[AAnnotation]] */
+&type_string__String, /* K: String */
 NULL, /* empty */
 NULL, /* empty */
-&type_model__MClassDef, /* MapRead#0: MClassDef */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassDefparser_nodes__AClassdef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassDef, AClassdef]] */
-&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_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 */
-&type_hash_collection__HashMapNodemodel__MClassDefparser_nodes__AClassdef, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClassDef, 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 */
+&type_nullable_hash_collection__HashMapNodestring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation, /* nullable N: nullable HashMapNode[String, MModuleData[AAnnotation]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, MModuleData[AAnnotation]]] */
+&type_hash_collection__HashMapNodestring__Stringmmodule_data__MModuleDataparser_nodes__AAnnotation, /* N: HashMapNode[String, MModuleData[AAnnotation]] */
+&type_nullable_string__String, /* nullable K: nullable String */
 }
 };
 /* runtime type HashMap[MPropDef, APropdef] */
 const struct type type_hash_collection__HashMapmodel__MPropDefparser_nodes__APropdef = {
-102,
+103,
 "HashMap[MPropDef, APropdef]", /* class_name_string */
 2,
 0,
@@ -2124,32 +2946,31 @@ const struct type type_hash_collection__HashMapmodel__MPropDefparser_nodes__APro
 {
 0, /* nullable Object */
 1, /* Object */
-102, /* HashMap[MPropDef, APropdef] */
+103, /* HashMap[MPropDef, APropdef] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MPropDefparser_nodes__APropdef = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MPropDefparser_nodes__APropdef, /* HashMapKeys[K, V]: HashMapKeys[MPropDef, APropdef] */
+&type_hash_collection__HashMapValuesmodel__MPropDefparser_nodes__APropdef, /* HashMapValues[K, V]: HashMapValues[MPropDef, APropdef] */
+&type_model__MPropDef, /* K: MPropDef */
+&type_hash_collection__HashMapIteratormodel__MPropDefparser_nodes__APropdef, /* HashMapIterator[K, V]: HashMapIterator[MPropDef, APropdef] */
+&type_model__MPropDef, /* K: MPropDef */
+&type_parser_nodes__APropdef, /* V: APropdef */
+&type_hash_collection__HashMapNodemodel__MPropDefparser_nodes__APropdef, /* HashMapNode[K, V]: HashMapNode[MPropDef, APropdef] */
+&type_model__MPropDef, /* K: MPropDef */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MPropDef, /* MapRead#0: MPropDef */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MPropDefparser_nodes__APropdef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MPropDef, APropdef]] */
-&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_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 */
-&type_hash_collection__HashMapNodemodel__MPropDefparser_nodes__APropdef, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MPropDef, 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 */
+&type_nullable_hash_collection__HashMapNodemodel__MPropDefparser_nodes__APropdef, /* nullable N: nullable HashMapNode[MPropDef, APropdef] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MPropDefparser_nodes__APropdef, /* NativeArray[E]: NativeArray[nullable HashMapNode[MPropDef, APropdef]] */
+&type_hash_collection__HashMapNodemodel__MPropDefparser_nodes__APropdef, /* N: HashMapNode[MPropDef, APropdef] */
+&type_nullable_model__MPropDef, /* nullable K: nullable MPropDef */
 }
 };
 /* runtime type NativeArray[Object] */
 const struct type type_array__NativeArraykernel__Object = {
-103,
+104,
 "NativeArray[Object]", /* class_name_string */
 2,
 0,
@@ -2158,398 +2979,313 @@ const struct type type_array__NativeArraykernel__Object = {
 {
 0, /* nullable Object */
 1, /* Object */
-103, /* NativeArray[Object] */
+104, /* NativeArray[Object] */
 },
 };
 const struct types resolution_table_array__NativeArraykernel__Object = {
 0, /* dummy */
 {
-&type_kernel__Object, /* NativeArray#0: Object */
-&type_array__NativeArraykernel__Object, /* NativeArray[NativeArray#0]: NativeArray[Object] */
+&type_kernel__Object, /* E: Object */
+&type_array__NativeArraykernel__Object, /* NativeArray[E]: NativeArray[Object] */
 }
 };
-/* runtime type FlatString */
-const struct type type_string__FlatString = {
-1864,
-"FlatString", /* class_name_string */
-7,
+/* runtime type DefaultComparator */
+const struct type type_sorter__DefaultComparator = {
+-1, /*CAST DEAD*/
+"DefaultComparator", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_string__FlatString,
-8,
+&resolution_table_sorter__DefaultComparator,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-4, /* nullable String */
-104, /* Streamable */
-602, /* Text */
-1319, /* FlatText */
-1466, /* String */
-1864, /* FlatString */
+105, /* DefaultComparator */
 },
 };
-const struct types resolution_table_string__FlatString = {
+const struct types resolution_table_sorter__DefaultComparator = {
 0, /* dummy */
 {
-&type_string__Text, /* OTHER: Text */
-&type_string__String, /* SELFTYPE: String */
-&type_array__Arraystring__String, /* Array[SELFTYPE]: Array[String] */
+&type_kernel__Comparable, /* COMPARED: Comparable */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+NULL, /* empty */
+&type_array__Arraykernel__Comparable, /* Array[COMPARED]: Array[Comparable] */
 }
 };
-/* runtime type Text */
-const struct type type_string__Text = {
-602,
-"Text", /* class_name_string */
-4,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type FlatText */
-const struct type type_string__FlatText = {
-1319,
-"FlatText", /* class_name_string */
+/* runtime type NativeArray[String] */
+const struct type type_array__NativeArraystring__String = {
+1520,
+"NativeArray[String]", /* class_name_string */
 5,
 0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
+&resolution_table_array__NativeArraystring__String,
+6,
+{
+0, /* nullable Object */
+1, /* Object */
+104, /* NativeArray[Object] */
+610, /* NativeArray[Streamable] */
+1372, /* NativeArray[Text] */
+1520, /* NativeArray[String] */
+},
 };
-/* runtime type nullable String */
-const struct type type_nullable_string__String = {
-4,
-"nullable String", /* class_name_string */
-2,
-1,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
+const struct types resolution_table_array__NativeArraystring__String = {
+0, /* dummy */
+{
+&type_string__String, /* E: String */
+&type_array__NativeArraystring__String, /* NativeArray[E]: NativeArray[String] */
+}
 };
-/* runtime type String */
-const struct type type_string__String = {
-1466,
-"String", /* class_name_string */
-6,
+/* runtime type NativeArray[Text] */
+const struct type type_array__NativeArraystring__Text = {
+1372,
+"NativeArray[Text]", /* class_name_string */
+4,
 0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
+&resolution_table_array__NativeArraystring__Text,
+5,
+{
+0, /* nullable Object */
+1, /* Object */
+104, /* NativeArray[Object] */
+610, /* NativeArray[Streamable] */
+1372, /* NativeArray[Text] */
+},
 };
-/* runtime type Streamable */
-const struct type type_stream__Streamable = {
-104,
-"Streamable", /* class_name_string */
+const struct types resolution_table_array__NativeArraystring__Text = {
+0, /* dummy */
+{
+&type_string__Text, /* E: Text */
+&type_array__NativeArraystring__Text, /* NativeArray[E]: NativeArray[Text] */
+}
+};
+/* runtime type NativeArray[Streamable] */
+const struct type type_array__NativeArraystream__Streamable = {
+610,
+"NativeArray[Streamable]", /* class_name_string */
 3,
 0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
+&resolution_table_array__NativeArraystream__Streamable,
+4,
+{
+0, /* nullable Object */
+1, /* Object */
+104, /* NativeArray[Object] */
+610, /* NativeArray[Streamable] */
+},
 };
-/* runtime type FlatStringCharView */
-const struct type type_string__FlatStringCharView = {
+const struct types resolution_table_array__NativeArraystream__Streamable = {
+0, /* dummy */
+{
+&type_stream__Streamable, /* E: Streamable */
+&type_array__NativeArraystream__Streamable, /* NativeArray[E]: NativeArray[Streamable] */
+}
+};
+/* runtime type ArraySet[MModule] */
+const struct type type_array__ArraySetmmodule__MModule = {
 -1, /*CAST DEAD*/
-"FlatStringCharView", /* class_name_string */
+"ArraySet[MModule]", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
-&resolution_table_string__FlatStringCharView,
-7,
+&resolution_table_array__ArraySetmmodule__MModule,
+8,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-603, /* Collection[Char] */
-1467, /* FlatStringCharView */
+-1, /* empty */
+83, /* Collection[Object] */
+603, /* Collection[MModule] */
+598, /* Set[Object] */
+1521, /* ArraySet[MModule] */
 },
 };
-const struct types resolution_table_string__FlatStringCharView = {
+const struct types resolution_table_array__ArraySetmmodule__MModule = {
 0, /* dummy */
 {
+&type_array__ArraySetIteratormmodule__MModule, /* ArraySetIterator[E]: ArraySetIterator[MModule] */
+&type_array__Arraymmodule__MModule, /* Array[E]: Array[MModule] */
+&type_mmodule__MModule, /* E: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_array__Arraymmodule__MModule, /* Array[E]: Array[MModule] */
 NULL, /* empty */
+&type_mmodule__MModule, /* E: MModule */
 NULL, /* empty */
-&type_string__FlatString, /* SELFTYPE: FlatString */
-NULL, /* empty */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_mmodule__MModule, /* E: MModule */
 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_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
 }
 };
-/* runtime type Collection[Char] */
-const struct type type_abstract_collection__Collectionkernel__Char = {
-603,
-"Collection[Char]", /* class_name_string */
-5,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type FlatBuffer */
-const struct type type_string__FlatBuffer = {
-1468,
-"FlatBuffer", /* class_name_string */
-6,
+/* runtime type NativeArray[Option] */
+const struct type type_array__NativeArrayopts__Option = {
+611,
+"NativeArray[Option]", /* class_name_string */
+3,
 0,
-&resolution_table_string__FlatBuffer,
-7,
+&resolution_table_array__NativeArrayopts__Option,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-104, /* Streamable */
-602, /* Text */
-1319, /* FlatText */
-1468, /* FlatBuffer */
+104, /* NativeArray[Object] */
+611, /* NativeArray[Option] */
 },
 };
-const struct types resolution_table_string__FlatBuffer = {
+const struct types resolution_table_array__NativeArrayopts__Option = {
 0, /* dummy */
 {
-&type_string__Text, /* OTHER: Text */
-&type_string__FlatBuffer, /* SELFTYPE: FlatBuffer */
-&type_array__Arraystring__FlatBuffer, /* Array[SELFTYPE]: Array[FlatBuffer] */
+&type_opts__Option, /* E: Option */
+&type_array__NativeArrayopts__Option, /* NativeArray[E]: NativeArray[Option] */
 }
 };
-/* runtime type FlatBufferCharView */
-const struct type type_string__FlatBufferCharView = {
+/* runtime type AnnotationPhaseVisitor */
+const struct type type_phase__AnnotationPhaseVisitor = {
 -1, /*CAST DEAD*/
-"FlatBufferCharView", /* class_name_string */
+"AnnotationPhaseVisitor", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
-&resolution_table_string__FlatBufferCharView,
-7,
+NULL, /*NO RESOLUTIONS*/
+3,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-603, /* Collection[Char] */
-1469, /* FlatBufferCharView */
+106, /* AnnotationPhaseVisitor */
 },
 };
-const struct types resolution_table_string__FlatBufferCharView = {
-0, /* dummy */
-{
-&type_kernel__Char, /* Sequence#0: Char */
-&type_kernel__Char, /* SimpleCollection#0: Char */
-&type_string__FlatBuffer, /* SELFTYPE: FlatBuffer */
-NULL, /* empty */
-NULL, /* empty */
-&type_kernel__Char, /* RemovableCollection#0: Char */
-&type_abstract_collection__Collectionkernel__Char, /* Collection[Sequence#0]: Collection[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 Array[Option] */
-const struct type type_array__Arrayopts__Option = {
+/* runtime type Array[AAnnotation] */
+const struct type type_array__Arrayparser_nodes__AAnnotation = {
 -1, /*CAST DEAD*/
-"Array[Option]", /* class_name_string */
+"Array[AAnnotation]", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
-&resolution_table_array__Arrayopts__Option,
-11,
+&resolution_table_array__Arrayparser_nodes__AAnnotation,
+23,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-604, /* Collection[Option] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
+590, /* Array[nullable Object] */
+1351, /* Collection[Prod] */
+1345, /* AbstractArrayRead[Object] */
+1522, /* Collection[AAnnotation] */
+1512, /* AbstractArray[Object] */
+1684, /* AbstractArrayRead[ANode] */
+-1, /* empty */
+2082, /* AbstractArrayRead[Prod] */
+2083, /* AbstractArray[ANode] */
+1909, /* Array[Object] */
+2180, /* AbstractArrayRead[AAnnotation] */
+2209, /* Array[ANode] */
+2210, /* AbstractArray[Prod] */
+2284, /* AbstractArray[AAnnotation] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1649, /* AbstractArrayRead[Option] */
-1459, /* Array[Object] */
-2025, /* Array[Option] */
+2305, /* Array[Prod] */
+2335, /* Array[AAnnotation] */
 },
 };
-const struct types resolution_table_array__Arrayopts__Option = {
+const struct types resolution_table_array__Arrayparser_nodes__AAnnotation = {
 0, /* dummy */
 {
-&type_opts__Option, /* Sequence#0: Option */
-&type_opts__Option, /* SimpleCollection#0: Option */
-&type_array__NativeArrayopts__Option, /* NativeArray[Array#0]: NativeArray[Option] */
-&type_array__Arrayopts__Option, /* Array[Array#0]: Array[Option] */
-&type_array__NativeArrayopts__Option, /* NativeArray[ArrayCapable#0]: NativeArray[Option] */
-&type_opts__Option, /* RemovableCollection#0: Option */
-&type_abstract_collection__Collectionopts__Option, /* Collection[Sequence#0]: Collection[Option] */
-&type_abstract_collection__Collectionopts__Option, /* Collection[SimpleCollection#0]: Collection[Option] */
-&type_opts__Option, /* Collection#0: Option */
-&type_abstract_collection__Collectionopts__Option, /* Collection[Collection#0]: Collection[Option] */
-&type_opts__Option, /* SequenceRead#0: Option */
-&type_opts__Option, /* AbstractArrayRead#0: Option */
-&type_array__Arrayopts__Option, /* Array[AbstractArrayRead#0]: Array[Option] */
-&type_array__ArrayIteratoropts__Option, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Option] */
+&type_array__NativeArrayparser_nodes__AAnnotation, /* NativeArray[E]: NativeArray[AAnnotation] */
+&type_parser_nodes__AAnnotation, /* E: AAnnotation */
+&type_parser_nodes__AAnnotation, /* E: AAnnotation */
+&type_abstract_collection__Collectionparser_nodes__AAnnotation, /* Collection[E]: Collection[AAnnotation] */
+&type_array__Arrayparser_nodes__AAnnotation, /* Array[E]: Array[AAnnotation] */
+&type_parser_nodes__AAnnotation, /* E: AAnnotation */
+&type_parser_nodes__AAnnotation, /* E: AAnnotation */
+&type_abstract_collection__Collectionparser_nodes__AAnnotation, /* Collection[E]: Collection[AAnnotation] */
+&type_abstract_collection__Collectionparser_nodes__AAnnotation, /* Collection[E]: Collection[AAnnotation] */
+&type_parser_nodes__AAnnotation, /* E: AAnnotation */
+&type_array__Arrayparser_nodes__AAnnotation, /* Array[E]: Array[AAnnotation] */
+&type_array__NativeArrayparser_nodes__AAnnotation, /* NativeArray[E]: NativeArray[AAnnotation] */
+&type_parser_nodes__AAnnotation, /* E: AAnnotation */
+&type_parser_nodes__AAnnotation, /* E: AAnnotation */
+&type_array__Arrayparser_nodes__AAnnotation, /* Array[E]: Array[AAnnotation] */
+&type_array__AbstractArrayparser_nodes__AAnnotation, /* AbstractArray[E]: AbstractArray[AAnnotation] */
+&type_array__ArrayIteratorparser_nodes__AAnnotation, /* ArrayIterator[E]: ArrayIterator[AAnnotation] */
 }
 };
-/* runtime type Collection[Option] */
-const struct type type_abstract_collection__Collectionopts__Option = {
-604,
-"Collection[Option]", /* class_name_string */
-5,
+/* runtime type Collection[AAnnotation] */
+const struct type type_abstract_collection__Collectionparser_nodes__AAnnotation = {
+1522,
+"Collection[AAnnotation]", /* class_name_string */
+9,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type AbstractArrayRead[Option] */
-const struct type type_array__AbstractArrayReadopts__Option = {
-1649,
-"AbstractArrayRead[Option]", /* class_name_string */
-8,
+/* runtime type AbstractArrayRead[AAnnotation] */
+const struct type type_array__AbstractArrayReadparser_nodes__AAnnotation = {
+2180,
+"AbstractArrayRead[AAnnotation]", /* class_name_string */
+16,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type HashMap[String, Option] */
-const struct type type_hash_collection__HashMapstring__Stringopts__Option = {
-105,
-"HashMap[String, Option]", /* class_name_string */
-2,
+/* runtime type AbstractArray[AAnnotation] */
+const struct type type_array__AbstractArrayparser_nodes__AAnnotation = {
+2284,
+"AbstractArray[AAnnotation]", /* class_name_string */
+19,
 0,
-&resolution_table_hash_collection__HashMapstring__Stringopts__Option,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type FlatStringIterator */
+const struct type type_string__FlatStringIterator = {
+-1, /*CAST DEAD*/
+"FlatStringIterator", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_string__FlatStringIterator,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-105, /* HashMap[String, Option] */
+107, /* FlatStringIterator */
 },
 };
-const struct types resolution_table_hash_collection__HashMapstring__Stringopts__Option = {
+const struct types resolution_table_string__FlatStringIterator = {
 0, /* dummy */
 {
-NULL, /* empty */
-NULL, /* empty */
-NULL, /* empty */
-&type_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringopts__Option, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Option]] */
-&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_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 */
-&type_hash_collection__HashMapNodestring__Stringopts__Option, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, 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 = {
-1320,
-"NativeArray[String]", /* class_name_string */
-4,
-0,
-&resolution_table_array__NativeArraystring__String,
-5,
-{
-0, /* nullable Object */
-1, /* Object */
-103, /* NativeArray[Object] */
-605, /* NativeArray[Streamable] */
-1320, /* NativeArray[String] */
-},
-};
-const struct types resolution_table_array__NativeArraystring__String = {
-0, /* dummy */
-{
-&type_string__String, /* NativeArray#0: String */
-&type_array__NativeArraystring__String, /* NativeArray[NativeArray#0]: NativeArray[String] */
-}
-};
-/* runtime type NativeArray[Streamable] */
-const struct type type_array__NativeArraystream__Streamable = {
-605,
-"NativeArray[Streamable]", /* class_name_string */
-3,
-0,
-&resolution_table_array__NativeArraystream__Streamable,
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-103, /* NativeArray[Object] */
-605, /* NativeArray[Streamable] */
-},
-};
-const struct types resolution_table_array__NativeArraystream__Streamable = {
-0, /* dummy */
-{
-&type_stream__Streamable, /* NativeArray#0: Streamable */
-&type_array__NativeArraystream__Streamable, /* NativeArray[NativeArray#0]: NativeArray[Streamable] */
-}
-};
-/* runtime type NativeArray[Option] */
-const struct type type_array__NativeArrayopts__Option = {
-606,
-"NativeArray[Option]", /* class_name_string */
-3,
-0,
-&resolution_table_array__NativeArrayopts__Option,
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-103, /* NativeArray[Object] */
-606, /* NativeArray[Option] */
-},
-};
-const struct types resolution_table_array__NativeArrayopts__Option = {
-0, /* dummy */
-{
-&type_opts__Option, /* NativeArray#0: Option */
-&type_array__NativeArrayopts__Option, /* NativeArray[NativeArray#0]: NativeArray[Option] */
+&type_array__Arraykernel__Char, /* Array[E]: Array[Char] */
 }
 };
-/* runtime type ArraySet[MModule] */
-const struct type type_array__ArraySetmmodule__MModule = {
+/* runtime type FlatBufferIterator */
+const struct type type_string__FlatBufferIterator = {
 -1, /*CAST DEAD*/
-"ArraySet[MModule]", /* class_name_string */
+"FlatBufferIterator", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
-&resolution_table_array__ArraySetmmodule__MModule,
-9,
+&resolution_table_string__FlatBufferIterator,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
--1, /* empty */
-84, /* Collection[Object] */
-594, /* Collection[MModule] */
--1, /* empty */
-607, /* Set[Object] */
-1470, /* ArraySet[MModule] */
+108, /* FlatBufferIterator */
 },
 };
-const struct types resolution_table_array__ArraySetmmodule__MModule = {
+const struct types resolution_table_string__FlatBufferIterator = {
 0, /* dummy */
 {
-&type_array__ArraySetIteratormmodule__MModule, /* ArraySetIterator[ArraySet#0]: ArraySetIterator[MModule] */
-&type_mmodule__MModule, /* SimpleCollection#0: MModule */
-&type_array__Arraymmodule__MModule, /* Array[ArraySet#0]: Array[MModule] */
-&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Set#0]: Collection[MModule] */
-NULL, /* empty */
-&type_mmodule__MModule, /* RemovableCollection#0: MModule */
-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] */
+&type_array__Arraykernel__Char, /* Array[E]: Array[Char] */
 }
 };
-/* runtime type Set[Object] */
-const struct type type_abstract_collection__Setkernel__Object = {
-607,
-"Set[Object]", /* class_name_string */
-7,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
 /* runtime type MModule */
 const struct type type_mmodule__MModule = {
-608,
+612,
 "MModule", /* class_name_string */
 3,
 0,
@@ -2559,7 +3295,7 @@ NULL, /*NO RESOLUTIONS*/
 0, /* nullable Object */
 1, /* Object */
 5, /* nullable MModule */
-608, /* MModule */
+612, /* MModule */
 },
 };
 /* runtime type nullable MModule */
@@ -2573,7 +3309,7 @@ NULL, /*DEAD*/
 };
 /* runtime type HashSet[MModule] */
 const struct type type_hash_collection__HashSetmmodule__MModule = {
-1650,
+1685,
 "HashSet[MModule]", /* class_name_string */
 9,
 0,
@@ -2584,127 +3320,105 @@ const struct type type_hash_collection__HashSetmmodule__MModule = {
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
-594, /* Collection[MModule] */
+83, /* Collection[Object] */
+603, /* Collection[MModule] */
+598, /* Set[Object] */
 -1, /* empty */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1650, /* HashSet[MModule] */
+1350, /* HashSet[Object] */
+1685, /* HashSet[MModule] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmmodule__MModule = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemmodule__MModule, /* HashSetNode[HashSet#0]: HashSetNode[MModule] */
-&type_mmodule__MModule, /* SimpleCollection#0: MModule */
-&type_hash_collection__HashSetIteratormmodule__MModule, /* HashSetIterator[HashSet#0]: HashSetIterator[MModule] */
-&type_abstract_collection__Collectionmmodule__MModule, /* Collection[Set#0]: Collection[MModule] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemmodule__MModule, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MModule]] */
-&type_mmodule__MModule, /* RemovableCollection#0: MModule */
-&type_abstract_collection__Collectionmmodule__MModule, /* Collection[HashSet#0]: Collection[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] */
-NULL, /* empty */
-&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 = {
-1321,
-"HashSet[Object]", /* class_name_string */
-8,
-0,
-&resolution_table_hash_collection__HashSetkernel__Object,
-9,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
--1, /* empty */
-84, /* Collection[Object] */
--1, /* empty */
--1, /* empty */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-},
-};
-const struct types resolution_table_hash_collection__HashSetkernel__Object = {
-0, /* dummy */
-{
-&type_hash_collection__HashSetNodekernel__Object, /* HashSetNode[HashSet#0]: HashSetNode[Object] */
-&type_kernel__Object, /* SimpleCollection#0: Object */
-&type_hash_collection__HashSetIteratorkernel__Object, /* HashSetIterator[HashSet#0]: HashSetIterator[Object] */
-&type_abstract_collection__Collectionkernel__Object, /* Collection[Set#0]: Collection[Object] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodekernel__Object, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[Object]] */
-&type_kernel__Object, /* RemovableCollection#0: Object */
-&type_abstract_collection__Collectionkernel__Object, /* Collection[HashSet#0]: Collection[Object] */
-&type_abstract_collection__Collectionkernel__Object, /* Collection[SimpleCollection#0]: Collection[Object] */
-&type_kernel__Object, /* Collection#0: Object */
-&type_abstract_collection__Collectionkernel__Object, /* Collection[Collection#0]: Collection[Object] */
-NULL, /* empty */
-&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 */
+&type_hash_collection__HashSetNodemmodule__MModule, /* HashSetNode[E]: HashSetNode[MModule] */
+&type_hash_collection__HashSetIteratormmodule__MModule, /* HashSetIterator[E]: HashSetIterator[MModule] */
+&type_mmodule__MModule, /* E: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_array__Arraymmodule__MModule, /* Array[E]: Array[MModule] */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_mmodule__MModule, /* E: MModule */
+&type_mmodule__MModule, /* K: MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
+&type_mmodule__MModule, /* E: MModule */
+&type_nullable_hash_collection__HashSetNodemmodule__MModule, /* nullable N: nullable HashSetNode[MModule] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemmodule__MModule, /* NativeArray[E]: NativeArray[nullable HashSetNode[MModule]] */
+&type_hash_collection__HashSetNodemmodule__MModule, /* N: HashSetNode[MModule] */
+&type_nullable_mmodule__MModule, /* nullable K: nullable MModule */
+&type_abstract_collection__Collectionmmodule__MModule, /* Collection[E]: Collection[MModule] */
 }
 };
 /* runtime type Array[MClassDef] */
 const struct type type_array__Arraymodel__MClassDef = {
-2026,
+2211,
 "Array[MClassDef]", /* class_name_string */
-10,
+16,
 0,
 &resolution_table_array__Arraymodel__MClassDef,
-11,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-597, /* Collection[MClassDef] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+606, /* Collection[MClassDef] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1686, /* AbstractArrayRead[MClassDef] */
+1512, /* AbstractArray[Object] */
+2084, /* AbstractArray[MClassDef] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1651, /* AbstractArrayRead[MClassDef] */
-1459, /* Array[Object] */
-2026, /* Array[MClassDef] */
+-1, /* empty */
+-1, /* empty */
+1909, /* Array[Object] */
+2211, /* Array[MClassDef] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MClassDef = {
 0, /* dummy */
 {
-&type_model__MClassDef, /* Sequence#0: MClassDef */
-&type_model__MClassDef, /* SimpleCollection#0: MClassDef */
-&type_array__NativeArraymodel__MClassDef, /* NativeArray[Array#0]: NativeArray[MClassDef] */
-&type_array__Arraymodel__MClassDef, /* Array[Array#0]: Array[MClassDef] */
-&type_array__NativeArraymodel__MClassDef, /* NativeArray[ArrayCapable#0]: NativeArray[MClassDef] */
-&type_model__MClassDef, /* RemovableCollection#0: MClassDef */
-&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[Sequence#0]: Collection[MClassDef] */
-&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[SimpleCollection#0]: Collection[MClassDef] */
-&type_model__MClassDef, /* Collection#0: MClassDef */
-&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[Collection#0]: Collection[MClassDef] */
-&type_model__MClassDef, /* SequenceRead#0: MClassDef */
-&type_model__MClassDef, /* AbstractArrayRead#0: MClassDef */
-&type_array__Arraymodel__MClassDef, /* Array[AbstractArrayRead#0]: Array[MClassDef] */
-&type_array__ArrayIteratormodel__MClassDef, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MClassDef] */
+&type_array__NativeArraymodel__MClassDef, /* NativeArray[E]: NativeArray[MClassDef] */
+&type_model__MClassDef, /* E: MClassDef */
+&type_model__MClassDef, /* E: MClassDef */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[E]: Collection[MClassDef] */
+&type_array__Arraymodel__MClassDef, /* Array[E]: Array[MClassDef] */
+&type_model__MClassDef, /* E: MClassDef */
+&type_model__MClassDef, /* E: MClassDef */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[E]: Collection[MClassDef] */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[E]: Collection[MClassDef] */
+&type_model__MClassDef, /* E: MClassDef */
+&type_array__Arraymodel__MClassDef, /* Array[E]: Array[MClassDef] */
+&type_array__NativeArraymodel__MClassDef, /* NativeArray[E]: NativeArray[MClassDef] */
+&type_model__MClassDef, /* E: MClassDef */
+&type_model__MClassDef, /* E: MClassDef */
+&type_array__Arraymodel__MClassDef, /* Array[E]: Array[MClassDef] */
+&type_array__AbstractArraymodel__MClassDef, /* AbstractArray[E]: AbstractArray[MClassDef] */
+&type_array__ArrayIteratormodel__MClassDef, /* ArrayIterator[E]: ArrayIterator[MClassDef] */
 }
 };
 /* runtime type AbstractArrayRead[MClassDef] */
 const struct type type_array__AbstractArrayReadmodel__MClassDef = {
-1651,
+1686,
 "AbstractArrayRead[MClassDef]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MClassDef] */
+const struct type type_array__AbstractArraymodel__MClassDef = {
+2084,
+"AbstractArray[MClassDef]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashMap[MClass, Set[MProperty]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MProperty = {
-1322,
+1373,
 "HashMap[MClass, Set[MProperty]]", /* class_name_string */
 5,
 0,
@@ -2713,35 +3427,34 @@ const struct type type_hash_collection__HashMapmodel__MClassabstract_collection_
 {
 0, /* nullable Object */
 1, /* Object */
-106, /* Map[MClass, Set[PropertyLayoutElement]] */
-609, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+109, /* Map[MClass, Set[PropertyLayoutElement]] */
+613, /* HashMap[MClass, Set[PropertyLayoutElement]] */
 -1, /* empty */
-1322, /* HashMap[MClass, Set[MProperty]] */
+1373, /* HashMap[MClass, Set[MProperty]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MProperty = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setmodel__MProperty, /* HashMapKeys[K, V]: HashMapKeys[MClass, Set[MProperty]] */
+&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setmodel__MProperty, /* HashMapValues[K, V]: HashMapValues[MClass, Set[MProperty]] */
+&type_model__MClass, /* K: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setmodel__MProperty, /* HashMapIterator[K, V]: HashMapIterator[MClass, Set[MProperty]] */
+&type_model__MClass, /* K: MClass */
+&type_abstract_collection__Setmodel__MProperty, /* V: Set[MProperty] */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MProperty, /* HashMapNode[K, V]: HashMapNode[MClass, Set[MProperty]] */
+&type_model__MClass, /* K: MClass */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MProperty, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Set[MProperty]]] */
-&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_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] */
-&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MProperty, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, 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 */
+&type_nullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MProperty, /* nullable N: nullable HashMapNode[MClass, Set[MProperty]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MProperty, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClass, Set[MProperty]]] */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MProperty, /* N: HashMapNode[MClass, Set[MProperty]] */
+&type_nullable_model__MClass, /* nullable K: nullable MClass */
 }
 };
 /* runtime type HashMap[MClass, Set[PropertyLayoutElement]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement = {
-609,
+613,
 "HashMap[MClass, Set[PropertyLayoutElement]]", /* class_name_string */
 3,
 0,
@@ -2750,225 +3463,619 @@ const struct type type_hash_collection__HashMapmodel__MClassabstract_collection_
 {
 0, /* nullable Object */
 1, /* Object */
-106, /* Map[MClass, Set[PropertyLayoutElement]] */
-609, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+109, /* Map[MClass, Set[PropertyLayoutElement]] */
+613, /* HashMap[MClass, Set[PropertyLayoutElement]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* HashMapKeys[K, V]: HashMapKeys[MClass, Set[PropertyLayoutElement]] */
+&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* HashMapValues[K, V]: HashMapValues[MClass, Set[PropertyLayoutElement]] */
+&type_model__MClass, /* K: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* HashMapIterator[K, V]: HashMapIterator[MClass, Set[PropertyLayoutElement]] */
+&type_model__MClass, /* K: MClass */
+&type_abstract_collection__Setseparate_compiler__PropertyLayoutElement, /* V: Set[PropertyLayoutElement] */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* HashMapNode[K, V]: HashMapNode[MClass, Set[PropertyLayoutElement]] */
+&type_model__MClass, /* K: MClass */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Set[PropertyLayoutElement]]] */
-&type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, Set[PropertyLayoutElement]] */
-&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, Set[PropertyLayoutElement]] */
-&type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Set[PropertyLayoutElement]] */
-&type_model__MClass, /* Map#0: MClass */
-&type_abstract_collection__Setseparate_compiler__PropertyLayoutElement, /* Map#1: Set[PropertyLayoutElement] */
-&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Set[PropertyLayoutElement]] */
-&type_model__MClass, /* HashCollection#0: MClass */
-&type_nullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* nullable HashCollection#1: nullable HashMapNode[MClass, Set[PropertyLayoutElement]] */
-&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* HashCollection#1: HashMapNode[MClass, Set[PropertyLayoutElement]] */
-&type_nullable_model__MClass, /* nullable HashCollection#0: nullable MClass */
+&type_nullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* nullable N: nullable HashMapNode[MClass, Set[PropertyLayoutElement]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClass, Set[PropertyLayoutElement]]] */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* N: HashMapNode[MClass, Set[PropertyLayoutElement]] */
+&type_nullable_model__MClass, /* nullable K: nullable MClass */
 }
 };
 /* runtime type Map[MClass, Set[PropertyLayoutElement]] */
 const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement = {
-106,
+109,
 "Map[MClass, Set[PropertyLayoutElement]]", /* class_name_string */
 2,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type Location */
-const struct type type_location__Location = {
-107,
-"Location", /* class_name_string */
-2,
-0,
-&resolution_table_location__Location,
+/* runtime type MClassDef */
+const struct type type_model__MClassDef = {
+614,
+"MClassDef", /* class_name_string */
 3,
-{
-0, /* nullable Object */
-1, /* Object */
-107, /* Location */
-},
-};
-const struct types resolution_table_location__Location = {
-0, /* dummy */
-{
-&type_location__Location, /* OTHER: Location */
-}
-};
-/* runtime type Range[Int] */
-const struct type type_range__Rangekernel__Int = {
-1323,
-"Range[Int]", /* class_name_string */
-6,
 0,
-&resolution_table_range__Rangekernel__Int,
-7,
+NULL, /*NO RESOLUTIONS*/
+4,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
--1, /* empty */
-84, /* Collection[Object] */
-610, /* Collection[Int] */
-1323, /* Range[Int] */
+6, /* nullable MClassDef */
+614, /* MClassDef */
 },
 };
-const struct types resolution_table_range__Rangekernel__Int = {
-0, /* dummy */
-{
-&type_kernel__Int, /* Range#0: Int */
-&type_range__IteratorRangekernel__Int, /* IteratorRange[Range#0]: IteratorRange[Int] */
-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 = {
-610,
-"Collection[Int]", /* class_name_string */
-5,
-0,
+/* runtime type nullable MClassDef */
+const struct type type_nullable_model__MClassDef = {
+6,
+"nullable MClassDef", /* class_name_string */
+2,
+1,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type AnnotationPhaseVisitor */
-const struct type type_phase__AnnotationPhaseVisitor = {
--1, /*CAST DEAD*/
-"AnnotationPhaseVisitor", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-108, /* AnnotationPhaseVisitor */
-},
-};
-/* runtime type FlatStringIterator */
-const struct type type_string__FlatStringIterator = {
--1, /*CAST DEAD*/
-"FlatStringIterator", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type Array[MClassType] */
+const struct type type_array__Arraymodel__MClassType = {
+2350,
+"Array[MClassType]", /* class_name_string */
+23,
 0,
-&resolution_table_string__FlatStringIterator,
-3,
+&resolution_table_array__Arraymodel__MClassType,
+24,
 {
 0, /* nullable Object */
 1, /* Object */
-109, /* FlatStringIterator */
+7, /* nullable Array[nullable MType] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+93, /* Collection[nullable MType] */
+590, /* Array[nullable Object] */
+1370, /* Collection[MType] */
+1345, /* AbstractArrayRead[Object] */
+1374, /* AbstractArrayRead[nullable MType] */
+1512, /* AbstractArray[Object] */
+1519, /* Collection[MClassType] */
+1523, /* AbstractArray[nullable MType] */
+-1, /* empty */
+2085, /* Array[nullable MType] */
+1909, /* Array[Object] */
+2086, /* AbstractArrayRead[MType] */
+2181, /* AbstractArrayRead[MClassType] */
+2212, /* AbstractArray[MType] */
+-1, /* empty */
+2285, /* AbstractArray[MClassType] */
+2321, /* Array[MType] */
+-1, /* empty */
+2350, /* Array[MClassType] */
 },
 };
-const struct types resolution_table_string__FlatStringIterator = {
+const struct types resolution_table_array__Arraymodel__MClassType = {
 0, /* dummy */
 {
-&type_array__Arraykernel__Char, /* Array[Iterator#0]: Array[Char] */
+&type_array__NativeArraymodel__MClassType, /* NativeArray[E]: NativeArray[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_model__MClassType, /* E: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_array__Arraymodel__MClassType, /* Array[E]: Array[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_model__MClassType, /* E: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_array__Arraymodel__MClassType, /* Array[E]: Array[MClassType] */
+&type_array__NativeArraymodel__MClassType, /* NativeArray[E]: NativeArray[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_model__MClassType, /* E: MClassType */
+&type_array__Arraymodel__MClassType, /* Array[E]: Array[MClassType] */
+&type_array__AbstractArraymodel__MClassType, /* AbstractArray[E]: AbstractArray[MClassType] */
+&type_array__ArrayIteratormodel__MClassType, /* ArrayIterator[E]: ArrayIterator[MClassType] */
 }
 };
-/* runtime type FlatBufferIterator */
-const struct type type_string__FlatBufferIterator = {
--1, /*CAST DEAD*/
-"FlatBufferIterator", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type Array[MType] */
+const struct type type_array__Arraymodel__MType = {
+2321,
+"Array[MType]", /* class_name_string */
+21,
 0,
-&resolution_table_string__FlatBufferIterator,
-3,
+&resolution_table_array__Arraymodel__MType,
+22,
 {
 0, /* nullable Object */
 1, /* Object */
-110, /* FlatBufferIterator */
+7, /* nullable Array[nullable MType] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+93, /* Collection[nullable MType] */
+590, /* Array[nullable Object] */
+1370, /* Collection[MType] */
+1345, /* AbstractArrayRead[Object] */
+1374, /* AbstractArrayRead[nullable MType] */
+1512, /* AbstractArray[Object] */
+-1, /* empty */
+1523, /* AbstractArray[nullable MType] */
+-1, /* empty */
+2085, /* Array[nullable MType] */
+1909, /* Array[Object] */
+2086, /* AbstractArrayRead[MType] */
+-1, /* empty */
+2212, /* AbstractArray[MType] */
+-1, /* empty */
+-1, /* empty */
+2321, /* Array[MType] */
 },
 };
-const struct types resolution_table_string__FlatBufferIterator = {
+const struct types resolution_table_array__Arraymodel__MType = {
 0, /* dummy */
 {
-&type_array__Arraykernel__Char, /* Array[Iterator#0]: Array[Char] */
+&type_array__NativeArraymodel__MType, /* NativeArray[E]: NativeArray[MType] */
+&type_model__MType, /* E: MType */
+&type_model__MType, /* E: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
+&type_array__Arraymodel__MType, /* Array[E]: Array[MType] */
+&type_model__MType, /* E: MType */
+&type_model__MType, /* E: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
+&type_model__MType, /* E: MType */
+&type_array__Arraymodel__MType, /* Array[E]: Array[MType] */
+&type_array__NativeArraymodel__MType, /* NativeArray[E]: NativeArray[MType] */
+&type_model__MType, /* E: MType */
+&type_model__MType, /* E: MType */
+&type_array__Arraymodel__MType, /* Array[E]: Array[MType] */
+&type_array__AbstractArraymodel__MType, /* AbstractArray[E]: AbstractArray[MType] */
+&type_array__ArrayIteratormodel__MType, /* ArrayIterator[E]: ArrayIterator[MType] */
 }
 };
-/* runtime type FlatSubstringsIter */
-const struct type type_string__FlatSubstringsIter = {
--1, /*CAST DEAD*/
-"FlatSubstringsIter", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type Array[nullable MType] */
+const struct type type_array__Arraynullable_model__MType = {
+2085,
+"Array[nullable MType]", /* class_name_string */
+14,
 0,
-&resolution_table_string__FlatSubstringsIter,
-3,
+&resolution_table_array__Arraynullable_model__MType,
+15,
 {
 0, /* nullable Object */
 1, /* Object */
-111, /* FlatSubstringsIter */
+7, /* nullable Array[nullable MType] */
+82, /* SequenceRead[nullable Object] */
+-1, /* empty */
+93, /* Collection[nullable MType] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+-1, /* empty */
+1374, /* AbstractArrayRead[nullable MType] */
+-1, /* empty */
+-1, /* empty */
+1523, /* AbstractArray[nullable MType] */
+-1, /* empty */
+2085, /* Array[nullable MType] */
 },
 };
-const struct types resolution_table_string__FlatSubstringsIter = {
+const struct types resolution_table_array__Arraynullable_model__MType = {
 0, /* dummy */
 {
-&type_array__Arraystring__FlatText, /* Array[Iterator#0]: Array[FlatText] */
+&type_array__NativeArraynullable_model__MType, /* NativeArray[E]: NativeArray[nullable MType] */
+&type_nullable_model__MType, /* E: nullable MType */
+&type_nullable_model__MType, /* E: nullable MType */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[E]: Collection[nullable MType] */
+&type_array__Arraynullable_model__MType, /* Array[E]: Array[nullable MType] */
+&type_nullable_model__MType, /* E: nullable MType */
+&type_nullable_model__MType, /* E: nullable MType */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[E]: Collection[nullable MType] */
+&type_abstract_collection__Collectionnullable_model__MType, /* Collection[E]: Collection[nullable MType] */
+&type_nullable_model__MType, /* E: nullable MType */
+&type_array__Arraynullable_model__MType, /* Array[E]: Array[nullable MType] */
+&type_array__NativeArraynullable_model__MType, /* NativeArray[E]: NativeArray[nullable MType] */
+&type_nullable_model__MType, /* E: nullable MType */
+&type_nullable_model__MType, /* E: nullable MType */
+&type_array__Arraynullable_model__MType, /* Array[E]: Array[nullable MType] */
+&type_array__AbstractArraynullable_model__MType, /* AbstractArray[E]: AbstractArray[nullable MType] */
+&type_array__ArrayIteratornullable_model__MType, /* ArrayIterator[E]: ArrayIterator[nullable MType] */
 }
 };
-/* runtime type MProject */
-const struct type type_mproject__MProject = {
-112,
-"MProject", /* class_name_string */
+/* runtime type nullable Array[nullable MType] */
+const struct type type_nullable_array__Arraynullable_model__MType = {
+7,
+"nullable Array[nullable MType]", /* class_name_string */
 2,
-0,
-NULL, /*NO RESOLUTIONS*/
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-112, /* MProject */
-},
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type POSet[MGroup] */
-const struct type type_poset__POSetmproject__MGroup = {
-1471,
-"POSet[MGroup]", /* class_name_string */
-6,
+/* runtime type AbstractArrayRead[MClassType] */
+const struct type type_array__AbstractArrayReadmodel__MClassType = {
+2181,
+"AbstractArrayRead[MClassType]", /* class_name_string */
+17,
 0,
-&resolution_table_poset__POSetmproject__MGroup,
-7,
-{
-0, /* nullable Object */
-1, /* Object */
-113, /* Collection[nullable MGroup] */
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[MType] */
+const struct type type_array__AbstractArrayReadmodel__MType = {
+2086,
+"AbstractArrayRead[MType]", /* class_name_string */
+16,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[nullable MType] */
+const struct type type_array__AbstractArrayReadnullable_model__MType = {
+1374,
+"AbstractArrayRead[nullable MType]", /* class_name_string */
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MClassType] */
+const struct type type_array__AbstractArraymodel__MClassType = {
+2285,
+"AbstractArray[MClassType]", /* class_name_string */
+20,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MType] */
+const struct type type_array__AbstractArraymodel__MType = {
+2212,
+"AbstractArray[MType]", /* class_name_string */
+18,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[nullable MType] */
+const struct type type_array__AbstractArraynullable_model__MType = {
+1523,
+"AbstractArray[nullable MType]", /* class_name_string */
+12,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Array[MPropDef] */
+const struct type type_array__Arraymodel__MPropDef = {
+2336,
+"Array[MPropDef]", /* class_name_string */
+23,
+0,
+&resolution_table_array__Arraymodel__MPropDef,
+24,
+{
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+110, /* Collection[nullable MPropDef] */
+590, /* Array[nullable Object] */
+605, /* Collection[PropertyLayoutElement] */
+1345, /* AbstractArrayRead[Object] */
+1375, /* AbstractArrayRead[nullable MPropDef] */
+1512, /* AbstractArray[Object] */
+1524, /* Collection[MPropDef] */
+1525, /* AbstractArray[nullable MPropDef] */
+1683, /* AbstractArrayRead[PropertyLayoutElement] */
+-1, /* empty */
+1909, /* Array[Object] */
+1913, /* Array[nullable MPropDef] */
+2081, /* AbstractArray[PropertyLayoutElement] */
+2182, /* AbstractArrayRead[MPropDef] */
+2208, /* Array[PropertyLayoutElement] */
+-1, /* empty */
+2286, /* AbstractArray[MPropDef] */
 -1, /* empty */
-84, /* Collection[Object] */
-1324, /* Collection[MGroup] */
-1471, /* POSet[MGroup] */
+2336, /* Array[MPropDef] */
 },
 };
-const struct types resolution_table_poset__POSetmproject__MGroup = {
+const struct types resolution_table_array__Arraymodel__MPropDef = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmproject__MGroupposet__POSetElementmproject__MGroup, /* HashMap[POSet#0, POSetElement[POSet#0]]: HashMap[MGroup, POSetElement[MGroup]] */
-&type_array__Arraymproject__MGroup, /* Array[Comparator#0]: Array[MGroup] */
-&type_mproject__MGroup, /* POSet#0: MGroup */
-&type_poset__POSetElementmproject__MGroup, /* POSetElement[POSet#0]: POSetElement[MGroup] */
-&type_abstract_collection__Collectionmproject__MGroup, /* Collection[POSet#0]: Collection[MGroup] */
-NULL, /* empty */
+&type_array__NativeArraymodel__MPropDef, /* NativeArray[E]: NativeArray[MPropDef] */
+&type_model__MPropDef, /* E: MPropDef */
+&type_model__MPropDef, /* E: MPropDef */
+&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[E]: Collection[MPropDef] */
+&type_array__Arraymodel__MPropDef, /* Array[E]: Array[MPropDef] */
+&type_model__MPropDef, /* E: MPropDef */
+&type_model__MPropDef, /* E: MPropDef */
+&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[E]: Collection[MPropDef] */
+&type_abstract_collection__Collectionmodel__MPropDef, /* Collection[E]: Collection[MPropDef] */
+&type_model__MPropDef, /* E: MPropDef */
+&type_array__Arraymodel__MPropDef, /* Array[E]: Array[MPropDef] */
+&type_array__NativeArraymodel__MPropDef, /* NativeArray[E]: NativeArray[MPropDef] */
+&type_model__MPropDef, /* E: MPropDef */
+&type_model__MPropDef, /* E: MPropDef */
+&type_array__Arraymodel__MPropDef, /* Array[E]: Array[MPropDef] */
+&type_array__AbstractArraymodel__MPropDef, /* AbstractArray[E]: AbstractArray[MPropDef] */
+&type_array__ArrayIteratormodel__MPropDef, /* ArrayIterator[E]: ArrayIterator[MPropDef] */
+}
+};
+/* runtime type Array[nullable MPropDef] */
+const struct type type_array__Arraynullable_model__MPropDef = {
+1913,
+"Array[nullable MPropDef]", /* class_name_string */
+16,
+0,
+&resolution_table_array__Arraynullable_model__MPropDef,
+17,
+{
+0, /* nullable Object */
+1, /* Object */
+-1, /* empty */
+82, /* SequenceRead[nullable Object] */
+-1, /* empty */
+110, /* Collection[nullable MPropDef] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+-1, /* empty */
+1375, /* AbstractArrayRead[nullable MPropDef] */
+-1, /* empty */
+-1, /* empty */
+1525, /* AbstractArray[nullable MPropDef] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+1913, /* Array[nullable MPropDef] */
+},
+};
+const struct types resolution_table_array__Arraynullable_model__MPropDef = {
+0, /* dummy */
+{
+&type_array__NativeArraynullable_model__MPropDef, /* NativeArray[E]: NativeArray[nullable MPropDef] */
+&type_nullable_model__MPropDef, /* E: nullable MPropDef */
+&type_nullable_model__MPropDef, /* E: nullable MPropDef */
+&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[E]: Collection[nullable MPropDef] */
+&type_array__Arraynullable_model__MPropDef, /* Array[E]: Array[nullable MPropDef] */
+&type_nullable_model__MPropDef, /* E: nullable MPropDef */
+&type_nullable_model__MPropDef, /* E: nullable MPropDef */
+&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[E]: Collection[nullable MPropDef] */
+&type_abstract_collection__Collectionnullable_model__MPropDef, /* Collection[E]: Collection[nullable MPropDef] */
+&type_nullable_model__MPropDef, /* E: nullable MPropDef */
+&type_array__Arraynullable_model__MPropDef, /* Array[E]: Array[nullable MPropDef] */
+&type_array__NativeArraynullable_model__MPropDef, /* NativeArray[E]: NativeArray[nullable MPropDef] */
+&type_nullable_model__MPropDef, /* E: nullable MPropDef */
+&type_nullable_model__MPropDef, /* E: nullable MPropDef */
+&type_array__Arraynullable_model__MPropDef, /* Array[E]: Array[nullable MPropDef] */
+&type_array__AbstractArraynullable_model__MPropDef, /* AbstractArray[E]: AbstractArray[nullable MPropDef] */
+&type_array__ArrayIteratornullable_model__MPropDef, /* ArrayIterator[E]: ArrayIterator[nullable MPropDef] */
+}
+};
+/* runtime type Collection[MPropDef] */
+const struct type type_abstract_collection__Collectionmodel__MPropDef = {
+1524,
+"Collection[MPropDef]", /* class_name_string */
+11,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Collection[nullable MPropDef] */
+const struct type type_abstract_collection__Collectionnullable_model__MPropDef = {
+110,
+"Collection[nullable MPropDef]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[MPropDef] */
+const struct type type_array__AbstractArrayReadmodel__MPropDef = {
+2182,
+"AbstractArrayRead[MPropDef]", /* class_name_string */
+18,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[nullable MPropDef] */
+const struct type type_array__AbstractArrayReadnullable_model__MPropDef = {
+1375,
+"AbstractArrayRead[nullable MPropDef]", /* class_name_string */
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MPropDef] */
+const struct type type_array__AbstractArraymodel__MPropDef = {
+2286,
+"AbstractArray[MPropDef]", /* class_name_string */
+21,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[nullable MPropDef] */
+const struct type type_array__AbstractArraynullable_model__MPropDef = {
+1525,
+"AbstractArray[nullable MPropDef]", /* class_name_string */
+12,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashMap[MProperty, APropdef] */
+const struct type type_hash_collection__HashMapmodel__MPropertyparser_nodes__APropdef = {
+111,
+"HashMap[MProperty, APropdef]", /* class_name_string */
+2,
+0,
+&resolution_table_hash_collection__HashMapmodel__MPropertyparser_nodes__APropdef,
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+111, /* HashMap[MProperty, APropdef] */
+},
+};
+const struct types resolution_table_hash_collection__HashMapmodel__MPropertyparser_nodes__APropdef = {
+0, /* dummy */
+{
+&type_hash_collection__HashMapKeysmodel__MPropertyparser_nodes__APropdef, /* HashMapKeys[K, V]: HashMapKeys[MProperty, APropdef] */
+&type_hash_collection__HashMapValuesmodel__MPropertyparser_nodes__APropdef, /* HashMapValues[K, V]: HashMapValues[MProperty, APropdef] */
+&type_model__MProperty, /* K: MProperty */
+&type_hash_collection__HashMapIteratormodel__MPropertyparser_nodes__APropdef, /* HashMapIterator[K, V]: HashMapIterator[MProperty, APropdef] */
+&type_model__MProperty, /* K: MProperty */
+&type_parser_nodes__APropdef, /* V: APropdef */
+&type_hash_collection__HashMapNodemodel__MPropertyparser_nodes__APropdef, /* HashMapNode[K, V]: HashMapNode[MProperty, APropdef] */
+&type_model__MProperty, /* K: MProperty */
 NULL, /* empty */
 NULL, /* empty */
-&type_mproject__MGroup, /* Collection#0: MGroup */
-&type_abstract_collection__Collectionmproject__MGroup, /* Collection[Collection#0]: Collection[MGroup] */
+&type_nullable_hash_collection__HashMapNodemodel__MPropertyparser_nodes__APropdef, /* nullable N: nullable HashMapNode[MProperty, APropdef] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MPropertyparser_nodes__APropdef, /* NativeArray[E]: NativeArray[nullable HashMapNode[MProperty, APropdef]] */
+&type_hash_collection__HashMapNodemodel__MPropertyparser_nodes__APropdef, /* N: HashMapNode[MProperty, APropdef] */
+&type_nullable_model__MProperty, /* nullable K: nullable MProperty */
+}
+};
+/* runtime type MMethodDef */
+const struct type type_model__MMethodDef = {
+1914,
+"MMethodDef", /* class_name_string */
+7,
+0,
+&resolution_table_model__MMethodDef,
+8,
+{
+0, /* nullable Object */
+1, /* Object */
+8, /* nullable PropertyLayoutElement */
+112, /* nullable MPropDef */
+615, /* PropertyLayoutElement */
+616, /* nullable MMethodDef */
+1526, /* MPropDef */
+1914, /* MMethodDef */
+},
+};
+const struct types resolution_table_model__MMethodDef = {
+0, /* dummy */
+{
+&type_model__MMethod, /* MPROPERTY: MMethod */
+&type_abstract_compiler__AbstractCompilerVisitor, /* VISITOR: AbstractCompilerVisitor */
+&type_model__MMethodDef, /* MPROPDEF: MMethodDef */
+}
+};
+/* runtime type MPropDef */
+const struct type type_model__MPropDef = {
+1526,
+"MPropDef", /* class_name_string */
+6,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable MPropDef */
+const struct type type_nullable_model__MPropDef = {
+112,
+"nullable MPropDef", /* class_name_string */
+3,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type PropertyLayoutElement */
+const struct type type_separate_compiler__PropertyLayoutElement = {
+615,
+"PropertyLayoutElement", /* class_name_string */
+4,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable MMethodDef */
+const struct type type_nullable_model__MMethodDef = {
+616,
+"nullable MMethodDef", /* class_name_string */
+5,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type nullable PropertyLayoutElement */
+const struct type type_nullable_separate_compiler__PropertyLayoutElement = {
+8,
+"nullable PropertyLayoutElement", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type FlatSubstringsIter */
+const struct type type_string__FlatSubstringsIter = {
+-1, /*CAST DEAD*/
+"FlatSubstringsIter", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_string__FlatSubstringsIter,
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+113, /* FlatSubstringsIter */
+},
+};
+const struct types resolution_table_string__FlatSubstringsIter = {
+0, /* dummy */
+{
+&type_array__Arraystring__FlatText, /* Array[E]: Array[FlatText] */
+}
+};
+/* runtime type MProject */
+const struct type type_mproject__MProject = {
+114,
+"MProject", /* class_name_string */
+2,
+0,
+NULL, /*NO RESOLUTIONS*/
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+114, /* MProject */
+},
+};
+/* runtime type POSet[MGroup] */
+const struct type type_poset__POSetmproject__MGroup = {
+1527,
+"POSet[MGroup]", /* class_name_string */
+6,
+0,
+&resolution_table_poset__POSetmproject__MGroup,
+7,
+{
+0, /* nullable Object */
+1, /* Object */
+115, /* Collection[nullable MGroup] */
+-1, /* empty */
+83, /* Collection[Object] */
+1376, /* Collection[MGroup] */
+1527, /* POSet[MGroup] */
+},
+};
+const struct types resolution_table_poset__POSetmproject__MGroup = {
+0, /* dummy */
+{
+&type_hash_collection__HashMapmproject__MGroupposet__POSetElementmproject__MGroup, /* HashMap[E, POSetElement[E]]: HashMap[MGroup, POSetElement[MGroup]] */
+&type_mproject__MGroup, /* E: MGroup */
+&type_mproject__MGroup, /* E: MGroup */
+&type_abstract_collection__Collectionmproject__MGroup, /* Collection[E]: Collection[MGroup] */
+&type_array__Arraymproject__MGroup, /* Array[E]: Array[MGroup] */
+&type_poset__POSetElementmproject__MGroup, /* POSetElement[E]: POSetElement[MGroup] */
+&type_abstract_collection__Collectionmproject__MGroup, /* Collection[E]: Collection[MGroup] */
+&type_array__Arraymproject__MGroup, /* Array[COMPARED]: Array[MGroup] */
 }
 };
 /* runtime type Collection[MGroup] */
 const struct type type_abstract_collection__Collectionmproject__MGroup = {
-1324,
+1376,
 "Collection[MGroup]", /* class_name_string */
 5,
 0,
@@ -2977,7 +4084,7 @@ NULL, /*DEAD*/
 };
 /* runtime type Collection[nullable MGroup] */
 const struct type type_abstract_collection__Collectionnullable_mproject__MGroup = {
-113,
+115,
 "Collection[nullable MGroup]", /* class_name_string */
 2,
 0,
@@ -2986,7 +4093,7 @@ NULL, /*DEAD*/
 };
 /* runtime type MGroup */
 const struct type type_mproject__MGroup = {
-611,
+617,
 "MGroup", /* class_name_string */
 3,
 0,
@@ -2995,13 +4102,13 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-6, /* nullable MGroup */
-611, /* MGroup */
+9, /* nullable MGroup */
+617, /* MGroup */
 },
 };
 /* runtime type nullable MGroup */
 const struct type type_nullable_mproject__MGroup = {
-6,
+9,
 "nullable MGroup", /* class_name_string */
 2,
 1,
@@ -3015,39 +4122,47 @@ const struct type type_array__Arraymodelbuilder__ModulePath = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arraymodelbuilder__ModulePath,
-12,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
-114, /* Collection[nullable ModulePath] */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-1325, /* Collection[ModulePath] */
-1326, /* AbstractArrayRead[nullable ModulePath] */
-1294, /* AbstractArrayRead[Object] */
-1472, /* Array[nullable ModulePath] */
-1459, /* Array[Object] */
-2027, /* AbstractArrayRead[ModulePath] */
-2146, /* Array[ModulePath] */
+116, /* Collection[nullable ModulePath] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+1377, /* Collection[ModulePath] */
+590, /* Array[nullable Object] */
+1378, /* AbstractArrayRead[nullable ModulePath] */
+1345, /* AbstractArrayRead[Object] */
+1528, /* AbstractArray[nullable ModulePath] */
+1512, /* AbstractArray[Object] */
+1915, /* Array[nullable ModulePath] */
+2087, /* AbstractArrayRead[ModulePath] */
+2213, /* AbstractArray[ModulePath] */
+-1, /* empty */
+1909, /* Array[Object] */
+2306, /* Array[ModulePath] */
 },
 };
 const struct types resolution_table_array__Arraymodelbuilder__ModulePath = {
 0, /* dummy */
 {
-&type_modelbuilder__ModulePath, /* Sequence#0: ModulePath */
-&type_modelbuilder__ModulePath, /* SimpleCollection#0: ModulePath */
-&type_array__NativeArraymodelbuilder__ModulePath, /* NativeArray[Array#0]: NativeArray[ModulePath] */
-&type_array__Arraymodelbuilder__ModulePath, /* Array[Array#0]: Array[ModulePath] */
-&type_array__NativeArraymodelbuilder__ModulePath, /* NativeArray[ArrayCapable#0]: NativeArray[ModulePath] */
-&type_modelbuilder__ModulePath, /* RemovableCollection#0: ModulePath */
-&type_abstract_collection__Collectionmodelbuilder__ModulePath, /* Collection[Sequence#0]: Collection[ModulePath] */
-&type_abstract_collection__Collectionmodelbuilder__ModulePath, /* Collection[SimpleCollection#0]: Collection[ModulePath] */
-&type_modelbuilder__ModulePath, /* Collection#0: ModulePath */
-&type_abstract_collection__Collectionmodelbuilder__ModulePath, /* Collection[Collection#0]: Collection[ModulePath] */
-&type_modelbuilder__ModulePath, /* SequenceRead#0: ModulePath */
-&type_modelbuilder__ModulePath, /* AbstractArrayRead#0: ModulePath */
-&type_array__Arraymodelbuilder__ModulePath, /* Array[AbstractArrayRead#0]: Array[ModulePath] */
-&type_array__ArrayIteratormodelbuilder__ModulePath, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[ModulePath] */
+&type_array__NativeArraymodelbuilder__ModulePath, /* NativeArray[E]: NativeArray[ModulePath] */
+&type_modelbuilder__ModulePath, /* E: ModulePath */
+&type_modelbuilder__ModulePath, /* E: ModulePath */
+&type_abstract_collection__Collectionmodelbuilder__ModulePath, /* Collection[E]: Collection[ModulePath] */
+&type_array__Arraymodelbuilder__ModulePath, /* Array[E]: Array[ModulePath] */
+&type_modelbuilder__ModulePath, /* E: ModulePath */
+&type_modelbuilder__ModulePath, /* E: ModulePath */
+&type_abstract_collection__Collectionmodelbuilder__ModulePath, /* Collection[E]: Collection[ModulePath] */
+&type_abstract_collection__Collectionmodelbuilder__ModulePath, /* Collection[E]: Collection[ModulePath] */
+&type_modelbuilder__ModulePath, /* E: ModulePath */
+&type_array__Arraymodelbuilder__ModulePath, /* Array[E]: Array[ModulePath] */
+&type_array__NativeArraymodelbuilder__ModulePath, /* NativeArray[E]: NativeArray[ModulePath] */
+&type_modelbuilder__ModulePath, /* E: ModulePath */
+&type_modelbuilder__ModulePath, /* E: ModulePath */
+&type_array__Arraymodelbuilder__ModulePath, /* Array[E]: Array[ModulePath] */
+&type_array__AbstractArraymodelbuilder__ModulePath, /* AbstractArray[E]: AbstractArray[ModulePath] */
+&type_array__ArrayIteratormodelbuilder__ModulePath, /* ArrayIterator[E]: ArrayIterator[ModulePath] */
 }
 };
 /* runtime type Array[nullable ModulePath] */
@@ -3057,41 +4172,47 @@ const struct type type_array__Arraynullable_modelbuilder__ModulePath = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arraynullable_modelbuilder__ModulePath,
-9,
+12,
 {
 0, /* nullable Object */
 1, /* Object */
-114, /* Collection[nullable ModulePath] */
-83, /* SequenceRead[nullable Object] */
+116, /* Collection[nullable ModulePath] */
+82, /* SequenceRead[nullable Object] */
+-1, /* empty */
 -1, /* empty */
+590, /* Array[nullable Object] */
+1378, /* AbstractArrayRead[nullable ModulePath] */
 -1, /* empty */
-1326, /* AbstractArrayRead[nullable ModulePath] */
+1528, /* AbstractArray[nullable ModulePath] */
 -1, /* empty */
-1472, /* Array[nullable ModulePath] */
+1915, /* Array[nullable ModulePath] */
 },
 };
 const struct types resolution_table_array__Arraynullable_modelbuilder__ModulePath = {
 0, /* dummy */
 {
-&type_nullable_modelbuilder__ModulePath, /* Sequence#0: nullable ModulePath */
-&type_nullable_modelbuilder__ModulePath, /* SimpleCollection#0: nullable ModulePath */
-&type_array__NativeArraynullable_modelbuilder__ModulePath, /* NativeArray[Array#0]: NativeArray[nullable ModulePath] */
-&type_array__Arraynullable_modelbuilder__ModulePath, /* Array[Array#0]: Array[nullable ModulePath] */
-&type_array__NativeArraynullable_modelbuilder__ModulePath, /* NativeArray[ArrayCapable#0]: NativeArray[nullable ModulePath] */
-&type_nullable_modelbuilder__ModulePath, /* RemovableCollection#0: nullable ModulePath */
-&type_abstract_collection__Collectionnullable_modelbuilder__ModulePath, /* Collection[Sequence#0]: Collection[nullable ModulePath] */
-&type_abstract_collection__Collectionnullable_modelbuilder__ModulePath, /* Collection[SimpleCollection#0]: Collection[nullable ModulePath] */
-&type_nullable_modelbuilder__ModulePath, /* Collection#0: nullable ModulePath */
-&type_abstract_collection__Collectionnullable_modelbuilder__ModulePath, /* Collection[Collection#0]: Collection[nullable ModulePath] */
-&type_nullable_modelbuilder__ModulePath, /* SequenceRead#0: nullable ModulePath */
-&type_nullable_modelbuilder__ModulePath, /* AbstractArrayRead#0: nullable ModulePath */
-&type_array__Arraynullable_modelbuilder__ModulePath, /* Array[AbstractArrayRead#0]: Array[nullable ModulePath] */
-&type_array__ArrayIteratornullable_modelbuilder__ModulePath, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable ModulePath] */
+&type_array__NativeArraynullable_modelbuilder__ModulePath, /* NativeArray[E]: NativeArray[nullable ModulePath] */
+&type_nullable_modelbuilder__ModulePath, /* E: nullable ModulePath */
+&type_nullable_modelbuilder__ModulePath, /* E: nullable ModulePath */
+&type_abstract_collection__Collectionnullable_modelbuilder__ModulePath, /* Collection[E]: Collection[nullable ModulePath] */
+&type_array__Arraynullable_modelbuilder__ModulePath, /* Array[E]: Array[nullable ModulePath] */
+&type_nullable_modelbuilder__ModulePath, /* E: nullable ModulePath */
+&type_nullable_modelbuilder__ModulePath, /* E: nullable ModulePath */
+&type_abstract_collection__Collectionnullable_modelbuilder__ModulePath, /* Collection[E]: Collection[nullable ModulePath] */
+&type_abstract_collection__Collectionnullable_modelbuilder__ModulePath, /* Collection[E]: Collection[nullable ModulePath] */
+&type_nullable_modelbuilder__ModulePath, /* E: nullable ModulePath */
+&type_array__Arraynullable_modelbuilder__ModulePath, /* Array[E]: Array[nullable ModulePath] */
+&type_array__NativeArraynullable_modelbuilder__ModulePath, /* NativeArray[E]: NativeArray[nullable ModulePath] */
+&type_nullable_modelbuilder__ModulePath, /* E: nullable ModulePath */
+&type_nullable_modelbuilder__ModulePath, /* E: nullable ModulePath */
+&type_array__Arraynullable_modelbuilder__ModulePath, /* Array[E]: Array[nullable ModulePath] */
+&type_array__AbstractArraynullable_modelbuilder__ModulePath, /* AbstractArray[E]: AbstractArray[nullable ModulePath] */
+&type_array__ArrayIteratornullable_modelbuilder__ModulePath, /* ArrayIterator[E]: ArrayIterator[nullable ModulePath] */
 }
 };
 /* runtime type Collection[ModulePath] */
 const struct type type_abstract_collection__Collectionmodelbuilder__ModulePath = {
-1325,
+1377,
 "Collection[ModulePath]", /* class_name_string */
 5,
 0,
@@ -3100,7 +4221,7 @@ NULL, /*DEAD*/
 };
 /* runtime type Collection[nullable ModulePath] */
 const struct type type_abstract_collection__Collectionnullable_modelbuilder__ModulePath = {
-114,
+116,
 "Collection[nullable ModulePath]", /* class_name_string */
 2,
 0,
@@ -3109,25 +4230,43 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[ModulePath] */
 const struct type type_array__AbstractArrayReadmodelbuilder__ModulePath = {
-2027,
+2087,
 "AbstractArrayRead[ModulePath]", /* class_name_string */
-10,
+12,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type AbstractArrayRead[nullable ModulePath] */
 const struct type type_array__AbstractArrayReadnullable_modelbuilder__ModulePath = {
-1326,
+1378,
 "AbstractArrayRead[nullable ModulePath]", /* class_name_string */
-6,
+7,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[ModulePath] */
+const struct type type_array__AbstractArraymodelbuilder__ModulePath = {
+2213,
+"AbstractArray[ModulePath]", /* class_name_string */
+13,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[nullable ModulePath] */
+const struct type type_array__AbstractArraynullable_modelbuilder__ModulePath = {
+1528,
+"AbstractArray[nullable ModulePath]", /* class_name_string */
+9,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type ModulePath */
 const struct type type_modelbuilder__ModulePath = {
-612,
+618,
 "ModulePath", /* class_name_string */
 3,
 0,
@@ -3136,13 +4275,13 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-7, /* nullable ModulePath */
-612, /* ModulePath */
+10, /* nullable ModulePath */
+618, /* ModulePath */
 },
 };
 /* runtime type nullable ModulePath */
 const struct type type_nullable_modelbuilder__ModulePath = {
-7,
+10,
 "nullable ModulePath", /* class_name_string */
 2,
 1,
@@ -3160,8 +4299,8 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-115, /* TablesCapable */
-613, /* Lexer */
+117, /* TablesCapable */
+619, /* Lexer */
 },
 };
 /* runtime type TablesCapable */
@@ -3175,7 +4314,7 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-115, /* TablesCapable */
+117, /* TablesCapable */
 },
 };
 /* runtime type SourceFile */
@@ -3189,7 +4328,7 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-116, /* SourceFile */
+118, /* SourceFile */
 },
 };
 /* runtime type Array[Int] */
@@ -3199,45 +4338,73 @@ const struct type type_array__Arraykernel__Int = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arraykernel__Int,
-11,
+18,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-610, /* Collection[Int] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+620, /* Collection[Int] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1687, /* AbstractArrayRead[Int] */
+1512, /* AbstractArray[Object] */
+2088, /* AbstractArray[Int] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1652, /* AbstractArrayRead[Int] */
-1459, /* Array[Object] */
-2028, /* Array[Int] */
+-1, /* empty */
+-1, /* empty */
+1909, /* Array[Object] */
+2072, /* Array[Comparable] */
+2266, /* Array[Int] */
 },
 };
 const struct types resolution_table_array__Arraykernel__Int = {
 0, /* dummy */
 {
-&type_kernel__Int, /* Sequence#0: Int */
-&type_kernel__Int, /* SimpleCollection#0: Int */
-&type_array__NativeArraykernel__Int, /* NativeArray[Array#0]: NativeArray[Int] */
-&type_array__Arraykernel__Int, /* Array[Array#0]: Array[Int] */
-&type_array__NativeArraykernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[Int] */
-&type_kernel__Int, /* RemovableCollection#0: Int */
-&type_abstract_collection__Collectionkernel__Int, /* Collection[Sequence#0]: Collection[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] */
-&type_array__ArrayIteratorkernel__Int, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Int] */
+&type_array__NativeArraykernel__Int, /* NativeArray[E]: NativeArray[Int] */
+&type_kernel__Int, /* E: Int */
+&type_kernel__Int, /* E: Int */
+&type_abstract_collection__Collectionkernel__Int, /* Collection[E]: Collection[Int] */
+&type_array__Arraykernel__Int, /* Array[E]: Array[Int] */
+&type_kernel__Int, /* E: Int */
+&type_kernel__Int, /* E: Int */
+&type_abstract_collection__Collectionkernel__Int, /* Collection[E]: Collection[Int] */
+&type_abstract_collection__Collectionkernel__Int, /* Collection[E]: Collection[Int] */
+&type_kernel__Int, /* E: Int */
+&type_array__Arraykernel__Int, /* Array[E]: Array[Int] */
+&type_array__NativeArraykernel__Int, /* NativeArray[E]: NativeArray[Int] */
+&type_kernel__Int, /* E: Int */
+&type_kernel__Int, /* E: Int */
+&type_array__Arraykernel__Int, /* Array[E]: Array[Int] */
+&type_array__AbstractArraykernel__Int, /* AbstractArray[E]: AbstractArray[Int] */
+&type_array__ArrayIteratorkernel__Int, /* ArrayIterator[E]: ArrayIterator[Int] */
 }
 };
+/* runtime type Collection[Int] */
+const struct type type_abstract_collection__Collectionkernel__Int = {
+620,
+"Collection[Int]", /* class_name_string */
+5,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
 /* runtime type AbstractArrayRead[Int] */
 const struct type type_array__AbstractArrayReadkernel__Int = {
-1652,
+1687,
 "AbstractArrayRead[Int]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[Int] */
+const struct type type_array__AbstractArraykernel__Int = {
+2088,
+"AbstractArray[Int]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -3253,8 +4420,8 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-115, /* TablesCapable */
-614, /* Parser */
+117, /* TablesCapable */
+621, /* Parser */
 },
 };
 /* runtime type ANodes[AClassdef] */
@@ -3264,41 +4431,42 @@ const struct type type_parser_nodes__ANodesparser_nodes__AClassdef = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_parser_nodes__ANodesparser_nodes__AClassdef,
-10,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-601, /* Collection[ANode] */
-1318, /* Collection[Prod] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
 -1, /* empty */
-1473, /* Collection[AClassdef] */
-1865, /* ANodes[AClassdef] */
+1351, /* Collection[Prod] */
+-1, /* empty */
+1529, /* Collection[AClassdef] */
+1916, /* ANodes[AClassdef] */
 },
 };
 const struct types resolution_table_parser_nodes__ANodesparser_nodes__AClassdef = {
 0, /* dummy */
 {
-&type_parser_nodes__AClassdef, /* Sequence#0: AClassdef */
-&type_parser_nodes__AClassdef, /* SimpleCollection#0: AClassdef */
-&type_array__Arrayparser_nodes__AClassdef, /* Array[ANodes#0]: Array[AClassdef] */
-&type_parser_nodes__AClassdef, /* ANodes#0: AClassdef */
-NULL, /* empty */
-&type_parser_nodes__AClassdef, /* RemovableCollection#0: AClassdef */
-&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[Sequence#0]: Collection[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_array__Arrayparser_nodes__AClassdef, /* Array[E]: Array[AClassdef] */
+&type_parser_nodes__AClassdef, /* E: AClassdef */
+&type_parser_nodes__AClassdef, /* E: AClassdef */
+&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[E]: Collection[AClassdef] */
+&type_array__Arrayparser_nodes__AClassdef, /* Array[E]: Array[AClassdef] */
+&type_parser_nodes__AClassdef, /* E: AClassdef */
+&type_parser_nodes__AClassdef, /* E: AClassdef */
+&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[E]: Collection[AClassdef] */
+&type_abstract_collection__Collectionparser_nodes__AClassdef, /* Collection[E]: Collection[AClassdef] */
+&type_parser_nodes__AClassdef, /* E: AClassdef */
+&type_parser_nodes__AClassdef, /* E: AClassdef */
 }
 };
 /* runtime type Collection[AClassdef] */
 const struct type type_abstract_collection__Collectionparser_nodes__AClassdef = {
-1473,
+1529,
 "Collection[AClassdef]", /* class_name_string */
-8,
+9,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -3310,147 +4478,280 @@ const struct type type_parser_nodes__ANodesparser_nodes__APropdef = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_parser_nodes__ANodesparser_nodes__APropdef,
-10,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-601, /* Collection[ANode] */
-1318, /* Collection[Prod] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
 -1, /* empty */
-1474, /* Collection[APropdef] */
-1866, /* ANodes[APropdef] */
+1351, /* Collection[Prod] */
+-1, /* empty */
+1530, /* Collection[APropdef] */
+1917, /* ANodes[APropdef] */
 },
 };
 const struct types resolution_table_parser_nodes__ANodesparser_nodes__APropdef = {
 0, /* dummy */
 {
-&type_parser_nodes__APropdef, /* Sequence#0: APropdef */
-&type_parser_nodes__APropdef, /* SimpleCollection#0: APropdef */
-&type_array__Arrayparser_nodes__APropdef, /* Array[ANodes#0]: Array[APropdef] */
-&type_parser_nodes__APropdef, /* ANodes#0: APropdef */
-NULL, /* empty */
-&type_parser_nodes__APropdef, /* RemovableCollection#0: APropdef */
-&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[Sequence#0]: Collection[APropdef] */
-&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[SimpleCollection#0]: Collection[APropdef] */
-&type_parser_nodes__APropdef, /* Collection#0: APropdef */
-&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[Collection#0]: Collection[APropdef] */
-&type_parser_nodes__APropdef, /* SequenceRead#0: APropdef */
+&type_array__Arrayparser_nodes__APropdef, /* Array[E]: Array[APropdef] */
+&type_parser_nodes__APropdef, /* E: APropdef */
+&type_parser_nodes__APropdef, /* E: APropdef */
+&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[E]: Collection[APropdef] */
+&type_array__Arrayparser_nodes__APropdef, /* Array[E]: Array[APropdef] */
+&type_parser_nodes__APropdef, /* E: APropdef */
+&type_parser_nodes__APropdef, /* E: APropdef */
+&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[E]: Collection[APropdef] */
+&type_abstract_collection__Collectionparser_nodes__APropdef, /* Collection[E]: Collection[APropdef] */
+&type_parser_nodes__APropdef, /* E: APropdef */
+&type_parser_nodes__APropdef, /* E: APropdef */
 }
 };
 /* runtime type Collection[APropdef] */
 const struct type type_abstract_collection__Collectionparser_nodes__APropdef = {
-1474,
+1530,
 "Collection[APropdef]", /* class_name_string */
-8,
+9,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type TransformVisitor */
-const struct type type_transform__TransformVisitor = {
--1, /*CAST DEAD*/
-"TransformVisitor", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type Location */
+const struct type type_location__Location = {
+622,
+"Location", /* class_name_string */
+4,
 0,
-NULL, /*NO RESOLUTIONS*/
-3,
+&resolution_table_location__Location,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-117, /* TransformVisitor */
+-1, /* empty */
+78, /* Comparable */
+622, /* Location */
 },
 };
-/* runtime type ASTValidationVisitor */
-const struct type type_astvalidation__ASTValidationVisitor = {
--1, /*CAST DEAD*/
-"ASTValidationVisitor", /* class_name_string */
--1, /*CAST DEAD*/
+const struct types resolution_table_location__Location = {
+0, /* dummy */
+{
+&type_location__Location, /* OTHER: Location */
+}
+};
+/* runtime type MClass */
+const struct type type_model__MClass = {
+623,
+"MClass", /* class_name_string */
+3,
 0,
 NULL, /*NO RESOLUTIONS*/
-3,
+4,
 {
 0, /* nullable Object */
 1, /* Object */
-118, /* ASTValidationVisitor */
+11, /* nullable MClass */
+623, /* MClass */
 },
 };
-/* runtime type List[ANode] */
-const struct type type_list__Listparser_nodes__ANode = {
-1475,
-"List[ANode]", /* class_name_string */
-6,
+/* runtime type nullable MClass */
+const struct type type_nullable_model__MClass = {
+11,
+"nullable MClass", /* class_name_string */
+2,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Array[MParameterType] */
+const struct type type_array__Arraymodel__MParameterType = {
+-1, /*CAST DEAD*/
+"Array[MParameterType]", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_list__Listparser_nodes__ANode,
-7,
+&resolution_table_array__Arraymodel__MParameterType,
+23,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-601, /* Collection[ANode] */
-1475, /* List[ANode] */
-},
+7, /* nullable Array[nullable MType] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+93, /* Collection[nullable MType] */
+590, /* Array[nullable Object] */
+1370, /* Collection[MType] */
+1345, /* AbstractArrayRead[Object] */
+1374, /* AbstractArrayRead[nullable MType] */
+1512, /* AbstractArray[Object] */
+1531, /* Collection[MParameterType] */
+1523, /* AbstractArray[nullable MType] */
+-1, /* empty */
+2085, /* Array[nullable MType] */
+1909, /* Array[Object] */
+2086, /* AbstractArrayRead[MType] */
+2183, /* AbstractArrayRead[MParameterType] */
+2212, /* AbstractArray[MType] */
+2287, /* AbstractArray[MParameterType] */
+-1, /* empty */
+2321, /* Array[MType] */
+2351, /* Array[MParameterType] */
+},
+};
+const struct types resolution_table_array__Arraymodel__MParameterType = {
+0, /* dummy */
+{
+&type_array__NativeArraymodel__MParameterType, /* NativeArray[E]: NativeArray[MParameterType] */
+&type_model__MParameterType, /* E: MParameterType */
+&type_model__MParameterType, /* E: MParameterType */
+&type_abstract_collection__Collectionmodel__MParameterType, /* Collection[E]: Collection[MParameterType] */
+&type_array__Arraymodel__MParameterType, /* Array[E]: Array[MParameterType] */
+&type_model__MParameterType, /* E: MParameterType */
+&type_model__MParameterType, /* E: MParameterType */
+&type_abstract_collection__Collectionmodel__MParameterType, /* Collection[E]: Collection[MParameterType] */
+&type_abstract_collection__Collectionmodel__MParameterType, /* Collection[E]: Collection[MParameterType] */
+&type_model__MParameterType, /* E: MParameterType */
+&type_array__Arraymodel__MParameterType, /* Array[E]: Array[MParameterType] */
+&type_array__NativeArraymodel__MParameterType, /* NativeArray[E]: NativeArray[MParameterType] */
+&type_model__MParameterType, /* E: MParameterType */
+&type_model__MParameterType, /* E: MParameterType */
+&type_array__Arraymodel__MParameterType, /* Array[E]: Array[MParameterType] */
+&type_array__AbstractArraymodel__MParameterType, /* AbstractArray[E]: AbstractArray[MParameterType] */
+&type_array__ArrayIteratormodel__MParameterType, /* ArrayIterator[E]: ArrayIterator[MParameterType] */
+}
 };
-const struct types resolution_table_list__Listparser_nodes__ANode = {
+/* runtime type Collection[MParameterType] */
+const struct type type_abstract_collection__Collectionmodel__MParameterType = {
+1531,
+"Collection[MParameterType]", /* class_name_string */
+11,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[MParameterType] */
+const struct type type_array__AbstractArrayReadmodel__MParameterType = {
+2183,
+"AbstractArrayRead[MParameterType]", /* class_name_string */
+17,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MParameterType] */
+const struct type type_array__AbstractArraymodel__MParameterType = {
+2287,
+"AbstractArray[MParameterType]", /* class_name_string */
+19,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Array[MGenericType] */
+const struct type type_array__Arraymodel__MGenericType = {
+-1, /*CAST DEAD*/
+"Array[MGenericType]", /* class_name_string */
+-1, /*CAST DEAD*/
+0,
+&resolution_table_array__Arraymodel__MGenericType,
+25,
+{
+0, /* nullable Object */
+1, /* Object */
+7, /* nullable Array[nullable MType] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+93, /* Collection[nullable MType] */
+590, /* Array[nullable Object] */
+1370, /* Collection[MType] */
+1345, /* AbstractArrayRead[Object] */
+1374, /* AbstractArrayRead[nullable MType] */
+1512, /* AbstractArray[Object] */
+1519, /* Collection[MClassType] */
+1523, /* AbstractArray[nullable MType] */
+1688, /* Collection[MGenericType] */
+2085, /* Array[nullable MType] */
+1909, /* Array[Object] */
+2086, /* AbstractArrayRead[MType] */
+2181, /* AbstractArrayRead[MClassType] */
+2212, /* AbstractArray[MType] */
+2267, /* AbstractArrayRead[MGenericType] */
+2285, /* AbstractArray[MClassType] */
+2321, /* Array[MType] */
+2322, /* AbstractArray[MGenericType] */
+2350, /* Array[MClassType] */
+2363, /* Array[MGenericType] */
+},
+};
+const struct types resolution_table_array__Arraymodel__MGenericType = {
 0, /* dummy */
 {
-&type_parser_nodes__ANode, /* Sequence#0: ANode */
-&type_parser_nodes__ANode, /* SimpleCollection#0: ANode */
-&type_list__ListNodeparser_nodes__ANode, /* ListNode[List#0]: ListNode[ANode] */
-&type_list__ListIteratorparser_nodes__ANode, /* ListIterator[List#0]: ListIterator[ANode] */
-&type_parser_nodes__ANode, /* List#0: ANode */
-&type_parser_nodes__ANode, /* RemovableCollection#0: ANode */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Sequence#0]: Collection[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 */
-&type_nullable_list__ListNodeparser_nodes__ANode, /* nullable ListNode[List#0]: nullable ListNode[ANode] */
+&type_array__NativeArraymodel__MGenericType, /* NativeArray[E]: NativeArray[MGenericType] */
+&type_model__MGenericType, /* E: MGenericType */
+&type_model__MGenericType, /* E: MGenericType */
+&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[E]: Collection[MGenericType] */
+&type_array__Arraymodel__MGenericType, /* Array[E]: Array[MGenericType] */
+&type_model__MGenericType, /* E: MGenericType */
+&type_model__MGenericType, /* E: MGenericType */
+&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[E]: Collection[MGenericType] */
+&type_abstract_collection__Collectionmodel__MGenericType, /* Collection[E]: Collection[MGenericType] */
+&type_model__MGenericType, /* E: MGenericType */
+&type_array__Arraymodel__MGenericType, /* Array[E]: Array[MGenericType] */
+&type_array__NativeArraymodel__MGenericType, /* NativeArray[E]: NativeArray[MGenericType] */
+&type_model__MGenericType, /* E: MGenericType */
+&type_model__MGenericType, /* E: MGenericType */
+&type_array__Arraymodel__MGenericType, /* Array[E]: Array[MGenericType] */
+&type_array__AbstractArraymodel__MGenericType, /* AbstractArray[E]: AbstractArray[MGenericType] */
+&type_array__ArrayIteratormodel__MGenericType, /* ArrayIterator[E]: ArrayIterator[MGenericType] */
 }
 };
-/* runtime type HashSet[ANode] */
-const struct type type_hash_collection__HashSetparser_nodes__ANode = {
-1653,
-"HashSet[ANode]", /* class_name_string */
-9,
+/* runtime type Collection[MGenericType] */
+const struct type type_abstract_collection__Collectionmodel__MGenericType = {
+1688,
+"Collection[MGenericType]", /* class_name_string */
+13,
 0,
-&resolution_table_hash_collection__HashSetparser_nodes__ANode,
-10,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArrayRead[MGenericType] */
+const struct type type_array__AbstractArrayReadmodel__MGenericType = {
+2267,
+"AbstractArrayRead[MGenericType]", /* class_name_string */
+19,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MGenericType] */
+const struct type type_array__AbstractArraymodel__MGenericType = {
+2322,
+"AbstractArray[MGenericType]", /* class_name_string */
+22,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type Message */
+const struct type type_toolcontext__Message = {
+624,
+"Message", /* class_name_string */
+4,
+0,
+&resolution_table_toolcontext__Message,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
--1, /* empty */
-84, /* Collection[Object] */
-601, /* Collection[ANode] */
--1, /* empty */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1653, /* HashSet[ANode] */
+78, /* Comparable */
+624, /* Message */
 },
 };
-const struct types resolution_table_hash_collection__HashSetparser_nodes__ANode = {
+const struct types resolution_table_toolcontext__Message = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodeparser_nodes__ANode, /* HashSetNode[HashSet#0]: HashSetNode[ANode] */
-&type_parser_nodes__ANode, /* SimpleCollection#0: ANode */
-&type_hash_collection__HashSetIteratorparser_nodes__ANode, /* HashSetIterator[HashSet#0]: HashSetIterator[ANode] */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[Set#0]: Collection[ANode] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodeparser_nodes__ANode, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[ANode]] */
-&type_parser_nodes__ANode, /* RemovableCollection#0: ANode */
-&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[HashSet#0]: Collection[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] */
-NULL, /* empty */
-&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 */
+&type_toolcontext__Message, /* OTHER: Message */
 }
 };
 /* runtime type RapidTypeAnalysis */
@@ -3469,7 +4770,7 @@ NULL, /*NO RESOLUTIONS*/
 };
 /* runtime type HashSet[MClassType] */
 const struct type type_hash_collection__HashSetmodel__MClassType = {
-2147,
+2214,
 "HashSet[MClassType]", /* class_name_string */
 13,
 0,
@@ -3480,84 +4781,83 @@ const struct type type_hash_collection__HashSetmodel__MClassType = {
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
+83, /* Collection[Object] */
 93, /* Collection[nullable MType] */
-1316, /* Collection[MType] */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1654, /* Set[MType] */
-1464, /* Collection[MClassType] */
-2029, /* HashSet[MType] */
-2030, /* Set[MClassType] */
-2147, /* HashSet[MClassType] */
+598, /* Set[Object] */
+1370, /* Collection[MType] */
+1350, /* HashSet[Object] */
+1689, /* Set[MType] */
+2089, /* HashSet[MType] */
+1519, /* Collection[MClassType] */
+2090, /* Set[MClassType] */
+2214, /* HashSet[MClassType] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MClassType = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MClassType, /* HashSetNode[HashSet#0]: HashSetNode[MClassType] */
-&type_model__MClassType, /* SimpleCollection#0: MClassType */
-&type_hash_collection__HashSetIteratormodel__MClassType, /* HashSetIterator[HashSet#0]: HashSetIterator[MClassType] */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Set#0]: Collection[MClassType] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MClassType]] */
-&type_model__MClassType, /* RemovableCollection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[HashSet#0]: Collection[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] */
-NULL, /* empty */
-&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 */
+&type_hash_collection__HashSetNodemodel__MClassType, /* HashSetNode[E]: HashSetNode[MClassType] */
+&type_hash_collection__HashSetIteratormodel__MClassType, /* HashSetIterator[E]: HashSetIterator[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_array__Arraymodel__MClassType, /* Array[E]: Array[MClassType] */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_model__MClassType, /* K: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_nullable_hash_collection__HashSetNodemodel__MClassType, /* nullable N: nullable HashSetNode[MClassType] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClassType, /* NativeArray[E]: NativeArray[nullable HashSetNode[MClassType]] */
+&type_hash_collection__HashSetNodemodel__MClassType, /* N: HashSetNode[MClassType] */
+&type_nullable_model__MClassType, /* nullable K: nullable MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
 }
 };
 /* runtime type HashSet[MType] */
 const struct type type_hash_collection__HashSetmodel__MType = {
-2029,
+2089,
 "HashSet[MType]", /* class_name_string */
-11,
+10,
 0,
 &resolution_table_hash_collection__HashSetmodel__MType,
-12,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
+83, /* Collection[Object] */
 93, /* Collection[nullable MType] */
-1316, /* Collection[MType] */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1654, /* Set[MType] */
--1, /* empty */
-2029, /* HashSet[MType] */
+598, /* Set[Object] */
+1370, /* Collection[MType] */
+1350, /* HashSet[Object] */
+1689, /* Set[MType] */
+2089, /* HashSet[MType] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MType = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MType, /* HashSetNode[HashSet#0]: HashSetNode[MType] */
-&type_model__MType, /* SimpleCollection#0: MType */
-&type_hash_collection__HashSetIteratormodel__MType, /* HashSetIterator[HashSet#0]: HashSetIterator[MType] */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[Set#0]: Collection[MType] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MType]] */
-&type_model__MType, /* RemovableCollection#0: MType */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[HashSet#0]: Collection[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] */
-NULL, /* empty */
-&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 */
+&type_hash_collection__HashSetNodemodel__MType, /* HashSetNode[E]: HashSetNode[MType] */
+&type_hash_collection__HashSetIteratormodel__MType, /* HashSetIterator[E]: HashSetIterator[MType] */
+&type_model__MType, /* E: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
+&type_array__Arraymodel__MType, /* Array[E]: Array[MType] */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
+&type_model__MType, /* E: MType */
+&type_model__MType, /* K: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
+&type_model__MType, /* E: MType */
+&type_nullable_hash_collection__HashSetNodemodel__MType, /* nullable N: nullable HashSetNode[MType] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MType, /* NativeArray[E]: NativeArray[nullable HashSetNode[MType]] */
+&type_hash_collection__HashSetNodemodel__MType, /* N: HashSetNode[MType] */
+&type_nullable_model__MType, /* nullable K: nullable MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
 }
 };
 /* runtime type Set[MClassType] */
 const struct type type_abstract_collection__Setmodel__MClassType = {
-2030,
+2090,
 "Set[MClassType]", /* class_name_string */
 12,
 0,
@@ -3566,7 +4866,7 @@ NULL, /*DEAD*/
 };
 /* runtime type Set[MType] */
 const struct type type_abstract_collection__Setmodel__MType = {
-1654,
+1689,
 "Set[MType]", /* class_name_string */
 9,
 0,
@@ -3575,194 +4875,177 @@ NULL, /*DEAD*/
 };
 /* runtime type HashSet[MClass] */
 const struct type type_hash_collection__HashSetmodel__MClass = {
-2031,
+2091,
 "HashSet[MClass]", /* class_name_string */
-10,
+9,
 0,
 &resolution_table_hash_collection__HashSetmodel__MClass,
-11,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
 91, /* Collection[nullable MClass] */
 -1, /* empty */
-84, /* Collection[Object] */
-1312, /* Collection[MClass] */
--1, /* empty */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1655, /* Set[MClass] */
-2031, /* HashSet[MClass] */
+83, /* Collection[Object] */
+1366, /* Collection[MClass] */
+598, /* Set[Object] */
+1690, /* Set[MClass] */
+1350, /* HashSet[Object] */
+2091, /* HashSet[MClass] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MClass = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MClass, /* HashSetNode[HashSet#0]: HashSetNode[MClass] */
-&type_model__MClass, /* SimpleCollection#0: MClass */
-&type_hash_collection__HashSetIteratormodel__MClass, /* HashSetIterator[HashSet#0]: HashSetIterator[MClass] */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[Set#0]: Collection[MClass] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClass, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MClass]] */
-&type_model__MClass, /* RemovableCollection#0: MClass */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[HashSet#0]: Collection[MClass] */
-&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] */
-NULL, /* empty */
-&type_model__MClass, /* HashCollection#0: MClass */
-&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 */
+&type_hash_collection__HashSetNodemodel__MClass, /* HashSetNode[E]: HashSetNode[MClass] */
+&type_hash_collection__HashSetIteratormodel__MClass, /* HashSetIterator[E]: HashSetIterator[MClass] */
+&type_model__MClass, /* E: MClass */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[E]: Collection[MClass] */
+&type_array__Arraymodel__MClass, /* Array[E]: Array[MClass] */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[E]: Collection[MClass] */
+&type_model__MClass, /* E: MClass */
+&type_model__MClass, /* K: MClass */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[E]: Collection[MClass] */
+&type_model__MClass, /* E: MClass */
+&type_nullable_hash_collection__HashSetNodemodel__MClass, /* nullable N: nullable HashSetNode[MClass] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClass, /* NativeArray[E]: NativeArray[nullable HashSetNode[MClass]] */
+&type_hash_collection__HashSetNodemodel__MClass, /* N: HashSetNode[MClass] */
+&type_nullable_model__MClass, /* nullable K: nullable MClass */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[E]: Collection[MClass] */
 }
 };
 /* runtime type Set[MClass] */
 const struct type type_abstract_collection__Setmodel__MClass = {
-1655,
+1690,
 "Set[MClass]", /* class_name_string */
-9,
+7,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashSet[MMethodDef] */
 const struct type type_hash_collection__HashSetmodel__MMethodDef = {
-2163,
+2268,
 "HashSet[MMethodDef]", /* class_name_string */
-15,
+16,
 0,
 &resolution_table_hash_collection__HashSetmodel__MMethodDef,
-16,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
-120, /* Collection[nullable MPropDef] */
-596, /* Collection[PropertyLayoutElement] */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1476, /* Set[PropertyLayoutElement] */
-1477, /* Collection[MPropDef] */
+83, /* Collection[Object] */
+110, /* Collection[nullable MPropDef] */
+598, /* Set[Object] */
+605, /* Collection[PropertyLayoutElement] */
+1350, /* HashSet[Object] */
+-1, /* empty */
+1532, /* Set[PropertyLayoutElement] */
+1524, /* Collection[MPropDef] */
 -1, /* empty */
-1867, /* HashSet[PropertyLayoutElement] */
-1656, /* Collection[MMethodDef] */
-2109, /* Set[MMethodDef] */
-2163, /* HashSet[MMethodDef] */
+1918, /* HashSet[PropertyLayoutElement] */
+1691, /* Collection[MMethodDef] */
+2172, /* Set[MMethodDef] */
+2268, /* HashSet[MMethodDef] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MMethodDef = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MMethodDef, /* HashSetNode[HashSet#0]: HashSetNode[MMethodDef] */
-&type_model__MMethodDef, /* SimpleCollection#0: MMethodDef */
-&type_hash_collection__HashSetIteratormodel__MMethodDef, /* HashSetIterator[HashSet#0]: HashSetIterator[MMethodDef] */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Set#0]: Collection[MMethodDef] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MMethodDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MMethodDef]] */
-&type_model__MMethodDef, /* RemovableCollection#0: MMethodDef */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[HashSet#0]: Collection[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] */
-NULL, /* empty */
-&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 */
+&type_hash_collection__HashSetNodemodel__MMethodDef, /* HashSetNode[E]: HashSetNode[MMethodDef] */
+&type_hash_collection__HashSetIteratormodel__MMethodDef, /* HashSetIterator[E]: HashSetIterator[MMethodDef] */
+&type_model__MMethodDef, /* E: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[E]: Collection[MMethodDef] */
+&type_array__Arraymodel__MMethodDef, /* Array[E]: Array[MMethodDef] */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[E]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* E: MMethodDef */
+&type_model__MMethodDef, /* K: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[E]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* E: MMethodDef */
+&type_nullable_hash_collection__HashSetNodemodel__MMethodDef, /* nullable N: nullable HashSetNode[MMethodDef] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MMethodDef, /* NativeArray[E]: NativeArray[nullable HashSetNode[MMethodDef]] */
+&type_hash_collection__HashSetNodemodel__MMethodDef, /* N: HashSetNode[MMethodDef] */
+&type_nullable_model__MMethodDef, /* nullable K: nullable MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[E]: Collection[MMethodDef] */
 }
 };
 /* runtime type HashSet[PropertyLayoutElement] */
 const struct type type_hash_collection__HashSetseparate_compiler__PropertyLayoutElement = {
-1867,
+1918,
 "HashSet[PropertyLayoutElement]", /* class_name_string */
-12,
+13,
 0,
 &resolution_table_hash_collection__HashSetseparate_compiler__PropertyLayoutElement,
-13,
+14,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
+83, /* Collection[Object] */
+-1, /* empty */
+598, /* Set[Object] */
+605, /* Collection[PropertyLayoutElement] */
+1350, /* HashSet[Object] */
 -1, /* empty */
-596, /* Collection[PropertyLayoutElement] */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1476, /* Set[PropertyLayoutElement] */
+1532, /* Set[PropertyLayoutElement] */
 -1, /* empty */
 -1, /* empty */
-1867, /* HashSet[PropertyLayoutElement] */
+1918, /* HashSet[PropertyLayoutElement] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetseparate_compiler__PropertyLayoutElement = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodeseparate_compiler__PropertyLayoutElement, /* HashSetNode[HashSet#0]: HashSetNode[PropertyLayoutElement] */
-&type_separate_compiler__PropertyLayoutElement, /* SimpleCollection#0: PropertyLayoutElement */
-&type_hash_collection__HashSetIteratorseparate_compiler__PropertyLayoutElement, /* HashSetIterator[HashSet#0]: HashSetIterator[PropertyLayoutElement] */
-&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[Set#0]: Collection[PropertyLayoutElement] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodeseparate_compiler__PropertyLayoutElement, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[PropertyLayoutElement]] */
-&type_separate_compiler__PropertyLayoutElement, /* RemovableCollection#0: PropertyLayoutElement */
-&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[HashSet#0]: Collection[PropertyLayoutElement] */
-&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[SimpleCollection#0]: Collection[PropertyLayoutElement] */
-&type_separate_compiler__PropertyLayoutElement, /* Collection#0: PropertyLayoutElement */
-&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[Collection#0]: Collection[PropertyLayoutElement] */
-NULL, /* empty */
-&type_separate_compiler__PropertyLayoutElement, /* HashCollection#0: PropertyLayoutElement */
-&type_nullable_hash_collection__HashSetNodeseparate_compiler__PropertyLayoutElement, /* nullable HashCollection#1: nullable HashSetNode[PropertyLayoutElement] */
-&type_hash_collection__HashSetNodeseparate_compiler__PropertyLayoutElement, /* HashCollection#1: HashSetNode[PropertyLayoutElement] */
-&type_nullable_separate_compiler__PropertyLayoutElement, /* nullable HashCollection#0: nullable PropertyLayoutElement */
+&type_hash_collection__HashSetNodeseparate_compiler__PropertyLayoutElement, /* HashSetNode[E]: HashSetNode[PropertyLayoutElement] */
+&type_hash_collection__HashSetIteratorseparate_compiler__PropertyLayoutElement, /* HashSetIterator[E]: HashSetIterator[PropertyLayoutElement] */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[E]: Collection[PropertyLayoutElement] */
+&type_array__Arrayseparate_compiler__PropertyLayoutElement, /* Array[E]: Array[PropertyLayoutElement] */
+&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[E]: Collection[PropertyLayoutElement] */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_separate_compiler__PropertyLayoutElement, /* K: PropertyLayoutElement */
+&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[E]: Collection[PropertyLayoutElement] */
+&type_separate_compiler__PropertyLayoutElement, /* E: PropertyLayoutElement */
+&type_nullable_hash_collection__HashSetNodeseparate_compiler__PropertyLayoutElement, /* nullable N: nullable HashSetNode[PropertyLayoutElement] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodeseparate_compiler__PropertyLayoutElement, /* NativeArray[E]: NativeArray[nullable HashSetNode[PropertyLayoutElement]] */
+&type_hash_collection__HashSetNodeseparate_compiler__PropertyLayoutElement, /* N: HashSetNode[PropertyLayoutElement] */
+&type_nullable_separate_compiler__PropertyLayoutElement, /* nullable K: nullable PropertyLayoutElement */
+&type_abstract_collection__Collectionseparate_compiler__PropertyLayoutElement, /* Collection[E]: Collection[PropertyLayoutElement] */
 }
 };
 /* runtime type Set[PropertyLayoutElement] */
 const struct type type_abstract_collection__Setseparate_compiler__PropertyLayoutElement = {
-1476,
+1532,
 "Set[PropertyLayoutElement]", /* class_name_string */
-9,
+10,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type Set[MMethodDef] */
 const struct type type_abstract_collection__Setmodel__MMethodDef = {
-2109,
+2172,
 "Set[MMethodDef]", /* class_name_string */
-14,
+15,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[MMethodDef] */
 const struct type type_abstract_collection__Collectionmodel__MMethodDef = {
-1656,
+1691,
 "Collection[MMethodDef]", /* class_name_string */
-13,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type Collection[MPropDef] */
-const struct type type_abstract_collection__Collectionmodel__MPropDef = {
-1477,
-"Collection[MPropDef]", /* class_name_string */
-10,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type Collection[nullable MPropDef] */
-const struct type type_abstract_collection__Collectionnullable_model__MPropDef = {
-120,
-"Collection[nullable MPropDef]", /* class_name_string */
-5,
+14,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashSet[MMethod] */
 const struct type type_hash_collection__HashSetmodel__MMethod = {
-2175,
+2280,
 "HashSet[MMethod]", /* class_name_string */
 16,
 0,
@@ -3773,44 +5056,44 @@ const struct type type_hash_collection__HashSetmodel__MMethod = {
 1, /* Object */
 92, /* Collection[nullable MProperty] */
 -1, /* empty */
-84, /* Collection[Object] */
+83, /* Collection[Object] */
 -1, /* empty */
-596, /* Collection[PropertyLayoutElement] */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1476, /* Set[PropertyLayoutElement] */
-1462, /* Collection[MProperty] */
-1657, /* Collection[MMethod] */
-1867, /* HashSet[PropertyLayoutElement] */
-2032, /* Set[MProperty] */
+598, /* Set[Object] */
+605, /* Collection[PropertyLayoutElement] */
+1350, /* HashSet[Object] */
+1516, /* Collection[MProperty] */
+1532, /* Set[PropertyLayoutElement] */
+2092, /* Set[MProperty] */
+1692, /* Collection[MMethod] */
+1918, /* HashSet[PropertyLayoutElement] */
 -1, /* empty */
-2148, /* HashSet[MProperty] */
-2175, /* HashSet[MMethod] */
+2215, /* HashSet[MProperty] */
+2280, /* HashSet[MMethod] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MMethod = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MMethod, /* HashSetNode[HashSet#0]: HashSetNode[MMethod] */
-&type_model__MMethod, /* SimpleCollection#0: MMethod */
-&type_hash_collection__HashSetIteratormodel__MMethod, /* HashSetIterator[HashSet#0]: HashSetIterator[MMethod] */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Set#0]: Collection[MMethod] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MMethod, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MMethod]] */
-&type_model__MMethod, /* RemovableCollection#0: MMethod */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[HashSet#0]: Collection[MMethod] */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[SimpleCollection#0]: Collection[MMethod] */
-&type_model__MMethod, /* Collection#0: MMethod */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Collection#0]: Collection[MMethod] */
-NULL, /* empty */
-&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 */
+&type_hash_collection__HashSetNodemodel__MMethod, /* HashSetNode[E]: HashSetNode[MMethod] */
+&type_hash_collection__HashSetIteratormodel__MMethod, /* HashSetIterator[E]: HashSetIterator[MMethod] */
+&type_model__MMethod, /* E: MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[E]: Collection[MMethod] */
+&type_array__Arraymodel__MMethod, /* Array[E]: Array[MMethod] */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[E]: Collection[MMethod] */
+&type_model__MMethod, /* E: MMethod */
+&type_model__MMethod, /* K: MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[E]: Collection[MMethod] */
+&type_model__MMethod, /* E: MMethod */
+&type_nullable_hash_collection__HashSetNodemodel__MMethod, /* nullable N: nullable HashSetNode[MMethod] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MMethod, /* NativeArray[E]: NativeArray[nullable HashSetNode[MMethod]] */
+&type_hash_collection__HashSetNodemodel__MMethod, /* N: HashSetNode[MMethod] */
+&type_nullable_model__MMethod, /* nullable K: nullable MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[E]: Collection[MMethod] */
 }
 };
 /* runtime type HashSet[MProperty] */
 const struct type type_hash_collection__HashSetmodel__MProperty = {
-2148,
+2215,
 "HashSet[MProperty]", /* class_name_string */
 15,
 0,
@@ -3821,61 +5104,61 @@ const struct type type_hash_collection__HashSetmodel__MProperty = {
 1, /* Object */
 92, /* Collection[nullable MProperty] */
 -1, /* empty */
-84, /* Collection[Object] */
+83, /* Collection[Object] */
 -1, /* empty */
-596, /* Collection[PropertyLayoutElement] */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1476, /* Set[PropertyLayoutElement] */
-1462, /* Collection[MProperty] */
+598, /* Set[Object] */
+605, /* Collection[PropertyLayoutElement] */
+1350, /* HashSet[Object] */
+1516, /* Collection[MProperty] */
+1532, /* Set[PropertyLayoutElement] */
+2092, /* Set[MProperty] */
 -1, /* empty */
-1867, /* HashSet[PropertyLayoutElement] */
-2032, /* Set[MProperty] */
+1918, /* HashSet[PropertyLayoutElement] */
 -1, /* empty */
-2148, /* HashSet[MProperty] */
+2215, /* HashSet[MProperty] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MProperty = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MProperty, /* HashSetNode[HashSet#0]: HashSetNode[MProperty] */
-&type_model__MProperty, /* SimpleCollection#0: MProperty */
-&type_hash_collection__HashSetIteratormodel__MProperty, /* HashSetIterator[HashSet#0]: HashSetIterator[MProperty] */
-&type_abstract_collection__Collectionmodel__MProperty, /* Collection[Set#0]: Collection[MProperty] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MProperty, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MProperty]] */
-&type_model__MProperty, /* RemovableCollection#0: MProperty */
-&type_abstract_collection__Collectionmodel__MProperty, /* Collection[HashSet#0]: Collection[MProperty] */
-&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] */
-NULL, /* empty */
-&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 */
+&type_hash_collection__HashSetNodemodel__MProperty, /* HashSetNode[E]: HashSetNode[MProperty] */
+&type_hash_collection__HashSetIteratormodel__MProperty, /* HashSetIterator[E]: HashSetIterator[MProperty] */
+&type_model__MProperty, /* E: MProperty */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[E]: Collection[MProperty] */
+&type_array__Arraymodel__MProperty, /* Array[E]: Array[MProperty] */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[E]: Collection[MProperty] */
+&type_model__MProperty, /* E: MProperty */
+&type_model__MProperty, /* K: MProperty */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[E]: Collection[MProperty] */
+&type_model__MProperty, /* E: MProperty */
+&type_nullable_hash_collection__HashSetNodemodel__MProperty, /* nullable N: nullable HashSetNode[MProperty] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MProperty, /* NativeArray[E]: NativeArray[nullable HashSetNode[MProperty]] */
+&type_hash_collection__HashSetNodemodel__MProperty, /* N: HashSetNode[MProperty] */
+&type_nullable_model__MProperty, /* nullable K: nullable MProperty */
+&type_abstract_collection__Collectionmodel__MProperty, /* Collection[E]: Collection[MProperty] */
 }
 };
 /* runtime type Set[MProperty] */
 const struct type type_abstract_collection__Setmodel__MProperty = {
-2032,
+2092,
 "Set[MProperty]", /* class_name_string */
-13,
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type Collection[MMethod] */
 const struct type type_abstract_collection__Collectionmodel__MMethod = {
-1657,
+1692,
 "Collection[MMethod]", /* class_name_string */
-11,
+12,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashSet[CallSite] */
 const struct type type_hash_collection__HashSettyping__CallSite = {
-1658,
+1693,
 "HashSet[CallSite]", /* class_name_string */
 9,
 0,
@@ -3886,37 +5169,37 @@ const struct type type_hash_collection__HashSettyping__CallSite = {
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
-615, /* Collection[CallSite] */
+83, /* Collection[Object] */
+625, /* Collection[CallSite] */
+598, /* Set[Object] */
 -1, /* empty */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1658, /* HashSet[CallSite] */
+1350, /* HashSet[Object] */
+1693, /* HashSet[CallSite] */
 },
 };
 const struct types resolution_table_hash_collection__HashSettyping__CallSite = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodetyping__CallSite, /* HashSetNode[HashSet#0]: HashSetNode[CallSite] */
-&type_typing__CallSite, /* SimpleCollection#0: CallSite */
-&type_hash_collection__HashSetIteratortyping__CallSite, /* HashSetIterator[HashSet#0]: HashSetIterator[CallSite] */
-&type_abstract_collection__Collectiontyping__CallSite, /* Collection[Set#0]: Collection[CallSite] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodetyping__CallSite, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[CallSite]] */
-&type_typing__CallSite, /* RemovableCollection#0: CallSite */
-&type_abstract_collection__Collectiontyping__CallSite, /* Collection[HashSet#0]: Collection[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] */
-NULL, /* empty */
-&type_typing__CallSite, /* HashCollection#0: CallSite */
-&type_nullable_hash_collection__HashSetNodetyping__CallSite, /* nullable HashCollection#1: nullable HashSetNode[CallSite] */
-&type_hash_collection__HashSetNodetyping__CallSite, /* HashCollection#1: HashSetNode[CallSite] */
-&type_nullable_typing__CallSite, /* nullable HashCollection#0: nullable CallSite */
+&type_hash_collection__HashSetNodetyping__CallSite, /* HashSetNode[E]: HashSetNode[CallSite] */
+&type_hash_collection__HashSetIteratortyping__CallSite, /* HashSetIterator[E]: HashSetIterator[CallSite] */
+&type_typing__CallSite, /* E: CallSite */
+&type_abstract_collection__Collectiontyping__CallSite, /* Collection[E]: Collection[CallSite] */
+&type_array__Arraytyping__CallSite, /* Array[E]: Array[CallSite] */
+&type_abstract_collection__Collectiontyping__CallSite, /* Collection[E]: Collection[CallSite] */
+&type_typing__CallSite, /* E: CallSite */
+&type_typing__CallSite, /* K: CallSite */
+&type_abstract_collection__Collectiontyping__CallSite, /* Collection[E]: Collection[CallSite] */
+&type_typing__CallSite, /* E: CallSite */
+&type_nullable_hash_collection__HashSetNodetyping__CallSite, /* nullable N: nullable HashSetNode[CallSite] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodetyping__CallSite, /* NativeArray[E]: NativeArray[nullable HashSetNode[CallSite]] */
+&type_hash_collection__HashSetNodetyping__CallSite, /* N: HashSetNode[CallSite] */
+&type_nullable_typing__CallSite, /* nullable K: nullable CallSite */
+&type_abstract_collection__Collectiontyping__CallSite, /* Collection[E]: Collection[CallSite] */
 }
 };
 /* runtime type Collection[CallSite] */
 const struct type type_abstract_collection__Collectiontyping__CallSite = {
-615,
+625,
 "Collection[CallSite]", /* class_name_string */
 5,
 0,
@@ -3934,17 +5217,17 @@ const struct type type_more_collections__HashMap2model__MTypemodel__MPropertyabs
 {
 0, /* nullable Object */
 1, /* Object */
-121, /* HashMap2[MType, MProperty, Set[MMethodDef]] */
+120, /* HashMap2[MType, MProperty, Set[MMethodDef]] */
 },
 };
 const struct types resolution_table_more_collections__HashMap2model__MTypemodel__MPropertyabstract_collection__Setmodel__MMethodDef = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmodel__MTypehash_collection__HashMapmodel__MPropertyabstract_collection__Setmodel__MMethodDef, /* HashMap[HashMap2#0, HashMap[HashMap2#1, HashMap2#2]]: HashMap[MType, HashMap[MProperty, Set[MMethodDef]]] */
-&type_model__MType, /* HashMap2#0: MType */
-&type_model__MProperty, /* HashMap2#1: MProperty */
-&type_abstract_collection__Setmodel__MMethodDef, /* HashMap2#2: Set[MMethodDef] */
-&type_hash_collection__HashMapmodel__MPropertyabstract_collection__Setmodel__MMethodDef, /* HashMap[HashMap2#1, HashMap2#2]: HashMap[MProperty, Set[MMethodDef]] */
+&type_hash_collection__HashMapmodel__MTypehash_collection__HashMapmodel__MPropertyabstract_collection__Setmodel__MMethodDef, /* HashMap[K1, HashMap[K2, V]]: HashMap[MType, HashMap[MProperty, Set[MMethodDef]]] */
+&type_model__MType, /* K1: MType */
+&type_model__MProperty, /* K2: MProperty */
+&type_abstract_collection__Setmodel__MMethodDef, /* V: Set[MMethodDef] */
+&type_hash_collection__HashMapmodel__MPropertyabstract_collection__Setmodel__MMethodDef, /* HashMap[K2, V]: HashMap[MProperty, Set[MMethodDef]] */
 }
 };
 /* runtime type Array[MMethod] */
@@ -3954,102 +5237,122 @@ const struct type type_array__Arraymodel__MMethod = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arraymodel__MMethod,
-18,
+24,
 {
 0, /* nullable Object */
 1, /* Object */
 92, /* Collection[nullable MProperty] */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-1314, /* AbstractArrayRead[nullable MProperty] */
-596, /* Collection[PropertyLayoutElement] */
-1294, /* AbstractArrayRead[Object] */
-1461, /* Array[nullable MProperty] */
-1459, /* Array[Object] */
-1462, /* Collection[MProperty] */
-1657, /* Collection[MMethod] */
-1647, /* AbstractArrayRead[PropertyLayoutElement] */
-2119, /* AbstractArrayRead[MProperty] */
-2022, /* Array[PropertyLayoutElement] */
-2164, /* AbstractArrayRead[MMethod] */
-2176, /* Array[MProperty] */
-2199, /* Array[MMethod] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+1368, /* AbstractArrayRead[nullable MProperty] */
+590, /* Array[nullable Object] */
+605, /* Collection[PropertyLayoutElement] */
+1345, /* AbstractArrayRead[Object] */
+1516, /* Collection[MProperty] */
+1512, /* AbstractArray[Object] */
+1517, /* AbstractArray[nullable MProperty] */
+1692, /* Collection[MMethod] */
+1683, /* AbstractArrayRead[PropertyLayoutElement] */
+1911, /* Array[nullable MProperty] */
+1909, /* Array[Object] */
+2178, /* AbstractArrayRead[MProperty] */
+2081, /* AbstractArray[PropertyLayoutElement] */
+2269, /* AbstractArrayRead[MMethod] */
+2208, /* Array[PropertyLayoutElement] */
+2282, /* AbstractArray[MProperty] */
+2323, /* AbstractArray[MMethod] */
+2333, /* Array[MProperty] */
+2354, /* Array[MMethod] */
 },
 };
 const struct types resolution_table_array__Arraymodel__MMethod = {
 0, /* dummy */
 {
-&type_model__MMethod, /* Sequence#0: MMethod */
-&type_model__MMethod, /* SimpleCollection#0: MMethod */
-&type_array__NativeArraymodel__MMethod, /* NativeArray[Array#0]: NativeArray[MMethod] */
-&type_array__Arraymodel__MMethod, /* Array[Array#0]: Array[MMethod] */
-&type_array__NativeArraymodel__MMethod, /* NativeArray[ArrayCapable#0]: NativeArray[MMethod] */
-&type_model__MMethod, /* RemovableCollection#0: MMethod */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Sequence#0]: Collection[MMethod] */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[SimpleCollection#0]: Collection[MMethod] */
-&type_model__MMethod, /* Collection#0: MMethod */
-&type_abstract_collection__Collectionmodel__MMethod, /* Collection[Collection#0]: Collection[MMethod] */
-&type_model__MMethod, /* SequenceRead#0: MMethod */
-&type_model__MMethod, /* AbstractArrayRead#0: MMethod */
-&type_array__Arraymodel__MMethod, /* Array[AbstractArrayRead#0]: Array[MMethod] */
-&type_array__ArrayIteratormodel__MMethod, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MMethod] */
+&type_array__NativeArraymodel__MMethod, /* NativeArray[E]: NativeArray[MMethod] */
+&type_model__MMethod, /* E: MMethod */
+&type_model__MMethod, /* E: MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[E]: Collection[MMethod] */
+&type_array__Arraymodel__MMethod, /* Array[E]: Array[MMethod] */
+&type_model__MMethod, /* E: MMethod */
+&type_model__MMethod, /* E: MMethod */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[E]: Collection[MMethod] */
+&type_abstract_collection__Collectionmodel__MMethod, /* Collection[E]: Collection[MMethod] */
+&type_model__MMethod, /* E: MMethod */
+&type_array__Arraymodel__MMethod, /* Array[E]: Array[MMethod] */
+&type_array__NativeArraymodel__MMethod, /* NativeArray[E]: NativeArray[MMethod] */
+&type_model__MMethod, /* E: MMethod */
+&type_model__MMethod, /* E: MMethod */
+&type_array__Arraymodel__MMethod, /* Array[E]: Array[MMethod] */
+&type_array__AbstractArraymodel__MMethod, /* AbstractArray[E]: AbstractArray[MMethod] */
+&type_array__ArrayIteratormodel__MMethod, /* ArrayIterator[E]: ArrayIterator[MMethod] */
 }
 };
 /* runtime type AbstractArrayRead[MMethod] */
 const struct type type_array__AbstractArrayReadmodel__MMethod = {
-2164,
+2269,
 "AbstractArrayRead[MMethod]", /* class_name_string */
-15,
+18,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[MMethod] */
+const struct type type_array__AbstractArraymodel__MMethod = {
+2323,
+"AbstractArray[MMethod]", /* class_name_string */
+21,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type List[MMethodDef] */
 const struct type type_list__Listmodel__MMethodDef = {
-2033,
+2093,
 "List[MMethodDef]", /* class_name_string */
-14,
+15,
 0,
 &resolution_table_list__Listmodel__MMethodDef,
-15,
+16,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-120, /* Collection[nullable MPropDef] */
-596, /* Collection[PropertyLayoutElement] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+110, /* Collection[nullable MPropDef] */
+-1, /* empty */
+605, /* Collection[PropertyLayoutElement] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-1477, /* Collection[MPropDef] */
+1524, /* Collection[MPropDef] */
 -1, /* empty */
 -1, /* empty */
-1656, /* Collection[MMethodDef] */
-2033, /* List[MMethodDef] */
+1691, /* Collection[MMethodDef] */
+2093, /* List[MMethodDef] */
 },
 };
 const struct types resolution_table_list__Listmodel__MMethodDef = {
 0, /* dummy */
 {
-&type_model__MMethodDef, /* Sequence#0: MMethodDef */
-&type_model__MMethodDef, /* SimpleCollection#0: MMethodDef */
-&type_list__ListNodemodel__MMethodDef, /* ListNode[List#0]: ListNode[MMethodDef] */
-&type_list__ListIteratormodel__MMethodDef, /* ListIterator[List#0]: ListIterator[MMethodDef] */
-&type_model__MMethodDef, /* List#0: MMethodDef */
-&type_model__MMethodDef, /* RemovableCollection#0: MMethodDef */
-&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[Sequence#0]: Collection[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_nullable_list__ListNodemodel__MMethodDef, /* nullable ListNode[List#0]: nullable ListNode[MMethodDef] */
+&type_list__ListNodemodel__MMethodDef, /* ListNode[E]: ListNode[MMethodDef] */
+&type_model__MMethodDef, /* E: MMethodDef */
+&type_model__MMethodDef, /* E: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[E]: Collection[MMethodDef] */
+&type_array__Arraymodel__MMethodDef, /* Array[E]: Array[MMethodDef] */
+&type_model__MMethodDef, /* E: MMethodDef */
+&type_model__MMethodDef, /* E: MMethodDef */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[E]: Collection[MMethodDef] */
+&type_abstract_collection__Collectionmodel__MMethodDef, /* Collection[E]: Collection[MMethodDef] */
+&type_model__MMethodDef, /* E: MMethodDef */
+&type_list__ListIteratormodel__MMethodDef, /* ListIterator[E]: ListIterator[MMethodDef] */
+&type_model__MMethodDef, /* E: MMethodDef */
+&type_nullable_list__ListNodemodel__MMethodDef, /* nullable ListNode[E]: nullable ListNode[MMethodDef] */
 }
 };
 /* runtime type SeparateCompiler */
 const struct type type_separate_compiler__SeparateCompiler = {
-616,
+626,
 "SeparateCompiler", /* class_name_string */
 3,
 0,
@@ -4058,8 +5361,8 @@ const struct type type_separate_compiler__SeparateCompiler = {
 {
 0, /* nullable Object */
 1, /* Object */
-122, /* AbstractCompiler */
-616, /* SeparateCompiler */
+121, /* AbstractCompiler */
+626, /* SeparateCompiler */
 },
 };
 const struct types resolution_table_separate_compiler__SeparateCompiler = {
@@ -4070,7 +5373,7 @@ const struct types resolution_table_separate_compiler__SeparateCompiler = {
 };
 /* runtime type AbstractCompiler */
 const struct type type_abstract_compiler__AbstractCompiler = {
-122,
+121,
 "AbstractCompiler", /* class_name_string */
 2,
 0,
@@ -4079,7 +5382,7 @@ NULL, /*DEAD*/
 };
 /* runtime type HashMap[MClassDef, HashSet[MType]] */
 const struct type type_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType = {
-123,
+122,
 "HashMap[MClassDef, HashSet[MType]]", /* class_name_string */
 2,
 0,
@@ -4088,32 +5391,31 @@ const struct type type_hash_collection__HashMapmodel__MClassDefhash_collection__
 {
 0, /* nullable Object */
 1, /* Object */
-123, /* HashMap[MClassDef, HashSet[MType]] */
+122, /* HashMap[MClassDef, HashSet[MType]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassDefhash_collection__HashSetmodel__MType = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapKeys[K, V]: HashMapKeys[MClassDef, HashSet[MType]] */
+&type_hash_collection__HashMapValuesmodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapValues[K, V]: HashMapValues[MClassDef, HashSet[MType]] */
+&type_model__MClassDef, /* K: MClassDef */
+&type_hash_collection__HashMapIteratormodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapIterator[K, V]: HashMapIterator[MClassDef, HashSet[MType]] */
+&type_model__MClassDef, /* K: MClassDef */
+&type_hash_collection__HashSetmodel__MType, /* V: HashSet[MType] */
+&type_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* HashMapNode[K, V]: HashMapNode[MClassDef, HashSet[MType]] */
+&type_model__MClassDef, /* K: MClassDef */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MClassDef, /* MapRead#0: MClassDef */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassDef, HashSet[MType]]] */
-&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_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]] */
-&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 */
+&type_nullable_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* nullable N: nullable HashMapNode[MClassDef, HashSet[MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClassDef, HashSet[MType]]] */
+&type_hash_collection__HashMapNodemodel__MClassDefhash_collection__HashSetmodel__MType, /* N: HashMapNode[MClassDef, HashSet[MType]] */
+&type_nullable_model__MClassDef, /* nullable K: nullable MClassDef */
 }
 };
 /* runtime type HashMap[MClass, Int] */
 const struct type type_hash_collection__HashMapmodel__MClasskernel__Int = {
-124,
+123,
 "HashMap[MClass, Int]", /* class_name_string */
 2,
 0,
@@ -4122,32 +5424,31 @@ const struct type type_hash_collection__HashMapmodel__MClasskernel__Int = {
 {
 0, /* nullable Object */
 1, /* Object */
-124, /* HashMap[MClass, Int] */
+123, /* HashMap[MClass, Int] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClasskernel__Int = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClasskernel__Int, /* HashMapKeys[K, V]: HashMapKeys[MClass, Int] */
+&type_hash_collection__HashMapValuesmodel__MClasskernel__Int, /* HashMapValues[K, V]: HashMapValues[MClass, Int] */
+&type_model__MClass, /* K: MClass */
+&type_hash_collection__HashMapIteratormodel__MClasskernel__Int, /* HashMapIterator[K, V]: HashMapIterator[MClass, Int] */
+&type_model__MClass, /* K: MClass */
+&type_kernel__Int, /* V: Int */
+&type_hash_collection__HashMapNodemodel__MClasskernel__Int, /* HashMapNode[K, V]: HashMapNode[MClass, Int] */
+&type_model__MClass, /* K: MClass */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClasskernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Int]] */
-&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_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_model__MClass, /* HashCollection#0: 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 */
+&type_nullable_hash_collection__HashMapNodemodel__MClasskernel__Int, /* nullable N: nullable HashMapNode[MClass, Int] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClasskernel__Int, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClass, Int]] */
+&type_hash_collection__HashMapNodemodel__MClasskernel__Int, /* N: HashMapNode[MClass, Int] */
+&type_nullable_model__MClass, /* nullable K: nullable MClass */
 }
 };
 /* runtime type HashMap[MType, Array[nullable MType]] */
 const struct type type_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType = {
-125,
+124,
 "HashMap[MType, Array[nullable MType]]", /* class_name_string */
 2,
 0,
@@ -4156,32 +5457,31 @@ const struct type type_hash_collection__HashMapmodel__MTypearray__Arraynullable_
 {
 0, /* nullable Object */
 1, /* Object */
-125, /* HashMap[MType, Array[nullable MType]] */
+124, /* HashMap[MType, Array[nullable MType]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MTypearray__Arraynullable_model__MType = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MTypearray__Arraynullable_model__MType, /* HashMapKeys[K, V]: HashMapKeys[MType, Array[nullable MType]] */
+&type_hash_collection__HashMapValuesmodel__MTypearray__Arraynullable_model__MType, /* HashMapValues[K, V]: HashMapValues[MType, Array[nullable MType]] */
+&type_model__MType, /* K: MType */
+&type_hash_collection__HashMapIteratormodel__MTypearray__Arraynullable_model__MType, /* HashMapIterator[K, V]: HashMapIterator[MType, Array[nullable MType]] */
+&type_model__MType, /* K: MType */
+&type_array__Arraynullable_model__MType, /* V: Array[nullable MType] */
+&type_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* HashMapNode[K, V]: HashMapNode[MType, Array[nullable MType]] */
+&type_model__MType, /* K: MType */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MType, /* MapRead#0: MType */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MType, Array[nullable MType]]] */
-&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_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]] */
-&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 */
+&type_nullable_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* nullable N: nullable HashMapNode[MType, Array[nullable MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* NativeArray[E]: NativeArray[nullable HashMapNode[MType, Array[nullable MType]]] */
+&type_hash_collection__HashMapNodemodel__MTypearray__Arraynullable_model__MType, /* N: HashMapNode[MType, Array[nullable MType]] */
+&type_nullable_model__MType, /* nullable K: nullable MType */
 }
 };
 /* runtime type HashMap[MClassType, Array[nullable MType]] */
 const struct type type_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType = {
-617,
+627,
 "HashMap[MClassType, Array[nullable MType]]", /* class_name_string */
 3,
 0,
@@ -4190,33 +5490,32 @@ const struct type type_hash_collection__HashMapmodel__MClassTypearray__Arraynull
 {
 0, /* nullable Object */
 1, /* Object */
-125, /* HashMap[MType, Array[nullable MType]] */
-617, /* HashMap[MClassType, Array[nullable MType]] */
+124, /* HashMap[MType, Array[nullable MType]] */
+627, /* HashMap[MClassType, Array[nullable MType]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassTypearray__Arraynullable_model__MType = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClassTypearray__Arraynullable_model__MType, /* HashMapKeys[K, V]: HashMapKeys[MClassType, Array[nullable MType]] */
+&type_hash_collection__HashMapValuesmodel__MClassTypearray__Arraynullable_model__MType, /* HashMapValues[K, V]: HashMapValues[MClassType, Array[nullable MType]] */
+&type_model__MClassType, /* K: MClassType */
+&type_hash_collection__HashMapIteratormodel__MClassTypearray__Arraynullable_model__MType, /* HashMapIterator[K, V]: HashMapIterator[MClassType, Array[nullable MType]] */
+&type_model__MClassType, /* K: MClassType */
+&type_array__Arraynullable_model__MType, /* V: Array[nullable MType] */
+&type_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* HashMapNode[K, V]: HashMapNode[MClassType, Array[nullable MType]] */
+&type_model__MClassType, /* K: MClassType */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MClassType, /* MapRead#0: MClassType */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClassType, Array[nullable MType]]] */
-&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_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]] */
-&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 */
+&type_nullable_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* nullable N: nullable HashMapNode[MClassType, Array[nullable MType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClassType, Array[nullable MType]]] */
+&type_hash_collection__HashMapNodemodel__MClassTypearray__Arraynullable_model__MType, /* N: HashMapNode[MClassType, Array[nullable MType]] */
+&type_nullable_model__MClassType, /* nullable K: nullable MClassType */
 }
 };
 /* runtime type HashMap[MClass, Array[nullable MPropDef]] */
 const struct type type_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef = {
-126,
+125,
 "HashMap[MClass, Array[nullable MPropDef]]", /* class_name_string */
 2,
 0,
@@ -4225,32 +5524,31 @@ const struct type type_hash_collection__HashMapmodel__MClassarray__Arraynullable
 {
 0, /* nullable Object */
 1, /* Object */
-126, /* HashMap[MClass, Array[nullable MPropDef]] */
+125, /* HashMap[MClass, Array[nullable MPropDef]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassarray__Arraynullable_model__MPropDef = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapKeys[K, V]: HashMapKeys[MClass, Array[nullable MPropDef]] */
+&type_hash_collection__HashMapValuesmodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapValues[K, V]: HashMapValues[MClass, Array[nullable MPropDef]] */
+&type_model__MClass, /* K: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapIterator[K, V]: HashMapIterator[MClass, Array[nullable MPropDef]] */
+&type_model__MClass, /* K: MClass */
+&type_array__Arraynullable_model__MPropDef, /* V: Array[nullable MPropDef] */
+&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* HashMapNode[K, V]: HashMapNode[MClass, Array[nullable MPropDef]] */
+&type_model__MClass, /* K: MClass */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Array[nullable MPropDef]]] */
-&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_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]] */
-&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 */
+&type_nullable_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* nullable N: nullable HashMapNode[MClass, Array[nullable MPropDef]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClass, Array[nullable MPropDef]]] */
+&type_hash_collection__HashMapNodemodel__MClassarray__Arraynullable_model__MPropDef, /* N: HashMapNode[MClass, Array[nullable MPropDef]] */
+&type_nullable_model__MClass, /* nullable K: nullable MClass */
 }
 };
 /* runtime type HashMap[String, String] */
 const struct type type_hash_collection__HashMapstring__Stringstring__String = {
-127,
+126,
 "HashMap[String, String]", /* class_name_string */
 2,
 0,
@@ -4259,32 +5557,31 @@ const struct type type_hash_collection__HashMapstring__Stringstring__String = {
 {
 0, /* nullable Object */
 1, /* Object */
-127, /* HashMap[String, String] */
+126, /* HashMap[String, String] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapstring__Stringstring__String = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysstring__Stringstring__String, /* HashMapKeys[K, V]: HashMapKeys[String, String] */
+&type_hash_collection__HashMapValuesstring__Stringstring__String, /* HashMapValues[K, V]: HashMapValues[String, String] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringstring__String, /* HashMapIterator[K, V]: HashMapIterator[String, String] */
+&type_string__String, /* K: String */
+&type_string__String, /* V: String */
+&type_hash_collection__HashMapNodestring__Stringstring__String, /* HashMapNode[K, V]: HashMapNode[String, String] */
+&type_string__String, /* K: String */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringstring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, String]] */
-&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_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] */
-&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 */
+&type_nullable_hash_collection__HashMapNodestring__Stringstring__String, /* nullable N: nullable HashMapNode[String, String] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringstring__String, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, String]] */
+&type_hash_collection__HashMapNodestring__Stringstring__String, /* N: HashMapNode[String, String] */
+&type_nullable_string__String, /* nullable K: nullable String */
 }
 };
 /* runtime type List[CodeFile] */
 const struct type type_list__Listabstract_compiler__CodeFile = {
-1478,
+1533,
 "List[CodeFile]", /* class_name_string */
 6,
 0,
@@ -4294,32 +5591,33 @@ const struct type type_list__Listabstract_compiler__CodeFile = {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-618, /* Collection[CodeFile] */
-1478, /* List[CodeFile] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+628, /* Collection[CodeFile] */
+1533, /* List[CodeFile] */
 },
 };
 const struct types resolution_table_list__Listabstract_compiler__CodeFile = {
 0, /* dummy */
 {
-&type_abstract_compiler__CodeFile, /* Sequence#0: CodeFile */
-&type_abstract_compiler__CodeFile, /* SimpleCollection#0: CodeFile */
-&type_list__ListNodeabstract_compiler__CodeFile, /* ListNode[List#0]: ListNode[CodeFile] */
-&type_list__ListIteratorabstract_compiler__CodeFile, /* ListIterator[List#0]: ListIterator[CodeFile] */
-&type_abstract_compiler__CodeFile, /* List#0: CodeFile */
-&type_abstract_compiler__CodeFile, /* RemovableCollection#0: CodeFile */
-&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[Sequence#0]: Collection[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_nullable_list__ListNodeabstract_compiler__CodeFile, /* nullable ListNode[List#0]: nullable ListNode[CodeFile] */
+&type_list__ListNodeabstract_compiler__CodeFile, /* ListNode[E]: ListNode[CodeFile] */
+&type_abstract_compiler__CodeFile, /* E: CodeFile */
+&type_abstract_compiler__CodeFile, /* E: CodeFile */
+&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[E]: Collection[CodeFile] */
+&type_array__Arrayabstract_compiler__CodeFile, /* Array[E]: Array[CodeFile] */
+&type_abstract_compiler__CodeFile, /* E: CodeFile */
+&type_abstract_compiler__CodeFile, /* E: CodeFile */
+&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[E]: Collection[CodeFile] */
+&type_abstract_collection__Collectionabstract_compiler__CodeFile, /* Collection[E]: Collection[CodeFile] */
+&type_abstract_compiler__CodeFile, /* E: CodeFile */
+&type_list__ListIteratorabstract_compiler__CodeFile, /* ListIterator[E]: ListIterator[CodeFile] */
+&type_abstract_compiler__CodeFile, /* E: CodeFile */
+&type_nullable_list__ListNodeabstract_compiler__CodeFile, /* nullable ListNode[E]: nullable ListNode[CodeFile] */
 }
 };
 /* runtime type Collection[CodeFile] */
 const struct type type_abstract_collection__Collectionabstract_compiler__CodeFile = {
-618,
+628,
 "Collection[CodeFile]", /* class_name_string */
 5,
 0,
@@ -4328,7 +5626,7 @@ NULL, /*DEAD*/
 };
 /* runtime type HashMap[String, ANode] */
 const struct type type_hash_collection__HashMapstring__Stringparser_nodes__ANode = {
-128,
+127,
 "HashMap[String, ANode]", /* class_name_string */
 2,
 0,
@@ -4337,27 +5635,26 @@ const struct type type_hash_collection__HashMapstring__Stringparser_nodes__ANode
 {
 0, /* nullable Object */
 1, /* Object */
-128, /* HashMap[String, ANode] */
+127, /* HashMap[String, ANode] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapstring__Stringparser_nodes__ANode = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysstring__Stringparser_nodes__ANode, /* HashMapKeys[K, V]: HashMapKeys[String, ANode] */
+&type_hash_collection__HashMapValuesstring__Stringparser_nodes__ANode, /* HashMapValues[K, V]: HashMapValues[String, ANode] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringparser_nodes__ANode, /* HashMapIterator[K, V]: HashMapIterator[String, ANode] */
+&type_string__String, /* K: String */
+&type_parser_nodes__ANode, /* V: ANode */
+&type_hash_collection__HashMapNodestring__Stringparser_nodes__ANode, /* HashMapNode[K, V]: HashMapNode[String, ANode] */
+&type_string__String, /* K: String */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringparser_nodes__ANode, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, ANode]] */
-&type_hash_collection__HashMapKeysstring__Stringparser_nodes__ANode, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[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] */
-&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 */
+&type_nullable_hash_collection__HashMapNodestring__Stringparser_nodes__ANode, /* nullable N: nullable HashMapNode[String, ANode] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringparser_nodes__ANode, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, ANode]] */
+&type_hash_collection__HashMapNodestring__Stringparser_nodes__ANode, /* N: HashMapNode[String, ANode] */
+&type_nullable_string__String, /* nullable K: nullable String */
 }
 };
 /* runtime type Array[ExternFile] */
@@ -4367,43 +5664,52 @@ const struct type type_array__Arrayc_tools__ExternFile = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arrayc_tools__ExternFile,
-11,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-619, /* Collection[ExternFile] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+629, /* Collection[ExternFile] */
+590, /* Array[nullable Object] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1659, /* AbstractArrayRead[ExternFile] */
-1459, /* Array[Object] */
-2034, /* Array[ExternFile] */
+1345, /* AbstractArrayRead[Object] */
+1694, /* AbstractArrayRead[ExternFile] */
+1512, /* AbstractArray[Object] */
+2094, /* AbstractArray[ExternFile] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+1909, /* Array[Object] */
+2216, /* Array[ExternFile] */
 },
 };
 const struct types resolution_table_array__Arrayc_tools__ExternFile = {
 0, /* dummy */
 {
-&type_c_tools__ExternFile, /* Sequence#0: ExternFile */
-&type_c_tools__ExternFile, /* SimpleCollection#0: ExternFile */
-&type_array__NativeArrayc_tools__ExternFile, /* NativeArray[Array#0]: NativeArray[ExternFile] */
-&type_array__Arrayc_tools__ExternFile, /* Array[Array#0]: Array[ExternFile] */
-&type_array__NativeArrayc_tools__ExternFile, /* NativeArray[ArrayCapable#0]: NativeArray[ExternFile] */
-&type_c_tools__ExternFile, /* RemovableCollection#0: ExternFile */
-&type_abstract_collection__Collectionc_tools__ExternFile, /* Collection[Sequence#0]: Collection[ExternFile] */
-&type_abstract_collection__Collectionc_tools__ExternFile, /* Collection[SimpleCollection#0]: Collection[ExternFile] */
-&type_c_tools__ExternFile, /* Collection#0: ExternFile */
-&type_abstract_collection__Collectionc_tools__ExternFile, /* Collection[Collection#0]: Collection[ExternFile] */
-&type_c_tools__ExternFile, /* SequenceRead#0: ExternFile */
-&type_c_tools__ExternFile, /* AbstractArrayRead#0: ExternFile */
-&type_array__Arrayc_tools__ExternFile, /* Array[AbstractArrayRead#0]: Array[ExternFile] */
-&type_array__ArrayIteratorc_tools__ExternFile, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[ExternFile] */
+&type_array__NativeArrayc_tools__ExternFile, /* NativeArray[E]: NativeArray[ExternFile] */
+&type_c_tools__ExternFile, /* E: ExternFile */
+&type_c_tools__ExternFile, /* E: ExternFile */
+&type_abstract_collection__Collectionc_tools__ExternFile, /* Collection[E]: Collection[ExternFile] */
+&type_array__Arrayc_tools__ExternFile, /* Array[E]: Array[ExternFile] */
+&type_c_tools__ExternFile, /* E: ExternFile */
+&type_c_tools__ExternFile, /* E: ExternFile */
+&type_abstract_collection__Collectionc_tools__ExternFile, /* Collection[E]: Collection[ExternFile] */
+&type_abstract_collection__Collectionc_tools__ExternFile, /* Collection[E]: Collection[ExternFile] */
+&type_c_tools__ExternFile, /* E: ExternFile */
+&type_array__Arrayc_tools__ExternFile, /* Array[E]: Array[ExternFile] */
+&type_array__NativeArrayc_tools__ExternFile, /* NativeArray[E]: NativeArray[ExternFile] */
+&type_c_tools__ExternFile, /* E: ExternFile */
+&type_c_tools__ExternFile, /* E: ExternFile */
+&type_array__Arrayc_tools__ExternFile, /* Array[E]: Array[ExternFile] */
+&type_array__AbstractArrayc_tools__ExternFile, /* AbstractArray[E]: AbstractArray[ExternFile] */
+&type_array__ArrayIteratorc_tools__ExternFile, /* ArrayIterator[E]: ArrayIterator[ExternFile] */
 }
 };
 /* runtime type Collection[ExternFile] */
 const struct type type_abstract_collection__Collectionc_tools__ExternFile = {
-619,
+629,
 "Collection[ExternFile]", /* class_name_string */
 5,
 0,
@@ -4412,9 +5718,18 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[ExternFile] */
 const struct type type_array__AbstractArrayReadc_tools__ExternFile = {
-1659,
+1694,
 "AbstractArrayRead[ExternFile]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[ExternFile] */
+const struct type type_array__AbstractArrayc_tools__ExternFile = {
+2094,
+"AbstractArray[ExternFile]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -4426,37 +5741,44 @@ const struct type type_array__ArraySetstring__String = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__ArraySetstring__String,
-9,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
-587, /* Collection[Streamable] */
-1295, /* Collection[String] */
-607, /* Set[Object] */
-1660, /* ArraySet[String] */
+83, /* Collection[Object] */
+593, /* Collection[Streamable] */
+598, /* Set[Object] */
+1346, /* Collection[Text] */
+-1, /* empty */
+1513, /* Collection[String] */
+1919, /* ArraySet[String] */
 },
 };
 const struct types resolution_table_array__ArraySetstring__String = {
 0, /* dummy */
 {
-&type_array__ArraySetIteratorstring__String, /* ArraySetIterator[ArraySet#0]: ArraySetIterator[String] */
-&type_string__String, /* SimpleCollection#0: String */
-&type_array__Arraystring__String, /* Array[ArraySet#0]: Array[String] */
-&type_abstract_collection__Collectionstring__String, /* Collection[Set#0]: Collection[String] */
+&type_array__ArraySetIteratorstring__String, /* ArraySetIterator[E]: ArraySetIterator[String] */
+&type_array__Arraystring__String, /* Array[E]: Array[String] */
+&type_string__String, /* E: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_array__Arraystring__String, /* Array[E]: Array[String] */
+NULL, /* empty */
+&type_string__String, /* E: String */
+NULL, /* empty */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_string__String, /* E: String */
 NULL, /* empty */
-&type_string__String, /* RemovableCollection#0: String */
 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] */
+NULL, /* empty */
+NULL, /* empty */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
 }
 };
 /* runtime type SeparateErasureCompiler */
 const struct type type_separate_erasure_compiler__SeparateErasureCompiler = {
-1327,
+1379,
 "SeparateErasureCompiler", /* class_name_string */
 4,
 0,
@@ -4465,9 +5787,9 @@ const struct type type_separate_erasure_compiler__SeparateErasureCompiler = {
 {
 0, /* nullable Object */
 1, /* Object */
-122, /* AbstractCompiler */
-616, /* SeparateCompiler */
-1327, /* SeparateErasureCompiler */
+121, /* AbstractCompiler */
+626, /* SeparateCompiler */
+1379, /* SeparateErasureCompiler */
 },
 };
 const struct types resolution_table_separate_erasure_compiler__SeparateErasureCompiler = {
@@ -4483,43 +5805,52 @@ const struct type type_array__Arraystring_search__Match = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arraystring_search__Match,
-11,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-620, /* Collection[Match] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+630, /* Collection[Match] */
+590, /* Array[nullable Object] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1661, /* AbstractArrayRead[Match] */
-1459, /* Array[Object] */
-2035, /* Array[Match] */
+1345, /* AbstractArrayRead[Object] */
+1695, /* AbstractArrayRead[Match] */
+1512, /* AbstractArray[Object] */
+2095, /* AbstractArray[Match] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+1909, /* Array[Object] */
+2217, /* Array[Match] */
 },
 };
 const struct types resolution_table_array__Arraystring_search__Match = {
 0, /* dummy */
 {
-&type_string_search__Match, /* Sequence#0: Match */
-&type_string_search__Match, /* SimpleCollection#0: Match */
-&type_array__NativeArraystring_search__Match, /* NativeArray[Array#0]: NativeArray[Match] */
-&type_array__Arraystring_search__Match, /* Array[Array#0]: Array[Match] */
-&type_array__NativeArraystring_search__Match, /* NativeArray[ArrayCapable#0]: NativeArray[Match] */
-&type_string_search__Match, /* RemovableCollection#0: Match */
-&type_abstract_collection__Collectionstring_search__Match, /* Collection[Sequence#0]: Collection[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] */
-&type_array__ArrayIteratorstring_search__Match, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[Match] */
+&type_array__NativeArraystring_search__Match, /* NativeArray[E]: NativeArray[Match] */
+&type_string_search__Match, /* E: Match */
+&type_string_search__Match, /* E: Match */
+&type_abstract_collection__Collectionstring_search__Match, /* Collection[E]: Collection[Match] */
+&type_array__Arraystring_search__Match, /* Array[E]: Array[Match] */
+&type_string_search__Match, /* E: Match */
+&type_string_search__Match, /* E: Match */
+&type_abstract_collection__Collectionstring_search__Match, /* Collection[E]: Collection[Match] */
+&type_abstract_collection__Collectionstring_search__Match, /* Collection[E]: Collection[Match] */
+&type_string_search__Match, /* E: Match */
+&type_array__Arraystring_search__Match, /* Array[E]: Array[Match] */
+&type_array__NativeArraystring_search__Match, /* NativeArray[E]: NativeArray[Match] */
+&type_string_search__Match, /* E: Match */
+&type_string_search__Match, /* E: Match */
+&type_array__Arraystring_search__Match, /* Array[E]: Array[Match] */
+&type_array__AbstractArraystring_search__Match, /* AbstractArray[E]: AbstractArray[Match] */
+&type_array__ArrayIteratorstring_search__Match, /* ArrayIterator[E]: ArrayIterator[Match] */
 }
 };
 /* runtime type Collection[Match] */
 const struct type type_abstract_collection__Collectionstring_search__Match = {
-620,
+630,
 "Collection[Match]", /* class_name_string */
 5,
 0,
@@ -4528,16 +5859,25 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[Match] */
 const struct type type_array__AbstractArrayReadstring_search__Match = {
-1661,
+1695,
 "AbstractArrayRead[Match]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[Match] */
+const struct type type_array__AbstractArraystring_search__Match = {
+2095,
+"AbstractArray[Match]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type Match */
 const struct type type_string_search__Match = {
-129,
+128,
 "Match", /* class_name_string */
 2,
 0,
@@ -4546,7 +5886,7 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-129, /* Match */
+128, /* Match */
 },
 };
 /* runtime type MDoc */
@@ -4560,73 +5900,62 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-130, /* MDoc */
+129, /* MDoc */
 },
 };
-/* runtime type Message */
-const struct type type_toolcontext__Message = {
-131,
-"Message", /* class_name_string */
-2,
+/* runtime type Array[State] */
+const struct type type_array__Arrayparser_work__State = {
+-1, /*CAST DEAD*/
+"Array[State]", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-&resolution_table_toolcontext__Message,
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-131, /* Message */
-},
-};
-const struct types resolution_table_toolcontext__Message = {
-0, /* dummy */
-{
-&type_toolcontext__Message, /* OTHER: Message */
-}
-};
-/* runtime type Array[State] */
-const struct type type_array__Arrayparser_work__State = {
--1, /*CAST DEAD*/
-"Array[State]", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-&resolution_table_array__Arrayparser_work__State,
-11,
+&resolution_table_array__Arrayparser_work__State,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-621, /* Collection[State] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+631, /* Collection[State] */
+590, /* Array[nullable Object] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1662, /* AbstractArrayRead[State] */
-1459, /* Array[Object] */
-2036, /* Array[State] */
+1345, /* AbstractArrayRead[Object] */
+1696, /* AbstractArrayRead[State] */
+1512, /* AbstractArray[Object] */
+2096, /* AbstractArray[State] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+1909, /* Array[Object] */
+2218, /* Array[State] */
 },
 };
 const struct types resolution_table_array__Arrayparser_work__State = {
 0, /* dummy */
 {
-&type_parser_work__State, /* Sequence#0: State */
-&type_parser_work__State, /* SimpleCollection#0: State */
-&type_array__NativeArrayparser_work__State, /* NativeArray[Array#0]: NativeArray[State] */
-&type_array__Arrayparser_work__State, /* Array[Array#0]: Array[State] */
-&type_array__NativeArrayparser_work__State, /* NativeArray[ArrayCapable#0]: NativeArray[State] */
-&type_parser_work__State, /* RemovableCollection#0: State */
-&type_abstract_collection__Collectionparser_work__State, /* Collection[Sequence#0]: Collection[State] */
-&type_abstract_collection__Collectionparser_work__State, /* Collection[SimpleCollection#0]: Collection[State] */
-&type_parser_work__State, /* Collection#0: State */
-&type_abstract_collection__Collectionparser_work__State, /* Collection[Collection#0]: Collection[State] */
-&type_parser_work__State, /* SequenceRead#0: State */
-&type_parser_work__State, /* AbstractArrayRead#0: State */
-&type_array__Arrayparser_work__State, /* Array[AbstractArrayRead#0]: Array[State] */
-&type_array__ArrayIteratorparser_work__State, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[State] */
+&type_array__NativeArrayparser_work__State, /* NativeArray[E]: NativeArray[State] */
+&type_parser_work__State, /* E: State */
+&type_parser_work__State, /* E: State */
+&type_abstract_collection__Collectionparser_work__State, /* Collection[E]: Collection[State] */
+&type_array__Arrayparser_work__State, /* Array[E]: Array[State] */
+&type_parser_work__State, /* E: State */
+&type_parser_work__State, /* E: State */
+&type_abstract_collection__Collectionparser_work__State, /* Collection[E]: Collection[State] */
+&type_abstract_collection__Collectionparser_work__State, /* Collection[E]: Collection[State] */
+&type_parser_work__State, /* E: State */
+&type_array__Arrayparser_work__State, /* Array[E]: Array[State] */
+&type_array__NativeArrayparser_work__State, /* NativeArray[E]: NativeArray[State] */
+&type_parser_work__State, /* E: State */
+&type_parser_work__State, /* E: State */
+&type_array__Arrayparser_work__State, /* Array[E]: Array[State] */
+&type_array__AbstractArrayparser_work__State, /* AbstractArray[E]: AbstractArray[State] */
+&type_array__ArrayIteratorparser_work__State, /* ArrayIterator[E]: ArrayIterator[State] */
 }
 };
 /* runtime type Collection[State] */
 const struct type type_abstract_collection__Collectionparser_work__State = {
-621,
+631,
 "Collection[State]", /* class_name_string */
 5,
 0,
@@ -4635,9 +5964,18 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[State] */
 const struct type type_array__AbstractArrayReadparser_work__State = {
-1662,
+1696,
 "AbstractArrayRead[State]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[State] */
+const struct type type_array__AbstractArrayparser_work__State = {
+2096,
+"AbstractArray[State]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -4653,16 +5991,16 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-8, /* nullable ANode */
+12, /* nullable ANode */
 -1, /* empty */
-622, /* ANode */
-1328, /* Prod */
-1479, /* Start */
+632, /* ANode */
+1380, /* Prod */
+1534, /* Start */
 },
 };
 /* runtime type Prod */
 const struct type type_parser_nodes__Prod = {
-1328,
+1380,
 "Prod", /* class_name_string */
 5,
 0,
@@ -4671,7 +6009,7 @@ NULL, /*DEAD*/
 };
 /* runtime type ANode */
 const struct type type_parser_nodes__ANode = {
-622,
+632,
 "ANode", /* class_name_string */
 4,
 0,
@@ -4680,7 +6018,7 @@ NULL, /*DEAD*/
 };
 /* runtime type nullable ANode */
 const struct type type_nullable_parser_nodes__ANode = {
-8,
+12,
 "nullable ANode", /* class_name_string */
 2,
 1,
@@ -4698,7 +6036,7 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-132, /* ComputeProdLocationVisitor */
+130, /* ComputeProdLocationVisitor */
 },
 };
 /* runtime type AParserError */
@@ -4712,18 +6050,18 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-8, /* nullable ANode */
+12, /* nullable ANode */
 -1, /* empty */
-622, /* ANode */
-1329, /* Token */
-1480, /* EOF */
-1663, /* AError */
-1868, /* AParserError */
+632, /* ANode */
+1381, /* Token */
+1535, /* EOF */
+1697, /* AError */
+1920, /* AParserError */
 },
 };
 /* runtime type EOF */
 const struct type type_parser_nodes__EOF = {
-1480,
+1535,
 "EOF", /* class_name_string */
 6,
 0,
@@ -4732,16 +6070,16 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-8, /* nullable ANode */
+12, /* nullable ANode */
 -1, /* empty */
-622, /* ANode */
-1329, /* Token */
-1480, /* EOF */
+632, /* ANode */
+1381, /* Token */
+1535, /* EOF */
 },
 };
 /* runtime type AError */
 const struct type type_parser_nodes__AError = {
-1663,
+1697,
 "AError", /* class_name_string */
 7,
 0,
@@ -4750,7 +6088,7 @@ NULL, /*DEAD*/
 };
 /* runtime type Token */
 const struct type type_parser_nodes__Token = {
-1329,
+1381,
 "Token", /* class_name_string */
 5,
 0,
@@ -4764,41 +6102,42 @@ const struct type type_parser_nodes__ANodesparser_nodes__AImport = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_parser_nodes__ANodesparser_nodes__AImport,
-10,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-601, /* Collection[ANode] */
-1318, /* Collection[Prod] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
+-1, /* empty */
+1351, /* Collection[Prod] */
 -1, /* empty */
-1481, /* Collection[AImport] */
-1869, /* ANodes[AImport] */
+1536, /* Collection[AImport] */
+1921, /* ANodes[AImport] */
 },
 };
 const struct types resolution_table_parser_nodes__ANodesparser_nodes__AImport = {
 0, /* dummy */
 {
-&type_parser_nodes__AImport, /* Sequence#0: AImport */
-&type_parser_nodes__AImport, /* SimpleCollection#0: AImport */
-&type_array__Arrayparser_nodes__AImport, /* Array[ANodes#0]: Array[AImport] */
-&type_parser_nodes__AImport, /* ANodes#0: AImport */
-NULL, /* empty */
-&type_parser_nodes__AImport, /* RemovableCollection#0: AImport */
-&type_abstract_collection__Collectionparser_nodes__AImport, /* Collection[Sequence#0]: Collection[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 */
+&type_array__Arrayparser_nodes__AImport, /* Array[E]: Array[AImport] */
+&type_parser_nodes__AImport, /* E: AImport */
+&type_parser_nodes__AImport, /* E: AImport */
+&type_abstract_collection__Collectionparser_nodes__AImport, /* Collection[E]: Collection[AImport] */
+&type_array__Arrayparser_nodes__AImport, /* Array[E]: Array[AImport] */
+&type_parser_nodes__AImport, /* E: AImport */
+&type_parser_nodes__AImport, /* E: AImport */
+&type_abstract_collection__Collectionparser_nodes__AImport, /* Collection[E]: Collection[AImport] */
+&type_abstract_collection__Collectionparser_nodes__AImport, /* Collection[E]: Collection[AImport] */
+&type_parser_nodes__AImport, /* E: AImport */
+&type_parser_nodes__AImport, /* E: AImport */
 }
 };
 /* runtime type Collection[AImport] */
 const struct type type_abstract_collection__Collectionparser_nodes__AImport = {
-1481,
+1536,
 "Collection[AImport]", /* class_name_string */
-8,
+9,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -4810,55 +6149,58 @@ const struct type type_parser_nodes__ANodesparser_nodes__TId = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_parser_nodes__ANodesparser_nodes__TId,
-8,
+9,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-601, /* Collection[ANode] */
-1330, /* Collection[TId] */
-1664, /* ANodes[TId] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
+-1, /* empty */
+1382, /* Collection[TId] */
+1698, /* ANodes[TId] */
 },
 };
 const struct types resolution_table_parser_nodes__ANodesparser_nodes__TId = {
 0, /* dummy */
 {
-&type_parser_nodes__TId, /* Sequence#0: TId */
-&type_parser_nodes__TId, /* SimpleCollection#0: TId */
-&type_array__Arrayparser_nodes__TId, /* Array[ANodes#0]: Array[TId] */
-&type_parser_nodes__TId, /* ANodes#0: TId */
-NULL, /* empty */
-&type_parser_nodes__TId, /* RemovableCollection#0: TId */
-&type_abstract_collection__Collectionparser_nodes__TId, /* Collection[Sequence#0]: Collection[TId] */
-&type_abstract_collection__Collectionparser_nodes__TId, /* Collection[SimpleCollection#0]: Collection[TId] */
-&type_parser_nodes__TId, /* Collection#0: TId */
-&type_abstract_collection__Collectionparser_nodes__TId, /* Collection[Collection#0]: Collection[TId] */
-&type_parser_nodes__TId, /* SequenceRead#0: TId */
+&type_array__Arrayparser_nodes__TId, /* Array[E]: Array[TId] */
+&type_parser_nodes__TId, /* E: TId */
+&type_parser_nodes__TId, /* E: TId */
+&type_abstract_collection__Collectionparser_nodes__TId, /* Collection[E]: Collection[TId] */
+&type_array__Arrayparser_nodes__TId, /* Array[E]: Array[TId] */
+&type_parser_nodes__TId, /* E: TId */
+&type_parser_nodes__TId, /* E: TId */
+&type_abstract_collection__Collectionparser_nodes__TId, /* Collection[E]: Collection[TId] */
+&type_abstract_collection__Collectionparser_nodes__TId, /* Collection[E]: Collection[TId] */
+&type_parser_nodes__TId, /* E: TId */
+&type_parser_nodes__TId, /* E: TId */
 }
 };
 /* runtime type Collection[TId] */
 const struct type type_abstract_collection__Collectionparser_nodes__TId = {
-1330,
+1382,
 "Collection[TId]", /* class_name_string */
-6,
+7,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type MVisibility */
 const struct type type_model_base__MVisibility = {
-133,
+633,
 "MVisibility", /* class_name_string */
-2,
+4,
 0,
 &resolution_table_model_base__MVisibility,
-3,
+5,
 {
 0, /* nullable Object */
 1, /* Object */
-133, /* MVisibility */
+-1, /* empty */
+78, /* Comparable */
+633, /* MVisibility */
 },
 };
 const struct types resolution_table_model_base__MVisibility = {
@@ -4878,12 +6220,12 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-134, /* LiteralVisitor */
+131, /* LiteralVisitor */
 },
 };
 /* runtime type HashMap[MClass, MClassType] */
 const struct type type_hash_collection__HashMapmodel__MClassmodel__MClassType = {
-135,
+132,
 "HashMap[MClass, MClassType]", /* class_name_string */
 2,
 0,
@@ -4892,32 +6234,31 @@ const struct type type_hash_collection__HashMapmodel__MClassmodel__MClassType =
 {
 0, /* nullable Object */
 1, /* Object */
-135, /* HashMap[MClass, MClassType] */
+132, /* HashMap[MClass, MClassType] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassmodel__MClassType = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClassmodel__MClassType, /* HashMapKeys[K, V]: HashMapKeys[MClass, MClassType] */
+&type_hash_collection__HashMapValuesmodel__MClassmodel__MClassType, /* HashMapValues[K, V]: HashMapValues[MClass, MClassType] */
+&type_model__MClass, /* K: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassmodel__MClassType, /* HashMapIterator[K, V]: HashMapIterator[MClass, MClassType] */
+&type_model__MClass, /* K: MClass */
+&type_model__MClassType, /* V: MClassType */
+&type_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* HashMapNode[K, V]: HashMapNode[MClass, MClassType] */
+&type_model__MClass, /* K: MClass */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, MClassType]] */
-&type_hash_collection__HashMapKeysmodel__MClassmodel__MClassType, /* HashMapKeys[HashMap#0, HashMap#1]: HashMapKeys[MClass, MClassType] */
-&type_hash_collection__HashMapValuesmodel__MClassmodel__MClassType, /* HashMapValues[HashMap#0, HashMap#1]: HashMapValues[MClass, MClassType] */
-&type_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] */
-&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 */
+&type_nullable_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* nullable N: nullable HashMapNode[MClass, MClassType] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClass, MClassType]] */
+&type_hash_collection__HashMapNodemodel__MClassmodel__MClassType, /* N: HashMapNode[MClass, MClassType] */
+&type_nullable_model__MClass, /* nullable K: nullable MClass */
 }
 };
 /* runtime type ArrayMap[MClass, AType] */
 const struct type type_array__ArrayMapmodel__MClassparser_nodes__AType = {
-136,
+133,
 "ArrayMap[MClass, AType]", /* class_name_string */
 2,
 0,
@@ -4926,28 +6267,27 @@ const struct type type_array__ArrayMapmodel__MClassparser_nodes__AType = {
 {
 0, /* nullable Object */
 1, /* Object */
-136, /* ArrayMap[MClass, AType] */
+133, /* ArrayMap[MClass, AType] */
 },
 };
 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_model__MClass, /* MapRead#0: MClass */
-&type_model__MClass, /* ArrayMap#0: MClass */
-&type_array__Arrayabstract_collection__Couplemodel__MClassparser_nodes__AType, /* Array[Couple[ArrayMap#0, ArrayMap#1]]: Array[Couple[MClass, AType]] */
-&type_abstract_collection__CoupleMapIteratormodel__MClassparser_nodes__AType, /* CoupleMapIterator[CoupleMap#0, CoupleMap#1]: CoupleMapIterator[MClass, AType] */
-NULL, /* empty */
-&type_model__MClass, /* Map#0: MClass */
-&type_parser_nodes__AType, /* Map#1: AType */
+&type_array__ArrayMapKeysmodel__MClassparser_nodes__AType, /* ArrayMapKeys[K, E]: ArrayMapKeys[MClass, AType] */
+&type_array__ArrayMapValuesmodel__MClassparser_nodes__AType, /* ArrayMapValues[K, E]: ArrayMapValues[MClass, AType] */
+&type_model__MClass, /* K: MClass */
+&type_array__Arrayabstract_collection__Couplemodel__MClassparser_nodes__AType, /* Array[Couple[K, E]]: Array[Couple[MClass, AType]] */
+&type_model__MClass, /* K: MClass */
+&type_parser_nodes__AType, /* V: AType */
+&type_abstract_collection__Couplemodel__MClassparser_nodes__AType, /* Couple[K, E]: Couple[MClass, AType] */
+&type_model__MClass, /* K: MClass */
+&type_abstract_collection__CoupleMapIteratormodel__MClassparser_nodes__AType, /* CoupleMapIterator[K, V]: CoupleMapIterator[MClass, AType] */
 }
 };
-/* runtime type ScopeVisitor */
-const struct type type_scope__ScopeVisitor = {
+/* runtime type TransformVisitor */
+const struct type type_transform__TransformVisitor = {
 -1, /*CAST DEAD*/
-"ScopeVisitor", /* class_name_string */
+"TransformVisitor", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -4955,154 +6295,110 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-137, /* ScopeVisitor */
+134, /* TransformVisitor */
 },
 };
-/* runtime type Variable */
-const struct type type_scope__Variable = {
-623,
-"Variable", /* class_name_string */
-3,
+/* runtime type ASTValidationVisitor */
+const struct type type_astvalidation__ASTValidationVisitor = {
+-1, /*CAST DEAD*/
+"ASTValidationVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
-4,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
-9, /* nullable Variable */
-623, /* Variable */
+135, /* ASTValidationVisitor */
 },
 };
-/* runtime type nullable Variable */
-const struct type type_nullable_scope__Variable = {
-9,
-"nullable Variable", /* class_name_string */
-2,
-1,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type List[Scope] */
-const struct type type_list__Listscope__Scope = {
-1482,
-"List[Scope]", /* class_name_string */
+/* runtime type List[ANode] */
+const struct type type_list__Listparser_nodes__ANode = {
+1537,
+"List[ANode]", /* class_name_string */
 6,
 0,
-&resolution_table_list__Listscope__Scope,
+&resolution_table_list__Listparser_nodes__ANode,
 7,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-624, /* Collection[Scope] */
-1482, /* List[Scope] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
+1537, /* List[ANode] */
 },
 };
-const struct types resolution_table_list__Listscope__Scope = {
+const struct types resolution_table_list__Listparser_nodes__ANode = {
 0, /* dummy */
 {
-&type_scope__Scope, /* Sequence#0: Scope */
-&type_scope__Scope, /* SimpleCollection#0: Scope */
-&type_list__ListNodescope__Scope, /* ListNode[List#0]: ListNode[Scope] */
-&type_list__ListIteratorscope__Scope, /* ListIterator[List#0]: ListIterator[Scope] */
-&type_scope__Scope, /* List#0: Scope */
-&type_scope__Scope, /* RemovableCollection#0: Scope */
-&type_abstract_collection__Collectionscope__Scope, /* Collection[Sequence#0]: Collection[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 */
-&type_nullable_list__ListNodescope__Scope, /* nullable ListNode[List#0]: nullable ListNode[Scope] */
+&type_list__ListNodeparser_nodes__ANode, /* ListNode[E]: ListNode[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+&type_array__Arrayparser_nodes__ANode, /* Array[E]: Array[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+&type_abstract_collection__Collectionparser_nodes__ANode, /* Collection[E]: Collection[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_list__ListIteratorparser_nodes__ANode, /* ListIterator[E]: ListIterator[ANode] */
+&type_parser_nodes__ANode, /* E: ANode */
+&type_nullable_list__ListNodeparser_nodes__ANode, /* nullable ListNode[E]: nullable ListNode[ANode] */
 }
 };
-/* runtime type Collection[Scope] */
-const struct type type_abstract_collection__Collectionscope__Scope = {
-624,
-"Collection[Scope]", /* class_name_string */
-5,
-0,
-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 */
-138, /* FlowVisitor */
-},
-};
-/* runtime type Array[FlowContext] */
-const struct type type_array__Arrayflow__FlowContext = {
+/* runtime type ANodes[AExpr] */
+const struct type type_parser_nodes__ANodesparser_nodes__AExpr = {
 -1, /*CAST DEAD*/
-"Array[FlowContext]", /* class_name_string */
+"ANodes[AExpr]", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
-&resolution_table_array__Arrayflow__FlowContext,
+&resolution_table_parser_nodes__ANodesparser_nodes__AExpr,
 11,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-625, /* Collection[FlowContext] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+599, /* Collection[ANode] */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1665, /* AbstractArrayRead[FlowContext] */
-1459, /* Array[Object] */
-2037, /* Array[FlowContext] */
+1351, /* Collection[Prod] */
+-1, /* empty */
+1538, /* Collection[AExpr] */
+1922, /* ANodes[AExpr] */
 },
 };
-const struct types resolution_table_array__Arrayflow__FlowContext = {
+const struct types resolution_table_parser_nodes__ANodesparser_nodes__AExpr = {
 0, /* dummy */
 {
-&type_flow__FlowContext, /* Sequence#0: FlowContext */
-&type_flow__FlowContext, /* SimpleCollection#0: FlowContext */
-&type_array__NativeArrayflow__FlowContext, /* NativeArray[Array#0]: NativeArray[FlowContext] */
-&type_array__Arrayflow__FlowContext, /* Array[Array#0]: Array[FlowContext] */
-&type_array__NativeArrayflow__FlowContext, /* NativeArray[ArrayCapable#0]: NativeArray[FlowContext] */
-&type_flow__FlowContext, /* RemovableCollection#0: FlowContext */
-&type_abstract_collection__Collectionflow__FlowContext, /* Collection[Sequence#0]: Collection[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] */
-&type_array__ArrayIteratorflow__FlowContext, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[FlowContext] */
+&type_array__Arrayparser_nodes__AExpr, /* Array[E]: Array[AExpr] */
+&type_parser_nodes__AExpr, /* E: AExpr */
+&type_parser_nodes__AExpr, /* E: AExpr */
+&type_abstract_collection__Collectionparser_nodes__AExpr, /* Collection[E]: Collection[AExpr] */
+&type_array__Arrayparser_nodes__AExpr, /* Array[E]: Array[AExpr] */
+&type_parser_nodes__AExpr, /* E: AExpr */
+&type_parser_nodes__AExpr, /* E: AExpr */
+&type_abstract_collection__Collectionparser_nodes__AExpr, /* Collection[E]: Collection[AExpr] */
+&type_abstract_collection__Collectionparser_nodes__AExpr, /* Collection[E]: Collection[AExpr] */
+&type_parser_nodes__AExpr, /* E: AExpr */
+&type_parser_nodes__AExpr, /* E: AExpr */
 }
 };
-/* runtime type Collection[FlowContext] */
-const struct type type_abstract_collection__Collectionflow__FlowContext = {
-625,
-"Collection[FlowContext]", /* class_name_string */
-5,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type AbstractArrayRead[FlowContext] */
-const struct type type_array__AbstractArrayReadflow__FlowContext = {
-1665,
-"AbstractArrayRead[FlowContext]", /* class_name_string */
-8,
+/* runtime type Collection[AExpr] */
+const struct type type_abstract_collection__Collectionparser_nodes__AExpr = {
+1538,
+"Collection[AExpr]", /* class_name_string */
+9,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type LocalVarInitVisitor */
-const struct type type_local_var_init__LocalVarInitVisitor = {
+/* runtime type TextCollectorVisitor */
+const struct type type_parser_work__TextCollectorVisitor = {
 -1, /*CAST DEAD*/
-"LocalVarInitVisitor", /* class_name_string */
+"TextCollectorVisitor", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -5110,165 +6406,173 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-139, /* LocalVarInitVisitor */
+136, /* TextCollectorVisitor */
 },
 };
-/* runtime type HashSet[Variable] */
-const struct type type_hash_collection__HashSetscope__Variable = {
-1666,
-"HashSet[Variable]", /* class_name_string */
-9,
+/* runtime type MParameterType */
+const struct type type_model__MParameterType = {
+1383,
+"MParameterType", /* class_name_string */
+5,
 0,
-&resolution_table_hash_collection__HashSetscope__Variable,
-10,
+NULL, /*NO RESOLUTIONS*/
+6,
 {
 0, /* nullable Object */
 1, /* Object */
+4, /* nullable MType */
 -1, /* empty */
--1, /* empty */
-84, /* Collection[Object] */
-626, /* Collection[Variable] */
--1, /* empty */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1666, /* HashSet[Variable] */
+609, /* MType */
+1383, /* MParameterType */
 },
 };
-const struct types resolution_table_hash_collection__HashSetscope__Variable = {
-0, /* dummy */
+/* runtime type MGenericType */
+const struct type type_model__MGenericType = {
+1699,
+"MGenericType", /* class_name_string */
+6,
+0,
+NULL, /*NO RESOLUTIONS*/
+7,
 {
-&type_hash_collection__HashSetNodescope__Variable, /* HashSetNode[HashSet#0]: HashSetNode[Variable] */
-&type_scope__Variable, /* SimpleCollection#0: Variable */
-&type_hash_collection__HashSetIteratorscope__Variable, /* HashSetIterator[HashSet#0]: HashSetIterator[Variable] */
-&type_abstract_collection__Collectionscope__Variable, /* Collection[Set#0]: Collection[Variable] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodescope__Variable, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[Variable]] */
-&type_scope__Variable, /* RemovableCollection#0: Variable */
-&type_abstract_collection__Collectionscope__Variable, /* Collection[HashSet#0]: Collection[Variable] */
-&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] */
-NULL, /* empty */
-&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 */
-}
+0, /* nullable Object */
+1, /* Object */
+4, /* nullable MType */
+137, /* nullable MClassType */
+609, /* MType */
+1539, /* MClassType */
+1699, /* MGenericType */
+},
 };
-/* runtime type Collection[Variable] */
-const struct type type_abstract_collection__Collectionscope__Variable = {
-626,
-"Collection[Variable]", /* class_name_string */
+/* runtime type MClassType */
+const struct type type_model__MClassType = {
+1539,
+"MClassType", /* class_name_string */
 5,
 0,
-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,
+6,
 {
 0, /* nullable Object */
 1, /* Object */
-140, /* AutoSuperInitVisitor */
+4, /* nullable MType */
+137, /* nullable MClassType */
+609, /* MType */
+1539, /* MClassType */
 },
 };
-/* runtime type Array[CallSite] */
-const struct type type_array__Arraytyping__CallSite = {
--1, /*CAST DEAD*/
-"Array[CallSite]", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type nullable MClassType */
+const struct type type_nullable_model__MClassType = {
+137,
+"nullable MClassType", /* class_name_string */
+3,
+1,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type HashMap[MModule, Set[MClassDef]] */
+const struct type type_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassDef = {
+138,
+"HashMap[MModule, Set[MClassDef]]", /* class_name_string */
+2,
 0,
-&resolution_table_array__Arraytyping__CallSite,
-11,
+&resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassDef,
+3,
 {
 0, /* nullable Object */
 1, /* Object */
--1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-615, /* Collection[CallSite] */
--1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1667, /* AbstractArrayRead[CallSite] */
-1459, /* Array[Object] */
-2038, /* Array[CallSite] */
+138, /* HashMap[MModule, Set[MClassDef]] */
 },
 };
-const struct types resolution_table_array__Arraytyping__CallSite = {
+const struct types resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassDef = {
 0, /* dummy */
 {
-&type_typing__CallSite, /* Sequence#0: CallSite */
-&type_typing__CallSite, /* SimpleCollection#0: CallSite */
-&type_array__NativeArraytyping__CallSite, /* NativeArray[Array#0]: NativeArray[CallSite] */
-&type_array__Arraytyping__CallSite, /* Array[Array#0]: Array[CallSite] */
-&type_array__NativeArraytyping__CallSite, /* NativeArray[ArrayCapable#0]: NativeArray[CallSite] */
-&type_typing__CallSite, /* RemovableCollection#0: CallSite */
-&type_abstract_collection__Collectiontyping__CallSite, /* Collection[Sequence#0]: Collection[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] */
-&type_array__ArrayIteratortyping__CallSite, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[CallSite] */
+&type_hash_collection__HashMapKeysmmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapKeys[K, V]: HashMapKeys[MModule, Set[MClassDef]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapValues[K, V]: HashMapValues[MModule, Set[MClassDef]] */
+&type_mmodule__MModule, /* K: MModule */
+&type_hash_collection__HashMapIteratormmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapIterator[K, V]: HashMapIterator[MModule, Set[MClassDef]] */
+&type_mmodule__MModule, /* K: MModule */
+&type_abstract_collection__Setmodel__MClassDef, /* V: Set[MClassDef] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* HashMapNode[K, V]: HashMapNode[MModule, Set[MClassDef]] */
+&type_mmodule__MModule, /* K: MModule */
+NULL, /* empty */
+NULL, /* empty */
+&type_nullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* nullable N: nullable HashMapNode[MModule, Set[MClassDef]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* NativeArray[E]: NativeArray[nullable HashMapNode[MModule, Set[MClassDef]]] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassDef, /* N: HashMapNode[MModule, Set[MClassDef]] */
+&type_nullable_mmodule__MModule, /* nullable K: nullable MModule */
 }
 };
-/* runtime type AbstractArrayRead[CallSite] */
-const struct type type_array__AbstractArrayReadtyping__CallSite = {
-1667,
-"AbstractArrayRead[CallSite]", /* class_name_string */
-8,
+/* runtime type HashMap[MModule, Set[MClass]] */
+const struct type type_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClass = {
+139,
+"HashMap[MModule, Set[MClass]]", /* class_name_string */
+2,
 0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type CallSite */
-const struct type type_typing__CallSite = {
-627,
-"CallSite", /* class_name_string */
+&resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClass,
 3,
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
 {
 0, /* nullable Object */
 1, /* Object */
-10, /* nullable CallSite */
-627, /* CallSite */
+139, /* HashMap[MModule, Set[MClass]] */
 },
 };
-/* runtime type nullable CallSite */
-const struct type type_nullable_typing__CallSite = {
-10,
-"nullable CallSite", /* class_name_string */
-2,
-1,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
+const struct types resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClass = {
+0, /* dummy */
+{
+&type_hash_collection__HashMapKeysmmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapKeys[K, V]: HashMapKeys[MModule, Set[MClass]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapValues[K, V]: HashMapValues[MModule, Set[MClass]] */
+&type_mmodule__MModule, /* K: MModule */
+&type_hash_collection__HashMapIteratormmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapIterator[K, V]: HashMapIterator[MModule, Set[MClass]] */
+&type_mmodule__MModule, /* K: MModule */
+&type_abstract_collection__Setmodel__MClass, /* V: Set[MClass] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* HashMapNode[K, V]: HashMapNode[MModule, Set[MClass]] */
+&type_mmodule__MModule, /* K: MModule */
+NULL, /* empty */
+NULL, /* empty */
+&type_nullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* nullable N: nullable HashMapNode[MModule, Set[MClass]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* NativeArray[E]: NativeArray[nullable HashMapNode[MModule, Set[MClass]]] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClass, /* N: HashMapNode[MModule, Set[MClass]] */
+&type_nullable_mmodule__MModule, /* nullable K: nullable MModule */
+}
 };
-/* runtime type ASTBuilder */
-const struct type type_astbuilder__ASTBuilder = {
--1, /*CAST DEAD*/
-"ASTBuilder", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type HashMap[MModule, Set[MClassType]] */
+const struct type type_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassType = {
+140,
+"HashMap[MModule, Set[MClassType]]", /* class_name_string */
+2,
 0,
-NULL, /*NO RESOLUTIONS*/
+&resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassType,
 3,
 {
 0, /* nullable Object */
 1, /* Object */
-141, /* ASTBuilder */
+140, /* HashMap[MModule, Set[MClassType]] */
 },
 };
-/* runtime type RapidTypeVisitor */
-const struct type type_rapid_type_analysis__RapidTypeVisitor = {
+const struct types resolution_table_hash_collection__HashMapmmodule__MModuleabstract_collection__Setmodel__MClassType = {
+0, /* dummy */
+{
+&type_hash_collection__HashMapKeysmmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapKeys[K, V]: HashMapKeys[MModule, Set[MClassType]] */
+&type_hash_collection__HashMapValuesmmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapValues[K, V]: HashMapValues[MModule, Set[MClassType]] */
+&type_mmodule__MModule, /* K: MModule */
+&type_hash_collection__HashMapIteratormmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapIterator[K, V]: HashMapIterator[MModule, Set[MClassType]] */
+&type_mmodule__MModule, /* K: MModule */
+&type_abstract_collection__Setmodel__MClassType, /* V: Set[MClassType] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* HashMapNode[K, V]: HashMapNode[MModule, Set[MClassType]] */
+&type_mmodule__MModule, /* K: MModule */
+NULL, /* empty */
+NULL, /* empty */
+&type_nullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* nullable N: nullable HashMapNode[MModule, Set[MClassType]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* NativeArray[E]: NativeArray[nullable HashMapNode[MModule, Set[MClassType]]] */
+&type_hash_collection__HashMapNodemmodule__MModuleabstract_collection__Setmodel__MClassType, /* N: HashMapNode[MModule, Set[MClassType]] */
+&type_nullable_mmodule__MModule, /* nullable K: nullable MModule */
+}
+};
+/* runtime type MClassKind */
+const struct type type_model__MClassKind = {
 -1, /*CAST DEAD*/
-"RapidTypeVisitor", /* class_name_string */
+"MClassKind", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -5276,162 +6580,113 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-142, /* RapidTypeVisitor */
-},
-};
-/* runtime type Array[MType] */
-const struct type type_array__Arraymodel__MType = {
-2165,
-"Array[MType]", /* class_name_string */
-15,
-0,
-&resolution_table_array__Arraymodel__MType,
-16,
-{
-0, /* nullable Object */
-1, /* Object */
-11, /* nullable Array[nullable MType] */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-93, /* Collection[nullable MType] */
-1316, /* Collection[MType] */
-1294, /* AbstractArrayRead[Object] */
-1331, /* AbstractArrayRead[nullable MType] */
-1459, /* Array[Object] */
--1, /* empty */
-1668, /* Array[nullable MType] */
--1, /* empty */
-2039, /* AbstractArrayRead[MType] */
--1, /* empty */
-2165, /* Array[MType] */
+141, /* MClassKind */
 },
 };
-const struct types resolution_table_array__Arraymodel__MType = {
-0, /* dummy */
-{
-&type_model__MType, /* Sequence#0: MType */
-&type_model__MType, /* SimpleCollection#0: MType */
-&type_array__NativeArraymodel__MType, /* NativeArray[Array#0]: NativeArray[MType] */
-&type_array__Arraymodel__MType, /* Array[Array#0]: Array[MType] */
-&type_array__NativeArraymodel__MType, /* NativeArray[ArrayCapable#0]: NativeArray[MType] */
-&type_model__MType, /* RemovableCollection#0: MType */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[Sequence#0]: Collection[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] */
-&type_array__ArrayIteratormodel__MType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[MType] */
-}
-};
-/* runtime type Array[nullable MType] */
-const struct type type_array__Arraynullable_model__MType = {
-1668,
-"Array[nullable MType]", /* class_name_string */
-11,
+/* runtime type HashSet[MClassDef] */
+const struct type type_hash_collection__HashSetmodel__MClassDef = {
+1923,
+"HashSet[MClassDef]", /* class_name_string */
+9,
 0,
-&resolution_table_array__Arraynullable_model__MType,
-12,
+&resolution_table_hash_collection__HashSetmodel__MClassDef,
+10,
 {
 0, /* nullable Object */
 1, /* Object */
-11, /* nullable Array[nullable MType] */
-83, /* SequenceRead[nullable Object] */
--1, /* empty */
-93, /* Collection[nullable MType] */
 -1, /* empty */
 -1, /* empty */
-1331, /* AbstractArrayRead[nullable MType] */
--1, /* empty */
--1, /* empty */
-1668, /* Array[nullable MType] */
+83, /* Collection[Object] */
+606, /* Collection[MClassDef] */
+598, /* Set[Object] */
+1540, /* Set[MClassDef] */
+1350, /* HashSet[Object] */
+1923, /* HashSet[MClassDef] */
 },
 };
-const struct types resolution_table_array__Arraynullable_model__MType = {
+const struct types resolution_table_hash_collection__HashSetmodel__MClassDef = {
 0, /* dummy */
 {
-&type_nullable_model__MType, /* Sequence#0: nullable MType */
-&type_nullable_model__MType, /* SimpleCollection#0: nullable MType */
-&type_array__NativeArraynullable_model__MType, /* NativeArray[Array#0]: NativeArray[nullable MType] */
-&type_array__Arraynullable_model__MType, /* Array[Array#0]: Array[nullable MType] */
-&type_array__NativeArraynullable_model__MType, /* NativeArray[ArrayCapable#0]: NativeArray[nullable MType] */
-&type_nullable_model__MType, /* RemovableCollection#0: nullable MType */
-&type_abstract_collection__Collectionnullable_model__MType, /* Collection[Sequence#0]: Collection[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] */
-&type_array__ArrayIteratornullable_model__MType, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[nullable MType] */
+&type_hash_collection__HashSetNodemodel__MClassDef, /* HashSetNode[E]: HashSetNode[MClassDef] */
+&type_hash_collection__HashSetIteratormodel__MClassDef, /* HashSetIterator[E]: HashSetIterator[MClassDef] */
+&type_model__MClassDef, /* E: MClassDef */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[E]: Collection[MClassDef] */
+&type_array__Arraymodel__MClassDef, /* Array[E]: Array[MClassDef] */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[E]: Collection[MClassDef] */
+&type_model__MClassDef, /* E: MClassDef */
+&type_model__MClassDef, /* K: MClassDef */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[E]: Collection[MClassDef] */
+&type_model__MClassDef, /* E: MClassDef */
+&type_nullable_hash_collection__HashSetNodemodel__MClassDef, /* nullable N: nullable HashSetNode[MClassDef] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MClassDef, /* NativeArray[E]: NativeArray[nullable HashSetNode[MClassDef]] */
+&type_hash_collection__HashSetNodemodel__MClassDef, /* N: HashSetNode[MClassDef] */
+&type_nullable_model__MClassDef, /* nullable K: nullable MClassDef */
+&type_abstract_collection__Collectionmodel__MClassDef, /* Collection[E]: Collection[MClassDef] */
 }
 };
-/* 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 = {
-2039,
-"AbstractArrayRead[MType]", /* class_name_string */
-13,
+/* runtime type Set[MClassDef] */
+const struct type type_abstract_collection__Setmodel__MClassDef = {
+1540,
+"Set[MClassDef]", /* class_name_string */
+7,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
-/* runtime type AbstractArrayRead[nullable MType] */
-const struct type type_array__AbstractArrayReadnullable_model__MType = {
-1331,
-"AbstractArrayRead[nullable MType]", /* class_name_string */
-8,
+/* runtime type RapidTypeVisitor */
+const struct type type_rapid_type_analysis__RapidTypeVisitor = {
+-1, /*CAST DEAD*/
+"RapidTypeVisitor", /* class_name_string */
+-1, /*CAST DEAD*/
 0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
+NULL, /*NO RESOLUTIONS*/
+3,
+{
+0, /* nullable Object */
+1, /* Object */
+142, /* RapidTypeVisitor */
+},
 };
 /* runtime type List[MClassType] */
 const struct type type_list__Listmodel__MClassType = {
-1870,
+1924,
 "List[MClassType]", /* class_name_string */
-11,
+12,
 0,
 &resolution_table_list__Listmodel__MClassType,
-12,
+13,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
 93, /* Collection[nullable MType] */
-1316, /* Collection[MType] */
+-1, /* empty */
+1370, /* Collection[MType] */
 -1, /* empty */
 -1, /* empty */
 -1, /* empty */
-1464, /* Collection[MClassType] */
-1870, /* List[MClassType] */
+1519, /* Collection[MClassType] */
+1924, /* List[MClassType] */
 },
 };
 const struct types resolution_table_list__Listmodel__MClassType = {
 0, /* dummy */
 {
-&type_model__MClassType, /* Sequence#0: MClassType */
-&type_model__MClassType, /* SimpleCollection#0: MClassType */
-&type_list__ListNodemodel__MClassType, /* ListNode[List#0]: ListNode[MClassType] */
-&type_list__ListIteratormodel__MClassType, /* ListIterator[List#0]: ListIterator[MClassType] */
-&type_model__MClassType, /* List#0: MClassType */
-&type_model__MClassType, /* RemovableCollection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Sequence#0]: Collection[MClassType] */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[SimpleCollection#0]: Collection[MClassType] */
-&type_model__MClassType, /* Collection#0: MClassType */
-&type_abstract_collection__Collectionmodel__MClassType, /* Collection[Collection#0]: Collection[MClassType] */
-&type_model__MClassType, /* SequenceRead#0: MClassType */
-&type_nullable_list__ListNodemodel__MClassType, /* nullable ListNode[List#0]: nullable ListNode[MClassType] */
+&type_list__ListNodemodel__MClassType, /* ListNode[E]: ListNode[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_model__MClassType, /* E: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_array__Arraymodel__MClassType, /* Array[E]: Array[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_model__MClassType, /* E: MClassType */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_abstract_collection__Collectionmodel__MClassType, /* Collection[E]: Collection[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_list__ListIteratormodel__MClassType, /* ListIterator[E]: ListIterator[MClassType] */
+&type_model__MClassType, /* E: MClassType */
+&type_nullable_list__ListNodemodel__MClassType, /* nullable ListNode[E]: nullable ListNode[MClassType] */
 }
 };
 /* runtime type HashMap[String, Int] */
@@ -5451,21 +6706,20 @@ const struct type type_hash_collection__HashMapstring__Stringkernel__Int = {
 const struct types resolution_table_hash_collection__HashMapstring__Stringkernel__Int = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysstring__Stringkernel__Int, /* HashMapKeys[K, V]: HashMapKeys[String, Int] */
+&type_hash_collection__HashMapValuesstring__Stringkernel__Int, /* HashMapValues[K, V]: HashMapValues[String, Int] */
+&type_string__String, /* K: String */
+&type_hash_collection__HashMapIteratorstring__Stringkernel__Int, /* HashMapIterator[K, V]: HashMapIterator[String, Int] */
+&type_string__String, /* K: String */
+&type_kernel__Int, /* V: Int */
+&type_hash_collection__HashMapNodestring__Stringkernel__Int, /* HashMapNode[K, V]: HashMapNode[String, Int] */
+&type_string__String, /* K: String */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_string__String, /* MapRead#0: String */
-&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringkernel__Int, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[String, Int]] */
-&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_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 */
-&type_hash_collection__HashMapNodestring__Stringkernel__Int, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[String, 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 */
+&type_nullable_hash_collection__HashMapNodestring__Stringkernel__Int, /* nullable N: nullable HashMapNode[String, Int] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodestring__Stringkernel__Int, /* NativeArray[E]: NativeArray[nullable HashMapNode[String, Int]] */
+&type_hash_collection__HashMapNodestring__Stringkernel__Int, /* N: HashMapNode[String, Int] */
+&type_nullable_string__String, /* nullable K: nullable String */
 }
 };
 /* runtime type CodeWriter */
@@ -5484,38 +6738,42 @@ NULL, /*NO RESOLUTIONS*/
 };
 /* runtime type List[String] */
 const struct type type_list__Liststring__String = {
-1669,
+1925,
 "List[String]", /* class_name_string */
-7,
+10,
 0,
 &resolution_table_list__Liststring__String,
-8,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-587, /* Collection[Streamable] */
-1295, /* Collection[String] */
-1669, /* List[String] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+593, /* Collection[Streamable] */
+-1, /* empty */
+1346, /* Collection[Text] */
+-1, /* empty */
+1513, /* Collection[String] */
+1925, /* List[String] */
 },
 };
 const struct types resolution_table_list__Liststring__String = {
 0, /* dummy */
 {
-&type_string__String, /* Sequence#0: String */
-&type_string__String, /* SimpleCollection#0: String */
-&type_list__ListNodestring__String, /* ListNode[List#0]: ListNode[String] */
-&type_list__ListIteratorstring__String, /* ListIterator[List#0]: ListIterator[String] */
-&type_string__String, /* List#0: String */
-&type_string__String, /* RemovableCollection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Sequence#0]: Collection[String] */
-&type_abstract_collection__Collectionstring__String, /* Collection[SimpleCollection#0]: Collection[String] */
-&type_string__String, /* Collection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Collection#0]: Collection[String] */
-&type_string__String, /* SequenceRead#0: String */
-&type_nullable_list__ListNodestring__String, /* nullable ListNode[List#0]: nullable ListNode[String] */
+&type_list__ListNodestring__String, /* ListNode[E]: ListNode[String] */
+&type_string__String, /* E: String */
+&type_string__String, /* E: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_array__Arraystring__String, /* Array[E]: Array[String] */
+&type_string__String, /* E: String */
+&type_string__String, /* E: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_string__String, /* E: String */
+&type_list__ListIteratorstring__String, /* ListIterator[E]: ListIterator[String] */
+&type_string__String, /* E: String */
+&type_nullable_list__ListNodestring__String, /* nullable ListNode[E]: nullable ListNode[String] */
 }
 };
 /* runtime type CodeFile */
@@ -5539,43 +6797,52 @@ const struct type type_array__Arrayabstract_compiler__CodeWriter = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arrayabstract_compiler__CodeWriter,
-11,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-628, /* Collection[CodeWriter] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+634, /* Collection[CodeWriter] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1700, /* AbstractArrayRead[CodeWriter] */
+1512, /* AbstractArray[Object] */
+2097, /* AbstractArray[CodeWriter] */
+-1, /* empty */
+-1, /* empty */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1670, /* AbstractArrayRead[CodeWriter] */
-1459, /* Array[Object] */
-2040, /* Array[CodeWriter] */
+1909, /* Array[Object] */
+2219, /* Array[CodeWriter] */
 },
 };
 const struct types resolution_table_array__Arrayabstract_compiler__CodeWriter = {
 0, /* dummy */
 {
-&type_abstract_compiler__CodeWriter, /* Sequence#0: CodeWriter */
-&type_abstract_compiler__CodeWriter, /* SimpleCollection#0: CodeWriter */
-&type_array__NativeArrayabstract_compiler__CodeWriter, /* NativeArray[Array#0]: NativeArray[CodeWriter] */
-&type_array__Arrayabstract_compiler__CodeWriter, /* Array[Array#0]: Array[CodeWriter] */
-&type_array__NativeArrayabstract_compiler__CodeWriter, /* NativeArray[ArrayCapable#0]: NativeArray[CodeWriter] */
-&type_abstract_compiler__CodeWriter, /* RemovableCollection#0: CodeWriter */
-&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[Sequence#0]: Collection[CodeWriter] */
-&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[SimpleCollection#0]: Collection[CodeWriter] */
-&type_abstract_compiler__CodeWriter, /* Collection#0: CodeWriter */
-&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[Collection#0]: Collection[CodeWriter] */
-&type_abstract_compiler__CodeWriter, /* SequenceRead#0: CodeWriter */
-&type_abstract_compiler__CodeWriter, /* AbstractArrayRead#0: CodeWriter */
-&type_array__Arrayabstract_compiler__CodeWriter, /* Array[AbstractArrayRead#0]: Array[CodeWriter] */
-&type_array__ArrayIteratorabstract_compiler__CodeWriter, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[CodeWriter] */
+&type_array__NativeArrayabstract_compiler__CodeWriter, /* NativeArray[E]: NativeArray[CodeWriter] */
+&type_abstract_compiler__CodeWriter, /* E: CodeWriter */
+&type_abstract_compiler__CodeWriter, /* E: CodeWriter */
+&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[E]: Collection[CodeWriter] */
+&type_array__Arrayabstract_compiler__CodeWriter, /* Array[E]: Array[CodeWriter] */
+&type_abstract_compiler__CodeWriter, /* E: CodeWriter */
+&type_abstract_compiler__CodeWriter, /* E: CodeWriter */
+&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[E]: Collection[CodeWriter] */
+&type_abstract_collection__Collectionabstract_compiler__CodeWriter, /* Collection[E]: Collection[CodeWriter] */
+&type_abstract_compiler__CodeWriter, /* E: CodeWriter */
+&type_array__Arrayabstract_compiler__CodeWriter, /* Array[E]: Array[CodeWriter] */
+&type_array__NativeArrayabstract_compiler__CodeWriter, /* NativeArray[E]: NativeArray[CodeWriter] */
+&type_abstract_compiler__CodeWriter, /* E: CodeWriter */
+&type_abstract_compiler__CodeWriter, /* E: CodeWriter */
+&type_array__Arrayabstract_compiler__CodeWriter, /* Array[E]: Array[CodeWriter] */
+&type_array__AbstractArrayabstract_compiler__CodeWriter, /* AbstractArray[E]: AbstractArray[CodeWriter] */
+&type_array__ArrayIteratorabstract_compiler__CodeWriter, /* ArrayIterator[E]: ArrayIterator[CodeWriter] */
 }
 };
 /* runtime type Collection[CodeWriter] */
 const struct type type_abstract_collection__Collectionabstract_compiler__CodeWriter = {
-628,
+634,
 "Collection[CodeWriter]", /* class_name_string */
 5,
 0,
@@ -5584,52 +6851,62 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[CodeWriter] */
 const struct type type_array__AbstractArrayReadabstract_compiler__CodeWriter = {
-1670,
+1700,
 "AbstractArrayRead[CodeWriter]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[CodeWriter] */
+const struct type type_array__AbstractArrayabstract_compiler__CodeWriter = {
+2097,
+"AbstractArray[CodeWriter]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
 };
 /* runtime type HashSet[String] */
 const struct type type_hash_collection__HashSetstring__String = {
-1871,
+2098,
 "HashSet[String]", /* class_name_string */
-9,
+10,
 0,
 &resolution_table_hash_collection__HashSetstring__String,
-10,
+11,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
 -1, /* empty */
-84, /* Collection[Object] */
-587, /* Collection[Streamable] */
-1295, /* Collection[String] */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1871, /* HashSet[String] */
+83, /* Collection[Object] */
+593, /* Collection[Streamable] */
+598, /* Set[Object] */
+1346, /* Collection[Text] */
+1350, /* HashSet[Object] */
+1513, /* Collection[String] */
+2098, /* HashSet[String] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetstring__String = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodestring__String, /* HashSetNode[HashSet#0]: HashSetNode[String] */
-&type_string__String, /* SimpleCollection#0: String */
-&type_hash_collection__HashSetIteratorstring__String, /* HashSetIterator[HashSet#0]: HashSetIterator[String] */
-&type_abstract_collection__Collectionstring__String, /* Collection[Set#0]: Collection[String] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodestring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[String]] */
-&type_string__String, /* RemovableCollection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[HashSet#0]: Collection[String] */
-&type_abstract_collection__Collectionstring__String, /* Collection[SimpleCollection#0]: Collection[String] */
-&type_string__String, /* Collection#0: String */
-&type_abstract_collection__Collectionstring__String, /* Collection[Collection#0]: Collection[String] */
-NULL, /* empty */
-&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 */
+&type_hash_collection__HashSetNodestring__String, /* HashSetNode[E]: HashSetNode[String] */
+&type_hash_collection__HashSetIteratorstring__String, /* HashSetIterator[E]: HashSetIterator[String] */
+&type_string__String, /* E: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_array__Arraystring__String, /* Array[E]: Array[String] */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_string__String, /* E: String */
+&type_string__String, /* K: String */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
+&type_string__String, /* E: String */
+&type_nullable_hash_collection__HashSetNodestring__String, /* nullable N: nullable HashSetNode[String] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodestring__String, /* NativeArray[E]: NativeArray[nullable HashSetNode[String]] */
+&type_hash_collection__HashSetNodestring__String, /* N: HashSetNode[String] */
+&type_nullable_string__String, /* nullable K: nullable String */
+&type_abstract_collection__Collectionstring__String, /* Collection[E]: Collection[String] */
 }
 };
 /* runtime type POSetColorer[MClass] */
@@ -5649,19 +6926,19 @@ const struct type type_coloring__POSetColorermodel__MClass = {
 const struct types resolution_table_coloring__POSetColorermodel__MClass = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmodel__MClasskernel__Int, /* HashMap[POSetColorer#0, Int]: HashMap[MClass, Int] */
-&type_poset__POSetmodel__MClass, /* POSet[POSetColorer#0]: POSet[MClass] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MClass, /* Map[POSetColorer#0, Set[POSetColorer#0]]: Map[MClass, Set[MClass]] */
-&type_coloring__POSetConflictGraphmodel__MClass, /* POSetConflictGraph[POSetColorer#0]: POSetConflictGraph[MClass] */
-&type_hash_collection__HashSetmodel__MClass, /* HashSet[POSetColorer#0]: HashSet[MClass] */
-&type_abstract_collection__Setmodel__MClass, /* Set[POSetColorer#0]: Set[MClass] */
-&type_model__MClass, /* POSetColorer#0: MClass */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[POSetColorer#0]: Collection[MClass] */
+&type_hash_collection__HashMapmodel__MClasskernel__Int, /* HashMap[E, Int]: HashMap[MClass, Int] */
+&type_poset__POSetmodel__MClass, /* POSet[E]: POSet[MClass] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MClass, /* Map[E, Set[E]]: Map[MClass, Set[MClass]] */
+&type_coloring__POSetConflictGraphmodel__MClass, /* POSetConflictGraph[E]: POSetConflictGraph[MClass] */
+&type_hash_collection__HashSetmodel__MClass, /* HashSet[E]: HashSet[MClass] */
+&type_abstract_collection__Setmodel__MClass, /* Set[E]: Set[MClass] */
+&type_model__MClass, /* E: MClass */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[E]: Collection[MClass] */
 }
 };
 /* runtime type HashMap[MClass, Set[MAttribute]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute = {
-1671,
+1701,
 "HashMap[MClass, Set[MAttribute]]", /* class_name_string */
 6,
 0,
@@ -5670,36 +6947,35 @@ const struct type type_hash_collection__HashMapmodel__MClassabstract_collection_
 {
 0, /* nullable Object */
 1, /* Object */
-106, /* Map[MClass, Set[PropertyLayoutElement]] */
-609, /* HashMap[MClass, Set[PropertyLayoutElement]] */
-629, /* Map[MClass, Set[MAttribute]] */
-1322, /* HashMap[MClass, Set[MProperty]] */
-1671, /* HashMap[MClass, Set[MAttribute]] */
+109, /* Map[MClass, Set[PropertyLayoutElement]] */
+613, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+635, /* Map[MClass, Set[MAttribute]] */
+1373, /* HashMap[MClass, Set[MProperty]] */
+1701, /* HashMap[MClass, Set[MAttribute]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MAttribute = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapKeys[K, V]: HashMapKeys[MClass, Set[MAttribute]] */
+&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapValues[K, V]: HashMapValues[MClass, Set[MAttribute]] */
+&type_model__MClass, /* K: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapIterator[K, V]: HashMapIterator[MClass, Set[MAttribute]] */
+&type_model__MClass, /* K: MClass */
+&type_abstract_collection__Setmodel__MAttribute, /* V: Set[MAttribute] */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapNode[K, V]: HashMapNode[MClass, Set[MAttribute]] */
+&type_model__MClass, /* K: MClass */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Set[MAttribute]]] */
-&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_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[MClass, Set[MAttribute]] */
-&type_model__MClass, /* Map#0: MClass */
-&type_abstract_collection__Setmodel__MAttribute, /* Map#1: Set[MAttribute] */
-&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, Set[MAttribute]] */
-&type_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 */
+&type_nullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* nullable N: nullable HashMapNode[MClass, Set[MAttribute]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClass, Set[MAttribute]]] */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MAttribute, /* N: HashMapNode[MClass, Set[MAttribute]] */
+&type_nullable_model__MClass, /* nullable K: nullable MClass */
 }
 };
 /* runtime type Map[MClass, Set[MAttribute]] */
 const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute = {
-629,
+635,
 "Map[MClass, Set[MAttribute]]", /* class_name_string */
 4,
 0,
@@ -5708,7 +6984,7 @@ NULL, /*DEAD*/
 };
 /* runtime type HashSet[MAttribute] */
 const struct type type_hash_collection__HashSetmodel__MAttribute = {
-2178,
+2288,
 "HashSet[MAttribute]", /* class_name_string */
 16,
 0,
@@ -5719,44 +6995,44 @@ const struct type type_hash_collection__HashSetmodel__MAttribute = {
 1, /* Object */
 92, /* Collection[nullable MProperty] */
 -1, /* empty */
-84, /* Collection[Object] */
+83, /* Collection[Object] */
 -1, /* empty */
-596, /* Collection[PropertyLayoutElement] */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1476, /* Set[PropertyLayoutElement] */
-1462, /* Collection[MProperty] */
-1672, /* Collection[MAttribute] */
-1867, /* HashSet[PropertyLayoutElement] */
-2032, /* Set[MProperty] */
-2121, /* Set[MAttribute] */
-2148, /* HashSet[MProperty] */
-2178, /* HashSet[MAttribute] */
+598, /* Set[Object] */
+605, /* Collection[PropertyLayoutElement] */
+1350, /* HashSet[Object] */
+1516, /* Collection[MProperty] */
+1532, /* Set[PropertyLayoutElement] */
+2092, /* Set[MProperty] */
+1702, /* Collection[MAttribute] */
+1918, /* HashSet[PropertyLayoutElement] */
+2184, /* Set[MAttribute] */
+2215, /* HashSet[MProperty] */
+2288, /* HashSet[MAttribute] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MAttribute = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MAttribute, /* HashSetNode[HashSet#0]: HashSetNode[MAttribute] */
-&type_model__MAttribute, /* SimpleCollection#0: MAttribute */
-&type_hash_collection__HashSetIteratormodel__MAttribute, /* HashSetIterator[HashSet#0]: HashSetIterator[MAttribute] */
-&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[Set#0]: Collection[MAttribute] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MAttribute, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MAttribute]] */
-&type_model__MAttribute, /* RemovableCollection#0: MAttribute */
-&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[HashSet#0]: Collection[MAttribute] */
-&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[SimpleCollection#0]: Collection[MAttribute] */
-&type_model__MAttribute, /* Collection#0: MAttribute */
-&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[Collection#0]: Collection[MAttribute] */
-NULL, /* empty */
-&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 */
+&type_hash_collection__HashSetNodemodel__MAttribute, /* HashSetNode[E]: HashSetNode[MAttribute] */
+&type_hash_collection__HashSetIteratormodel__MAttribute, /* HashSetIterator[E]: HashSetIterator[MAttribute] */
+&type_model__MAttribute, /* E: MAttribute */
+&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[E]: Collection[MAttribute] */
+&type_array__Arraymodel__MAttribute, /* Array[E]: Array[MAttribute] */
+&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[E]: Collection[MAttribute] */
+&type_model__MAttribute, /* E: MAttribute */
+&type_model__MAttribute, /* K: MAttribute */
+&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[E]: Collection[MAttribute] */
+&type_model__MAttribute, /* E: MAttribute */
+&type_nullable_hash_collection__HashSetNodemodel__MAttribute, /* nullable N: nullable HashSetNode[MAttribute] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MAttribute, /* NativeArray[E]: NativeArray[nullable HashSetNode[MAttribute]] */
+&type_hash_collection__HashSetNodemodel__MAttribute, /* N: HashSetNode[MAttribute] */
+&type_nullable_model__MAttribute, /* nullable K: nullable MAttribute */
+&type_abstract_collection__Collectionmodel__MAttribute, /* Collection[E]: Collection[MAttribute] */
 }
 };
 /* runtime type Set[MAttribute] */
 const struct type type_abstract_collection__Setmodel__MAttribute = {
-2121,
+2184,
 "Set[MAttribute]", /* class_name_string */
 14,
 0,
@@ -5765,9 +7041,9 @@ NULL, /*DEAD*/
 };
 /* runtime type Collection[MAttribute] */
 const struct type type_abstract_collection__Collectionmodel__MAttribute = {
-1672,
+1702,
 "Collection[MAttribute]", /* class_name_string */
-11,
+12,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -5789,12 +7065,12 @@ const struct type type_coloring__POSetBucketsColorermodel__MClassseparate_compil
 const struct types resolution_table_coloring__POSetBucketsColorermodel__MClassseparate_compiler__PropertyLayoutElement = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapseparate_compiler__PropertyLayoutElementkernel__Int, /* HashMap[POSetBucketsColorer#1, Int]: HashMap[PropertyLayoutElement, Int] */
-&type_poset__POSetmodel__MClass, /* POSet[POSetBucketsColorer#0]: POSet[MClass] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MClass, /* Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]: Map[MClass, Set[MClass]] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]: Map[MClass, Set[PropertyLayoutElement]] */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[POSetBucketsColorer#0]: Collection[MClass] */
-&type_model__MClass, /* POSetBucketsColorer#0: MClass */
+&type_hash_collection__HashMapseparate_compiler__PropertyLayoutElementkernel__Int, /* HashMap[E, Int]: HashMap[PropertyLayoutElement, Int] */
+&type_poset__POSetmodel__MClass, /* POSet[H]: POSet[MClass] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MClass, /* Map[H, Set[H]]: Map[MClass, Set[MClass]] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setseparate_compiler__PropertyLayoutElement, /* Map[H, Set[E]]: Map[MClass, Set[PropertyLayoutElement]] */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[H]: Collection[MClass] */
+&type_model__MClass, /* H: MClass */
 }
 };
 /* runtime type POSetBucketsColorer[MClass, MAttribute] */
@@ -5809,34 +7085,20 @@ const struct type type_coloring__POSetBucketsColorermodel__MClassmodel__MAttribu
 0, /* nullable Object */
 1, /* Object */
 147, /* POSetBucketsColorer[MClass, PropertyLayoutElement] */
-630, /* POSetBucketsColorer[MClass, MAttribute] */
+636, /* POSetBucketsColorer[MClass, MAttribute] */
 },
 };
 const struct types resolution_table_coloring__POSetBucketsColorermodel__MClassmodel__MAttribute = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmodel__MAttributekernel__Int, /* HashMap[POSetBucketsColorer#1, Int]: HashMap[MAttribute, Int] */
-&type_poset__POSetmodel__MClass, /* POSet[POSetBucketsColorer#0]: POSet[MClass] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MClass, /* Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]: Map[MClass, Set[MClass]] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute, /* Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]: Map[MClass, Set[MAttribute]] */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[POSetBucketsColorer#0]: Collection[MClass] */
-&type_model__MClass, /* POSetBucketsColorer#0: MClass */
+&type_hash_collection__HashMapmodel__MAttributekernel__Int, /* HashMap[E, Int]: HashMap[MAttribute, Int] */
+&type_poset__POSetmodel__MClass, /* POSet[H]: POSet[MClass] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MClass, /* Map[H, Set[H]]: Map[MClass, Set[MClass]] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MAttribute, /* Map[H, Set[E]]: Map[MClass, Set[MAttribute]] */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[H]: Collection[MClass] */
+&type_model__MClass, /* H: MClass */
 }
 };
-/* runtime type MClassKind */
-const struct type type_model__MClassKind = {
--1, /*CAST DEAD*/
-"MClassKind", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-3,
-{
-0, /* nullable Object */
-1, /* Object */
-148, /* MClassKind */
-},
-};
 /* runtime type Array[RuntimeVariable] */
 const struct type type_array__Arrayabstract_compiler__RuntimeVariable = {
 -1, /*CAST DEAD*/
@@ -5844,43 +7106,52 @@ const struct type type_array__Arrayabstract_compiler__RuntimeVariable = {
 -1, /*CAST DEAD*/
 0,
 &resolution_table_array__Arrayabstract_compiler__RuntimeVariable,
-11,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
 -1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-631, /* Collection[RuntimeVariable] */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+637, /* Collection[RuntimeVariable] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1703, /* AbstractArrayRead[RuntimeVariable] */
+1512, /* AbstractArray[Object] */
+2099, /* AbstractArray[RuntimeVariable] */
+-1, /* empty */
 -1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1673, /* AbstractArrayRead[RuntimeVariable] */
-1459, /* Array[Object] */
-2041, /* Array[RuntimeVariable] */
+-1, /* empty */
+1909, /* Array[Object] */
+2220, /* Array[RuntimeVariable] */
 },
 };
 const struct types resolution_table_array__Arrayabstract_compiler__RuntimeVariable = {
 0, /* dummy */
 {
-&type_abstract_compiler__RuntimeVariable, /* Sequence#0: RuntimeVariable */
-&type_abstract_compiler__RuntimeVariable, /* SimpleCollection#0: RuntimeVariable */
-&type_array__NativeArrayabstract_compiler__RuntimeVariable, /* NativeArray[Array#0]: NativeArray[RuntimeVariable] */
-&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[Array#0]: Array[RuntimeVariable] */
-&type_array__NativeArrayabstract_compiler__RuntimeVariable, /* NativeArray[ArrayCapable#0]: NativeArray[RuntimeVariable] */
-&type_abstract_compiler__RuntimeVariable, /* RemovableCollection#0: RuntimeVariable */
-&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[Sequence#0]: Collection[RuntimeVariable] */
-&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[SimpleCollection#0]: Collection[RuntimeVariable] */
-&type_abstract_compiler__RuntimeVariable, /* Collection#0: RuntimeVariable */
-&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[Collection#0]: Collection[RuntimeVariable] */
-&type_abstract_compiler__RuntimeVariable, /* SequenceRead#0: RuntimeVariable */
-&type_abstract_compiler__RuntimeVariable, /* AbstractArrayRead#0: RuntimeVariable */
-&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[AbstractArrayRead#0]: Array[RuntimeVariable] */
-&type_array__ArrayIteratorabstract_compiler__RuntimeVariable, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[RuntimeVariable] */
+&type_array__NativeArrayabstract_compiler__RuntimeVariable, /* NativeArray[E]: NativeArray[RuntimeVariable] */
+&type_abstract_compiler__RuntimeVariable, /* E: RuntimeVariable */
+&type_abstract_compiler__RuntimeVariable, /* E: RuntimeVariable */
+&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[E]: Collection[RuntimeVariable] */
+&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[E]: Array[RuntimeVariable] */
+&type_abstract_compiler__RuntimeVariable, /* E: RuntimeVariable */
+&type_abstract_compiler__RuntimeVariable, /* E: RuntimeVariable */
+&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[E]: Collection[RuntimeVariable] */
+&type_abstract_collection__Collectionabstract_compiler__RuntimeVariable, /* Collection[E]: Collection[RuntimeVariable] */
+&type_abstract_compiler__RuntimeVariable, /* E: RuntimeVariable */
+&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[E]: Array[RuntimeVariable] */
+&type_array__NativeArrayabstract_compiler__RuntimeVariable, /* NativeArray[E]: NativeArray[RuntimeVariable] */
+&type_abstract_compiler__RuntimeVariable, /* E: RuntimeVariable */
+&type_abstract_compiler__RuntimeVariable, /* E: RuntimeVariable */
+&type_array__Arrayabstract_compiler__RuntimeVariable, /* Array[E]: Array[RuntimeVariable] */
+&type_array__AbstractArrayabstract_compiler__RuntimeVariable, /* AbstractArray[E]: AbstractArray[RuntimeVariable] */
+&type_array__ArrayIteratorabstract_compiler__RuntimeVariable, /* ArrayIterator[E]: ArrayIterator[RuntimeVariable] */
 }
 };
 /* runtime type Collection[RuntimeVariable] */
 const struct type type_abstract_collection__Collectionabstract_compiler__RuntimeVariable = {
-631,
+637,
 "Collection[RuntimeVariable]", /* class_name_string */
 5,
 0,
@@ -5889,9 +7160,18 @@ NULL, /*DEAD*/
 };
 /* runtime type AbstractArrayRead[RuntimeVariable] */
 const struct type type_array__AbstractArrayReadabstract_compiler__RuntimeVariable = {
-1673,
+1703,
 "AbstractArrayRead[RuntimeVariable]", /* class_name_string */
-8,
+9,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type AbstractArray[RuntimeVariable] */
+const struct type type_array__AbstractArrayabstract_compiler__RuntimeVariable = {
+2099,
+"AbstractArray[RuntimeVariable]", /* class_name_string */
+11,
 0,
 NULL, /*DEAD*/
 0, {}, /*DEAD TYPE*/
@@ -5907,25 +7187,25 @@ const struct type type_coloring__POSetColorermodel__MType = {
 {
 0, /* nullable Object */
 1, /* Object */
-149, /* POSetColorer[MType] */
+148, /* POSetColorer[MType] */
 },
 };
 const struct types resolution_table_coloring__POSetColorermodel__MType = {
 0, /* dummy */
 {
-&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[POSetColorer#0, Int]: HashMap[MType, Int] */
-&type_poset__POSetmodel__MType, /* POSet[POSetColorer#0]: POSet[MType] */
-&type_abstract_collection__Mapmodel__MTypeabstract_collection__Setmodel__MType, /* Map[POSetColorer#0, Set[POSetColorer#0]]: Map[MType, Set[MType]] */
-&type_coloring__POSetConflictGraphmodel__MType, /* POSetConflictGraph[POSetColorer#0]: POSetConflictGraph[MType] */
-&type_hash_collection__HashSetmodel__MType, /* HashSet[POSetColorer#0]: HashSet[MType] */
-&type_abstract_collection__Setmodel__MType, /* Set[POSetColorer#0]: Set[MType] */
-&type_model__MType, /* POSetColorer#0: MType */
-&type_abstract_collection__Collectionmodel__MType, /* Collection[POSetColorer#0]: Collection[MType] */
+&type_hash_collection__HashMapmodel__MTypekernel__Int, /* HashMap[E, Int]: HashMap[MType, Int] */
+&type_poset__POSetmodel__MType, /* POSet[E]: POSet[MType] */
+&type_abstract_collection__Mapmodel__MTypeabstract_collection__Setmodel__MType, /* Map[E, Set[E]]: Map[MType, Set[MType]] */
+&type_coloring__POSetConflictGraphmodel__MType, /* POSetConflictGraph[E]: POSetConflictGraph[MType] */
+&type_hash_collection__HashSetmodel__MType, /* HashSet[E]: HashSet[MType] */
+&type_abstract_collection__Setmodel__MType, /* Set[E]: Set[MType] */
+&type_model__MType, /* E: MType */
+&type_abstract_collection__Collectionmodel__MType, /* Collection[E]: Collection[MType] */
 }
 };
 /* runtime type SeparateCompilerVisitor */
 const struct type type_separate_compiler__SeparateCompilerVisitor = {
-632,
+638,
 "SeparateCompilerVisitor", /* class_name_string */
 3,
 0,
@@ -5934,8 +7214,8 @@ const struct type type_separate_compiler__SeparateCompilerVisitor = {
 {
 0, /* nullable Object */
 1, /* Object */
-150, /* AbstractCompilerVisitor */
-632, /* SeparateCompilerVisitor */
+149, /* AbstractCompilerVisitor */
+638, /* SeparateCompilerVisitor */
 },
 };
 const struct types resolution_table_separate_compiler__SeparateCompilerVisitor = {
@@ -5946,7 +7226,7 @@ const struct types resolution_table_separate_compiler__SeparateCompilerVisitor =
 };
 /* runtime type AbstractCompilerVisitor */
 const struct type type_abstract_compiler__AbstractCompilerVisitor = {
-150,
+149,
 "AbstractCompilerVisitor", /* class_name_string */
 2,
 0,
@@ -5955,7 +7235,7 @@ NULL, /*DEAD*/
 };
 /* runtime type HashMap[EscapeMark, String] */
 const struct type type_hash_collection__HashMapscope__EscapeMarkstring__String = {
-151,
+150,
 "HashMap[EscapeMark, String]", /* class_name_string */
 2,
 0,
@@ -5964,32 +7244,31 @@ const struct type type_hash_collection__HashMapscope__EscapeMarkstring__String =
 {
 0, /* nullable Object */
 1, /* Object */
-151, /* HashMap[EscapeMark, String] */
+150, /* HashMap[EscapeMark, String] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapscope__EscapeMarkstring__String = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysscope__EscapeMarkstring__String, /* HashMapKeys[K, V]: HashMapKeys[EscapeMark, String] */
+&type_hash_collection__HashMapValuesscope__EscapeMarkstring__String, /* HashMapValues[K, V]: HashMapValues[EscapeMark, String] */
+&type_scope__EscapeMark, /* K: EscapeMark */
+&type_hash_collection__HashMapIteratorscope__EscapeMarkstring__String, /* HashMapIterator[K, V]: HashMapIterator[EscapeMark, String] */
+&type_scope__EscapeMark, /* K: EscapeMark */
+&type_string__String, /* V: String */
+&type_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* HashMapNode[K, V]: HashMapNode[EscapeMark, String] */
+&type_scope__EscapeMark, /* K: EscapeMark */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_scope__EscapeMark, /* MapRead#0: EscapeMark */
-&type_array__NativeArraynullable_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[EscapeMark, String]] */
-&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_hash_collection__HashMapIteratorscope__EscapeMarkstring__String, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[EscapeMark, String] */
-&type_scope__EscapeMark, /* Map#0: EscapeMark */
-&type_string__String, /* Map#1: String */
-&type_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[EscapeMark, String] */
-&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 */
+&type_nullable_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* nullable N: nullable HashMapNode[EscapeMark, String] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* NativeArray[E]: NativeArray[nullable HashMapNode[EscapeMark, String]] */
+&type_hash_collection__HashMapNodescope__EscapeMarkstring__String, /* N: HashMapNode[EscapeMark, String] */
+&type_nullable_scope__EscapeMark, /* nullable K: nullable EscapeMark */
 }
 };
 /* runtime type HashMap[Variable, RuntimeVariable] */
 const struct type type_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable = {
-152,
+151,
 "HashMap[Variable, RuntimeVariable]", /* class_name_string */
 2,
 0,
@@ -5998,27 +7277,26 @@ const struct type type_hash_collection__HashMapscope__Variableabstract_compiler_
 {
 0, /* nullable Object */
 1, /* Object */
-152, /* HashMap[Variable, RuntimeVariable] */
+151, /* HashMap[Variable, RuntimeVariable] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapscope__Variableabstract_compiler__RuntimeVariable = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysscope__Variableabstract_compiler__RuntimeVariable, /* HashMapKeys[K, V]: HashMapKeys[Variable, RuntimeVariable] */
+&type_hash_collection__HashMapValuesscope__Variableabstract_compiler__RuntimeVariable, /* HashMapValues[K, V]: HashMapValues[Variable, RuntimeVariable] */
+&type_scope__Variable, /* K: Variable */
+&type_hash_collection__HashMapIteratorscope__Variableabstract_compiler__RuntimeVariable, /* HashMapIterator[K, V]: HashMapIterator[Variable, RuntimeVariable] */
+&type_scope__Variable, /* K: Variable */
+&type_abstract_compiler__RuntimeVariable, /* V: RuntimeVariable */
+&type_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* HashMapNode[K, V]: HashMapNode[Variable, RuntimeVariable] */
+&type_scope__Variable, /* K: Variable */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_scope__Variable, /* MapRead#0: Variable */
-&type_array__NativeArraynullable_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[Variable, RuntimeVariable]] */
-&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_hash_collection__HashMapIteratorscope__Variableabstract_compiler__RuntimeVariable, /* HashMapIterator[HashMap#0, HashMap#1]: HashMapIterator[Variable, RuntimeVariable] */
-&type_scope__Variable, /* Map#0: Variable */
-&type_abstract_compiler__RuntimeVariable, /* Map#1: RuntimeVariable */
-&type_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[Variable, RuntimeVariable] */
-&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 */
+&type_nullable_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* nullable N: nullable HashMapNode[Variable, RuntimeVariable] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* NativeArray[E]: NativeArray[nullable HashMapNode[Variable, RuntimeVariable]] */
+&type_hash_collection__HashMapNodescope__Variableabstract_compiler__RuntimeVariable, /* N: HashMapNode[Variable, RuntimeVariable] */
+&type_nullable_scope__Variable, /* nullable K: nullable Variable */
 }
 };
 /* runtime type MakefileToolchain */
@@ -6032,12 +7310,12 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-153, /* MakefileToolchain */
+152, /* MakefileToolchain */
 },
 };
 /* runtime type HashMap[MClass, Set[MVirtualTypeProp]] */
 const struct type type_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp = {
-1674,
+1704,
 "HashMap[MClass, Set[MVirtualTypeProp]]", /* class_name_string */
 6,
 0,
@@ -6046,36 +7324,35 @@ const struct type type_hash_collection__HashMapmodel__MClassabstract_collection_
 {
 0, /* nullable Object */
 1, /* Object */
-106, /* Map[MClass, Set[PropertyLayoutElement]] */
-609, /* HashMap[MClass, Set[PropertyLayoutElement]] */
-633, /* Map[MClass, Set[MVirtualTypeProp]] */
-1322, /* HashMap[MClass, Set[MProperty]] */
-1674, /* HashMap[MClass, Set[MVirtualTypeProp]] */
+109, /* Map[MClass, Set[PropertyLayoutElement]] */
+613, /* HashMap[MClass, Set[PropertyLayoutElement]] */
+639, /* Map[MClass, Set[MVirtualTypeProp]] */
+1373, /* HashMap[MClass, Set[MProperty]] */
+1704, /* HashMap[MClass, Set[MVirtualTypeProp]] */
 },
 };
 const struct types resolution_table_hash_collection__HashMapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp = {
 0, /* dummy */
 {
+&type_hash_collection__HashMapKeysmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashMapKeys[K, V]: HashMapKeys[MClass, Set[MVirtualTypeProp]] */
+&type_hash_collection__HashMapValuesmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashMapValues[K, V]: HashMapValues[MClass, Set[MVirtualTypeProp]] */
+&type_model__MClass, /* K: MClass */
+&type_hash_collection__HashMapIteratormodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashMapIterator[K, V]: HashMapIterator[MClass, Set[MVirtualTypeProp]] */
+&type_model__MClass, /* K: MClass */
+&type_abstract_collection__Setmodel__MVirtualTypeProp, /* V: Set[MVirtualTypeProp] */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashMapNode[K, V]: HashMapNode[MClass, Set[MVirtualTypeProp]] */
+&type_model__MClass, /* K: MClass */
 NULL, /* empty */
 NULL, /* empty */
-NULL, /* empty */
-&type_model__MClass, /* MapRead#0: MClass */
-&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashMapNode[MClass, Set[MVirtualTypeProp]]] */
-&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_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] */
-&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* HashMapNode[HashMap#0, HashMap#1]: HashMapNode[MClass, 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 */
+&type_nullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* nullable N: nullable HashMapNode[MClass, Set[MVirtualTypeProp]] */
+&type_array__NativeArraynullable_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* NativeArray[E]: NativeArray[nullable HashMapNode[MClass, Set[MVirtualTypeProp]]] */
+&type_hash_collection__HashMapNodemodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* N: HashMapNode[MClass, Set[MVirtualTypeProp]] */
+&type_nullable_model__MClass, /* nullable K: nullable MClass */
 }
 };
 /* runtime type Map[MClass, Set[MVirtualTypeProp]] */
 const struct type type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp = {
-633,
+639,
 "Map[MClass, Set[MVirtualTypeProp]]", /* class_name_string */
 4,
 0,
@@ -6084,7 +7361,7 @@ NULL, /*DEAD*/
 };
 /* runtime type HashSet[MVirtualTypeProp] */
 const struct type type_hash_collection__HashSetmodel__MVirtualTypeProp = {
-2179,
+2289,
 "HashSet[MVirtualTypeProp]", /* class_name_string */
 16,
 0,
@@ -6095,44 +7372,44 @@ const struct type type_hash_collection__HashSetmodel__MVirtualTypeProp = {
 1, /* Object */
 92, /* Collection[nullable MProperty] */
 -1, /* empty */
-84, /* Collection[Object] */
+83, /* Collection[Object] */
 -1, /* empty */
-596, /* Collection[PropertyLayoutElement] */
-607, /* Set[Object] */
-1321, /* HashSet[Object] */
-1476, /* Set[PropertyLayoutElement] */
-1462, /* Collection[MProperty] */
-1675, /* Collection[MVirtualTypeProp] */
-1867, /* HashSet[PropertyLayoutElement] */
-2032, /* Set[MProperty] */
-2122, /* Set[MVirtualTypeProp] */
-2148, /* HashSet[MProperty] */
-2179, /* HashSet[MVirtualTypeProp] */
+598, /* Set[Object] */
+605, /* Collection[PropertyLayoutElement] */
+1350, /* HashSet[Object] */
+1516, /* Collection[MProperty] */
+1532, /* Set[PropertyLayoutElement] */
+2092, /* Set[MProperty] */
+1705, /* Collection[MVirtualTypeProp] */
+1918, /* HashSet[PropertyLayoutElement] */
+2185, /* Set[MVirtualTypeProp] */
+2215, /* HashSet[MProperty] */
+2289, /* HashSet[MVirtualTypeProp] */
 },
 };
 const struct types resolution_table_hash_collection__HashSetmodel__MVirtualTypeProp = {
 0, /* dummy */
 {
-&type_hash_collection__HashSetNodemodel__MVirtualTypeProp, /* HashSetNode[HashSet#0]: HashSetNode[MVirtualTypeProp] */
-&type_model__MVirtualTypeProp, /* SimpleCollection#0: MVirtualTypeProp */
-&type_hash_collection__HashSetIteratormodel__MVirtualTypeProp, /* HashSetIterator[HashSet#0]: HashSetIterator[MVirtualTypeProp] */
-&type_abstract_collection__Collectionmodel__MVirtualTypeProp, /* Collection[Set#0]: Collection[MVirtualTypeProp] */
-&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MVirtualTypeProp, /* NativeArray[ArrayCapable#0]: NativeArray[nullable HashSetNode[MVirtualTypeProp]] */
-&type_model__MVirtualTypeProp, /* RemovableCollection#0: MVirtualTypeProp */
-&type_abstract_collection__Collectionmodel__MVirtualTypeProp, /* Collection[HashSet#0]: Collection[MVirtualTypeProp] */
-&type_abstract_collection__Collectionmodel__MVirtualTypeProp, /* Collection[SimpleCollection#0]: Collection[MVirtualTypeProp] */
-&type_model__MVirtualTypeProp, /* Collection#0: MVirtualTypeProp */
-&type_abstract_collection__Collectionmodel__MVirtualTypeProp, /* Collection[Collection#0]: Collection[MVirtualTypeProp] */
-NULL, /* empty */
-&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 */
+&type_hash_collection__HashSetNodemodel__MVirtualTypeProp, /* HashSetNode[E]: HashSetNode[MVirtualTypeProp] */
+&type_hash_collection__HashSetIteratormodel__MVirtualTypeProp, /* HashSetIterator[E]: HashSetIterator[MVirtualTypeProp] */
+&type_model__MVirtualTypeProp, /* E: MVirtualTypeProp */
+&type_abstract_collection__Collectionmodel__MVirtualTypeProp, /* Collection[E]: Collection[MVirtualTypeProp] */
+&type_array__Arraymodel__MVirtualTypeProp, /* Array[E]: Array[MVirtualTypeProp] */
+&type_abstract_collection__Collectionmodel__MVirtualTypeProp, /* Collection[E]: Collection[MVirtualTypeProp] */
+&type_model__MVirtualTypeProp, /* E: MVirtualTypeProp */
+&type_model__MVirtualTypeProp, /* K: MVirtualTypeProp */
+&type_abstract_collection__Collectionmodel__MVirtualTypeProp, /* Collection[E]: Collection[MVirtualTypeProp] */
+&type_model__MVirtualTypeProp, /* E: MVirtualTypeProp */
+&type_nullable_hash_collection__HashSetNodemodel__MVirtualTypeProp, /* nullable N: nullable HashSetNode[MVirtualTypeProp] */
+&type_array__NativeArraynullable_hash_collection__HashSetNodemodel__MVirtualTypeProp, /* NativeArray[E]: NativeArray[nullable HashSetNode[MVirtualTypeProp]] */
+&type_hash_collection__HashSetNodemodel__MVirtualTypeProp, /* N: HashSetNode[MVirtualTypeProp] */
+&type_nullable_model__MVirtualTypeProp, /* nullable K: nullable MVirtualTypeProp */
+&type_abstract_collection__Collectionmodel__MVirtualTypeProp, /* Collection[E]: Collection[MVirtualTypeProp] */
 }
 };
 /* runtime type Set[MVirtualTypeProp] */
 const struct type type_abstract_collection__Setmodel__MVirtualTypeProp = {
-2122,
+2185,
 "Set[MVirtualTypeProp]", /* class_name_string */
 14,
 0,
@@ -6141,1402 +7418,120 @@ NULL, /*DEAD*/
 };
 /* runtime type Collection[MVirtualTypeProp] */
 const struct type type_abstract_collection__Collectionmodel__MVirtualTypeProp = {
-1675,
+1705,
 "Collection[MVirtualTypeProp]", /* class_name_string */
-11,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type POSetBucketsColorer[MClass, MVirtualTypeProp] */
-const struct type type_coloring__POSetBucketsColorermodel__MClassmodel__MVirtualTypeProp = {
--1, /*CAST DEAD*/
-"POSetBucketsColorer[MClass, MVirtualTypeProp]", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-&resolution_table_coloring__POSetBucketsColorermodel__MClassmodel__MVirtualTypeProp,
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-147, /* POSetBucketsColorer[MClass, PropertyLayoutElement] */
-634, /* POSetBucketsColorer[MClass, MVirtualTypeProp] */
-},
-};
-const struct types resolution_table_coloring__POSetBucketsColorermodel__MClassmodel__MVirtualTypeProp = {
-0, /* dummy */
-{
-&type_hash_collection__HashMapmodel__MVirtualTypePropkernel__Int, /* HashMap[POSetBucketsColorer#1, Int]: HashMap[MVirtualTypeProp, Int] */
-&type_poset__POSetmodel__MClass, /* POSet[POSetBucketsColorer#0]: POSet[MClass] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MClass, /* Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#0]]: Map[MClass, Set[MClass]] */
-&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* Map[POSetBucketsColorer#0, Set[POSetBucketsColorer#1]]: Map[MClass, Set[MVirtualTypeProp]] */
-&type_abstract_collection__Collectionmodel__MClass, /* Collection[POSetBucketsColorer#0]: Collection[MClass] */
-&type_model__MClass, /* POSetBucketsColorer#0: MClass */
-}
-};
-/* runtime type BashCompletion */
-const struct type type_toolcontext__BashCompletion = {
--1, /*CAST DEAD*/
-"BashCompletion", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-5,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-104, /* Streamable */
-635, /* BashCompletion */
-},
-};
-/* runtime type Array[ReduceAction] */
-const struct type type_array__Arrayparser_work__ReduceAction = {
--1, /*CAST DEAD*/
-"Array[ReduceAction]", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-&resolution_table_array__Arrayparser_work__ReduceAction,
-11,
-{
-0, /* nullable Object */
-1, /* Object */
--1, /* empty */
-83, /* SequenceRead[nullable Object] */
-84, /* Collection[Object] */
-636, /* Collection[ReduceAction] */
--1, /* empty */
-1294, /* AbstractArrayRead[Object] */
-1676, /* AbstractArrayRead[ReduceAction] */
-1459, /* Array[Object] */
-2042, /* Array[ReduceAction] */
-},
-};
-const struct types resolution_table_array__Arrayparser_work__ReduceAction = {
-0, /* dummy */
-{
-&type_parser_work__ReduceAction, /* Sequence#0: ReduceAction */
-&type_parser_work__ReduceAction, /* SimpleCollection#0: ReduceAction */
-&type_array__NativeArrayparser_work__ReduceAction, /* NativeArray[Array#0]: NativeArray[ReduceAction] */
-&type_array__Arrayparser_work__ReduceAction, /* Array[Array#0]: Array[ReduceAction] */
-&type_array__NativeArrayparser_work__ReduceAction, /* NativeArray[ArrayCapable#0]: NativeArray[ReduceAction] */
-&type_parser_work__ReduceAction, /* RemovableCollection#0: ReduceAction */
-&type_abstract_collection__Collectionparser_work__ReduceAction, /* Collection[Sequence#0]: Collection[ReduceAction] */
-&type_abstract_collection__Collectionparser_work__ReduceAction, /* Collection[SimpleCollection#0]: Collection[ReduceAction] */
-&type_parser_work__ReduceAction, /* Collection#0: ReduceAction */
-&type_abstract_collection__Collectionparser_work__ReduceAction, /* Collection[Collection#0]: Collection[ReduceAction] */
-&type_parser_work__ReduceAction, /* SequenceRead#0: ReduceAction */
-&type_parser_work__ReduceAction, /* AbstractArrayRead#0: ReduceAction */
-&type_array__Arrayparser_work__ReduceAction, /* Array[AbstractArrayRead#0]: Array[ReduceAction] */
-&type_array__ArrayIteratorparser_work__ReduceAction, /* ArrayIterator[AbstractArrayRead#0]: ArrayIterator[ReduceAction] */
-}
-};
-/* runtime type Collection[ReduceAction] */
-const struct type type_abstract_collection__Collectionparser_work__ReduceAction = {
-636,
-"Collection[ReduceAction]", /* class_name_string */
-5,
-0,
-NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type AbstractArrayRead[ReduceAction] */
-const struct type type_array__AbstractArrayReadparser_work__ReduceAction = {
-1676,
-"AbstractArrayRead[ReduceAction]", /* class_name_string */
-8,
-0,
-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 */
-154, /* ReduceAction */
-637, /* ReduceAction0 */
-},
-};
-/* runtime type ReduceAction */
-const struct type type_parser_work__ReduceAction = {
-154,
-"ReduceAction", /* class_name_string */
-2,
+12,
 0,
 NULL, /*DEAD*/
-0, {}, /*DEAD TYPE*/
-};
-/* runtime type ReduceAction1 */
-const struct type type_parser__ReduceAction1 = {
--1, /*CAST DEAD*/
-"ReduceAction1", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-638, /* ReduceAction1 */
-},
-};
-/* runtime type ReduceAction2 */
-const struct type type_parser__ReduceAction2 = {
--1, /*CAST DEAD*/
-"ReduceAction2", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-639, /* ReduceAction2 */
-},
-};
-/* runtime type ReduceAction3 */
-const struct type type_parser__ReduceAction3 = {
--1, /*CAST DEAD*/
-"ReduceAction3", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-640, /* ReduceAction3 */
-},
-};
-/* runtime type ReduceAction4 */
-const struct type type_parser__ReduceAction4 = {
--1, /*CAST DEAD*/
-"ReduceAction4", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-641, /* ReduceAction4 */
-},
-};
-/* runtime type ReduceAction5 */
-const struct type type_parser__ReduceAction5 = {
--1, /*CAST DEAD*/
-"ReduceAction5", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-642, /* ReduceAction5 */
-},
-};
-/* runtime type ReduceAction6 */
-const struct type type_parser__ReduceAction6 = {
--1, /*CAST DEAD*/
-"ReduceAction6", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-643, /* ReduceAction6 */
-},
-};
-/* runtime type ReduceAction7 */
-const struct type type_parser__ReduceAction7 = {
--1, /*CAST DEAD*/
-"ReduceAction7", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-644, /* ReduceAction7 */
-},
-};
-/* runtime type ReduceAction8 */
-const struct type type_parser__ReduceAction8 = {
--1, /*CAST DEAD*/
-"ReduceAction8", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-645, /* ReduceAction8 */
-},
-};
-/* runtime type ReduceAction9 */
-const struct type type_parser__ReduceAction9 = {
--1, /*CAST DEAD*/
-"ReduceAction9", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-646, /* ReduceAction9 */
-},
-};
-/* runtime type ReduceAction10 */
-const struct type type_parser__ReduceAction10 = {
--1, /*CAST DEAD*/
-"ReduceAction10", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-647, /* ReduceAction10 */
-},
-};
-/* runtime type ReduceAction11 */
-const struct type type_parser__ReduceAction11 = {
--1, /*CAST DEAD*/
-"ReduceAction11", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-648, /* ReduceAction11 */
-},
-};
-/* runtime type ReduceAction12 */
-const struct type type_parser__ReduceAction12 = {
--1, /*CAST DEAD*/
-"ReduceAction12", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-649, /* ReduceAction12 */
-},
-};
-/* runtime type ReduceAction13 */
-const struct type type_parser__ReduceAction13 = {
--1, /*CAST DEAD*/
-"ReduceAction13", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-650, /* ReduceAction13 */
-},
-};
-/* runtime type ReduceAction14 */
-const struct type type_parser__ReduceAction14 = {
--1, /*CAST DEAD*/
-"ReduceAction14", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-651, /* ReduceAction14 */
-},
-};
-/* runtime type ReduceAction15 */
-const struct type type_parser__ReduceAction15 = {
--1, /*CAST DEAD*/
-"ReduceAction15", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-652, /* ReduceAction15 */
-},
-};
-/* runtime type ReduceAction16 */
-const struct type type_parser__ReduceAction16 = {
--1, /*CAST DEAD*/
-"ReduceAction16", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-653, /* ReduceAction16 */
-},
-};
-/* runtime type ReduceAction17 */
-const struct type type_parser__ReduceAction17 = {
--1, /*CAST DEAD*/
-"ReduceAction17", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-654, /* ReduceAction17 */
-},
-};
-/* runtime type ReduceAction18 */
-const struct type type_parser__ReduceAction18 = {
--1, /*CAST DEAD*/
-"ReduceAction18", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-655, /* ReduceAction18 */
-},
-};
-/* runtime type ReduceAction19 */
-const struct type type_parser__ReduceAction19 = {
--1, /*CAST DEAD*/
-"ReduceAction19", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-656, /* ReduceAction19 */
-},
-};
-/* runtime type ReduceAction20 */
-const struct type type_parser__ReduceAction20 = {
--1, /*CAST DEAD*/
-"ReduceAction20", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-657, /* ReduceAction20 */
-},
-};
-/* runtime type ReduceAction21 */
-const struct type type_parser__ReduceAction21 = {
--1, /*CAST DEAD*/
-"ReduceAction21", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-658, /* ReduceAction21 */
-},
-};
-/* runtime type ReduceAction22 */
-const struct type type_parser__ReduceAction22 = {
--1, /*CAST DEAD*/
-"ReduceAction22", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-659, /* ReduceAction22 */
-},
-};
-/* runtime type ReduceAction23 */
-const struct type type_parser__ReduceAction23 = {
--1, /*CAST DEAD*/
-"ReduceAction23", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-660, /* ReduceAction23 */
-},
-};
-/* runtime type ReduceAction24 */
-const struct type type_parser__ReduceAction24 = {
--1, /*CAST DEAD*/
-"ReduceAction24", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-661, /* ReduceAction24 */
-},
-};
-/* runtime type ReduceAction26 */
-const struct type type_parser__ReduceAction26 = {
--1, /*CAST DEAD*/
-"ReduceAction26", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-662, /* ReduceAction26 */
-},
-};
-/* runtime type ReduceAction27 */
-const struct type type_parser__ReduceAction27 = {
--1, /*CAST DEAD*/
-"ReduceAction27", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-663, /* ReduceAction27 */
-},
-};
-/* runtime type ReduceAction28 */
-const struct type type_parser__ReduceAction28 = {
--1, /*CAST DEAD*/
-"ReduceAction28", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-664, /* ReduceAction28 */
-},
-};
-/* runtime type ReduceAction29 */
-const struct type type_parser__ReduceAction29 = {
--1, /*CAST DEAD*/
-"ReduceAction29", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-665, /* ReduceAction29 */
-},
-};
-/* runtime type ReduceAction30 */
-const struct type type_parser__ReduceAction30 = {
--1, /*CAST DEAD*/
-"ReduceAction30", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-666, /* ReduceAction30 */
-},
-};
-/* runtime type ReduceAction31 */
-const struct type type_parser__ReduceAction31 = {
--1, /*CAST DEAD*/
-"ReduceAction31", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-667, /* ReduceAction31 */
-},
-};
-/* runtime type ReduceAction32 */
-const struct type type_parser__ReduceAction32 = {
--1, /*CAST DEAD*/
-"ReduceAction32", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-668, /* ReduceAction32 */
-},
-};
-/* runtime type ReduceAction33 */
-const struct type type_parser__ReduceAction33 = {
--1, /*CAST DEAD*/
-"ReduceAction33", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-669, /* ReduceAction33 */
-},
-};
-/* runtime type ReduceAction34 */
-const struct type type_parser__ReduceAction34 = {
--1, /*CAST DEAD*/
-"ReduceAction34", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-670, /* ReduceAction34 */
-},
-};
-/* runtime type ReduceAction35 */
-const struct type type_parser__ReduceAction35 = {
--1, /*CAST DEAD*/
-"ReduceAction35", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-671, /* ReduceAction35 */
-},
-};
-/* runtime type ReduceAction36 */
-const struct type type_parser__ReduceAction36 = {
--1, /*CAST DEAD*/
-"ReduceAction36", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-672, /* ReduceAction36 */
-},
-};
-/* runtime type ReduceAction37 */
-const struct type type_parser__ReduceAction37 = {
--1, /*CAST DEAD*/
-"ReduceAction37", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-673, /* ReduceAction37 */
-},
-};
-/* runtime type ReduceAction38 */
-const struct type type_parser__ReduceAction38 = {
--1, /*CAST DEAD*/
-"ReduceAction38", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-674, /* ReduceAction38 */
-},
-};
-/* runtime type ReduceAction39 */
-const struct type type_parser__ReduceAction39 = {
--1, /*CAST DEAD*/
-"ReduceAction39", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-675, /* ReduceAction39 */
-},
-};
-/* runtime type ReduceAction40 */
-const struct type type_parser__ReduceAction40 = {
--1, /*CAST DEAD*/
-"ReduceAction40", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-676, /* ReduceAction40 */
-},
-};
-/* runtime type ReduceAction41 */
-const struct type type_parser__ReduceAction41 = {
--1, /*CAST DEAD*/
-"ReduceAction41", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-677, /* ReduceAction41 */
-},
-};
-/* runtime type ReduceAction43 */
-const struct type type_parser__ReduceAction43 = {
--1, /*CAST DEAD*/
-"ReduceAction43", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-678, /* ReduceAction43 */
-},
-};
-/* runtime type ReduceAction44 */
-const struct type type_parser__ReduceAction44 = {
--1, /*CAST DEAD*/
-"ReduceAction44", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-679, /* ReduceAction44 */
-},
-};
-/* runtime type ReduceAction45 */
-const struct type type_parser__ReduceAction45 = {
--1, /*CAST DEAD*/
-"ReduceAction45", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-680, /* ReduceAction45 */
-},
-};
-/* 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 */
-154, /* ReduceAction */
-681, /* ReduceAction46 */
-},
-};
-/* runtime type ReduceAction47 */
-const struct type type_parser__ReduceAction47 = {
--1, /*CAST DEAD*/
-"ReduceAction47", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-682, /* ReduceAction47 */
-},
-};
-/* runtime type ReduceAction48 */
-const struct type type_parser__ReduceAction48 = {
--1, /*CAST DEAD*/
-"ReduceAction48", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-683, /* ReduceAction48 */
-},
-};
-/* runtime type ReduceAction49 */
-const struct type type_parser__ReduceAction49 = {
--1, /*CAST DEAD*/
-"ReduceAction49", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-684, /* ReduceAction49 */
-},
-};
-/* runtime type ReduceAction50 */
-const struct type type_parser__ReduceAction50 = {
--1, /*CAST DEAD*/
-"ReduceAction50", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-685, /* ReduceAction50 */
-},
-};
-/* runtime type ReduceAction51 */
-const struct type type_parser__ReduceAction51 = {
--1, /*CAST DEAD*/
-"ReduceAction51", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-686, /* ReduceAction51 */
-},
-};
-/* runtime type ReduceAction52 */
-const struct type type_parser__ReduceAction52 = {
--1, /*CAST DEAD*/
-"ReduceAction52", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-687, /* ReduceAction52 */
-},
-};
-/* runtime type ReduceAction53 */
-const struct type type_parser__ReduceAction53 = {
--1, /*CAST DEAD*/
-"ReduceAction53", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-688, /* ReduceAction53 */
-},
-};
-/* runtime type ReduceAction54 */
-const struct type type_parser__ReduceAction54 = {
--1, /*CAST DEAD*/
-"ReduceAction54", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-689, /* ReduceAction54 */
-},
-};
-/* runtime type ReduceAction55 */
-const struct type type_parser__ReduceAction55 = {
--1, /*CAST DEAD*/
-"ReduceAction55", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-690, /* ReduceAction55 */
-},
-};
-/* runtime type ReduceAction56 */
-const struct type type_parser__ReduceAction56 = {
--1, /*CAST DEAD*/
-"ReduceAction56", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-691, /* ReduceAction56 */
-},
-};
-/* runtime type ReduceAction57 */
-const struct type type_parser__ReduceAction57 = {
--1, /*CAST DEAD*/
-"ReduceAction57", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-692, /* ReduceAction57 */
-},
-};
-/* runtime type ReduceAction58 */
-const struct type type_parser__ReduceAction58 = {
--1, /*CAST DEAD*/
-"ReduceAction58", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-693, /* ReduceAction58 */
-},
-};
-/* runtime type ReduceAction59 */
-const struct type type_parser__ReduceAction59 = {
--1, /*CAST DEAD*/
-"ReduceAction59", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-694, /* ReduceAction59 */
-},
-};
-/* runtime type ReduceAction60 */
-const struct type type_parser__ReduceAction60 = {
--1, /*CAST DEAD*/
-"ReduceAction60", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-695, /* ReduceAction60 */
-},
-};
-/* runtime type ReduceAction61 */
-const struct type type_parser__ReduceAction61 = {
--1, /*CAST DEAD*/
-"ReduceAction61", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-696, /* ReduceAction61 */
-},
-};
-/* runtime type ReduceAction62 */
-const struct type type_parser__ReduceAction62 = {
--1, /*CAST DEAD*/
-"ReduceAction62", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-697, /* ReduceAction62 */
-},
-};
-/* runtime type ReduceAction63 */
-const struct type type_parser__ReduceAction63 = {
--1, /*CAST DEAD*/
-"ReduceAction63", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-698, /* ReduceAction63 */
-},
-};
-/* runtime type ReduceAction64 */
-const struct type type_parser__ReduceAction64 = {
--1, /*CAST DEAD*/
-"ReduceAction64", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-699, /* ReduceAction64 */
-},
-};
-/* runtime type ReduceAction65 */
-const struct type type_parser__ReduceAction65 = {
--1, /*CAST DEAD*/
-"ReduceAction65", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-700, /* ReduceAction65 */
-},
-};
-/* runtime type ReduceAction66 */
-const struct type type_parser__ReduceAction66 = {
--1, /*CAST DEAD*/
-"ReduceAction66", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-701, /* ReduceAction66 */
-},
-};
-/* runtime type ReduceAction67 */
-const struct type type_parser__ReduceAction67 = {
--1, /*CAST DEAD*/
-"ReduceAction67", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-702, /* ReduceAction67 */
-},
-};
-/* runtime type ReduceAction68 */
-const struct type type_parser__ReduceAction68 = {
--1, /*CAST DEAD*/
-"ReduceAction68", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-703, /* ReduceAction68 */
-},
-};
-/* runtime type ReduceAction69 */
-const struct type type_parser__ReduceAction69 = {
--1, /*CAST DEAD*/
-"ReduceAction69", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-704, /* ReduceAction69 */
-},
-};
-/* runtime type ReduceAction70 */
-const struct type type_parser__ReduceAction70 = {
--1, /*CAST DEAD*/
-"ReduceAction70", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-705, /* ReduceAction70 */
-},
-};
-/* runtime type ReduceAction71 */
-const struct type type_parser__ReduceAction71 = {
--1, /*CAST DEAD*/
-"ReduceAction71", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-706, /* ReduceAction71 */
-},
-};
-/* runtime type ReduceAction72 */
-const struct type type_parser__ReduceAction72 = {
--1, /*CAST DEAD*/
-"ReduceAction72", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-707, /* ReduceAction72 */
-},
-};
-/* runtime type ReduceAction73 */
-const struct type type_parser__ReduceAction73 = {
--1, /*CAST DEAD*/
-"ReduceAction73", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-708, /* ReduceAction73 */
-},
-};
-/* runtime type ReduceAction74 */
-const struct type type_parser__ReduceAction74 = {
--1, /*CAST DEAD*/
-"ReduceAction74", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-709, /* ReduceAction74 */
-},
-};
-/* runtime type ReduceAction75 */
-const struct type type_parser__ReduceAction75 = {
--1, /*CAST DEAD*/
-"ReduceAction75", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-710, /* ReduceAction75 */
-},
-};
-/* runtime type ReduceAction76 */
-const struct type type_parser__ReduceAction76 = {
--1, /*CAST DEAD*/
-"ReduceAction76", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-711, /* ReduceAction76 */
-},
-};
-/* runtime type ReduceAction77 */
-const struct type type_parser__ReduceAction77 = {
--1, /*CAST DEAD*/
-"ReduceAction77", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-712, /* ReduceAction77 */
-},
-};
-/* runtime type ReduceAction78 */
-const struct type type_parser__ReduceAction78 = {
--1, /*CAST DEAD*/
-"ReduceAction78", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-713, /* ReduceAction78 */
-},
-};
-/* runtime type ReduceAction79 */
-const struct type type_parser__ReduceAction79 = {
--1, /*CAST DEAD*/
-"ReduceAction79", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-714, /* ReduceAction79 */
-},
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction80 */
-const struct type type_parser__ReduceAction80 = {
+/* runtime type POSetBucketsColorer[MClass, MVirtualTypeProp] */
+const struct type type_coloring__POSetBucketsColorermodel__MClassmodel__MVirtualTypeProp = {
 -1, /*CAST DEAD*/
-"ReduceAction80", /* class_name_string */
+"POSetBucketsColorer[MClass, MVirtualTypeProp]", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
-NULL, /*NO RESOLUTIONS*/
+&resolution_table_coloring__POSetBucketsColorermodel__MClassmodel__MVirtualTypeProp,
 4,
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-715, /* ReduceAction80 */
+147, /* POSetBucketsColorer[MClass, PropertyLayoutElement] */
+640, /* POSetBucketsColorer[MClass, MVirtualTypeProp] */
 },
 };
-/* runtime type ReduceAction81 */
-const struct type type_parser__ReduceAction81 = {
--1, /*CAST DEAD*/
-"ReduceAction81", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
+const struct types resolution_table_coloring__POSetBucketsColorermodel__MClassmodel__MVirtualTypeProp = {
+0, /* dummy */
 {
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-716, /* ReduceAction81 */
-},
+&type_hash_collection__HashMapmodel__MVirtualTypePropkernel__Int, /* HashMap[E, Int]: HashMap[MVirtualTypeProp, Int] */
+&type_poset__POSetmodel__MClass, /* POSet[H]: POSet[MClass] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MClass, /* Map[H, Set[H]]: Map[MClass, Set[MClass]] */
+&type_abstract_collection__Mapmodel__MClassabstract_collection__Setmodel__MVirtualTypeProp, /* Map[H, Set[E]]: Map[MClass, Set[MVirtualTypeProp]] */
+&type_abstract_collection__Collectionmodel__MClass, /* Collection[H]: Collection[MClass] */
+&type_model__MClass, /* H: MClass */
+}
 };
-/* runtime type ReduceAction82 */
-const struct type type_parser__ReduceAction82 = {
+/* runtime type Array[ReduceAction] */
+const struct type type_array__Arrayparser_work__ReduceAction = {
 -1, /*CAST DEAD*/
-"ReduceAction82", /* class_name_string */
+"Array[ReduceAction]", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
-NULL, /*NO RESOLUTIONS*/
-4,
+&resolution_table_array__Arrayparser_work__ReduceAction,
+17,
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-717, /* ReduceAction82 */
+-1, /* empty */
+82, /* SequenceRead[nullable Object] */
+83, /* Collection[Object] */
+641, /* Collection[ReduceAction] */
+590, /* Array[nullable Object] */
+-1, /* empty */
+1345, /* AbstractArrayRead[Object] */
+1706, /* AbstractArrayRead[ReduceAction] */
+1512, /* AbstractArray[Object] */
+2100, /* AbstractArray[ReduceAction] */
+-1, /* empty */
+-1, /* empty */
+-1, /* empty */
+1909, /* Array[Object] */
+2221, /* Array[ReduceAction] */
 },
 };
-/* runtime type ReduceAction83 */
-const struct type type_parser__ReduceAction83 = {
--1, /*CAST DEAD*/
-"ReduceAction83", /* class_name_string */
--1, /*CAST DEAD*/
-0,
-NULL, /*NO RESOLUTIONS*/
-4,
+const struct types resolution_table_array__Arrayparser_work__ReduceAction = {
+0, /* dummy */
 {
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-718, /* ReduceAction83 */
-},
+&type_array__NativeArrayparser_work__ReduceAction, /* NativeArray[E]: NativeArray[ReduceAction] */
+&type_parser_work__ReduceAction, /* E: ReduceAction */
+&type_parser_work__ReduceAction, /* E: ReduceAction */
+&type_abstract_collection__Collectionparser_work__ReduceAction, /* Collection[E]: Collection[ReduceAction] */
+&type_array__Arrayparser_work__ReduceAction, /* Array[E]: Array[ReduceAction] */
+&type_parser_work__ReduceAction, /* E: ReduceAction */
+&type_parser_work__ReduceAction, /* E: ReduceAction */
+&type_abstract_collection__Collectionparser_work__ReduceAction, /* Collection[E]: Collection[ReduceAction] */
+&type_abstract_collection__Collectionparser_work__ReduceAction, /* Collection[E]: Collection[ReduceAction] */
+&type_parser_work__ReduceAction, /* E: ReduceAction */
+&type_array__Arrayparser_work__ReduceAction, /* Array[E]: Array[ReduceAction] */
+&type_array__NativeArrayparser_work__ReduceAction, /* NativeArray[E]: NativeArray[ReduceAction] */
+&type_parser_work__ReduceAction, /* E: ReduceAction */
+&type_parser_work__ReduceAction, /* E: ReduceAction */
+&type_array__Arrayparser_work__ReduceAction, /* Array[E]: Array[ReduceAction] */
+&type_array__AbstractArrayparser_work__ReduceAction, /* AbstractArray[E]: AbstractArray[ReduceAction] */
+&type_array__ArrayIteratorparser_work__ReduceAction, /* ArrayIterator[E]: ArrayIterator[ReduceAction] */
+}
 };
-/* runtime type ReduceAction84 */
-const struct type type_parser__ReduceAction84 = {
--1, /*CAST DEAD*/
-"ReduceAction84", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type Collection[ReduceAction] */
+const struct type type_abstract_collection__Collectionparser_work__ReduceAction = {
+641,
+"Collection[ReduceAction]", /* class_name_string */
+5,
 0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-719, /* ReduceAction84 */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction85 */
-const struct type type_parser__ReduceAction85 = {
--1, /*CAST DEAD*/
-"ReduceAction85", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type AbstractArrayRead[ReduceAction] */
+const struct type type_array__AbstractArrayReadparser_work__ReduceAction = {
+1706,
+"AbstractArrayRead[ReduceAction]", /* class_name_string */
+9,
 0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-720, /* ReduceAction85 */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction86 */
-const struct type type_parser__ReduceAction86 = {
--1, /*CAST DEAD*/
-"ReduceAction86", /* class_name_string */
--1, /*CAST DEAD*/
+/* runtime type AbstractArray[ReduceAction] */
+const struct type type_array__AbstractArrayparser_work__ReduceAction = {
+2100,
+"AbstractArray[ReduceAction]", /* class_name_string */
+11,
 0,
-NULL, /*NO RESOLUTIONS*/
-4,
-{
-0, /* nullable Object */
-1, /* Object */
-154, /* ReduceAction */
-721, /* ReduceAction86 */
-},
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
 };
-/* runtime type ReduceAction87 */
-const struct type type_parser__ReduceAction87 = {
+/* runtime type ReduceAction0 */
+const struct type type_parser__ReduceAction0 = {
 -1, /*CAST DEAD*/
-"ReduceAction87", /* class_name_string */
+"ReduceAction0", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7544,14 +7539,23 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-722, /* ReduceAction87 */
+153, /* ReduceAction */
+642, /* ReduceAction0 */
 },
 };
-/* runtime type ReduceAction88 */
-const struct type type_parser__ReduceAction88 = {
+/* runtime type ReduceAction */
+const struct type type_parser_work__ReduceAction = {
+153,
+"ReduceAction", /* class_name_string */
+2,
+0,
+NULL, /*DEAD*/
+0, {}, /*DEAD TYPE*/
+};
+/* runtime type ReduceAction1 */
+const struct type type_parser__ReduceAction1 = {
 -1, /*CAST DEAD*/
-"ReduceAction88", /* class_name_string */
+"ReduceAction1", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7559,14 +7563,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-723, /* ReduceAction88 */
+153, /* ReduceAction */
+643, /* ReduceAction1 */
 },
 };
-/* runtime type ReduceAction89 */
-const struct type type_parser__ReduceAction89 = {
+/* runtime type ReduceAction2 */
+const struct type type_parser__ReduceAction2 = {
 -1, /*CAST DEAD*/
-"ReduceAction89", /* class_name_string */
+"ReduceAction2", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7574,14 +7578,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-724, /* ReduceAction89 */
+153, /* ReduceAction */
+644, /* ReduceAction2 */
 },
 };
-/* runtime type ReduceAction90 */
-const struct type type_parser__ReduceAction90 = {
+/* runtime type ReduceAction3 */
+const struct type type_parser__ReduceAction3 = {
 -1, /*CAST DEAD*/
-"ReduceAction90", /* class_name_string */
+"ReduceAction3", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7589,14 +7593,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-725, /* ReduceAction90 */
+153, /* ReduceAction */
+645, /* ReduceAction3 */
 },
 };
-/* runtime type ReduceAction91 */
-const struct type type_parser__ReduceAction91 = {
+/* runtime type ReduceAction4 */
+const struct type type_parser__ReduceAction4 = {
 -1, /*CAST DEAD*/
-"ReduceAction91", /* class_name_string */
+"ReduceAction4", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7604,14 +7608,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-726, /* ReduceAction91 */
+153, /* ReduceAction */
+646, /* ReduceAction4 */
 },
 };
-/* runtime type ReduceAction94 */
-const struct type type_parser__ReduceAction94 = {
+/* runtime type ReduceAction5 */
+const struct type type_parser__ReduceAction5 = {
 -1, /*CAST DEAD*/
-"ReduceAction94", /* class_name_string */
+"ReduceAction5", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7619,14 +7623,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-727, /* ReduceAction94 */
+153, /* ReduceAction */
+647, /* ReduceAction5 */
 },
 };
-/* runtime type ReduceAction95 */
-const struct type type_parser__ReduceAction95 = {
+/* runtime type ReduceAction6 */
+const struct type type_parser__ReduceAction6 = {
 -1, /*CAST DEAD*/
-"ReduceAction95", /* class_name_string */
+"ReduceAction6", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7634,14 +7638,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-728, /* ReduceAction95 */
+153, /* ReduceAction */
+648, /* ReduceAction6 */
 },
 };
-/* runtime type ReduceAction96 */
-const struct type type_parser__ReduceAction96 = {
+/* runtime type ReduceAction7 */
+const struct type type_parser__ReduceAction7 = {
 -1, /*CAST DEAD*/
-"ReduceAction96", /* class_name_string */
+"ReduceAction7", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7649,14 +7653,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-729, /* ReduceAction96 */
+153, /* ReduceAction */
+649, /* ReduceAction7 */
 },
 };
-/* runtime type ReduceAction97 */
-const struct type type_parser__ReduceAction97 = {
+/* runtime type ReduceAction8 */
+const struct type type_parser__ReduceAction8 = {
 -1, /*CAST DEAD*/
-"ReduceAction97", /* class_name_string */
+"ReduceAction8", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7664,14 +7668,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-730, /* ReduceAction97 */
+153, /* ReduceAction */
+650, /* ReduceAction8 */
 },
 };
-/* runtime type ReduceAction98 */
-const struct type type_parser__ReduceAction98 = {
+/* runtime type ReduceAction9 */
+const struct type type_parser__ReduceAction9 = {
 -1, /*CAST DEAD*/
-"ReduceAction98", /* class_name_string */
+"ReduceAction9", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7679,14 +7683,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-731, /* ReduceAction98 */
+153, /* ReduceAction */
+651, /* ReduceAction9 */
 },
 };
-/* runtime type ReduceAction99 */
-const struct type type_parser__ReduceAction99 = {
+/* runtime type ReduceAction10 */
+const struct type type_parser__ReduceAction10 = {
 -1, /*CAST DEAD*/
-"ReduceAction99", /* class_name_string */
+"ReduceAction10", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7694,14 +7698,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-732, /* ReduceAction99 */
+153, /* ReduceAction */
+652, /* ReduceAction10 */
 },
 };
-/* runtime type ReduceAction100 */
-const struct type type_parser__ReduceAction100 = {
+/* runtime type ReduceAction11 */
+const struct type type_parser__ReduceAction11 = {
 -1, /*CAST DEAD*/
-"ReduceAction100", /* class_name_string */
+"ReduceAction11", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7709,14 +7713,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-733, /* ReduceAction100 */
+153, /* ReduceAction */
+653, /* ReduceAction11 */
 },
 };
-/* runtime type ReduceAction101 */
-const struct type type_parser__ReduceAction101 = {
+/* runtime type ReduceAction12 */
+const struct type type_parser__ReduceAction12 = {
 -1, /*CAST DEAD*/
-"ReduceAction101", /* class_name_string */
+"ReduceAction12", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7724,14 +7728,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-734, /* ReduceAction101 */
+153, /* ReduceAction */
+654, /* ReduceAction12 */
 },
 };
-/* runtime type ReduceAction102 */
-const struct type type_parser__ReduceAction102 = {
+/* runtime type ReduceAction13 */
+const struct type type_parser__ReduceAction13 = {
 -1, /*CAST DEAD*/
-"ReduceAction102", /* class_name_string */
+"ReduceAction13", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7739,14 +7743,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-735, /* ReduceAction102 */
+153, /* ReduceAction */
+655, /* ReduceAction13 */
 },
 };
-/* runtime type ReduceAction103 */
-const struct type type_parser__ReduceAction103 = {
+/* runtime type ReduceAction14 */
+const struct type type_parser__ReduceAction14 = {
 -1, /*CAST DEAD*/
-"ReduceAction103", /* class_name_string */
+"ReduceAction14", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7754,14 +7758,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-736, /* ReduceAction103 */
+153, /* ReduceAction */
+656, /* ReduceAction14 */
 },
 };
-/* runtime type ReduceAction104 */
-const struct type type_parser__ReduceAction104 = {
+/* runtime type ReduceAction15 */
+const struct type type_parser__ReduceAction15 = {
 -1, /*CAST DEAD*/
-"ReduceAction104", /* class_name_string */
+"ReduceAction15", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7769,14 +7773,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-737, /* ReduceAction104 */
+153, /* ReduceAction */
+657, /* ReduceAction15 */
 },
 };
-/* runtime type ReduceAction105 */
-const struct type type_parser__ReduceAction105 = {
+/* runtime type ReduceAction16 */
+const struct type type_parser__ReduceAction16 = {
 -1, /*CAST DEAD*/
-"ReduceAction105", /* class_name_string */
+"ReduceAction16", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7784,14 +7788,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-738, /* ReduceAction105 */
+153, /* ReduceAction */
+658, /* ReduceAction16 */
 },
 };
-/* runtime type ReduceAction106 */
-const struct type type_parser__ReduceAction106 = {
+/* runtime type ReduceAction17 */
+const struct type type_parser__ReduceAction17 = {
 -1, /*CAST DEAD*/
-"ReduceAction106", /* class_name_string */
+"ReduceAction17", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7799,14 +7803,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-739, /* ReduceAction106 */
+153, /* ReduceAction */
+659, /* ReduceAction17 */
 },
 };
-/* runtime type ReduceAction107 */
-const struct type type_parser__ReduceAction107 = {
+/* runtime type ReduceAction18 */
+const struct type type_parser__ReduceAction18 = {
 -1, /*CAST DEAD*/
-"ReduceAction107", /* class_name_string */
+"ReduceAction18", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7814,14 +7818,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-740, /* ReduceAction107 */
+153, /* ReduceAction */
+660, /* ReduceAction18 */
 },
 };
-/* runtime type ReduceAction108 */
-const struct type type_parser__ReduceAction108 = {
+/* runtime type ReduceAction19 */
+const struct type type_parser__ReduceAction19 = {
 -1, /*CAST DEAD*/
-"ReduceAction108", /* class_name_string */
+"ReduceAction19", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7829,14 +7833,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-741, /* ReduceAction108 */
+153, /* ReduceAction */
+661, /* ReduceAction19 */
 },
 };
-/* runtime type ReduceAction109 */
-const struct type type_parser__ReduceAction109 = {
+/* runtime type ReduceAction20 */
+const struct type type_parser__ReduceAction20 = {
 -1, /*CAST DEAD*/
-"ReduceAction109", /* class_name_string */
+"ReduceAction20", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7844,14 +7848,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-742, /* ReduceAction109 */
+153, /* ReduceAction */
+662, /* ReduceAction20 */
 },
 };
-/* runtime type ReduceAction110 */
-const struct type type_parser__ReduceAction110 = {
+/* runtime type ReduceAction21 */
+const struct type type_parser__ReduceAction21 = {
 -1, /*CAST DEAD*/
-"ReduceAction110", /* class_name_string */
+"ReduceAction21", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7859,14 +7863,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-743, /* ReduceAction110 */
+153, /* ReduceAction */
+663, /* ReduceAction21 */
 },
 };
-/* runtime type ReduceAction111 */
-const struct type type_parser__ReduceAction111 = {
+/* runtime type ReduceAction22 */
+const struct type type_parser__ReduceAction22 = {
 -1, /*CAST DEAD*/
-"ReduceAction111", /* class_name_string */
+"ReduceAction22", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7874,14 +7878,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-744, /* ReduceAction111 */
+153, /* ReduceAction */
+664, /* ReduceAction22 */
 },
 };
-/* runtime type ReduceAction112 */
-const struct type type_parser__ReduceAction112 = {
+/* runtime type ReduceAction23 */
+const struct type type_parser__ReduceAction23 = {
 -1, /*CAST DEAD*/
-"ReduceAction112", /* class_name_string */
+"ReduceAction23", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7889,14 +7893,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-745, /* ReduceAction112 */
+153, /* ReduceAction */
+665, /* ReduceAction23 */
 },
 };
-/* runtime type ReduceAction113 */
-const struct type type_parser__ReduceAction113 = {
+/* runtime type ReduceAction24 */
+const struct type type_parser__ReduceAction24 = {
 -1, /*CAST DEAD*/
-"ReduceAction113", /* class_name_string */
+"ReduceAction24", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7904,14 +7908,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-746, /* ReduceAction113 */
+153, /* ReduceAction */
+666, /* ReduceAction24 */
 },
-};
-/* runtime type ReduceAction114 */
-const struct type type_parser__ReduceAction114 = {
+};
+/* runtime type ReduceAction26 */
+const struct type type_parser__ReduceAction26 = {
 -1, /*CAST DEAD*/
-"ReduceAction114", /* class_name_string */
+"ReduceAction26", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7919,14 +7923,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-747, /* ReduceAction114 */
+153, /* ReduceAction */
+667, /* ReduceAction26 */
 },
 };
-/* runtime type ReduceAction115 */
-const struct type type_parser__ReduceAction115 = {
+/* runtime type ReduceAction27 */
+const struct type type_parser__ReduceAction27 = {
 -1, /*CAST DEAD*/
-"ReduceAction115", /* class_name_string */
+"ReduceAction27", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7934,14 +7938,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-748, /* ReduceAction115 */
+153, /* ReduceAction */
+668, /* ReduceAction27 */
 },
 };
-/* runtime type ReduceAction116 */
-const struct type type_parser__ReduceAction116 = {
+/* runtime type ReduceAction28 */
+const struct type type_parser__ReduceAction28 = {
 -1, /*CAST DEAD*/
-"ReduceAction116", /* class_name_string */
+"ReduceAction28", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7949,14 +7953,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-749, /* ReduceAction116 */
+153, /* ReduceAction */
+669, /* ReduceAction28 */
 },
 };
-/* runtime type ReduceAction117 */
-const struct type type_parser__ReduceAction117 = {
+/* runtime type ReduceAction29 */
+const struct type type_parser__ReduceAction29 = {
 -1, /*CAST DEAD*/
-"ReduceAction117", /* class_name_string */
+"ReduceAction29", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7964,14 +7968,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-750, /* ReduceAction117 */
+153, /* ReduceAction */
+670, /* ReduceAction29 */
 },
 };
-/* runtime type ReduceAction118 */
-const struct type type_parser__ReduceAction118 = {
+/* runtime type ReduceAction30 */
+const struct type type_parser__ReduceAction30 = {
 -1, /*CAST DEAD*/
-"ReduceAction118", /* class_name_string */
+"ReduceAction30", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7979,14 +7983,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-751, /* ReduceAction118 */
+153, /* ReduceAction */
+671, /* ReduceAction30 */
 },
 };
-/* runtime type ReduceAction119 */
-const struct type type_parser__ReduceAction119 = {
+/* runtime type ReduceAction31 */
+const struct type type_parser__ReduceAction31 = {
 -1, /*CAST DEAD*/
-"ReduceAction119", /* class_name_string */
+"ReduceAction31", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -7994,14 +7998,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-752, /* ReduceAction119 */
+153, /* ReduceAction */
+672, /* ReduceAction31 */
 },
 };
-/* runtime type ReduceAction120 */
-const struct type type_parser__ReduceAction120 = {
+/* runtime type ReduceAction32 */
+const struct type type_parser__ReduceAction32 = {
 -1, /*CAST DEAD*/
-"ReduceAction120", /* class_name_string */
+"ReduceAction32", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8009,14 +8013,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-753, /* ReduceAction120 */
+153, /* ReduceAction */
+673, /* ReduceAction32 */
 },
 };
-/* runtime type ReduceAction121 */
-const struct type type_parser__ReduceAction121 = {
+/* runtime type ReduceAction33 */
+const struct type type_parser__ReduceAction33 = {
 -1, /*CAST DEAD*/
-"ReduceAction121", /* class_name_string */
+"ReduceAction33", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8024,14 +8028,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-754, /* ReduceAction121 */
+153, /* ReduceAction */
+674, /* ReduceAction33 */
 },
 };
-/* runtime type ReduceAction122 */
-const struct type type_parser__ReduceAction122 = {
+/* runtime type ReduceAction34 */
+const struct type type_parser__ReduceAction34 = {
 -1, /*CAST DEAD*/
-"ReduceAction122", /* class_name_string */
+"ReduceAction34", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8039,14 +8043,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-755, /* ReduceAction122 */
+153, /* ReduceAction */
+675, /* ReduceAction34 */
 },
 };
-/* runtime type ReduceAction123 */
-const struct type type_parser__ReduceAction123 = {
+/* runtime type ReduceAction35 */
+const struct type type_parser__ReduceAction35 = {
 -1, /*CAST DEAD*/
-"ReduceAction123", /* class_name_string */
+"ReduceAction35", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8054,14 +8058,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-756, /* ReduceAction123 */
+153, /* ReduceAction */
+676, /* ReduceAction35 */
 },
 };
-/* runtime type ReduceAction124 */
-const struct type type_parser__ReduceAction124 = {
+/* runtime type ReduceAction36 */
+const struct type type_parser__ReduceAction36 = {
 -1, /*CAST DEAD*/
-"ReduceAction124", /* class_name_string */
+"ReduceAction36", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8069,14 +8073,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-757, /* ReduceAction124 */
+153, /* ReduceAction */
+677, /* ReduceAction36 */
 },
 };
-/* runtime type ReduceAction125 */
-const struct type type_parser__ReduceAction125 = {
+/* runtime type ReduceAction37 */
+const struct type type_parser__ReduceAction37 = {
 -1, /*CAST DEAD*/
-"ReduceAction125", /* class_name_string */
+"ReduceAction37", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8084,14 +8088,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-758, /* ReduceAction125 */
+153, /* ReduceAction */
+678, /* ReduceAction37 */
 },
 };
-/* runtime type ReduceAction127 */
-const struct type type_parser__ReduceAction127 = {
+/* runtime type ReduceAction38 */
+const struct type type_parser__ReduceAction38 = {
 -1, /*CAST DEAD*/
-"ReduceAction127", /* class_name_string */
+"ReduceAction38", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8099,14 +8103,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-759, /* ReduceAction127 */
+153, /* ReduceAction */
+679, /* ReduceAction38 */
 },
 };
-/* runtime type ReduceAction128 */
-const struct type type_parser__ReduceAction128 = {
+/* runtime type ReduceAction39 */
+const struct type type_parser__ReduceAction39 = {
 -1, /*CAST DEAD*/
-"ReduceAction128", /* class_name_string */
+"ReduceAction39", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8114,14 +8118,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-760, /* ReduceAction128 */
+153, /* ReduceAction */
+680, /* ReduceAction39 */
 },
 };
-/* runtime type ReduceAction129 */
-const struct type type_parser__ReduceAction129 = {
+/* runtime type ReduceAction40 */
+const struct type type_parser__ReduceAction40 = {
 -1, /*CAST DEAD*/
-"ReduceAction129", /* class_name_string */
+"ReduceAction40", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8129,14 +8133,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-761, /* ReduceAction129 */
+153, /* ReduceAction */
+681, /* ReduceAction40 */
 },
 };
-/* runtime type ReduceAction130 */
-const struct type type_parser__ReduceAction130 = {
+/* runtime type ReduceAction41 */
+const struct type type_parser__ReduceAction41 = {
 -1, /*CAST DEAD*/
-"ReduceAction130", /* class_name_string */
+"ReduceAction41", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8144,14 +8148,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-762, /* ReduceAction130 */
+153, /* ReduceAction */
+682, /* ReduceAction41 */
 },
 };
-/* runtime type ReduceAction131 */
-const struct type type_parser__ReduceAction131 = {
+/* runtime type ReduceAction43 */
+const struct type type_parser__ReduceAction43 = {
 -1, /*CAST DEAD*/
-"ReduceAction131", /* class_name_string */
+"ReduceAction43", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8159,14 +8163,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-763, /* ReduceAction131 */
+153, /* ReduceAction */
+683, /* ReduceAction43 */
 },
 };
-/* runtime type ReduceAction132 */
-const struct type type_parser__ReduceAction132 = {
+/* runtime type ReduceAction44 */
+const struct type type_parser__ReduceAction44 = {
 -1, /*CAST DEAD*/
-"ReduceAction132", /* class_name_string */
+"ReduceAction44", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8174,14 +8178,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-764, /* ReduceAction132 */
+153, /* ReduceAction */
+684, /* ReduceAction44 */
 },
 };
-/* runtime type ReduceAction133 */
-const struct type type_parser__ReduceAction133 = {
+/* runtime type ReduceAction45 */
+const struct type type_parser__ReduceAction45 = {
 -1, /*CAST DEAD*/
-"ReduceAction133", /* class_name_string */
+"ReduceAction45", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8189,14 +8193,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-765, /* ReduceAction133 */
+153, /* ReduceAction */
+685, /* ReduceAction45 */
 },
 };
-/* runtime type ReduceAction134 */
-const struct type type_parser__ReduceAction134 = {
+/* runtime type ReduceAction46 */
+const struct type type_parser__ReduceAction46 = {
 -1, /*CAST DEAD*/
-"ReduceAction134", /* class_name_string */
+"ReduceAction46", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8204,14 +8208,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-766, /* ReduceAction134 */
+153, /* ReduceAction */
+686, /* ReduceAction46 */
 },
 };
-/* runtime type ReduceAction136 */
-const struct type type_parser__ReduceAction136 = {
+/* runtime type ReduceAction47 */
+const struct type type_parser__ReduceAction47 = {
 -1, /*CAST DEAD*/
-"ReduceAction136", /* class_name_string */
+"ReduceAction47", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8219,14 +8223,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-767, /* ReduceAction136 */
+153, /* ReduceAction */
+687, /* ReduceAction47 */
 },
 };
-/* runtime type ReduceAction137 */
-const struct type type_parser__ReduceAction137 = {
+/* runtime type ReduceAction48 */
+const struct type type_parser__ReduceAction48 = {
 -1, /*CAST DEAD*/
-"ReduceAction137", /* class_name_string */
+"ReduceAction48", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8234,14 +8238,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-768, /* ReduceAction137 */
+153, /* ReduceAction */
+688, /* ReduceAction48 */
 },
 };
-/* runtime type ReduceAction139 */
-const struct type type_parser__ReduceAction139 = {
+/* runtime type ReduceAction49 */
+const struct type type_parser__ReduceAction49 = {
 -1, /*CAST DEAD*/
-"ReduceAction139", /* class_name_string */
+"ReduceAction49", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8249,14 +8253,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-769, /* ReduceAction139 */
+153, /* ReduceAction */
+689, /* ReduceAction49 */
 },
 };
-/* runtime type ReduceAction140 */
-const struct type type_parser__ReduceAction140 = {
+/* runtime type ReduceAction50 */
+const struct type type_parser__ReduceAction50 = {
 -1, /*CAST DEAD*/
-"ReduceAction140", /* class_name_string */
+"ReduceAction50", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8264,14 +8268,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-770, /* ReduceAction140 */
+153, /* ReduceAction */
+690, /* ReduceAction50 */
 },
 };
-/* runtime type ReduceAction141 */
-const struct type type_parser__ReduceAction141 = {
+/* runtime type ReduceAction51 */
+const struct type type_parser__ReduceAction51 = {
 -1, /*CAST DEAD*/
-"ReduceAction141", /* class_name_string */
+"ReduceAction51", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8279,14 +8283,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-771, /* ReduceAction141 */
+153, /* ReduceAction */
+691, /* ReduceAction51 */
 },
 };
-/* runtime type ReduceAction142 */
-const struct type type_parser__ReduceAction142 = {
+/* runtime type ReduceAction52 */
+const struct type type_parser__ReduceAction52 = {
 -1, /*CAST DEAD*/
-"ReduceAction142", /* class_name_string */
+"ReduceAction52", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8294,14 +8298,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-772, /* ReduceAction142 */
+153, /* ReduceAction */
+692, /* ReduceAction52 */
 },
 };
-/* runtime type ReduceAction143 */
-const struct type type_parser__ReduceAction143 = {
+/* runtime type ReduceAction53 */
+const struct type type_parser__ReduceAction53 = {
 -1, /*CAST DEAD*/
-"ReduceAction143", /* class_name_string */
+"ReduceAction53", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8309,14 +8313,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-773, /* ReduceAction143 */
+153, /* ReduceAction */
+693, /* ReduceAction53 */
 },
 };
-/* runtime type ReduceAction144 */
-const struct type type_parser__ReduceAction144 = {
+/* runtime type ReduceAction54 */
+const struct type type_parser__ReduceAction54 = {
 -1, /*CAST DEAD*/
-"ReduceAction144", /* class_name_string */
+"ReduceAction54", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8324,14 +8328,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-774, /* ReduceAction144 */
+153, /* ReduceAction */
+694, /* ReduceAction54 */
 },
 };
-/* runtime type ReduceAction145 */
-const struct type type_parser__ReduceAction145 = {
+/* runtime type ReduceAction55 */
+const struct type type_parser__ReduceAction55 = {
 -1, /*CAST DEAD*/
-"ReduceAction145", /* class_name_string */
+"ReduceAction55", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8339,14 +8343,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-775, /* ReduceAction145 */
+153, /* ReduceAction */
+695, /* ReduceAction55 */
 },
 };
-/* runtime type ReduceAction146 */
-const struct type type_parser__ReduceAction146 = {
+/* runtime type ReduceAction56 */
+const struct type type_parser__ReduceAction56 = {
 -1, /*CAST DEAD*/
-"ReduceAction146", /* class_name_string */
+"ReduceAction56", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8354,14 +8358,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-776, /* ReduceAction146 */
+153, /* ReduceAction */
+696, /* ReduceAction56 */
 },
 };
-/* runtime type ReduceAction147 */
-const struct type type_parser__ReduceAction147 = {
+/* runtime type ReduceAction57 */
+const struct type type_parser__ReduceAction57 = {
 -1, /*CAST DEAD*/
-"ReduceAction147", /* class_name_string */
+"ReduceAction57", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8369,14 +8373,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-777, /* ReduceAction147 */
+153, /* ReduceAction */
+697, /* ReduceAction57 */
 },
 };
-/* runtime type ReduceAction148 */
-const struct type type_parser__ReduceAction148 = {
+/* runtime type ReduceAction58 */
+const struct type type_parser__ReduceAction58 = {
 -1, /*CAST DEAD*/
-"ReduceAction148", /* class_name_string */
+"ReduceAction58", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8384,14 +8388,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-778, /* ReduceAction148 */
+153, /* ReduceAction */
+698, /* ReduceAction58 */
 },
 };
-/* runtime type ReduceAction150 */
-const struct type type_parser__ReduceAction150 = {
+/* runtime type ReduceAction59 */
+const struct type type_parser__ReduceAction59 = {
 -1, /*CAST DEAD*/
-"ReduceAction150", /* class_name_string */
+"ReduceAction59", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8399,14 +8403,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-779, /* ReduceAction150 */
+153, /* ReduceAction */
+699, /* ReduceAction59 */
 },
 };
-/* runtime type ReduceAction151 */
-const struct type type_parser__ReduceAction151 = {
+/* runtime type ReduceAction60 */
+const struct type type_parser__ReduceAction60 = {
 -1, /*CAST DEAD*/
-"ReduceAction151", /* class_name_string */
+"ReduceAction60", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8414,14 +8418,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-780, /* ReduceAction151 */
+153, /* ReduceAction */
+700, /* ReduceAction60 */
 },
 };
-/* runtime type ReduceAction152 */
-const struct type type_parser__ReduceAction152 = {
+/* runtime type ReduceAction61 */
+const struct type type_parser__ReduceAction61 = {
 -1, /*CAST DEAD*/
-"ReduceAction152", /* class_name_string */
+"ReduceAction61", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8429,14 +8433,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-781, /* ReduceAction152 */
+153, /* ReduceAction */
+701, /* ReduceAction61 */
 },
 };
-/* runtime type ReduceAction153 */
-const struct type type_parser__ReduceAction153 = {
+/* runtime type ReduceAction62 */
+const struct type type_parser__ReduceAction62 = {
 -1, /*CAST DEAD*/
-"ReduceAction153", /* class_name_string */
+"ReduceAction62", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8444,14 +8448,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-782, /* ReduceAction153 */
+153, /* ReduceAction */
+702, /* ReduceAction62 */
 },
 };
-/* runtime type ReduceAction154 */
-const struct type type_parser__ReduceAction154 = {
+/* runtime type ReduceAction63 */
+const struct type type_parser__ReduceAction63 = {
 -1, /*CAST DEAD*/
-"ReduceAction154", /* class_name_string */
+"ReduceAction63", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8459,14 +8463,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-783, /* ReduceAction154 */
+153, /* ReduceAction */
+703, /* ReduceAction63 */
 },
 };
-/* runtime type ReduceAction156 */
-const struct type type_parser__ReduceAction156 = {
+/* runtime type ReduceAction64 */
+const struct type type_parser__ReduceAction64 = {
 -1, /*CAST DEAD*/
-"ReduceAction156", /* class_name_string */
+"ReduceAction64", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8474,14 +8478,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-784, /* ReduceAction156 */
+153, /* ReduceAction */
+704, /* ReduceAction64 */
 },
 };
-/* runtime type ReduceAction157 */
-const struct type type_parser__ReduceAction157 = {
+/* runtime type ReduceAction65 */
+const struct type type_parser__ReduceAction65 = {
 -1, /*CAST DEAD*/
-"ReduceAction157", /* class_name_string */
+"ReduceAction65", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8489,14 +8493,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-785, /* ReduceAction157 */
+153, /* ReduceAction */
+705, /* ReduceAction65 */
 },
 };
-/* runtime type ReduceAction158 */
-const struct type type_parser__ReduceAction158 = {
+/* runtime type ReduceAction66 */
+const struct type type_parser__ReduceAction66 = {
 -1, /*CAST DEAD*/
-"ReduceAction158", /* class_name_string */
+"ReduceAction66", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8504,14 +8508,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-786, /* ReduceAction158 */
+153, /* ReduceAction */
+706, /* ReduceAction66 */
 },
 };
-/* runtime type ReduceAction159 */
-const struct type type_parser__ReduceAction159 = {
+/* runtime type ReduceAction67 */
+const struct type type_parser__ReduceAction67 = {
 -1, /*CAST DEAD*/
-"ReduceAction159", /* class_name_string */
+"ReduceAction67", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8519,14 +8523,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-787, /* ReduceAction159 */
+153, /* ReduceAction */
+707, /* ReduceAction67 */
 },
 };
-/* runtime type ReduceAction160 */
-const struct type type_parser__ReduceAction160 = {
+/* runtime type ReduceAction68 */
+const struct type type_parser__ReduceAction68 = {
 -1, /*CAST DEAD*/
-"ReduceAction160", /* class_name_string */
+"ReduceAction68", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8534,14 +8538,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-788, /* ReduceAction160 */
+153, /* ReduceAction */
+708, /* ReduceAction68 */
 },
 };
-/* runtime type ReduceAction161 */
-const struct type type_parser__ReduceAction161 = {
+/* runtime type ReduceAction69 */
+const struct type type_parser__ReduceAction69 = {
 -1, /*CAST DEAD*/
-"ReduceAction161", /* class_name_string */
+"ReduceAction69", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8549,14 +8553,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-789, /* ReduceAction161 */
+153, /* ReduceAction */
+709, /* ReduceAction69 */
 },
 };
-/* runtime type ReduceAction162 */
-const struct type type_parser__ReduceAction162 = {
+/* runtime type ReduceAction70 */
+const struct type type_parser__ReduceAction70 = {
 -1, /*CAST DEAD*/
-"ReduceAction162", /* class_name_string */
+"ReduceAction70", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8564,14 +8568,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-790, /* ReduceAction162 */
+153, /* ReduceAction */
+710, /* ReduceAction70 */
 },
 };
-/* runtime type ReduceAction163 */
-const struct type type_parser__ReduceAction163 = {
+/* runtime type ReduceAction71 */
+const struct type type_parser__ReduceAction71 = {
 -1, /*CAST DEAD*/
-"ReduceAction163", /* class_name_string */
+"ReduceAction71", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8579,14 +8583,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-791, /* ReduceAction163 */
+153, /* ReduceAction */
+711, /* ReduceAction71 */
 },
 };
-/* runtime type ReduceAction167 */
-const struct type type_parser__ReduceAction167 = {
+/* runtime type ReduceAction72 */
+const struct type type_parser__ReduceAction72 = {
 -1, /*CAST DEAD*/
-"ReduceAction167", /* class_name_string */
+"ReduceAction72", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8594,14 +8598,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-792, /* ReduceAction167 */
+153, /* ReduceAction */
+712, /* ReduceAction72 */
 },
 };
-/* runtime type ReduceAction168 */
-const struct type type_parser__ReduceAction168 = {
+/* runtime type ReduceAction73 */
+const struct type type_parser__ReduceAction73 = {
 -1, /*CAST DEAD*/
-"ReduceAction168", /* class_name_string */
+"ReduceAction73", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8609,14 +8613,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-793, /* ReduceAction168 */
+153, /* ReduceAction */
+713, /* ReduceAction73 */
 },
 };
-/* runtime type ReduceAction169 */
-const struct type type_parser__ReduceAction169 = {
+/* runtime type ReduceAction74 */
+const struct type type_parser__ReduceAction74 = {
 -1, /*CAST DEAD*/
-"ReduceAction169", /* class_name_string */
+"ReduceAction74", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8624,14 +8628,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-794, /* ReduceAction169 */
+153, /* ReduceAction */
+714, /* ReduceAction74 */
 },
 };
-/* runtime type ReduceAction170 */
-const struct type type_parser__ReduceAction170 = {
+/* runtime type ReduceAction75 */
+const struct type type_parser__ReduceAction75 = {
 -1, /*CAST DEAD*/
-"ReduceAction170", /* class_name_string */
+"ReduceAction75", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8639,14 +8643,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-795, /* ReduceAction170 */
+153, /* ReduceAction */
+715, /* ReduceAction75 */
 },
 };
-/* runtime type ReduceAction171 */
-const struct type type_parser__ReduceAction171 = {
+/* runtime type ReduceAction76 */
+const struct type type_parser__ReduceAction76 = {
 -1, /*CAST DEAD*/
-"ReduceAction171", /* class_name_string */
+"ReduceAction76", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8654,14 +8658,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-796, /* ReduceAction171 */
+153, /* ReduceAction */
+716, /* ReduceAction76 */
 },
 };
-/* runtime type ReduceAction172 */
-const struct type type_parser__ReduceAction172 = {
+/* runtime type ReduceAction77 */
+const struct type type_parser__ReduceAction77 = {
 -1, /*CAST DEAD*/
-"ReduceAction172", /* class_name_string */
+"ReduceAction77", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8669,14 +8673,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-797, /* ReduceAction172 */
+153, /* ReduceAction */
+717, /* ReduceAction77 */
 },
 };
-/* runtime type ReduceAction173 */
-const struct type type_parser__ReduceAction173 = {
+/* runtime type ReduceAction78 */
+const struct type type_parser__ReduceAction78 = {
 -1, /*CAST DEAD*/
-"ReduceAction173", /* class_name_string */
+"ReduceAction78", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8684,14 +8688,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-798, /* ReduceAction173 */
+153, /* ReduceAction */
+718, /* ReduceAction78 */
 },
 };
-/* runtime type ReduceAction174 */
-const struct type type_parser__ReduceAction174 = {
+/* runtime type ReduceAction79 */
+const struct type type_parser__ReduceAction79 = {
 -1, /*CAST DEAD*/
-"ReduceAction174", /* class_name_string */
+"ReduceAction79", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8699,14 +8703,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-799, /* ReduceAction174 */
+153, /* ReduceAction */
+719, /* ReduceAction79 */
 },
 };
-/* runtime type ReduceAction175 */
-const struct type type_parser__ReduceAction175 = {
+/* runtime type ReduceAction80 */
+const struct type type_parser__ReduceAction80 = {
 -1, /*CAST DEAD*/
-"ReduceAction175", /* class_name_string */
+"ReduceAction80", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8714,14 +8718,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-800, /* ReduceAction175 */
+153, /* ReduceAction */
+720, /* ReduceAction80 */
 },
 };
-/* runtime type ReduceAction176 */
-const struct type type_parser__ReduceAction176 = {
+/* runtime type ReduceAction81 */
+const struct type type_parser__ReduceAction81 = {
 -1, /*CAST DEAD*/
-"ReduceAction176", /* class_name_string */
+"ReduceAction81", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8729,14 +8733,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-801, /* ReduceAction176 */
+153, /* ReduceAction */
+721, /* ReduceAction81 */
 },
 };
-/* runtime type ReduceAction180 */
-const struct type type_parser__ReduceAction180 = {
+/* runtime type ReduceAction82 */
+const struct type type_parser__ReduceAction82 = {
 -1, /*CAST DEAD*/
-"ReduceAction180", /* class_name_string */
+"ReduceAction82", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8744,14 +8748,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-802, /* ReduceAction180 */
+153, /* ReduceAction */
+722, /* ReduceAction82 */
 },
 };
-/* runtime type ReduceAction181 */
-const struct type type_parser__ReduceAction181 = {
+/* runtime type ReduceAction83 */
+const struct type type_parser__ReduceAction83 = {
 -1, /*CAST DEAD*/
-"ReduceAction181", /* class_name_string */
+"ReduceAction83", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8759,14 +8763,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-803, /* ReduceAction181 */
+153, /* ReduceAction */
+723, /* ReduceAction83 */
 },
 };
-/* runtime type ReduceAction182 */
-const struct type type_parser__ReduceAction182 = {
+/* runtime type ReduceAction84 */
+const struct type type_parser__ReduceAction84 = {
 -1, /*CAST DEAD*/
-"ReduceAction182", /* class_name_string */
+"ReduceAction84", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8774,14 +8778,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-804, /* ReduceAction182 */
+153, /* ReduceAction */
+724, /* ReduceAction84 */
 },
 };
-/* runtime type ReduceAction183 */
-const struct type type_parser__ReduceAction183 = {
+/* runtime type ReduceAction87 */
+const struct type type_parser__ReduceAction87 = {
 -1, /*CAST DEAD*/
-"ReduceAction183", /* class_name_string */
+"ReduceAction87", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8789,14 +8793,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-805, /* ReduceAction183 */
+153, /* ReduceAction */
+725, /* ReduceAction87 */
 },
 };
-/* runtime type ReduceAction184 */
-const struct type type_parser__ReduceAction184 = {
+/* runtime type ReduceAction88 */
+const struct type type_parser__ReduceAction88 = {
 -1, /*CAST DEAD*/
-"ReduceAction184", /* class_name_string */
+"ReduceAction88", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8804,14 +8808,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-806, /* ReduceAction184 */
+153, /* ReduceAction */
+726, /* ReduceAction88 */
 },
 };
-/* runtime type ReduceAction185 */
-const struct type type_parser__ReduceAction185 = {
+/* runtime type ReduceAction89 */
+const struct type type_parser__ReduceAction89 = {
 -1, /*CAST DEAD*/
-"ReduceAction185", /* class_name_string */
+"ReduceAction89", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8819,14 +8823,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-807, /* ReduceAction185 */
+153, /* ReduceAction */
+727, /* ReduceAction89 */
 },
 };
-/* runtime type ReduceAction186 */
-const struct type type_parser__ReduceAction186 = {
+/* runtime type ReduceAction90 */
+const struct type type_parser__ReduceAction90 = {
 -1, /*CAST DEAD*/
-"ReduceAction186", /* class_name_string */
+"ReduceAction90", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8834,14 +8838,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-808, /* ReduceAction186 */
+153, /* ReduceAction */
+728, /* ReduceAction90 */
 },
 };
-/* runtime type ReduceAction193 */
-const struct type type_parser__ReduceAction193 = {
+/* runtime type ReduceAction91 */
+const struct type type_parser__ReduceAction91 = {
 -1, /*CAST DEAD*/
-"ReduceAction193", /* class_name_string */
+"ReduceAction91", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8849,14 +8853,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-809, /* ReduceAction193 */
+153, /* ReduceAction */
+729, /* ReduceAction91 */
 },
 };
-/* runtime type ReduceAction194 */
-const struct type type_parser__ReduceAction194 = {
+/* runtime type ReduceAction92 */
+const struct type type_parser__ReduceAction92 = {
 -1, /*CAST DEAD*/
-"ReduceAction194", /* class_name_string */
+"ReduceAction92", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8864,14 +8868,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-810, /* ReduceAction194 */
+153, /* ReduceAction */
+730, /* ReduceAction92 */
 },
 };
-/* runtime type ReduceAction195 */
-const struct type type_parser__ReduceAction195 = {
+/* runtime type ReduceAction93 */
+const struct type type_parser__ReduceAction93 = {
 -1, /*CAST DEAD*/
-"ReduceAction195", /* class_name_string */
+"ReduceAction93", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8879,14 +8883,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-811, /* ReduceAction195 */
+153, /* ReduceAction */
+731, /* ReduceAction93 */
 },
 };
-/* runtime type ReduceAction196 */
-const struct type type_parser__ReduceAction196 = {
+/* runtime type ReduceAction94 */
+const struct type type_parser__ReduceAction94 = {
 -1, /*CAST DEAD*/
-"ReduceAction196", /* class_name_string */
+"ReduceAction94", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8894,14 +8898,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-812, /* ReduceAction196 */
+153, /* ReduceAction */
+732, /* ReduceAction94 */
 },
 };
-/* runtime type ReduceAction197 */
-const struct type type_parser__ReduceAction197 = {
+/* runtime type ReduceAction95 */
+const struct type type_parser__ReduceAction95 = {
 -1, /*CAST DEAD*/
-"ReduceAction197", /* class_name_string */
+"ReduceAction95", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8909,14 +8913,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-813, /* ReduceAction197 */
+153, /* ReduceAction */
+733, /* ReduceAction95 */
 },
 };
-/* runtime type ReduceAction198 */
-const struct type type_parser__ReduceAction198 = {
+/* runtime type ReduceAction96 */
+const struct type type_parser__ReduceAction96 = {
 -1, /*CAST DEAD*/
-"ReduceAction198", /* class_name_string */
+"ReduceAction96", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8924,14 +8928,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-814, /* ReduceAction198 */
+153, /* ReduceAction */
+734, /* ReduceAction96 */
 },
 };
-/* runtime type ReduceAction199 */
-const struct type type_parser__ReduceAction199 = {
+/* runtime type ReduceAction97 */
+const struct type type_parser__ReduceAction97 = {
 -1, /*CAST DEAD*/
-"ReduceAction199", /* class_name_string */
+"ReduceAction97", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8939,14 +8943,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-815, /* ReduceAction199 */
+153, /* ReduceAction */
+735, /* ReduceAction97 */
 },
 };
-/* runtime type ReduceAction201 */
-const struct type type_parser__ReduceAction201 = {
+/* runtime type ReduceAction98 */
+const struct type type_parser__ReduceAction98 = {
 -1, /*CAST DEAD*/
-"ReduceAction201", /* class_name_string */
+"ReduceAction98", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8954,14 +8958,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-816, /* ReduceAction201 */
+153, /* ReduceAction */
+736, /* ReduceAction98 */
 },
 };
-/* runtime type ReduceAction202 */
-const struct type type_parser__ReduceAction202 = {
+/* runtime type ReduceAction99 */
+const struct type type_parser__ReduceAction99 = {
 -1, /*CAST DEAD*/
-"ReduceAction202", /* class_name_string */
+"ReduceAction99", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8969,14 +8973,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-817, /* ReduceAction202 */
+153, /* ReduceAction */
+737, /* ReduceAction99 */
 },
 };
-/* runtime type ReduceAction204 */
-const struct type type_parser__ReduceAction204 = {
+/* runtime type ReduceAction100 */
+const struct type type_parser__ReduceAction100 = {
 -1, /*CAST DEAD*/
-"ReduceAction204", /* class_name_string */
+"ReduceAction100", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8984,14 +8988,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-818, /* ReduceAction204 */
+153, /* ReduceAction */
+738, /* ReduceAction100 */
 },
 };
-/* runtime type ReduceAction205 */
-const struct type type_parser__ReduceAction205 = {
+/* runtime type ReduceAction101 */
+const struct type type_parser__ReduceAction101 = {
 -1, /*CAST DEAD*/
-"ReduceAction205", /* class_name_string */
+"ReduceAction101", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -8999,14 +9003,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-819, /* ReduceAction205 */
+153, /* ReduceAction */
+739, /* ReduceAction101 */
 },
 };
-/* runtime type ReduceAction206 */
-const struct type type_parser__ReduceAction206 = {
+/* runtime type ReduceAction102 */
+const struct type type_parser__ReduceAction102 = {
 -1, /*CAST DEAD*/
-"ReduceAction206", /* class_name_string */
+"ReduceAction102", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9014,14 +9018,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-820, /* ReduceAction206 */
+153, /* ReduceAction */
+740, /* ReduceAction102 */
 },
 };
-/* runtime type ReduceAction207 */
-const struct type type_parser__ReduceAction207 = {
+/* runtime type ReduceAction103 */
+const struct type type_parser__ReduceAction103 = {
 -1, /*CAST DEAD*/
-"ReduceAction207", /* class_name_string */
+"ReduceAction103", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9029,14 +9033,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-821, /* ReduceAction207 */
+153, /* ReduceAction */
+741, /* ReduceAction103 */
 },
 };
-/* runtime type ReduceAction208 */
-const struct type type_parser__ReduceAction208 = {
+/* runtime type ReduceAction104 */
+const struct type type_parser__ReduceAction104 = {
 -1, /*CAST DEAD*/
-"ReduceAction208", /* class_name_string */
+"ReduceAction104", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9044,14 +9048,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-822, /* ReduceAction208 */
+153, /* ReduceAction */
+742, /* ReduceAction104 */
 },
 };
-/* runtime type ReduceAction209 */
-const struct type type_parser__ReduceAction209 = {
+/* runtime type ReduceAction105 */
+const struct type type_parser__ReduceAction105 = {
 -1, /*CAST DEAD*/
-"ReduceAction209", /* class_name_string */
+"ReduceAction105", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9059,14 +9063,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-823, /* ReduceAction209 */
+153, /* ReduceAction */
+743, /* ReduceAction105 */
 },
 };
-/* runtime type ReduceAction210 */
-const struct type type_parser__ReduceAction210 = {
+/* runtime type ReduceAction106 */
+const struct type type_parser__ReduceAction106 = {
 -1, /*CAST DEAD*/
-"ReduceAction210", /* class_name_string */
+"ReduceAction106", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9074,14 +9078,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-824, /* ReduceAction210 */
+153, /* ReduceAction */
+744, /* ReduceAction106 */
 },
 };
-/* runtime type ReduceAction211 */
-const struct type type_parser__ReduceAction211 = {
+/* runtime type ReduceAction107 */
+const struct type type_parser__ReduceAction107 = {
 -1, /*CAST DEAD*/
-"ReduceAction211", /* class_name_string */
+"ReduceAction107", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9089,14 +9093,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-825, /* ReduceAction211 */
+153, /* ReduceAction */
+745, /* ReduceAction107 */
 },
 };
-/* runtime type ReduceAction212 */
-const struct type type_parser__ReduceAction212 = {
+/* runtime type ReduceAction108 */
+const struct type type_parser__ReduceAction108 = {
 -1, /*CAST DEAD*/
-"ReduceAction212", /* class_name_string */
+"ReduceAction108", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9104,14 +9108,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-826, /* ReduceAction212 */
+153, /* ReduceAction */
+746, /* ReduceAction108 */
 },
 };
-/* runtime type ReduceAction213 */
-const struct type type_parser__ReduceAction213 = {
+/* runtime type ReduceAction109 */
+const struct type type_parser__ReduceAction109 = {
 -1, /*CAST DEAD*/
-"ReduceAction213", /* class_name_string */
+"ReduceAction109", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9119,14 +9123,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-827, /* ReduceAction213 */
+153, /* ReduceAction */
+747, /* ReduceAction109 */
 },
 };
-/* runtime type ReduceAction214 */
-const struct type type_parser__ReduceAction214 = {
+/* runtime type ReduceAction110 */
+const struct type type_parser__ReduceAction110 = {
 -1, /*CAST DEAD*/
-"ReduceAction214", /* class_name_string */
+"ReduceAction110", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9134,14 +9138,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-828, /* ReduceAction214 */
+153, /* ReduceAction */
+748, /* ReduceAction110 */
 },
 };
-/* runtime type ReduceAction215 */
-const struct type type_parser__ReduceAction215 = {
+/* runtime type ReduceAction111 */
+const struct type type_parser__ReduceAction111 = {
 -1, /*CAST DEAD*/
-"ReduceAction215", /* class_name_string */
+"ReduceAction111", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9149,14 +9153,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-829, /* ReduceAction215 */
+153, /* ReduceAction */
+749, /* ReduceAction111 */
 },
 };
-/* runtime type ReduceAction216 */
-const struct type type_parser__ReduceAction216 = {
+/* runtime type ReduceAction112 */
+const struct type type_parser__ReduceAction112 = {
 -1, /*CAST DEAD*/
-"ReduceAction216", /* class_name_string */
+"ReduceAction112", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9164,14 +9168,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-830, /* ReduceAction216 */
+153, /* ReduceAction */
+750, /* ReduceAction112 */
 },
 };
-/* runtime type ReduceAction217 */
-const struct type type_parser__ReduceAction217 = {
+/* runtime type ReduceAction113 */
+const struct type type_parser__ReduceAction113 = {
 -1, /*CAST DEAD*/
-"ReduceAction217", /* class_name_string */
+"ReduceAction113", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9179,14 +9183,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-831, /* ReduceAction217 */
+153, /* ReduceAction */
+751, /* ReduceAction113 */
 },
 };
-/* runtime type ReduceAction218 */
-const struct type type_parser__ReduceAction218 = {
+/* runtime type ReduceAction114 */
+const struct type type_parser__ReduceAction114 = {
 -1, /*CAST DEAD*/
-"ReduceAction218", /* class_name_string */
+"ReduceAction114", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9194,14 +9198,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-832, /* ReduceAction218 */
+153, /* ReduceAction */
+752, /* ReduceAction114 */
 },
 };
-/* runtime type ReduceAction219 */
-const struct type type_parser__ReduceAction219 = {
+/* runtime type ReduceAction115 */
+const struct type type_parser__ReduceAction115 = {
 -1, /*CAST DEAD*/
-"ReduceAction219", /* class_name_string */
+"ReduceAction115", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9209,14 +9213,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-833, /* ReduceAction219 */
+153, /* ReduceAction */
+753, /* ReduceAction115 */
 },
 };
-/* runtime type ReduceAction220 */
-const struct type type_parser__ReduceAction220 = {
+/* runtime type ReduceAction116 */
+const struct type type_parser__ReduceAction116 = {
 -1, /*CAST DEAD*/
-"ReduceAction220", /* class_name_string */
+"ReduceAction116", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9224,14 +9228,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-834, /* ReduceAction220 */
+153, /* ReduceAction */
+754, /* ReduceAction116 */
 },
 };
-/* runtime type ReduceAction221 */
-const struct type type_parser__ReduceAction221 = {
+/* runtime type ReduceAction117 */
+const struct type type_parser__ReduceAction117 = {
 -1, /*CAST DEAD*/
-"ReduceAction221", /* class_name_string */
+"ReduceAction117", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9239,14 +9243,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-835, /* ReduceAction221 */
+153, /* ReduceAction */
+755, /* ReduceAction117 */
 },
 };
-/* runtime type ReduceAction222 */
-const struct type type_parser__ReduceAction222 = {
+/* runtime type ReduceAction119 */
+const struct type type_parser__ReduceAction119 = {
 -1, /*CAST DEAD*/
-"ReduceAction222", /* class_name_string */
+"ReduceAction119", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9254,14 +9258,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-836, /* ReduceAction222 */
+153, /* ReduceAction */
+756, /* ReduceAction119 */
 },
 };
-/* runtime type ReduceAction223 */
-const struct type type_parser__ReduceAction223 = {
+/* runtime type ReduceAction120 */
+const struct type type_parser__ReduceAction120 = {
 -1, /*CAST DEAD*/
-"ReduceAction223", /* class_name_string */
+"ReduceAction120", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9269,14 +9273,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-837, /* ReduceAction223 */
+153, /* ReduceAction */
+757, /* ReduceAction120 */
 },
 };
-/* runtime type ReduceAction224 */
-const struct type type_parser__ReduceAction224 = {
+/* runtime type ReduceAction121 */
+const struct type type_parser__ReduceAction121 = {
 -1, /*CAST DEAD*/
-"ReduceAction224", /* class_name_string */
+"ReduceAction121", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9284,14 +9288,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-838, /* ReduceAction224 */
+153, /* ReduceAction */
+758, /* ReduceAction121 */
 },
 };
-/* runtime type ReduceAction225 */
-const struct type type_parser__ReduceAction225 = {
+/* runtime type ReduceAction122 */
+const struct type type_parser__ReduceAction122 = {
 -1, /*CAST DEAD*/
-"ReduceAction225", /* class_name_string */
+"ReduceAction122", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9299,14 +9303,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-839, /* ReduceAction225 */
+153, /* ReduceAction */
+759, /* ReduceAction122 */
 },
 };
-/* runtime type ReduceAction226 */
-const struct type type_parser__ReduceAction226 = {
+/* runtime type ReduceAction123 */
+const struct type type_parser__ReduceAction123 = {
 -1, /*CAST DEAD*/
-"ReduceAction226", /* class_name_string */
+"ReduceAction123", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9314,14 +9318,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-840, /* ReduceAction226 */
+153, /* ReduceAction */
+760, /* ReduceAction123 */
 },
 };
-/* runtime type ReduceAction227 */
-const struct type type_parser__ReduceAction227 = {
+/* runtime type ReduceAction124 */
+const struct type type_parser__ReduceAction124 = {
 -1, /*CAST DEAD*/
-"ReduceAction227", /* class_name_string */
+"ReduceAction124", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9329,14 +9333,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-841, /* ReduceAction227 */
+153, /* ReduceAction */
+761, /* ReduceAction124 */
 },
 };
-/* runtime type ReduceAction228 */
-const struct type type_parser__ReduceAction228 = {
+/* runtime type ReduceAction125 */
+const struct type type_parser__ReduceAction125 = {
 -1, /*CAST DEAD*/
-"ReduceAction228", /* class_name_string */
+"ReduceAction125", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9344,14 +9348,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-842, /* ReduceAction228 */
+153, /* ReduceAction */
+762, /* ReduceAction125 */
 },
 };
-/* runtime type ReduceAction229 */
-const struct type type_parser__ReduceAction229 = {
+/* runtime type ReduceAction126 */
+const struct type type_parser__ReduceAction126 = {
 -1, /*CAST DEAD*/
-"ReduceAction229", /* class_name_string */
+"ReduceAction126", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9359,14 +9363,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-843, /* ReduceAction229 */
+153, /* ReduceAction */
+763, /* ReduceAction126 */
 },
 };
-/* runtime type ReduceAction232 */
-const struct type type_parser__ReduceAction232 = {
+/* runtime type ReduceAction128 */
+const struct type type_parser__ReduceAction128 = {
 -1, /*CAST DEAD*/
-"ReduceAction232", /* class_name_string */
+"ReduceAction128", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9374,14 +9378,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-844, /* ReduceAction232 */
+153, /* ReduceAction */
+764, /* ReduceAction128 */
 },
 };
-/* runtime type ReduceAction233 */
-const struct type type_parser__ReduceAction233 = {
+/* runtime type ReduceAction129 */
+const struct type type_parser__ReduceAction129 = {
 -1, /*CAST DEAD*/
-"ReduceAction233", /* class_name_string */
+"ReduceAction129", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9389,14 +9393,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-845, /* ReduceAction233 */
+153, /* ReduceAction */
+765, /* ReduceAction129 */
 },
 };
-/* runtime type ReduceAction234 */
-const struct type type_parser__ReduceAction234 = {
+/* runtime type ReduceAction131 */
+const struct type type_parser__ReduceAction131 = {
 -1, /*CAST DEAD*/
-"ReduceAction234", /* class_name_string */
+"ReduceAction131", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9404,14 +9408,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-846, /* ReduceAction234 */
+153, /* ReduceAction */
+766, /* ReduceAction131 */
 },
 };
-/* runtime type ReduceAction235 */
-const struct type type_parser__ReduceAction235 = {
+/* runtime type ReduceAction132 */
+const struct type type_parser__ReduceAction132 = {
 -1, /*CAST DEAD*/
-"ReduceAction235", /* class_name_string */
+"ReduceAction132", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9419,14 +9423,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-847, /* ReduceAction235 */
+153, /* ReduceAction */
+767, /* ReduceAction132 */
 },
 };
-/* runtime type ReduceAction236 */
-const struct type type_parser__ReduceAction236 = {
+/* runtime type ReduceAction133 */
+const struct type type_parser__ReduceAction133 = {
 -1, /*CAST DEAD*/
-"ReduceAction236", /* class_name_string */
+"ReduceAction133", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9434,14 +9438,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-848, /* ReduceAction236 */
+153, /* ReduceAction */
+768, /* ReduceAction133 */
 },
 };
-/* runtime type ReduceAction237 */
-const struct type type_parser__ReduceAction237 = {
+/* runtime type ReduceAction134 */
+const struct type type_parser__ReduceAction134 = {
 -1, /*CAST DEAD*/
-"ReduceAction237", /* class_name_string */
+"ReduceAction134", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9449,14 +9453,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-849, /* ReduceAction237 */
+153, /* ReduceAction */
+769, /* ReduceAction134 */
 },
 };
-/* runtime type ReduceAction238 */
-const struct type type_parser__ReduceAction238 = {
+/* runtime type ReduceAction135 */
+const struct type type_parser__ReduceAction135 = {
 -1, /*CAST DEAD*/
-"ReduceAction238", /* class_name_string */
+"ReduceAction135", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9464,14 +9468,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-850, /* ReduceAction238 */
+153, /* ReduceAction */
+770, /* ReduceAction135 */
 },
 };
-/* runtime type ReduceAction239 */
-const struct type type_parser__ReduceAction239 = {
+/* runtime type ReduceAction136 */
+const struct type type_parser__ReduceAction136 = {
 -1, /*CAST DEAD*/
-"ReduceAction239", /* class_name_string */
+"ReduceAction136", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9479,14 +9483,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-851, /* ReduceAction239 */
+153, /* ReduceAction */
+771, /* ReduceAction136 */
 },
 };
-/* runtime type ReduceAction240 */
-const struct type type_parser__ReduceAction240 = {
+/* runtime type ReduceAction137 */
+const struct type type_parser__ReduceAction137 = {
 -1, /*CAST DEAD*/
-"ReduceAction240", /* class_name_string */
+"ReduceAction137", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9494,14 +9498,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-852, /* ReduceAction240 */
+153, /* ReduceAction */
+772, /* ReduceAction137 */
 },
 };
-/* runtime type ReduceAction241 */
-const struct type type_parser__ReduceAction241 = {
+/* runtime type ReduceAction138 */
+const struct type type_parser__ReduceAction138 = {
 -1, /*CAST DEAD*/
-"ReduceAction241", /* class_name_string */
+"ReduceAction138", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9509,14 +9513,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-853, /* ReduceAction241 */
+153, /* ReduceAction */
+773, /* ReduceAction138 */
 },
 };
-/* runtime type ReduceAction242 */
-const struct type type_parser__ReduceAction242 = {
+/* runtime type ReduceAction139 */
+const struct type type_parser__ReduceAction139 = {
 -1, /*CAST DEAD*/
-"ReduceAction242", /* class_name_string */
+"ReduceAction139", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9524,14 +9528,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-854, /* ReduceAction242 */
+153, /* ReduceAction */
+774, /* ReduceAction139 */
 },
 };
-/* runtime type ReduceAction243 */
-const struct type type_parser__ReduceAction243 = {
+/* runtime type ReduceAction140 */
+const struct type type_parser__ReduceAction140 = {
 -1, /*CAST DEAD*/
-"ReduceAction243", /* class_name_string */
+"ReduceAction140", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9539,14 +9543,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-855, /* ReduceAction243 */
+153, /* ReduceAction */
+775, /* ReduceAction140 */
 },
 };
-/* runtime type ReduceAction244 */
-const struct type type_parser__ReduceAction244 = {
+/* runtime type ReduceAction142 */
+const struct type type_parser__ReduceAction142 = {
 -1, /*CAST DEAD*/
-"ReduceAction244", /* class_name_string */
+"ReduceAction142", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9554,14 +9558,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-856, /* ReduceAction244 */
+153, /* ReduceAction */
+776, /* ReduceAction142 */
 },
 };
-/* runtime type ReduceAction247 */
-const struct type type_parser__ReduceAction247 = {
+/* runtime type ReduceAction143 */
+const struct type type_parser__ReduceAction143 = {
 -1, /*CAST DEAD*/
-"ReduceAction247", /* class_name_string */
+"ReduceAction143", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9569,14 +9573,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-857, /* ReduceAction247 */
+153, /* ReduceAction */
+777, /* ReduceAction143 */
 },
 };
-/* runtime type ReduceAction249 */
-const struct type type_parser__ReduceAction249 = {
+/* runtime type ReduceAction144 */
+const struct type type_parser__ReduceAction144 = {
 -1, /*CAST DEAD*/
-"ReduceAction249", /* class_name_string */
+"ReduceAction144", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9584,14 +9588,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-858, /* ReduceAction249 */
+153, /* ReduceAction */
+778, /* ReduceAction144 */
 },
 };
-/* runtime type ReduceAction250 */
-const struct type type_parser__ReduceAction250 = {
+/* runtime type ReduceAction145 */
+const struct type type_parser__ReduceAction145 = {
 -1, /*CAST DEAD*/
-"ReduceAction250", /* class_name_string */
+"ReduceAction145", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9599,14 +9603,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-859, /* ReduceAction250 */
+153, /* ReduceAction */
+779, /* ReduceAction145 */
 },
 };
-/* runtime type ReduceAction251 */
-const struct type type_parser__ReduceAction251 = {
+/* runtime type ReduceAction146 */
+const struct type type_parser__ReduceAction146 = {
 -1, /*CAST DEAD*/
-"ReduceAction251", /* class_name_string */
+"ReduceAction146", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9614,14 +9618,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-860, /* ReduceAction251 */
+153, /* ReduceAction */
+780, /* ReduceAction146 */
 },
 };
-/* runtime type ReduceAction252 */
-const struct type type_parser__ReduceAction252 = {
+/* runtime type ReduceAction148 */
+const struct type type_parser__ReduceAction148 = {
 -1, /*CAST DEAD*/
-"ReduceAction252", /* class_name_string */
+"ReduceAction148", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9629,14 +9633,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-861, /* ReduceAction252 */
+153, /* ReduceAction */
+781, /* ReduceAction148 */
 },
 };
-/* runtime type ReduceAction254 */
-const struct type type_parser__ReduceAction254 = {
+/* runtime type ReduceAction149 */
+const struct type type_parser__ReduceAction149 = {
 -1, /*CAST DEAD*/
-"ReduceAction254", /* class_name_string */
+"ReduceAction149", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9644,14 +9648,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-862, /* ReduceAction254 */
+153, /* ReduceAction */
+782, /* ReduceAction149 */
 },
 };
-/* runtime type ReduceAction256 */
-const struct type type_parser__ReduceAction256 = {
+/* runtime type ReduceAction150 */
+const struct type type_parser__ReduceAction150 = {
 -1, /*CAST DEAD*/
-"ReduceAction256", /* class_name_string */
+"ReduceAction150", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9659,14 +9663,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-863, /* ReduceAction256 */
+153, /* ReduceAction */
+783, /* ReduceAction150 */
 },
 };
-/* runtime type ReduceAction257 */
-const struct type type_parser__ReduceAction257 = {
+/* runtime type ReduceAction151 */
+const struct type type_parser__ReduceAction151 = {
 -1, /*CAST DEAD*/
-"ReduceAction257", /* class_name_string */
+"ReduceAction151", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9674,14 +9678,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-864, /* ReduceAction257 */
+153, /* ReduceAction */
+784, /* ReduceAction151 */
 },
 };
-/* runtime type ReduceAction258 */
-const struct type type_parser__ReduceAction258 = {
+/* runtime type ReduceAction152 */
+const struct type type_parser__ReduceAction152 = {
 -1, /*CAST DEAD*/
-"ReduceAction258", /* class_name_string */
+"ReduceAction152", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9689,14 +9693,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-865, /* ReduceAction258 */
+153, /* ReduceAction */
+785, /* ReduceAction152 */
 },
 };
-/* runtime type ReduceAction259 */
-const struct type type_parser__ReduceAction259 = {
+/* runtime type ReduceAction153 */
+const struct type type_parser__ReduceAction153 = {
 -1, /*CAST DEAD*/
-"ReduceAction259", /* class_name_string */
+"ReduceAction153", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9704,14 +9708,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-866, /* ReduceAction259 */
+153, /* ReduceAction */
+786, /* ReduceAction153 */
 },
 };
-/* runtime type ReduceAction260 */
-const struct type type_parser__ReduceAction260 = {
+/* runtime type ReduceAction154 */
+const struct type type_parser__ReduceAction154 = {
 -1, /*CAST DEAD*/
-"ReduceAction260", /* class_name_string */
+"ReduceAction154", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9719,14 +9723,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-867, /* ReduceAction260 */
+153, /* ReduceAction */
+787, /* ReduceAction154 */
 },
 };
-/* runtime type ReduceAction261 */
-const struct type type_parser__ReduceAction261 = {
+/* runtime type ReduceAction155 */
+const struct type type_parser__ReduceAction155 = {
 -1, /*CAST DEAD*/
-"ReduceAction261", /* class_name_string */
+"ReduceAction155", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9734,14 +9738,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-868, /* ReduceAction261 */
+153, /* ReduceAction */
+788, /* ReduceAction155 */
 },
 };
-/* runtime type ReduceAction262 */
-const struct type type_parser__ReduceAction262 = {
+/* runtime type ReduceAction159 */
+const struct type type_parser__ReduceAction159 = {
 -1, /*CAST DEAD*/
-"ReduceAction262", /* class_name_string */
+"ReduceAction159", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9749,14 +9753,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-869, /* ReduceAction262 */
+153, /* ReduceAction */
+789, /* ReduceAction159 */
 },
 };
-/* runtime type ReduceAction263 */
-const struct type type_parser__ReduceAction263 = {
+/* runtime type ReduceAction160 */
+const struct type type_parser__ReduceAction160 = {
 -1, /*CAST DEAD*/
-"ReduceAction263", /* class_name_string */
+"ReduceAction160", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9764,14 +9768,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-870, /* ReduceAction263 */
+153, /* ReduceAction */
+790, /* ReduceAction160 */
 },
 };
-/* runtime type ReduceAction264 */
-const struct type type_parser__ReduceAction264 = {
+/* runtime type ReduceAction161 */
+const struct type type_parser__ReduceAction161 = {
 -1, /*CAST DEAD*/
-"ReduceAction264", /* class_name_string */
+"ReduceAction161", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9779,14 +9783,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-871, /* ReduceAction264 */
+153, /* ReduceAction */
+791, /* ReduceAction161 */
 },
 };
-/* runtime type ReduceAction265 */
-const struct type type_parser__ReduceAction265 = {
+/* runtime type ReduceAction162 */
+const struct type type_parser__ReduceAction162 = {
 -1, /*CAST DEAD*/
-"ReduceAction265", /* class_name_string */
+"ReduceAction162", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9794,14 +9798,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-872, /* ReduceAction265 */
+153, /* ReduceAction */
+792, /* ReduceAction162 */
 },
 };
-/* runtime type ReduceAction267 */
-const struct type type_parser__ReduceAction267 = {
+/* runtime type ReduceAction163 */
+const struct type type_parser__ReduceAction163 = {
 -1, /*CAST DEAD*/
-"ReduceAction267", /* class_name_string */
+"ReduceAction163", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9809,14 +9813,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-873, /* ReduceAction267 */
+153, /* ReduceAction */
+793, /* ReduceAction163 */
 },
 };
-/* runtime type ReduceAction268 */
-const struct type type_parser__ReduceAction268 = {
+/* runtime type ReduceAction164 */
+const struct type type_parser__ReduceAction164 = {
 -1, /*CAST DEAD*/
-"ReduceAction268", /* class_name_string */
+"ReduceAction164", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9824,14 +9828,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-874, /* ReduceAction268 */
+153, /* ReduceAction */
+794, /* ReduceAction164 */
 },
 };
-/* runtime type ReduceAction270 */
-const struct type type_parser__ReduceAction270 = {
+/* runtime type ReduceAction165 */
+const struct type type_parser__ReduceAction165 = {
 -1, /*CAST DEAD*/
-"ReduceAction270", /* class_name_string */
+"ReduceAction165", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9839,14 +9843,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-875, /* ReduceAction270 */
+153, /* ReduceAction */
+795, /* ReduceAction165 */
 },
 };
-/* runtime type ReduceAction271 */
-const struct type type_parser__ReduceAction271 = {
+/* runtime type ReduceAction166 */
+const struct type type_parser__ReduceAction166 = {
 -1, /*CAST DEAD*/
-"ReduceAction271", /* class_name_string */
+"ReduceAction166", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9854,14 +9858,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-876, /* ReduceAction271 */
+153, /* ReduceAction */
+796, /* ReduceAction166 */
 },
 };
-/* runtime type ReduceAction272 */
-const struct type type_parser__ReduceAction272 = {
+/* runtime type ReduceAction167 */
+const struct type type_parser__ReduceAction167 = {
 -1, /*CAST DEAD*/
-"ReduceAction272", /* class_name_string */
+"ReduceAction167", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9869,14 +9873,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-877, /* ReduceAction272 */
+153, /* ReduceAction */
+797, /* ReduceAction167 */
 },
 };
-/* runtime type ReduceAction274 */
-const struct type type_parser__ReduceAction274 = {
+/* runtime type ReduceAction168 */
+const struct type type_parser__ReduceAction168 = {
 -1, /*CAST DEAD*/
-"ReduceAction274", /* class_name_string */
+"ReduceAction168", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9884,14 +9888,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-878, /* ReduceAction274 */
+153, /* ReduceAction */
+798, /* ReduceAction168 */
 },
 };
-/* runtime type ReduceAction275 */
-const struct type type_parser__ReduceAction275 = {
+/* runtime type ReduceAction172 */
+const struct type type_parser__ReduceAction172 = {
 -1, /*CAST DEAD*/
-"ReduceAction275", /* class_name_string */
+"ReduceAction172", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9899,14 +9903,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-879, /* ReduceAction275 */
+153, /* ReduceAction */
+799, /* ReduceAction172 */
 },
 };
-/* runtime type ReduceAction277 */
-const struct type type_parser__ReduceAction277 = {
+/* runtime type ReduceAction173 */
+const struct type type_parser__ReduceAction173 = {
 -1, /*CAST DEAD*/
-"ReduceAction277", /* class_name_string */
+"ReduceAction173", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9914,14 +9918,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-880, /* ReduceAction277 */
+153, /* ReduceAction */
+800, /* ReduceAction173 */
 },
 };
-/* runtime type ReduceAction278 */
-const struct type type_parser__ReduceAction278 = {
+/* runtime type ReduceAction174 */
+const struct type type_parser__ReduceAction174 = {
 -1, /*CAST DEAD*/
-"ReduceAction278", /* class_name_string */
+"ReduceAction174", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9929,14 +9933,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-881, /* ReduceAction278 */
+153, /* ReduceAction */
+801, /* ReduceAction174 */
 },
 };
-/* runtime type ReduceAction279 */
-const struct type type_parser__ReduceAction279 = {
+/* runtime type ReduceAction175 */
+const struct type type_parser__ReduceAction175 = {
 -1, /*CAST DEAD*/
-"ReduceAction279", /* class_name_string */
+"ReduceAction175", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9944,14 +9948,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-882, /* ReduceAction279 */
+153, /* ReduceAction */
+802, /* ReduceAction175 */
 },
 };
-/* runtime type ReduceAction280 */
-const struct type type_parser__ReduceAction280 = {
+/* runtime type ReduceAction176 */
+const struct type type_parser__ReduceAction176 = {
 -1, /*CAST DEAD*/
-"ReduceAction280", /* class_name_string */
+"ReduceAction176", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9959,14 +9963,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-883, /* ReduceAction280 */
+153, /* ReduceAction */
+803, /* ReduceAction176 */
 },
 };
-/* runtime type ReduceAction281 */
-const struct type type_parser__ReduceAction281 = {
+/* runtime type ReduceAction177 */
+const struct type type_parser__ReduceAction177 = {
 -1, /*CAST DEAD*/
-"ReduceAction281", /* class_name_string */
+"ReduceAction177", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9974,14 +9978,14 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-884, /* ReduceAction281 */
+153, /* ReduceAction */
+804, /* ReduceAction177 */
 },
 };
-/* runtime type ReduceAction287 */
-const struct type type_parser__ReduceAction287 = {
+/* runtime type ReduceAction178 */
+const struct type type_parser__ReduceAction178 = {
 -1, /*CAST DEAD*/
-"ReduceAction287", /* class_name_string */
+"ReduceAction178", /* class_name_string */
 -1, /*CAST DEAD*/
 0,
 NULL, /*NO RESOLUTIONS*/
@@ -9989,7 +9993,7 @@ NULL, /*NO RESOLUTIONS*/
 {
 0, /* nullable Object */
 1, /* Object */
-154, /* ReduceAction */
-885, /* ReduceAction287 */
+153, /* ReduceAction */
+805, /* ReduceAction178 */
 },
 };