1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3 
4 #include "nimbase.h"
5 #include <setjmp.h>
6 #include <string.h>
7 #undef LANGUAGE_C
8 #undef MIPSEB
9 #undef MIPSEL
10 #undef PPC
11 #undef R3000
12 #undef R4000
13 #undef i386
14 #undef linux
15 #undef mips
16 #undef near
17 #undef far
18 #undef powerpc
19 #undef unix
20 #define nimfr_(x, y)
21 #define nimln_(x, y)
22 typedef struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug;
23 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
24 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
25 typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
26 typedef struct RootObj RootObj;
27 typedef struct TNimType TNimType;
28 typedef struct TNimNode TNimNode;
29 typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
30 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
31 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
32 typedef struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw;
33 typedef struct tySequence__eiMlYcU7NrAOGD2H36QOOQ tySequence__eiMlYcU7NrAOGD2H36QOOQ;
34 typedef struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ;
35 typedef struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg;
36 typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
37 typedef struct tySequence__oYkV9aFZe0MXcEAprJaOUsA tySequence__oYkV9aFZe0MXcEAprJaOUsA;
38 typedef struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q;
39 typedef struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA tySequence__Mh9agqM29bm9aP5AUL1x7dZGA;
40 typedef struct tySequence__arD7Tw6eD6lvOczWZl9buNg tySequence__arD7Tw6eD6lvOczWZl9buNg;
41 typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
42 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
43 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
44 typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
45 typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
46 typedef struct tySequence__jWKvSdankQPoT5bw9cBU9aiw tySequence__jWKvSdankQPoT5bw9cBU9aiw;
47 typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
48 typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
49 typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
50 typedef struct NimStringDesc NimStringDesc;
51 typedef struct TGenericSeq TGenericSeq;
52 typedef struct tySequence__xSqu3cxq5WeFlOO3YgE6yA tySequence__xSqu3cxq5WeFlOO3YgE6yA;
53 typedef struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w;
54 typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
55 typedef struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w;
56 typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
57 typedef struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ;
58 typedef struct tySequence__Hkw5zrAn53wlKDHdJF1GFA tySequence__Hkw5zrAn53wlKDHdJF1GFA;
59 typedef struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ tySequence__4mZLwkxT8rbt9bf3wXrXYNQ;
60 typedef struct tySequence__rQHmYk1HzcwNxKBymIFHpA tySequence__rQHmYk1HzcwNxKBymIFHpA;
61 typedef struct tySequence__XMM60DtBsc6xYsIpNANkrA tySequence__XMM60DtBsc6xYsIpNANkrA;
62 typedef struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw;
63 typedef struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg;
64 typedef struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg;
65 typedef struct tySequence__mWRMiYLthG9coLjkbElCxkw tySequence__mWRMiYLthG9coLjkbElCxkw;
66 typedef struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyObject_Table__iowAVDkco3qpbEH0z8OmkQ;
67 typedef struct tySequence__bTDCDwD2P7TodzbAefLcSw tySequence__bTDCDwD2P7TodzbAefLcSw;
68 typedef struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w;
69 typedef struct tySequence__3MPVXAHA08SszBrU4ffqEg tySequence__3MPVXAHA08SszBrU4ffqEg;
70 typedef struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw tyObject_Table__KcymdZjUsmGSK8BxmvoJgw;
71 typedef struct tySequence__YCf5zJHm4JI06qpmKwPUWg tySequence__YCf5zJHm4JI06qpmKwPUWg;
72 typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
73 typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
74 typedef struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ;
75 typedef struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA;
76 typedef struct tySequence__61s9cbAniKuBrdHwBhMDfQg tySequence__61s9cbAniKuBrdHwBhMDfQg;
77 typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
78 typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
79 typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
80 typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
81 typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
82 typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
83 typedef struct tySequence__s9byh6WFJ16lPMcmqdaMTHA tySequence__s9byh6WFJ16lPMcmqdaMTHA;
84 typedef struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw tyObject_Table__Ue6w4c82v7gc7t2qntTbAw;
85 typedef struct tySequence__1U9bG8RcAedEeYkQLZjVFKA tySequence__1U9bG8RcAedEeYkQLZjVFKA;
86 typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
87 typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
88 typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
89 typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
90 typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
91 typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
92 typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
93 typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
94 typedef struct tySequence__MAQKEADohlpnXTModtugbQ tySequence__MAQKEADohlpnXTModtugbQ;
95 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
96 typedef struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA;
97 typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
98 typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
99 typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
100 typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
101 typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
102 typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
103 typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
104 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
105 typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
106 typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
107 typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
108 typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
109 typedef struct tySequence__i7xpiUsxyv6cQ1xK3JbcGQ tySequence__i7xpiUsxyv6cQ1xK3JbcGQ;
110 typedef struct Exception Exception;
111 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
112 typedef struct TSafePoint TSafePoint;
113 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
114 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
115 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
116 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
117 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
118 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
119 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
120 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
121 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
122 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
123 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
124 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
125 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
126 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
127 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
128 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
129 typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
130 typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
131 typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
132 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
133 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
134 typedef struct tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg;
135 typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
136 typedef struct tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ;
137 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
138 typedef struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w;
139 typedef struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ;
140 typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
141 typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
142 typedef struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw;
143 typedef struct tySequence__29bS0n2QNyO1R7e0qMMOvLA tySequence__29bS0n2QNyO1R7e0qMMOvLA;
144 typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
145 typedef struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg tySequence__REuPuHuSlOkZ0Q5oqzDrQg;
146 typedef struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA tySequence__I9aQmO9asXXWJ58UI9c8BCSzA;
147 typedef struct tySequence__NyaOkf8ZwxP6rkRF5TOkew tySequence__NyaOkf8ZwxP6rkRF5TOkew;
148 typedef struct tySequence__L9bOt8CaTEmIjgtuZvp6syg tySequence__L9bOt8CaTEmIjgtuZvp6syg;
149 typedef struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ tySequence__im8UB2GsZvUaQ4a1wKGWhQ;
150 typedef struct tySequence__xxnXDLpoqBo8zJzP9b1073g tySequence__xxnXDLpoqBo8zJzP9b1073g;
151 typedef struct tySequence__DfmUmNgVGnYaiV1I6227tw tySequence__DfmUmNgVGnYaiV1I6227tw;
152 typedef struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA tySequence__t8Uv4lEJ4lkuECvP9c6JMhA;
153 typedef struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg;
154 typedef struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ;
155 typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
156 typedef struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g tyObject_Table__CE4eiu6FavV1vmUiTXQ70g;
157 typedef struct tySequence__9bT7o0CflHuiE4VhmtqBPCw tySequence__9bT7o0CflHuiE4VhmtqBPCw;
158 typedef struct tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg;
159 typedef struct tyObject_PackedDecoder__mJy59aKs7COuW5kZ9cw8pGKw tyObject_PackedDecoder__mJy59aKs7COuW5kZ9cw8pGKw;
160 typedef struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw tySequence__vC9cvg0R8tfBaOXXi3sfMzw;
161 typedef struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA;
162 typedef struct tySequence__vv5mGmK03BCr5e3LTZA5Hw tySequence__vv5mGmK03BCr5e3LTZA5Hw;
163 typedef struct tyTuple__8bH5UHA9aimOFoSY4U42gzw tyTuple__8bH5UHA9aimOFoSY4U42gzw;
164 typedef struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ;
165 typedef struct tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA;
166 typedef struct tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ;
167 typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
168 typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
169 typedef struct tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA;
170 typedef struct tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA;
171 typedef struct tySequence__bGUffHlsVXt0g6ZKEF4OfQ tySequence__bGUffHlsVXt0g6ZKEF4OfQ;
172 typedef struct tyTuple__Qqa8F49azZNOOP4FK3LKbhw tyTuple__Qqa8F49azZNOOP4FK3LKbhw;
173 typedef struct tyTuple__KNXySARiHvEh2wA9asnyYmw tyTuple__KNXySARiHvEh2wA9asnyYmw;
174 typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
175 typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
176 typedef struct tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ;
177 typedef struct tySequence__0dpGN6F4ocevqUQGsaf41w tySequence__0dpGN6F4ocevqUQGsaf41w;
178 typedef struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w;
179 typedef struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg;
180 typedef struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ;
181 typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
182 typedef struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag tyTuple__Y6Ewh3MCxsjd1bsriN6Gag;
183 typedef struct tySequence__vGU8AyGT6KxtLJwEg0BpNw tySequence__vGU8AyGT6KxtLJwEg0BpNw;
184 typedef struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw tyTuple__KvKIqRIx9anKcDMu8DPSkHw;
185 typedef struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw;
186 typedef struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q tyObject_Table__TRm6MPqklA8EYBmBMY117Q;
187 typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
188 typedef struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ;
189 typedef struct tySequence__O5RcspOP32YJ4YtU5ppxxA tySequence__O5RcspOP32YJ4YtU5ppxxA;
190 typedef struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg;
191 typedef struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ;
192 typedef struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ;
193 typedef struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg tyTuple__o67sDX0wYbEuhI9cJYAbDtg;
194 typedef struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA;
195 typedef struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg;
196 typedef struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA tySequence__ipEvhpHAmm8ZCn9bZAOdNYA;
197 typedef struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q tyTuple__9aNnDWBFMF44sfFinBpMT4Q;
198 typedef struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg;
199 typedef struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g tySequence__159bHWBGAOOs6U7OZ9cQlO0g;
200 typedef struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ tyTuple__VrD6plbUKJjYKM0lCr3hGQ;
201 typedef struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA;
202 typedef struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA tyTuple__1ZbjBgxAbnye0IFMZ6w4OA;
203 typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
204 typedef struct tyTuple__rplX06U9bjhu9asm5pWdgqsA tyTuple__rplX06U9bjhu9asm5pWdgqsA;
205 typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
206 typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
207 typedef struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A;
208 typedef struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ tyTuple__3i6hlQmqrn6m7tuVN8FHjQ;
209 typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
210 typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
211 typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
212 typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
213 typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
214 typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
215 typedef struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ;
216 typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
217 typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
218 typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
219 typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
220 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
221 typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
222 typedef struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow;
223 typedef struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg;
224 typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
225 typedef struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA tyTuple__Q7r9caOmeWqQGZCIBHhGRUA;
226 typedef struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg;
227 typedef struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw tyTuple__XyJ8LOAZzVVXSsmt09b8uWw;
228 typedef struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA;
229 typedef struct tyTuple__9aoobCDZB4x41HJSOmh0mwA tyTuple__9aoobCDZB4x41HJSOmh0mwA;
230 typedef struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA tyTuple__g0Q6Qx15nK53ce9aLo7YyrA;
231 typedef struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw;
232 typedef struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw;
233 typedef struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA;
234 typedef struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ;
235 typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
236 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
237 NU16 line;
238 NI16 col;
239 NI32 fileIndex;
240 };
241 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
242 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
243 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
244 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
245 struct TNimType {
246 NI size;
247 NI align;
248 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
249 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
250 TNimType* base;
251 TNimNode* node;
252 void* finalizer;
253 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
254 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
255 };
256 struct RootObj {
257 TNimType* m_type;
258 };
259 struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
260   RootObj Sup;
261 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
262 };
263 typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__d88NmFOoQ1OEoX9af4f9aptg[38];
264 struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q {
265 NI counter;
266 tySequence__Mh9agqM29bm9aP5AUL1x7dZGA* data;
267 };
268 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__RcJNn9bSvWdJgUmA1O6sbHA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
269 typedef NU32 tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ;
270 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__39auogS0nN05zO6JrT7za9cQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
271 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__DZXD9cPwIfL76eNszoUR9aVA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
272 typedef struct {
273 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
274 void* ClE_0;
275 } tyProc__7JwrY3AhkVNlleAJXClX9cw;
276 typedef NU32 tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
277 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__qlV9aWvA5wrWVg9bI5PqwJyA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
278 typedef N_NIMCALL_PTR(tyObject_TType__facALICuu8zUj0hjvbTLFg*, tyProc__IDzB9bjws1yntQXPpMRrBvA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
279 typedef struct {
280 N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
281 void* ClE_0;
282 } tyProc__3cacbJ4la9bDJNibHybQSnA;
283 typedef struct {
284 N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, void* ClE_0);
285 void* ClE_0;
286 } tyProc__fMj9boIZZOt9cLWRnD3rtKhA;
287 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
288 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
289 NI elems;
290 NI counter;
291 NI max;
292 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
293 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
294 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
295 };
296 struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
297 NI counter;
298 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
299 };
300 typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
301 typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dc, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, NI col);
302 struct TGenericSeq {
303 NI len;
304 NI reserved;
305 };
306 struct NimStringDesc {
307   TGenericSeq Sup;
308 NIM_CHAR data[SEQ_DECL_SIZE];
309 };
310 typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
311 struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w {
312 tySequence__Bis5AbpONWcIRrPyPJS8Yw* data;
313 NI counter;
314 };
315 struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w {
316 tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
317 NI counter;
318 };
319 struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ {
320 tySequence__Hkw5zrAn53wlKDHdJF1GFA* data;
321 NI counter;
322 };
323 struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug {
324   tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
325 tyObject_TType__facALICuu8zUj0hjvbTLFg* enforceVoidContext;
326 tyObject_TType__facALICuu8zUj0hjvbTLFg* voidType;
327 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
328 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* currentScope;
329 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* moduleScope;
330 tySequence__eiMlYcU7NrAOGD2H36QOOQ* imports;
331 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* topLevelScope;
332 tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
333 tyArray__d88NmFOoQ1OEoX9af4f9aptg intTypeCache;
334 tyObject_TType__facALICuu8zUj0hjvbTLFg* nilTypeCache;
335 tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* matchedConcept;
336 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* friendModules;
337 NI instCounter;
338 NI* templInstCounter;
339 NI inGenericContext;
340 NI inStaticContext;
341 NI inUnrolledContext;
342 NI compilesContextId;
343 NI compilesContextIdGenerator;
344 NI inGenericInst;
345 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* converters;
346 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* patterns;
347 tySequence__oYkV9aFZe0MXcEAprJaOUsA* optionStack;
348 tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMapping;
349 tySequence__arD7Tw6eD6lvOczWZl9buNg* libs;
350 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstExpr;
351 tyProc__39auogS0nN05zO6JrT7za9cQ semExpr;
352 tyProc__39auogS0nN05zO6JrT7za9cQ semTryExpr;
353 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semTryConstExpr;
354 tyProc__DZXD9cPwIfL76eNszoUR9aVA computeRequiresInit;
355 tyProc__7JwrY3AhkVNlleAJXClX9cw hasUnresolvedArgs;
356 tyProc__39auogS0nN05zO6JrT7za9cQ semOperand;
357 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstBoolExpr;
358 tyProc__qlV9aWvA5wrWVg9bI5PqwJyA semOverloadedCall;
359 tyProc__IDzB9bjws1yntQXPpMRrBvA semTypeNode;
360 tyProc__3cacbJ4la9bDJNibHybQSnA semInferredLambda;
361 tyProc__fMj9boIZZOt9cLWRnD3rtKhA semGenerateInstance;
362 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA includedFiles;
363 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA pureEnumFields;
364 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA userPragmas;
365 tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* evalContext;
366 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA unknownIdents;
367 tySequence__jWKvSdankQPoT5bw9cBU9aiw* generics;
368 NI topStmts;
369 NI lastGenericIdx;
370 NI hloLoopDetector;
371 NI inParallelStmt;
372 tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ instTypeBoundOp;
373 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* selfName;
374 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
375 tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
376 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA signatures;
377 NimStringDesc* recursiveDep;
378 NIM_BOOL suggestionsMade;
379 NIM_BOOL isAmbiguous;
380 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
381 NI inTypeContext;
382 NI inConceptDecl;
383 tySequence__xSqu3cxq5WeFlOO3YgE6yA* unusedImports;
384 tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w exportIndirections;
385 tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w importModuleMap;
386 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastTLineInfo;
387 tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ sideEffects;
388 NI inUncheckedAssignSection;
389 };
390 struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw {
391 tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* data;
392 NI counter;
393 };
394 struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg {
395 tySequence__mWRMiYLthG9coLjkbElCxkw* data;
396 NI counter;
397 };
398 struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ {
399 tySequence__bTDCDwD2P7TodzbAefLcSw* data;
400 NI counter;
401 };
402 typedef tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ[5];
403 struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w {
404 tySequence__3MPVXAHA08SszBrU4ffqEg* data;
405 NI counter;
406 };
407 struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw {
408 tySequence__YCf5zJHm4JI06qpmKwPUWg* data;
409 NI counter;
410 };
411 struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
412 tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
413 NI counter;
414 };
415 typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
416 typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
417 typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
418 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
419 typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
420 struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ {
421 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
422 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
423 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
424 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
425 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
426 };
427 struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA {
428 tySequence__61s9cbAniKuBrdHwBhMDfQg* data;
429 NI counter;
430 };
431 struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
432 tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
433 NI counter;
434 };
435 struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
436 tySequence__kxu4GK0onha2t9bo86mdVAg* data;
437 NI counter;
438 };
439 typedef struct {
440 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
441 void* ClE_0;
442 } tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
443 typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__9bjuenwQUcqO3lbmS2wX7uA[65];
444 struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw {
445 tySequence__1U9bG8RcAedEeYkQLZjVFKA* data;
446 NI counter;
447 };
448 struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
449 tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
450 NI counter;
451 };
452 typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__VHDwJFdIqpwtpUGuxiXUwg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
453 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__mjUN9alLJ31lnSKkUsuyWMw) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
454 struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
455 tySequence__23SMqauuRsbDANhthj9bWlA* data;
456 NI counter;
457 };
458 struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
459 tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
460 NI counter;
461 };
462 struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
463 tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
464 NI counter;
465 };
466 typedef N_NIMCALL_PTR(void, tyProc__TjycsqkDBjsxd4da6KYTng) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
467 typedef N_NIMCALL_PTR(void, tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
468 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__J7Jq15ZScfKLqcLx8sEz9cA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
469 struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA {
470 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opNot;
471 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opContains;
472 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLe;
473 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLt;
474 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAnd;
475 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opOr;
476 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opIsNil;
477 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opEq;
478 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAdd;
479 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opSub;
480 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opMul;
481 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opDiv;
482 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLen;
483 };
484 struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
485 tySequence__4mZLwkxT8rbt9bf3wXrXYNQ* ifaces;
486 tySequence__rQHmYk1HzcwNxKBymIFHpA* packed_0;
487 tySequence__XMM60DtBsc6xYsIpNANkrA* encoders;
488 tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw typeInstCache;
489 tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg procInstCache;
490 tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ attachedOps;
491 tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w methodsPerType;
492 tyObject_Table__KcymdZjUsmGSK8BxmvoJgw enumToStringProcs;
493 tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA emittedTypeInfo;
494 tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ startupPackedConfig;
495 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
496 tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA modulesPerPackage;
497 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA deps;
498 tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
499 NIM_BOOL suggestMode;
500 NIM_BOOL invalidTransitiveClosure;
501 tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
502 tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
503 RootObj* backend;
504 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
505 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
506 RootObj* vm;
507 tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
508 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* usageSym;
509 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* owners;
510 tySequence__s9byh6WFJ16lPMcmqdaMTHA* methods;
511 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* systemModule;
512 tyArray__9bjuenwQUcqO3lbmS2wX7uA sysTypes;
513 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
514 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
515 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageTypes;
516 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
517 tyObject_Table__Ue6w4c82v7gc7t2qntTbAw canonTypes;
518 tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
519 tyProc__VHDwJFdIqpwtpUGuxiXUwg importModuleCallback;
520 tyProc__mjUN9alLJ31lnSKkUsuyWMw includeFileCallback;
521 tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
522 tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
523 tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
524 tySequence__MAQKEADohlpnXTModtugbQ* passes;
525 tyProc__TjycsqkDBjsxd4da6KYTng onDefinition;
526 tyProc__TjycsqkDBjsxd4da6KYTng onDefinitionResolveForward;
527 tyProc__TjycsqkDBjsxd4da6KYTng onUsage;
528 tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
529 tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ strongSemCheck;
530 tyProc__J7Jq15ZScfKLqcLx8sEz9cA compatibleProps;
531 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
532 tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA operators;
533 };
534 typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
535 typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
536 struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
537 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
538 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
539 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
540 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
541 NI intSize;
542 NI floatSize;
543 NI ptrSize;
544 NimStringDesc* tnl;
545 };
546 typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
547 struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
548 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
549 NIM_BOOL trackPosAttached;
550 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
551 tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
552 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
553 tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
554 tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
555 NI32 systemFileIdx;
556 };
557 typedef NU8 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
558 typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
559 typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
560 typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
561 struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
562 tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
563 NI counter;
564 };
565 typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
566 typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
567 typedef NU8 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug[11];
568 struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
569 NI Field0;
570 NI Field1;
571 NI Field2;
572 };
573 typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
574 typedef struct {
575 N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
576 void* ClE_0;
577 } tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
578 typedef struct {
579 N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
580 void* ClE_0;
581 } tyProc__k2HFjxisIgDALbEUFojxaQ;
582 typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
583 typedef struct {
584 N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
585 void* ClE_0;
586 } tyProc__oL9coyIA2VDTGdUcur9aL9bew;
587 struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
588 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
589 tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
590 NI linesCompiled;
591 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
592 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
593 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
594 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
595 tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
596 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
597 NimStringDesc* unitSep;
598 NI evalTemplateCounter;
599 NI evalMacroCounter;
600 NI8 exitcode;
601 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
602 NimStringDesc* cmdInput;
603 NIM_BOOL projectIsCmd;
604 NIM_BOOL implicitCmd;
605 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
606 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
607 NIM_BOOL hintProcessingDots;
608 NI verbosity;
609 NI numberOfProcessors;
610 NF lastCmdTime;
611 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
612 NI spellSuggestMax;
613 tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
614 NimStringDesc* headerFile;
615 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
616 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
617 NimStringDesc* arguments;
618 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
619 NIM_BOOL oldNewlines;
620 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
621 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug modifiedyNotes;
622 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug cmdlineNotes;
623 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug foreignPackageNotes;
624 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug notes;
625 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug warningAsErrors;
626 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug mainPackageNotes;
627 NI mainPackageId;
628 NI errorCounter;
629 NI hintCounter;
630 NI warnCounter;
631 NI errorMax;
632 NI maxLoopIterationsVM;
633 NIM_BOOL isVmTrace;
634 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
635 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
636 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
637 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
638 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
639 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
640 NimStringDesc* outFile;
641 NimStringDesc* outDir;
642 NimStringDesc* jsonBuildFile;
643 NimStringDesc* prefixDir;
644 NimStringDesc* libpath;
645 NimStringDesc* nimcacheDir;
646 tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
647 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
648 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
649 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
650 NimStringDesc* projectName;
651 NimStringDesc* projectPath;
652 NimStringDesc* projectFull;
653 NIM_BOOL projectIsStdin;
654 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug lastMsgWasDot;
655 NI32 projectMainIdx;
656 NI32 projectMainIdx2;
657 NimStringDesc* command;
658 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
659 NimStringDesc* commandLine;
660 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
661 NIM_BOOL keepComments;
662 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
663 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
664 NimStringDesc* docSeeSrcUrl;
665 NimStringDesc* docRoot;
666 NimStringDesc* docCmd;
667 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
668 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
669 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
670 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
671 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
672 NimStringDesc* linkOptionsCmd;
673 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
674 NimStringDesc* linkOptions;
675 NimStringDesc* compileOptions;
676 NimStringDesc* cCompilerPath;
677 tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
678 tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
679 NI suggestVersion;
680 NI suggestMaxResults;
681 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
682 tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
683 tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
684 NimStringDesc* cppCustomNamespace;
685 NimStringDesc* nimMainPrefix;
686 tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
687 };
688 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
689 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
690 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
691 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
692 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
693 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
694 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
695 union{
696 struct {NI64 intVal;
697 } _kind_1;
698 struct {NF floatVal;
699 } _kind_2;
700 struct {NimStringDesc* strVal;
701 } _kind_3;
702 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
703 } _kind_4;
704 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
705 } _kind_5;
706 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
707 } _kind_6;
708 };
709 };
710 struct Exception {
711   RootObj Sup;
712 Exception* parent;
713 NCSTRING name;
714 NimStringDesc* message;
715 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
716 Exception* up;
717 };
718 struct TSafePoint {
719 TSafePoint* prev;
720 NI status;
721 jmp_buf context;
722 };
723 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
724 struct TNimNode {
725 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
726 NI offset;
727 TNimType* typ;
728 NCSTRING name;
729 NI len;
730 TNimNode** sons;
731 };
732 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
733 NI refcount;
734 TNimType* typ;
735 };
736 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
737 void* bottom;
738 };
739 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
740 NI len;
741 NI cap;
742 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
743 };
744 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
745 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
746 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
747 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
748 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
749 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
750 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
751 };
752 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
753 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
754 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
755 NI key;
756 NI upperBound;
757 NI level;
758 };
759 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
760 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
761 NI Field1;
762 };
763 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
764 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
765 NI len;
766 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
767 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
768 };
769 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
770 NI minLargeObj;
771 NI maxLargeObj;
772 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
773 NU32 flBitmap;
774 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
775 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
776 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
777 NI currMem;
778 NI maxMem;
779 NI freeMem;
780 NI occ;
781 NI lastSize;
782 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
783 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
784 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
785 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
786 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
787 NIM_BOOL locked;
788 NIM_BOOL blockChunkSizeIncrease;
789 NI nextChunkSize;
790 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
791 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
792 };
793 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
794 NI stackScans;
795 NI cycleCollections;
796 NI maxThreshold;
797 NI maxStackSize;
798 NI maxStackCells;
799 NI cycleTableSize;
800 NI64 maxPause;
801 };
802 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
803 NI counter;
804 NI max;
805 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
806 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
807 };
808 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
809 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
810 NI cycleThreshold;
811 NI zctThreshold;
812 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
813 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
814 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
815 NI recGcLock;
816 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
817 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
818 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
819 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
820 NI gcThreadId;
821 };
822 typedef NU8 tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q;
823 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
824 NI32 module;
825 NI32 item;
826 };
827 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
828   RootObj Sup;
829 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
830 };
831 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
832 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
833 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
834 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
835 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
836 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
837 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
838 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
839 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
840 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
841 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
842 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
843 };
844 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
845   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
846 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
847 union{
848 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
849 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
850 } _kind_1;
851 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
852 NI bitsize;
853 NI alignment;
854 } _kind_2;
855 };
856 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
857 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
858 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
859 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
860 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
861 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
862 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
863 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
864 NI position;
865 NI offset;
866 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
867 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
868 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
869 };
870 struct tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg {
871 NI h;
872 };
873 struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw {
874 NI depthLevel;
875 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA symbols;
876 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* parent;
877 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* allowPrivateAccess;
878 };
879 struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
880 NI id;
881 NimStringDesc* s;
882 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
883 NI h;
884 };
885 struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ {
886 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ section;
887 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* qualifiedPath;
888 NimStringDesc** name;
889 NimStringDesc* filePath;
890 NI line;
891 NI column;
892 NimStringDesc* doc;
893 NimStringDesc* forth;
894 NI quality;
895 NIM_BOOL isGlobal;
896 NIM_BOOL contextFits;
897 tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q prefix;
898 NU8 symkind;
899 NI scope;
900 NI localUsages;
901 NI globalUsages;
902 NI tokenLen;
903 NI version;
904 };
905 typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
906 typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
907 typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
908 struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
909 NI a;
910 NI b;
911 };
912 typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
913 struct tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ {
914   RootObj Sup;
915 NI colonstate_;
916 NimStringDesc* line1;
917 };
918 typedef struct {
919 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (NI col, void* ClE_0);
920 void* ClE_0;
921 } tyProc__cOOsXj9cY0bKt2oqNqLbhZw;
922 typedef N_CLOSURE_PTR(NIM_BOOL, TM__EV5hHJmjIY9cla9b9be7fSVJQ_5) (NI col);
923 typedef N_CLOSURE_PTR(NIM_BOOL, TM__EV5hHJmjIY9cla9b9be7fSVJQ_6) (NI col);
924 typedef N_CLOSURE_PTR(NIM_BOOL, TM__EV5hHJmjIY9cla9b9be7fSVJQ_7) (NI col);
925 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
926 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
927 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
928 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
929   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
930 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
931 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
932 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
933 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
934 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
935 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
936 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
937 NI64 size;
938 NI16 align;
939 NI16 paddingAtEnd;
940 NI16 lockLevel;
941 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
942 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
943 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
944 };
945 typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
946 typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
947 typedef NU8 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q;
948 struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw {
949 tySequence__29bS0n2QNyO1R7e0qMMOvLA* nodes;
950 };
951 typedef NU8 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g;
952 struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg {
953 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
954 tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
955 };
956 struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ {
957 tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
958 tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
959 };
960 struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ {
961 NimStringDesc* definedSymbols;
962 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw moduleFlags;
963 tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
964 tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
965 tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw toReplay;
966 tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw topLevel;
967 tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw bodies;
968 tySequence__b89aLriiJnVTD186H6zNIgg* exports;
969 tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
970 tySequence__REuPuHuSlOkZ0Q5oqzDrQg* reexports;
971 tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
972 tySequence__48JTohSgTy339bRxHzUD8KA* converters;
973 tySequence__48JTohSgTy339bRxHzUD8KA* methods;
974 tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
975 tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
976 tySequence__I9aQmO9asXXWJ58UI9c8BCSzA* macroUsages;
977 tySequence__NyaOkf8ZwxP6rkRF5TOkew* typeInstCache;
978 tySequence__L9bOt8CaTEmIjgtuZvp6syg* procInstCache;
979 tySequence__im8UB2GsZvUaQ4a1wKGWhQ* attachedOps;
980 tySequence__xxnXDLpoqBo8zJzP9b1073g* methodsPerType;
981 tySequence__NyaOkf8ZwxP6rkRF5TOkew* enumToStringProcs;
982 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
983 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g backendFlags;
984 tySequence__DfmUmNgVGnYaiV1I6227tw* syms;
985 tySequence__t8Uv4lEJ4lkuECvP9c6JMhA* types;
986 tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg strings;
987 tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ numbers;
988 tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ cfg;
989 };
990 struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g {
991 tySequence__9bT7o0CflHuiE4VhmtqBPCw* data;
992 NI counter;
993 };
994 struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w {
995 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q status;
996 NIM_BOOL symsInit;
997 NIM_BOOL typesInit;
998 NIM_BOOL loadedButAliveSetChanged;
999 tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ fromDisk;
1000 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* syms;
1001 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* types;
1002 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
1003 tyObject_Table__CE4eiu6FavV1vmUiTXQ70g iface;
1004 tyObject_Table__CE4eiu6FavV1vmUiTXQ70g ifaceHidden;
1005 };
1006 struct tyObject_PackedDecoder__mJy59aKs7COuW5kZ9cw8pGKw {
1007 NI lastModule;
1008 NU32 lastLit;
1009 NI32 lastFile;
1010 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
1011 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
1012 };
1013 struct tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg {
1014 tyObject_PackedDecoder__mJy59aKs7COuW5kZ9cw8pGKw decoder;
1015 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* values;
1016 NI i;
1017 NI module;
1018 };
1019 struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA {
1020 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
1021 tySequence__vv5mGmK03BCr5e3LTZA5Hw* converters;
1022 tySequence__vv5mGmK03BCr5e3LTZA5Hw* patterns;
1023 tySequence__vv5mGmK03BCr5e3LTZA5Hw* pureEnums;
1024 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interf;
1025 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interfHidden;
1026 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* uniqueName;
1027 };
1028 struct tyTuple__8bH5UHA9aimOFoSY4U42gzw {
1029 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
1030 NI Field1;
1031 NIM_BOOL Field2;
1032 };
1033 typedef NU8 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ;
1034 struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ {
1035 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
1036 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ mode;
1037 union{
1038 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA imported;
1039 } _mode_2;
1040 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA exceptSet;
1041 } _mode_3;
1042 };
1043 };
1044 typedef NU8 tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg;
1045 typedef NU8 tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w;
1046 struct tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ {
1047 tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w kind;
1048 NI arg;
1049 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* formal;
1050 };
1051 struct tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA {
1052 tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
1053 NI exactMatches;
1054 NI genericMatches;
1055 NI subtypeMatches;
1056 NI intConvMatches;
1057 NI convMatches;
1058 tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg state;
1059 tyObject_TType__facALICuu8zUj0hjvbTLFg* callee;
1060 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* calleeSym;
1061 NI calleeScope;
1062 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
1063 tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q bindings;
1064 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
1065 NIM_BOOL baseTypeMatch;
1066 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag fauxMatch;
1067 NIM_BOOL genericConverter;
1068 NIM_BOOL coerceDistincts;
1069 NIM_BOOL typedescMatched;
1070 NIM_BOOL isNoCall;
1071 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* inferredTypes;
1072 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* diagnostics;
1073 NI inheritancePenalty;
1074 tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ firstMismatch;
1075 NIM_BOOL diagnosticsEnabled;
1076 };
1077 typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
1078 typedef NU8 tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw;
1079 typedef NU8 tySet_tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg;
1080 struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q {
1081 NI32 module;
1082 NI32 symId;
1083 NI32 typeId_0;
1084 NIM_BOOL sealed;
1085 };
1086 struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg {
1087 tyObject_TType__facALICuu8zUj0hjvbTLFg* candidateType;
1088 tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* prev;
1089 NI depth;
1090 };
1091 typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
1092 struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
1093 tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
1094 };
1095 typedef NU8 tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg;
1096 typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
1097 typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
1098 struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
1099 NimStringDesc* Field0;
1100 NI Field1;
1101 NI Field2;
1102 };
1103 typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
1104 typedef NU8 tySet_tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA;
1105 struct tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA {
1106 tySet_tyEnum_ProcConvMismatch__FZDJuk7ClYW6Ufv15TTSjA Field0;
1107 tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw Field1;
1108 };
1109 typedef NU8 tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ;
1110 typedef NU8 tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ;
1111 struct tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA {
1112   RootObj Sup;
1113 NI colonstate_;
1114 NimStringDesc* errorPrefix1;
1115 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeClass2;
1116 tyProc__k2HFjxisIgDALbEUFojxaQ oldWriteHook3;
1117 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* diagnostics4;
1118 };
1119 struct tyTuple__Qqa8F49azZNOOP4FK3LKbhw {
1120 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
1121 tyObject_TType__facALICuu8zUj0hjvbTLFg* Field1;
1122 };
1123 typedef N_CLOSURE_PTR(void, TM__EV5hHJmjIY9cla9b9be7fSVJQ_40) (NimStringDesc* output);
1124 typedef N_CLOSURE_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_47) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1125 typedef N_CLOSURE_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_48) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1126 typedef N_CLOSURE_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_54) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1127 typedef N_CLOSURE_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_55) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1128 typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
1129 typedef NU8 tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag;
1130 typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
1131 typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
1132 struct tyTuple__KNXySARiHvEh2wA9asnyYmw {
1133 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
1134 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field1;
1135 };
1136 struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
1137 NI Field0;
1138 NI Field1;
1139 };
1140 struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
1141 NI Field0;
1142 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
1143 };
1144 typedef NU8 tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g;
1145 typedef NI tyArray__HU7qaqKu9czJLT84iCBJnsA[2];
1146 typedef NU8 tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
1147 typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
1148 typedef struct {
1149 N_NIMCALL_PTR(NI, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* x, tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* y, void* ClE_0);
1150 void* ClE_0;
1151 } tyProc__pNH4eLNN9aK2oskAhILvUcw;
1152 typedef NU8 tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA;
1153 typedef N_CLOSURE_PTR(NI, TM__EV5hHJmjIY9cla9b9be7fSVJQ_87) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* x, tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* y);
1154 typedef N_CLOSURE_PTR(NI, TM__EV5hHJmjIY9cla9b9be7fSVJQ_88) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* x, tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* y);
1155 typedef N_CLOSURE_PTR(NI, TM__EV5hHJmjIY9cla9b9be7fSVJQ_89) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* x, tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* y, void* ClE_0);
1156 typedef N_CLOSURE_PTR(void, TM__EV5hHJmjIY9cla9b9be7fSVJQ_90) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result);
1157 typedef NU8 tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg;
1158 struct tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ {
1159 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
1160 tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ firstMismatch;
1161 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* diagnostics;
1162 NIM_BOOL enabled;
1163 };
1164 typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
1165 typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
1166 typedef N_CLOSURE_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, TM__EV5hHJmjIY9cla9b9be7fSVJQ_103) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1167 struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg {
1168 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key;
1169 RootObj* val;
1170 };
1171 struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ {
1172 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericSym;
1173 tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
1174 };
1175 struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw {
1176 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
1177 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
1178 };
1179 struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag {
1180 NI Field0;
1181 NI Field1;
1182 tySequence__vGU8AyGT6KxtLJwEg0BpNw* Field2;
1183 };
1184 struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q {
1185 tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
1186 NI counter;
1187 };
1188 struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw {
1189 NI32 thisModule;
1190 NI32 lastFile;
1191 NU32 lastLit;
1192 tyObject_Table__TRm6MPqklA8EYBmBMY117Q filenames;
1193 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* pendingTypes;
1194 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* pendingSyms;
1195 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA typeMarker;
1196 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA symMarker;
1197 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
1198 };
1199 struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ {
1200 NU32 module;
1201 NI32 item;
1202 };
1203 struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ {
1204 NI module;
1205 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ packed_0;
1206 };
1207 struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg {
1208 tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
1209 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
1210 };
1211 struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ {
1212 NI Field0;
1213 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1214 tySequence__O5RcspOP32YJ4YtU5ppxxA* Field2;
1215 };
1216 struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg {
1217 NI module;
1218 tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ sym;
1219 tySequence__ipEvhpHAmm8ZCn9bZAOdNYA* concreteTypes;
1220 tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
1221 };
1222 struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg {
1223 NI Field0;
1224 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1225 tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* Field2;
1226 };
1227 struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q {
1228 NI Field0;
1229 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1230 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
1231 };
1232 struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA {
1233 tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
1234 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
1235 };
1236 struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ {
1237 NI Field0;
1238 tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field1;
1239 };
1240 struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg {
1241 NI Field0;
1242 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1243 tySequence__159bHWBGAOOs6U7OZ9cQlO0g* Field2;
1244 };
1245 struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA {
1246 NI Field0;
1247 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1248 tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field2;
1249 };
1250 struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
1251 NI Field0;
1252 NimStringDesc* Field1;
1253 NI32 Field2;
1254 };
1255 struct tyTuple__rplX06U9bjhu9asm5pWdgqsA {
1256 NI Field0;
1257 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1258 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA Field2;
1259 };
1260 struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
1261 NI Field0;
1262 NI32 Field1;
1263 tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
1264 };
1265 struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
1266 NI Field0;
1267 NI32 Field1;
1268 NI32 Field2;
1269 };
1270 struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A {
1271 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* Field0;
1272 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
1273 };
1274 typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
1275 struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ {
1276 NI Field0;
1277 tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
1278 tyObject_TType__facALICuu8zUj0hjvbTLFg* Field2;
1279 };
1280 struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
1281 NI Field0;
1282 NI Field1;
1283 tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
1284 };
1285 struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
1286 NI Field0;
1287 NimStringDesc* Field1;
1288 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
1289 };
1290 struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
1291 NI Field0;
1292 NimStringDesc* Field1;
1293 NI64 Field2;
1294 };
1295 struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
1296 tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
1297 NI entries;
1298 };
1299 struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
1300 NI Field0;
1301 NimStringDesc* Field1;
1302 tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
1303 };
1304 typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__jkSFMhvPZ1AdGcvT2dK9a2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1305 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
1306 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1307 struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ {
1308 tyProc__jkSFMhvPZ1AdGcvT2dK9a2w Field0;
1309 tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
1310 tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
1311 NIM_BOOL Field3;
1312 };
1313 struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
1314 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
1315 NimStringDesc* Field1;
1316 };
1317 struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
1318 NimStringDesc* fullPath;
1319 NimStringDesc* projPath;
1320 NimStringDesc* shortName;
1321 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
1322 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
1323 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
1324 NimStringDesc* dirtyFile;
1325 NimStringDesc* hash;
1326 NIM_BOOL dirty;
1327 };
1328 struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
1329 NI Field0;
1330 NimStringDesc* Field1;
1331 };
1332 typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
1333 struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
1334 NimStringDesc* nimname;
1335 NimStringDesc* cname;
1336 NimStringDesc* obj;
1337 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
1338 NimStringDesc* customArgs;
1339 };
1340 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
1341 NCSTRING procname;
1342 NI line;
1343 NCSTRING filename;
1344 };
1345 struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
1346 NU32 Field0;
1347 NimStringDesc* Field1;
1348 };
1349 struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg {
1350 NU16 line;
1351 NI16 col;
1352 NU32 file;
1353 };
1354 struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow {
1355 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
1356 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
1357 NI32 operand;
1358 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeId_0;
1359 tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
1360 };
1361 struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
1362 NU32 Field0;
1363 NI32 Field1;
1364 };
1365 struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA {
1366 NU32 Field0;
1367 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
1368 };
1369 struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg {
1370 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
1371 tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg Field1;
1372 };
1373 struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw {
1374 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
1375 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
1376 };
1377 struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA {
1378 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ key;
1379 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
1380 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* concreteTypes;
1381 };
1382 struct tyTuple__9aoobCDZB4x41HJSOmh0mwA {
1383 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg Field0;
1384 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
1385 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
1386 };
1387 struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA {
1388 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
1389 NI Field1;
1390 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
1391 };
1392 typedef NU8 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ;
1393 struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw {
1394 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ kind;
1395 NIM_BOOL generated;
1396 NIM_BOOL isOverriden;
1397 NU32 name;
1398 NI32 path;
1399 };
1400 struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw {
1401 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
1402 NU32 name;
1403 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typ;
1404 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
1405 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
1406 tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
1407 NI32 ast;
1408 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
1409 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ guard;
1410 NI bitsize;
1411 NI alignment;
1412 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
1413 NI position;
1414 NI offset;
1415 NU32 externalName;
1416 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA locFlags;
1417 tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw annex;
1418 NI32 constraint;
1419 };
1420 struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA {
1421 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
1422 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
1423 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
1424 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* types;
1425 NI32 n;
1426 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
1427 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
1428 NI64 size;
1429 NI16 align;
1430 NI16 paddingAtEnd;
1431 NI16 lockLevel;
1432 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeInst;
1433 NI32 nonUniqueId;
1434 };
1435 struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ {
1436 NI Field0;
1437 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* Field1;
1438 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* Field2;
1439 };
1440 struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
1441 NI Field0;
1442 NI32 Field1;
1443 NU32 Field2;
1444 };
1445 struct tySequence__i7xpiUsxyv6cQ1xK3JbcGQ {
1446   TGenericSeq Sup;
1447   tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* data[SEQ_DECL_SIZE];
1448 };
1449 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
1450   TGenericSeq Sup;
1451   NimStringDesc* data[SEQ_DECL_SIZE];
1452 };
1453 struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
1454   TGenericSeq Sup;
1455   tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
1456 };
1457 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
1458   TGenericSeq Sup;
1459   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
1460 };
1461 struct tySequence__bGUffHlsVXt0g6ZKEF4OfQ {
1462   TGenericSeq Sup;
1463   tyTuple__Qqa8F49azZNOOP4FK3LKbhw data[SEQ_DECL_SIZE];
1464 };
1465 struct tySequence__xSqu3cxq5WeFlOO3YgE6yA {
1466   TGenericSeq Sup;
1467   tyTuple__KNXySARiHvEh2wA9asnyYmw data[SEQ_DECL_SIZE];
1468 };
1469 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
1470   TGenericSeq Sup;
1471   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
1472 };
1473 struct tySequence__0dpGN6F4ocevqUQGsaf41w {
1474   TGenericSeq Sup;
1475   tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ data[SEQ_DECL_SIZE];
1476 };
1477 struct tySequence__eiMlYcU7NrAOGD2H36QOOQ {
1478   TGenericSeq Sup;
1479   tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ data[SEQ_DECL_SIZE];
1480 };
1481 struct tySequence__oYkV9aFZe0MXcEAprJaOUsA {
1482   TGenericSeq Sup;
1483   tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* data[SEQ_DECL_SIZE];
1484 };
1485 struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA {
1486   TGenericSeq Sup;
1487   tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE];
1488 };
1489 struct tySequence__arD7Tw6eD6lvOczWZl9buNg {
1490   TGenericSeq Sup;
1491   tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* data[SEQ_DECL_SIZE];
1492 };
1493 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
1494   TGenericSeq Sup;
1495   tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
1496 };
1497 struct tySequence__jWKvSdankQPoT5bw9cBU9aiw {
1498   TGenericSeq Sup;
1499   tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ data[SEQ_DECL_SIZE];
1500 };
1501 struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
1502   TGenericSeq Sup;
1503   tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE];
1504 };
1505 struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
1506   TGenericSeq Sup;
1507   tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
1508 };
1509 struct tySequence__vGU8AyGT6KxtLJwEg0BpNw {
1510   TGenericSeq Sup;
1511   tyTuple__KvKIqRIx9anKcDMu8DPSkHw data[SEQ_DECL_SIZE];
1512 };
1513 struct tySequence__Hkw5zrAn53wlKDHdJF1GFA {
1514   TGenericSeq Sup;
1515   tyTuple__Y6Ewh3MCxsjd1bsriN6Gag data[SEQ_DECL_SIZE];
1516 };
1517 struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ {
1518   TGenericSeq Sup;
1519   tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA data[SEQ_DECL_SIZE];
1520 };
1521 struct tySequence__rQHmYk1HzcwNxKBymIFHpA {
1522   TGenericSeq Sup;
1523   tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w data[SEQ_DECL_SIZE];
1524 };
1525 struct tySequence__XMM60DtBsc6xYsIpNANkrA {
1526   TGenericSeq Sup;
1527   tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw data[SEQ_DECL_SIZE];
1528 };
1529 struct tySequence__O5RcspOP32YJ4YtU5ppxxA {
1530   TGenericSeq Sup;
1531   tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg data[SEQ_DECL_SIZE];
1532 };
1533 struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg {
1534   TGenericSeq Sup;
1535   tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ data[SEQ_DECL_SIZE];
1536 };
1537 struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA {
1538   TGenericSeq Sup;
1539   tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg data[SEQ_DECL_SIZE];
1540 };
1541 struct tySequence__mWRMiYLthG9coLjkbElCxkw {
1542   TGenericSeq Sup;
1543   tyTuple__o67sDX0wYbEuhI9cJYAbDtg data[SEQ_DECL_SIZE];
1544 };
1545 struct tySequence__bTDCDwD2P7TodzbAefLcSw {
1546   TGenericSeq Sup;
1547   tyTuple__9aNnDWBFMF44sfFinBpMT4Q data[SEQ_DECL_SIZE];
1548 };
1549 struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g {
1550   TGenericSeq Sup;
1551   tyTuple__VrD6plbUKJjYKM0lCr3hGQ data[SEQ_DECL_SIZE];
1552 };
1553 struct tySequence__3MPVXAHA08SszBrU4ffqEg {
1554   TGenericSeq Sup;
1555   tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg data[SEQ_DECL_SIZE];
1556 };
1557 struct tySequence__YCf5zJHm4JI06qpmKwPUWg {
1558   TGenericSeq Sup;
1559   tyTuple__1ZbjBgxAbnye0IFMZ6w4OA data[SEQ_DECL_SIZE];
1560 };
1561 struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
1562   TGenericSeq Sup;
1563   tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
1564 };
1565 struct tySequence__61s9cbAniKuBrdHwBhMDfQg {
1566   TGenericSeq Sup;
1567   tyTuple__rplX06U9bjhu9asm5pWdgqsA data[SEQ_DECL_SIZE];
1568 };
1569 struct tySequence__48JTohSgTy339bRxHzUD8KA {
1570   TGenericSeq Sup;
1571   NI32 data[SEQ_DECL_SIZE];
1572 };
1573 struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
1574   TGenericSeq Sup;
1575   tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
1576 };
1577 struct tySequence__kxu4GK0onha2t9bo86mdVAg {
1578   TGenericSeq Sup;
1579   tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
1580 };
1581 struct tySequence__s9byh6WFJ16lPMcmqdaMTHA {
1582   TGenericSeq Sup;
1583   tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A data[SEQ_DECL_SIZE];
1584 };
1585 struct tySequence__1U9bG8RcAedEeYkQLZjVFKA {
1586   TGenericSeq Sup;
1587   tyTuple__3i6hlQmqrn6m7tuVN8FHjQ data[SEQ_DECL_SIZE];
1588 };
1589 struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
1590   TGenericSeq Sup;
1591   tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
1592 };
1593 struct tySequence__23SMqauuRsbDANhthj9bWlA {
1594   TGenericSeq Sup;
1595   tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
1596 };
1597 struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
1598   TGenericSeq Sup;
1599   tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
1600 };
1601 struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
1602   TGenericSeq Sup;
1603   tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
1604 };
1605 struct tySequence__MAQKEADohlpnXTModtugbQ {
1606   TGenericSeq Sup;
1607   tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ data[SEQ_DECL_SIZE];
1608 };
1609 struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
1610   TGenericSeq Sup;
1611   tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
1612 };
1613 struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
1614   TGenericSeq Sup;
1615   tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
1616 };
1617 struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
1618   TGenericSeq Sup;
1619   tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
1620 };
1621 struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
1622   TGenericSeq Sup;
1623   tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
1624 };
1625 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
1626   TGenericSeq Sup;
1627   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
1628 };
1629 struct tySequence__PXIzfWocnrafGz5p3CP5LA {
1630   TGenericSeq Sup;
1631   tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE];
1632 };
1633 struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
1634   TGenericSeq Sup;
1635   NU32 data[SEQ_DECL_SIZE];
1636 };
1637 struct tySequence__29bS0n2QNyO1R7e0qMMOvLA {
1638   TGenericSeq Sup;
1639   tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow data[SEQ_DECL_SIZE];
1640 };
1641 struct tySequence__b89aLriiJnVTD186H6zNIgg {
1642   TGenericSeq Sup;
1643   tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
1644 };
1645 struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg {
1646   TGenericSeq Sup;
1647   tyTuple__Q7r9caOmeWqQGZCIBHhGRUA data[SEQ_DECL_SIZE];
1648 };
1649 struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA {
1650   TGenericSeq Sup;
1651   tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg data[SEQ_DECL_SIZE];
1652 };
1653 struct tySequence__NyaOkf8ZwxP6rkRF5TOkew {
1654   TGenericSeq Sup;
1655   tyTuple__XyJ8LOAZzVVXSsmt09b8uWw data[SEQ_DECL_SIZE];
1656 };
1657 struct tySequence__L9bOt8CaTEmIjgtuZvp6syg {
1658   TGenericSeq Sup;
1659   tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA data[SEQ_DECL_SIZE];
1660 };
1661 struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ {
1662   TGenericSeq Sup;
1663   tyTuple__9aoobCDZB4x41HJSOmh0mwA data[SEQ_DECL_SIZE];
1664 };
1665 struct tySequence__xxnXDLpoqBo8zJzP9b1073g {
1666   TGenericSeq Sup;
1667   tyTuple__g0Q6Qx15nK53ce9aLo7YyrA data[SEQ_DECL_SIZE];
1668 };
1669 struct tySequence__DfmUmNgVGnYaiV1I6227tw {
1670   TGenericSeq Sup;
1671   tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw data[SEQ_DECL_SIZE];
1672 };
1673 struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA {
1674   TGenericSeq Sup;
1675   tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA data[SEQ_DECL_SIZE];
1676 };
1677 struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
1678   TGenericSeq Sup;
1679   NI64 data[SEQ_DECL_SIZE];
1680 };
1681 struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw {
1682   TGenericSeq Sup;
1683   tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ data[SEQ_DECL_SIZE];
1684 };
1685 struct tySequence__9bT7o0CflHuiE4VhmtqBPCw {
1686   TGenericSeq Sup;
1687   tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ data[SEQ_DECL_SIZE];
1688 };
1689 struct tySequence__vv5mGmK03BCr5e3LTZA5Hw {
1690   TGenericSeq Sup;
1691   tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA data[SEQ_DECL_SIZE];
1692 };
1693 struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
1694   TGenericSeq Sup;
1695   tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
1696 };
1697 struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA {
1698   TGenericSeq Sup;
1699   tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ data[SEQ_DECL_SIZE];
1700 };
1701 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exactEquals__msgs_997)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q a, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q b);
1702 N_LIB_PRIVATE N_NIMCALL(void, suggestExprNoCheck__sigmatch_6450)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1703 N_LIB_PRIVATE N_NIMCALL(void, sugExpr__sigmatch_6417)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs);
1704 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, safeSemExpr__sigmatch_6411)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1705 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
1706 static N_INLINE(void, popSafePoint)(void);
1707 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
1708 static N_INLINE(Exception*, nimBorrowCurrentException)(void);
1709 static N_INLINE(void, popCurrentException)(void);
1710 static N_INLINE(void, asgnRef)(void** dest, void* src);
1711 static N_INLINE(void, incRef__system_5309)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1712 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
1713 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5271)(void* usr);
1714 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
1715 static N_INLINE(void, decRef__system_5316)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1716 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
1717 static N_INLINE(void, rtlAddZCT__system_5314)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1718 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5265)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1719 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
1720 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1721 N_LIB_PRIVATE N_NIMCALL(void, suggestFieldAccess__sigmatch_5230)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs);
1722 static N_INLINE(void, nimZeroMem)(void* p, NI size);
1723 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
1724 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, initTabIter__astalgo_3777)(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg* ti, tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab);
1725 static N_INLINE(NIM_BOOL, filterSym__sigmatch_4909)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prefix, tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q* res);
1726 N_LIB_PRIVATE N_NIMCALL(tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q, prefixMatch__sigmatch_4914)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1727 N_LIB_PRIVATE N_NIMCALL(tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q, prefixMatch__prefixmatches_10)(NimStringDesc* p, NimStringDesc* s);
1728 N_LIB_PRIVATE N_NIMCALL(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ*, symToSuggest__sigmatch_4528)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, NIM_BOOL isLocal, tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ section, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI quality, tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q prefix, NIM_BOOL inTypeContext, NI scope, NIM_BOOL useSuppliedInfo);
1729 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
1730 static N_INLINE(void, nimGCunrefRC1)(void* p);
1731 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
1732 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
1733 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
1734 static N_INLINE(NIM_BOOL, contains__pureZtimes_2283)(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA s, NI value);
1735 static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___pureZunicode_840)(NI a, NI b);
1736 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
1737 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
1738 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
1739 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
1740 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
1741 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__types_50)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
1742 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath__msgs_538)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
1743 static N_INLINE(NI, toLinenumber__msgs_609)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1744 static N_INLINE(NI, toColumn__msgs_612)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1745 N_LIB_PRIVATE N_NIMCALL(NI, getTokenLenFromSource__sigmatch_4451)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* ident, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1746 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
1747 static N_NIMCALL(void, Marker_tyRef__AQEmz0epsPFaQWAZOZKqTA)(void* p, NI op);
1748 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, sourceLine__msgs_1101)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q i);
1749 N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, isOpeningBacktick__sigmatch_4458)(NI col, void* ClE_0);
1750 static N_INLINE(NI, skipUntil__pureZparseutils_148)(NimStringDesc* s, NIM_CHAR until, NI start);
1751 N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
1752 static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_865)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
1753 N_NIMCALL(NimStringDesc*, mnewString)(NI len);
1754 static N_INLINE(NIM_CHAR, X5BX5D___system_7329)(NimStringDesc* s, NI i);
1755 N_LIB_PRIVATE N_NIMCALL(NI, identLen__linter_11)(NimStringDesc* line, NI start);
1756 static N_INLINE(NI, parseWhile__pureZparseutils_226)(NimStringDesc* s, NimStringDesc** token, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw validChars, NI start);
1757 N_LIB_PRIVATE N_NIMCALL(void, fastSubstr__pureZparseutils_170)(NimStringDesc* s, NimStringDesc** token, NI start, NI length);
1758 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
1759 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
1760 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
1761 N_LIB_PRIVATE N_NIMCALL(NI, getQuality__sigmatch_5002)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1762 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
1763 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
1764 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, elemType__types_263)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1765 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
1766 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, nextIter__astalgo_3762)(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg* ti, tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab);
1767 static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2709)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m);
1768 static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2697)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module);
1769 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, initRodIterAllSyms__icZic_8667)(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg* it, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tySequence__rQHmYk1HzcwNxKBymIFHpA** g, NI32 module, NIM_BOOL importHidden);
1770 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, nextRodIter__icZic_8962)(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg* it, tySequence__rQHmYk1HzcwNxKBymIFHpA** g);
1771 N_LIB_PRIVATE N_NIMCALL(void, suggestEverything__sigmatch_5217)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs);
1772 N_LIB_PRIVATE N_NIMCALL(void, suggestSymList__sigmatch_5040)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* list, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs);
1773 N_LIB_PRIVATE N_NIMCALL(void, suggestField__sigmatch_5026)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs);
1774 static N_INLINE(NIM_BOOL, fieldVisible__sigmatch_4944)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f);
1775 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getModule__astalgo_216)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1776 N_LIB_PRIVATE N_NIMCALL(void, suggestObject__sigmatch_5060)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs);
1777 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1778 N_LIB_PRIVATE N_NIMCALL(void, suggestOperations__sigmatch_5194)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs);
1779 static N_INLINE(NIM_BOOL, filterSymNoOpr__sigmatch_4935)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prefix, tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q* res);
1780 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword__renderer_73)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* i);
1781 static N_INLINE(NIM_BOOL, typeFits__sigmatch_5153)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* firstArg);
1782 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argtypeMatches__sigmatch_4281)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, NIM_BOOL fromHlo);
1783 N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_195)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TType__facALICuu8zUj0hjvbTLFg* callee, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result);
1784 N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_116)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* callee);
1785 static N_INLINE(void, initCandidateAux__sigmatch_94)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* callee);
1786 N_LIB_PRIVATE N_NIMCALL(void, initIdTable__ast_4096)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* x);
1787 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, paramTypesMatch__sigmatch_3583)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argOrig);
1788 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, paramTypesMatchAux__sigmatch_3268)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argSemantized, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argOrig);
1789 N_LIB_PRIVATE N_NIMCALL(void, assignType__ast_3976)(tyObject_TType__facALICuu8zUj0hjvbTLFg* dest, tyObject_TType__facALICuu8zUj0hjvbTLFg* src);
1790 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__ast_3378)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
1791 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeTypeFromExpr__semdata_804)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1792 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newTypeS__semdata_733)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
1793 N_LIB_PRIVATE N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
1794 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4431)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
1795 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, typeRel__sigmatch_202)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* aOrig, tySet_tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg flags);
1796 static N_INLINE(void, put__sigmatch_120)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val);
1797 N_LIB_PRIVATE N_NIMCALL(void, idTablePut__astalgo_70)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* t, tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key, RootObj* val);
1798 static N_INLINE(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipIntLit__magicsys_124)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id);
1799 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, copyType__ast_4046)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
1800 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
1801 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, lastSon__ast_3743)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
1802 N_LIB_PRIVATE N_NIMCALL(RootObj*, idTableGet__astalgo_64)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q t, tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key);
1803 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryResolvingStaticExpr__sigmatch_1227)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL allowUnresolved);
1804 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, replaceTypesInBody__semtypinst_988)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* p, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, NIM_BOOL allowMetaTypes);
1805 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, base__types_63)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1806 N_LIB_PRIVATE N_NIMCALL(void, add__concepts_23)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son);
1807 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, maybeSkipDistinct__sigmatch_1210)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee);
1808 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldSkipDistinct__sigmatch_1199)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rules, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* callIdent);
1809 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1810 static N_INLINE(NIM_BOOL, eqeq___idents_220)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* a, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* b);
1811 N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, considerQuotedIdent__lookups_28)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* origin);
1812 static N_INLINE(NIM_BOOL, sameEnumTypes__types_2096)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
1813 N_LIB_PRIVATE N_NOINLINE(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, typeRangeRel__sigmatch_981)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
1814 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_299)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, NIM_BOOL allowEnumWithHoles);
1815 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_313)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
1816 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__types_1353)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1817 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__types_1470)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1818 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_309)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
1819 N_LIB_PRIVATE N_NIMCALL(NF, firstFloat__types_1445)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1820 N_LIB_PRIVATE N_NIMCALL(NF, lastFloat__types_1588)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1821 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConvertibleToRange__sigmatch_548)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
1822 static N_INLINE(NIM_BOOL, isIntLit__types_186)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1823 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, handleRange__sigmatch_476)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag min, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag max);
1824 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getInt__ast_4592)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
1825 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_745)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
1826 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_752)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
1827 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, handleFloatRange__sigmatch_596)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
1828 static N_INLINE(NIM_BOOL, isFloatLit__types_201)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1829 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCovariantPtr__sigmatch_1405)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
1830 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, inferStaticsInRange__sigmatch_1370)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* inferred, tyObject_TType__facALICuu8zUj0hjvbTLFg* concrete);
1831 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_759)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
1832 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__types_1661)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1833 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_780)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
1834 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_794)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
1835 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inferStaticParam__sigmatch_1235)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lhs, NI64 rhs);
1836 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newTypeWithSons__semdata_821)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons);
1837 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__ast_3723)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
1838 N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int495056_88)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
1839 N_LIB_PRIVATE N_NIMCALL(void, failureToInferStaticParam__sigmatch_1361)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1840 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, findUnresolvedStatic__ast_4956)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1841 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
1842 N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
1843 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_474)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
1844 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, recordRel__sigmatch_806)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
1845 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_1824)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
1846 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, minRel__sigmatch_798)(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw a, tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw b);
1847 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameObjectTypes__types_2047)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
1848 N_LIB_PRIVATE N_NIMCALL(NI, isObjectSubtype__sigmatch_656)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* fGenericOrigin);
1849 N_LIB_PRIVATE N_NIMCALL(void, genericParamPut__sigmatch_622)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* last, tyObject_TType__facALICuu8zUj0hjvbTLFg* fGenericOrigin);
1850 static N_INLINE(NIM_BOOL, sameDistinctTypes__types_2092)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
1851 static N_INLINE(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, allowsNil__sigmatch_875)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f);
1852 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, procTypeRel__sigmatch_927)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
1853 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, procParamTypeRel__sigmatch_898)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
1854 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMetaType__ast_3495)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1855 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, generateTypeInstance__semtypinst_1050)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* p, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1856 static N_INLINE(NIM_BOOL, inconsistentVarTypes__sigmatch_882)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
1857 N_LIB_PRIVATE N_NIMCALL(tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA, getProcConvMismatch__types_3695)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw rel);
1858 N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ, compatibleEffects__types_3425)(tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
1859 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipGenericAlias__types_2219)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1860 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, prepareMetatypeForSigmatch__semtypinst_1064)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* p, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1861 N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1431)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
1862 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, conceptMatch__concepts_538)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* concpt, tyObject_TType__facALICuu8zUj0hjvbTLFg* arg, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* bindings, tyObject_TType__facALICuu8zUj0hjvbTLFg* invocation);
1863 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipToObject__sigmatch_703)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ* skipped);
1864 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericSubtype__sigmatch_744)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, NI* d, tyObject_TType__facALICuu8zUj0hjvbTLFg* fGenericOrigin);
1865 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, concreteType__sigmatch_443)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TType__facALICuu8zUj0hjvbTLFg* f);
1866 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_3626)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1867 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, matchUserTypeClass__sigmatch_993)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* ff, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
1868 static N_NIMCALL(void, Marker_tyRef__45NYJqjr6v2fbd4yf89cTdg)(void* p, NI op);
1869 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___renderer_2106)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1870 N_LIB_PRIVATE N_NIMCALL(tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*, openScope__lookups_69)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
1871 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSym__ast_3445)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
1872 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
1873 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, exactReplica__ast_4051)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1874 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
1875 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeTypeDesc__concepts_49)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
1876 static N_NIMCALL(void, Marker_tySequence__bGUffHlsVXt0g6ZKEF4OfQ)(void* p, NI op);
1877 static N_INLINE(void, addDecl__lookups_845)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
1878 static N_INLINE(void, addDeclAt__lookups_837)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
1879 N_LIB_PRIVATE N_NIMCALL(void, addDeclAt__lookups_815)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1880 N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___sigmatch_1102)(NimStringDesc* s, void* ClE_0);
1881 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceStr)(NimStringDesc* s, NimStringDesc* sub, NimStringDesc* by);
1882 N_LIB_PRIVATE N_NIMCALL(void, closeScope__lookups_101)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
1883 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
1884 static N_INLINE(NimStringDesc*, toFileLineCol__msgs_615)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info);
1885 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
1886 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x);
1887 N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_167)(NimStringDesc** result, NI64 x);
1888 N_LIB_PRIVATE N_NIMCALL(void, transitionGenericParamToType__ast_4390)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1889 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_56)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality);
1890 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
1891 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeStaticExpr__semdata_826)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1892 N_LIB_PRIVATE N_NIMCALL(void, incMatches__sigmatch_3238)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw r, NI convMatch);
1893 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3719)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1894 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, implicitConv__sigmatch_3067)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
1895 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1896 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__types_3360)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1897 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getInstantiatedType__sigmatch_3053)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f);
1898 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, errorType__semdata_1002)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
1899 N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
1900 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newProcNode__ast_3821)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* name, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pattern, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exceptions);
1901 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__ast_3392)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
1902 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, userConvMatch__sigmatch_3095)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
1903 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matchNodeKinds__parampatterns_505)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1904 static N_INLINE(NIM_BOOL, isLValue__sigmatch_3090)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1905 N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag, isAssignable__parampatterns_334)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr);
1906 N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_85)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1907 N_LIB_PRIVATE N_NIMCALL(void, warnAboutDeprecated__sigmatch_5425)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1908 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, extractPragma__sigmatch_5382)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1909 N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
1910 N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichPragma__trees_244)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1911 N_LIB_PRIVATE N_NIMCALL(void, userError__sigmatch_5458)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1912 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
1913 static N_INLINE(NimStringDesc*, toFileLineCol__msgs_619)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1914 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toMsgFilename__msgs_602)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
1915 N_LIB_PRIVATE N_NIMCALL(void, styleCheckUse__linter_192)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1916 N_LIB_PRIVATE N_NIMCALL(void, markOwnerModuleAsUsed__sigmatch_89)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1917 N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__sigmatch_5608)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key, NI default_0);
1918 static N_INLINE(NI, rawGet__sigmatch_5618)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key, NI* hc);
1919 static N_INLINE(NI, hash__pureZhashes_128)(NI x);
1920 static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x);
1921 static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b);
1922 static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode);
1923 static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash);
1924 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__sigmatch_6018)(tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w s, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key);
1925 static N_INLINE(NI, rawGet__sigmatch_6031)(tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w t, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key, NI* hc);
1926 N_LIB_PRIVATE N_NIMCALL(NI, hash__sigmatch_6038)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x);
1927 static N_INLINE(NI, emarkamp___pureZhashes_3)(NI h, NI val);
1928 static N_INLINE(NI, emarkdollar___pureZhashes_18)(NI h);
1929 static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_38)(NI hcode);
1930 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___sigmatch_6286)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y);
1931 static N_INLINE(NI, nextTry__pureZcollectionsZsets_41)(NI h, NI maxHash);
1932 N_LIB_PRIVATE N_NIMCALL(void, del__sigmatch_6318)(tySequence__xSqu3cxq5WeFlOO3YgE6yA** x, NI i);
1933 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
1934 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3716)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
1935 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__lowerings_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1936 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, localConvMatch__sigmatch_3181)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
1937 N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__ast_4359)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g kind);
1938 N_LIB_PRIVATE N_NIMCALL(void, copyCandidate__sigmatch_199)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* b);
1939 N_LIB_PRIVATE N_NIMCALL(void, copyIdTable__ast_3610)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* dest, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q src);
1940 N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
1941 N_LIB_PRIVATE N_NIMCALL(NI, cmpCandidates__sigmatch_358)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* b);
1942 N_LIB_PRIVATE N_NIMCALL(NI, checkGeneric__sigmatch_207)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* b);
1943 N_LIB_PRIVATE N_NIMCALL(NI, complexDisambiguation__sigmatch_336)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
1944 N_LIB_PRIVATE N_NIMCALL(NI, sumGeneric__sigmatch_261)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1945 static N_INLINE(NIM_BOOL, contains__sigmatch_4299)(NI* a, NI aLen_0, NI item);
1946 static N_INLINE(NI, find__sigmatch_4304)(NI* a, NI aLen_0, NI item);
1947 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__ast_4336)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
1948 N_LIB_PRIVATE N_NIMCALL(void, suggestCall__sigmatch_5124)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs);
1949 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nameFits__sigmatch_5091)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1950 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argsFit__sigmatch_5113)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* candidate, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig);
1951 N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_189)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* binding, NI calleeScope, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result);
1952 N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_124)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* binding, NI calleeScope, NIM_BOOL diagnosticsEnabled);
1953 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, originatingModule__ast_4669)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1954 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, skipGenericOwner__ast_4658)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1955 N_LIB_PRIVATE N_NIMCALL(void, partialMatch__sigmatch_4175)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m);
1956 static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
1957 N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_16)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
1958 N_LIB_PRIVATE N_NIMCALL(void, matchesAux__sigmatch_3784)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker);
1959 N_LIB_PRIVATE N_NIMCALL(NI, findFirstArgBlock__sigmatch_3746)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1960 N_LIB_PRIVATE N_NIMCALL(void, openShadowScope__lookups_903)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
1961 N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_55)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
1962 N_LIB_PRIVATE N_NIMCALL(void, setSon__sigmatch_3650)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, NI at, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
1963 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, arrayConstr__sigmatch_3725)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1964 N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__ast_4288)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son, NIM_BOOL propagateHasAsgn);
1965 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeRangeType__semdata_1039)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, NI64 first, NI64 last, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* intType);
1966 N_LIB_PRIVATE N_NIMCALL(void, incrIndexType__sigmatch_3729)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1967 N_LIB_PRIVATE N_NIMCALL(void, prepareNamedParam__sigmatch_3709)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
1968 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIdentNode__ast_3712)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1969 N_LIB_PRIVATE N_NIMCALL(void, mergeShadowScope__lookups_907)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
1970 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getNamedParamFromList__astalgo_293)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* list, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident);
1971 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astalgo_402)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
1972 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, prepareOperand__sigmatch_3663)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
1973 N_LIB_PRIVATE N_NIMCALL(void, considerGenSyms__semdata_425)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1974 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, arrayConstr__sigmatch_3721)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1975 N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__magicsys_136)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id);
1976 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, prepareOperand__sigmatch_3700)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
1977 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getSysType__magicsys_60)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
1978 N_LIB_PRIVATE N_NIMCALL(void, closeShadowScope__lookups_905)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
1979 N_LIB_PRIVATE N_NIMCALL(void, suggestVar__sigmatch_5139)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs);
1980 N_LIB_PRIVATE N_NIMCALL(void, produceOutput__sigmatch_4746)(tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** a, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
1981 N_LIB_PRIVATE N_NIMCALL(void, sort__sigmatch_4755)(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ** a, NI aLen_0, tyProc__pNH4eLNN9aK2oskAhILvUcw cmp, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order);
1982 N_LIB_PRIVATE N_NIMCALL(tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*, newSeq__sigmatch_4767)(NI len);
1983 N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__sigmatch_4787)(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ** a, NI aLen_0, tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ** b, NI bLen_0, NI lo, NI m, NI hi, tyProc__pNH4eLNN9aK2oskAhILvUcw cmp, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order);
1984 static N_INLINE(NI, star___pureZalgorithm_8)(NI x, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order);
1985 N_LIB_PRIVATE N_NIMCALL(NI, cmpSuggestions__sigmatch_4436)(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* a, tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* b);
1986 N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_1549)(NimStringDesc* x, NimStringDesc* y);
1987 N_LIB_PRIVATE N_NIMCALL(void, suggestWriteln__msgs_421)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* s);
1988 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___sigmatch_4707)(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* suggest);
1989 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___options_4697)(tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ c);
1990 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
1991 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
1992 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
1993 N_LIB_PRIVATE N_NIMCALL(void, suggestQuit__msgs_446)(void);
1994 static N_NIMCALL(void, Marker_tySequence__0dpGN6F4ocevqUQGsaf41w)(void* p, NI op);
1995 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__renderer_46)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
1996 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, argTypeToString__sigmatch_362)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
1997 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
1998 N_LIB_PRIVATE N_NIMCALL(void, suggestExpr__sigmatch_6536)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1999 N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, newLineInfo__msgs_381)(NI32 fileInfoIdx, NI line, NI col);
2000 extern TNimType NTIerecoverableerror__IxbcvonC7TQkv166Uvdu1g_;
2001 extern TNimType NTIsuggest__qG8FNvsuCmStKCBZxTA0eg_;
2002 extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
2003 static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__EV5hHJmjIY9cla9b9be7fSVJQ_3 = {
2004 0x00, 0x00, 0x00, 0x00, 0x72, 0xed, 0x00, 0xf4,
2005 0x01, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x58,
2006 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2007 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2008 ;
2009 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
2010 N_LIB_PRIVATE TNimType NTIobject__OOiDxDXQlxWHlb9aU1AkbWQ_;
2011 extern TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
2012 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
2013 N_LIB_PRIVATE TNimType NTIrefobject__AQEmz0epsPFaQWAZOZKqTA_;
2014 static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__EV5hHJmjIY9cla9b9be7fSVJQ_8 = {
2015 0x00, 0x00, 0x00, 0x00, 0x72, 0xef, 0x00, 0xf4,
2016 0x01, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x78,
2017 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2018 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
2019 ;
2020 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_9, "=", 1);
2021 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_10 = {
2022 0x10, 0x08, 0x80, 0x00, 0x00, 0xc0, 0x00, 0x00,
2023 0x00}
2024 ;
2025 extern TNimType NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_;
2026 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_11 = {
2027 0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x00,
2028 0x00}
2029 ;
2030 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_12 = {
2031 0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
2032 0x00}
2033 ;
2034 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_13 = {
2035 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2036 0x00}
2037 ;
2038 extern TNimType NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_;
2039 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_14 = {
2040 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2041 0x00}
2042 ;
2043 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_15 = {
2044 0x00, 0x00, 0x80, 0x00, 0x00, 0xc0, 0x00, 0x10,
2045 0x00}
2046 ;
2047 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_16 = {
2048 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
2049 0x00}
2050 ;
2051 extern NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag abstractInst__ast_355;
2052 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_17, "unknown", 7);
2053 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_18, "cannot infer the value of the static param \'", 44);
2054 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_19, "\'", 1);
2055 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_21, "/home/runner/work/nightlies/nightlies/nim/compiler/sigmatch.nim", 63);
2056 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_20 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2057 ((NI) 886),
2058 ((NI) 12)}
2059 ;
2060 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_22 = {
2061 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
2062 0x00}
2063 ;
2064 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_23 = {
2065 0x00, 0x08, 0x10, 0x00, 0x00, 0x20, 0x00, 0x00,
2066 0x00}
2067 ;
2068 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_24 = {
2069 0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
2070 0x00}
2071 ;
2072 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_25 = {
2073 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2074 0x00}
2075 ;
2076 extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__lineinfos_280;
2077 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_26, "wrong instantiated type!", 24);
2078 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_27 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2079 ((NI) 1511),
2080 ((NI) 23)}
2081 ;
2082 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_28 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2083 ((NI) 1545),
2084 ((NI) 25)}
2085 ;
2086 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_29 = {
2087 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
2088 0x00}
2089 ;
2090 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_30 = {
2091 0x10, 0x08, 0x10, 0x00, 0x00, 0x60, 0x08, 0x00,
2092 0x00}
2093 ;
2094 N_LIB_PRIVATE TNimType NTIobject__ABsKQG07Jg0nSKN9cZsdHNA_;
2095 extern TNimType NTIptype__qt2Wh0elFEz5fH0l7yusLw_;
2096 extern TNimType NTIprocLoutput58stringTLOclosureOT__k2HFjxisIgDALbEUFojxaQ_;
2097 N_LIB_PRIVATE TNimType NTIrefobject__45NYJqjr6v2fbd4yf89cTdg_;
2098 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_32 = {
2099 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
2100 0x00}
2101 ;
2102 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_33, " too nested for type matching", 29);
2103 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_34 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2104 ((NI) 670),
2105 ((NI) 16)}
2106 ;
2107 N_LIB_PRIVATE TNimType NTILpsym_ptypeT__Qqa8F49azZNOOP4FK3LKbhw_;
2108 extern TNimType NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_;
2109 N_LIB_PRIVATE TNimType NTIseqLLpsym_ptypeTT__bGUffHlsVXt0g6ZKEF4OfQ_;
2110 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_37, ":", 1);
2111 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_38, "Error:", 6);
2112 static NIM_CONST tyProc__k2HFjxisIgDALbEUFojxaQ TM__EV5hHJmjIY9cla9b9be7fSVJQ_39 = {NIM_NIL,NIM_NIL};
2113 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_41, "(", 1);
2114 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_42, ", ", 2);
2115 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_43, ")", 1);
2116 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_44 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2117 ((NI) 1677),
2118 ((NI) 27)}
2119 ;
2120 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_45, " unknown type kind ", 19);
2121 extern TNimType NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_;
2122 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_46 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2123 ((NI) 1838),
2124 ((NI) 18)}
2125 ;
2126 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_49, "getInstantiatedType", 19);
2127 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_50 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2128 ((NI) 1865),
2129 ((NI) 17)}
2130 ;
2131 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_51 = {
2132 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
2133 0x00}
2134 ;
2135 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_52, "implicitConv", 12);
2136 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_53 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2137 ((NI) 1878),
2138 ((NI) 37)}
2139 ;
2140 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_56 = {
2141 0x10, 0xa8, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
2142 0x00}
2143 ;
2144 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_57, "suggest.nim(538, 12) `result == nil or result.kind == nkPragma` ", 64);
2145 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_58, "enum \'", 6);
2146 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_59, "\' which contains field \'", 24);
2147 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_60, "; ", 2);
2148 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_61, " is deprecated", 14);
2149 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_63, "/home/runner/work/nightlies/nightlies/nim/compiler/suggest.nim", 62);
2150 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_62 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_63),
2151 ((NI) 550),
2152 ((NI) 15)}
2153 ;
2154 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_64 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_63),
2155 ((NI) 552),
2156 ((NI) 9)}
2157 ;
2158 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_65, "$1usage of \'$2\' is an {.error.} defined at $3", 45);
2159 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_66 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_63),
2160 ((NI) 563),
2161 ((NI) 12)}
2162 ;
2163 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_67 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_63),
2164 ((NI) 565),
2165 ((NI) 6)}
2166 ;
2167 extern TNimType NTIseqLLpsym_tlineinfoTT__xSqu3cxq5WeFlOO3YgE6yA_;
2168 N_LIB_PRIVATE TNimType NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_;
2169 extern TNimType NTIpcontext__EjEifkTC8tg9afiUW4StSSA_;
2170 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
2171 N_LIB_PRIVATE TNimType NTItcandidatestate__C8RXb59bvbxaTzDOqx49aVVg_;
2172 extern TNimType NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_;
2173 extern TNimType NTItidtable__9aiv9bp2t5icFNINcg9c4xi1Q_;
2174 extern TNimType NTItmagic__shZhZOdbVC5nnFvcXQAImg_;
2175 extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
2176 N_LIB_PRIVATE TNimType NTImismatchinfo__Bde9a0sl26Y9b6iLNg1iH8LQ_;
2177 N_LIB_PRIVATE TNimType NTImismatchkind__9a6KkG9auuBdYowCMkBNpD6w_;
2178 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_76, "x.state is not csMatch", 22);
2179 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_77 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2180 ((NI) 2237),
2181 ((NI) 21)}
2182 ;
2183 static NIM_CONST tyArray__HU7qaqKu9czJLT84iCBJnsA TM__EV5hHJmjIY9cla9b9be7fSVJQ_78 = {((NI) 0),
2184 ((NI) 256)}
2185 ;
2186 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_79, "sigmatch.nim(2377, 18) `n[a][0].kind == nkEmpty and n[a][1].kind in {nkBracket, nkArgList}` ", 92);
2187 extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
2188 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_80, "named parameter has to be an identifier", 39);
2189 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_81 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2190 ((NI) 2394),
2191 ((NI) 18)}
2192 ;
2193 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__EV5hHJmjIY9cla9b9be7fSVJQ_82 = {
2194 0x00, 0x88, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00,
2195 0x00}
2196 ;
2197 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_83, "matches", 7);
2198 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_84 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2199 ((NI) 2462),
2200 ((NI) 23)}
2201 ;
2202 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_85, "cannot convert $1 to $2", 23);
2203 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_86 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2204 ((NI) 2514),
2205 ((NI) 22)}
2206 ;
2207 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_91, "skGlobalVar", 11);
2208 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_92, "skGlobalLet", 11);
2209 extern TNimType NTItsymkind__cNCW9acsSznmEccl1fgQwkw_;
2210 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_93, ".", 1);
2211 extern TNimType NTIprefixmatch__Dkww2nY9cxJVLF9cfoQS5U6Q_;
2212 N_LIB_PRIVATE TNimType NTIcandidateerror__5fLnqPfj0Ty9cmak1Q1pBFQ_;
2213 N_LIB_PRIVATE TNimType NTIcandidateerrors__0dpGN6F4ocevqUQGsaf41w_;
2214 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_95, ": ", 2);
2215 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_96, " | ", 3);
2216 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_97, "void", 4);
2217 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_98, "The default parameter \'$1\' has incompatible type with the explicitly requested proc instantiation", 97);
2218 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_99 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2219 ((NI) 2576),
2220 ((NI) 20)}
2221 ;
2222 STRING_LITERAL(TM__EV5hHJmjIY9cla9b9be7fSVJQ_100, "cannot instantiate: \'", 21);
2223 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_101 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2224 ((NI) 2618),
2225 ((NI) 14)}
2226 ;
2227 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__EV5hHJmjIY9cla9b9be7fSVJQ_102 = {((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_21),
2228 ((NI) 2627),
2229 ((NI) 14)}
2230 ;
2231 extern TSafePoint* excHandler__system_2565;
2232 extern TSafePoint* excHandler__system_2565;
2233 extern TSafePoint* excHandler__system_2565;
2234 extern TSafePoint* excHandler__system_2565;
2235 extern Exception* currException__system_2566;
2236 extern Exception* currException__system_2566;
2237 extern Exception* currException__system_2566;
2238 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5218;
N_INLINE(void,pushSafePoint)2239 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
2240 	(*s).prev = excHandler__system_2565;
2241 	excHandler__system_2565 = s;
2242 }
N_INLINE(void,popSafePoint)2243 static N_INLINE(void, popSafePoint)(void) {
2244 	excHandler__system_2565 = (*excHandler__system_2565).prev;
2245 }
N_INLINE(Exception *,nimBorrowCurrentException)2246 static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
2247 	Exception* result;
2248 	result = NIM_NIL;
2249 	result = currException__system_2566;
2250 	return result;
2251 }
N_INLINE(NI,pluspercent___system_696)2252 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
2253 	NI result;
2254 	result = (NI)0;
2255 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
2256 	return result;
2257 }
N_INLINE(void,incRef__system_5309)2258 static N_INLINE(void, incRef__system_5309)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2259 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
2260 }
N_INLINE(NI,minuspercent___system_716)2261 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
2262 	NI result;
2263 	result = (NI)0;
2264 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
2265 	return result;
2266 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5271)2267 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5271)(void* usr) {
2268 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
2269 	NI T1_;
2270 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
2271 	T1_ = (NI)0;
2272 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
2273 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
2274 	return result;
2275 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)2276 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
2277 	NIM_BOOL result;
2278 	result = (NIM_BOOL)0;
2279 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
2280 	return result;
2281 }
N_INLINE(void,rtlAddZCT__system_5314)2282 static N_INLINE(void, rtlAddZCT__system_5314)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2283 	addZCT__system_5265((&gch__system_5218.zct), c);
2284 }
N_INLINE(void,decRef__system_5316)2285 static N_INLINE(void, decRef__system_5316)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2286 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
2287 	{
2288 		NIM_BOOL T3_;
2289 		T3_ = (NIM_BOOL)0;
2290 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
2291 		if (!T3_) goto LA4_;
2292 		rtlAddZCT__system_5314(c);
2293 	}
2294 	LA4_: ;
2295 }
N_INLINE(void,asgnRef)2296 static N_INLINE(void, asgnRef)(void** dest, void* src) {
2297 	{
2298 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
2299 		if (!!((src == NIM_NIL))) goto LA3_;
2300 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
2301 		T5_ = usrToCell__system_5271(src);
2302 		incRef__system_5309(T5_);
2303 	}
2304 	LA3_: ;
2305 	{
2306 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
2307 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
2308 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
2309 		T10_ = usrToCell__system_5271((*dest));
2310 		decRef__system_5316(T10_);
2311 	}
2312 	LA8_: ;
2313 	(*dest) = src;
2314 }
N_INLINE(void,popCurrentException)2315 static N_INLINE(void, popCurrentException)(void) {
2316 	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
2317 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,safeSemExpr__sigmatch_6411)2318 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, safeSemExpr__sigmatch_6411)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
2319 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* volatile result;
2320 	TSafePoint TM__EV5hHJmjIY9cla9b9be7fSVJQ_2;
2321 	result = NIM_NIL;
2322 	pushSafePoint(&TM__EV5hHJmjIY9cla9b9be7fSVJQ_2);
2323 	TM__EV5hHJmjIY9cla9b9be7fSVJQ_2.status = setjmp(TM__EV5hHJmjIY9cla9b9be7fSVJQ_2.context);
2324 	if (TM__EV5hHJmjIY9cla9b9be7fSVJQ_2.status == 0) {
2325 	result = (*c).semExpr(c, n, 0);
2326 	popSafePoint();
2327 	}
2328 	else {
2329 		popSafePoint();
2330 		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIerecoverableerror__IxbcvonC7TQkv166Uvdu1g_))) {
2331 			TM__EV5hHJmjIY9cla9b9be7fSVJQ_2.status = 0;
2332 			result = (*(*c).graph).emptyNode;
2333 			popCurrentException();
2334 		}
2335 	}
2336 	if (TM__EV5hHJmjIY9cla9b9be7fSVJQ_2.status != 0) reraiseException();
2337 	return result;
2338 }
N_INLINE(NI,len__ast_3198)2339 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
2340 	NI result;
2341 	NI T1_;
2342 	result = (NI)0;
2343 	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
2344 	result = T1_;
2345 	return result;
2346 }
N_INLINE(void,nimSetMem__systemZmemory_7)2347 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
2348 	void* T1_;
2349 	T1_ = (void*)0;
2350 	T1_ = memset(a, v, ((size_t) (size)));
2351 }
N_INLINE(void,nimZeroMem)2352 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
2353 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
2354 }
N_NIMCALL(tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q,prefixMatch__sigmatch_4914)2355 N_LIB_PRIVATE N_NIMCALL(tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q, prefixMatch__sigmatch_4914)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
2356 	tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q result;
2357 	result = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
2358 	switch ((*n).kind) {
2359 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
2360 	{
2361 		result = prefixMatch__prefixmatches_10((*(*n)._kind_5.ident).s, (*(*s).name).s);
2362 	}
2363 	break;
2364 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
2365 	{
2366 		result = prefixMatch__prefixmatches_10((*(*(*n)._kind_4.sym).name).s, (*(*s).name).s);
2367 	}
2368 	break;
2369 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57):
2370 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56):
2371 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
2372 	{
2373 		{
2374 			NI T6_;
2375 			T6_ = (NI)0;
2376 			T6_ = len__ast_3198(n);
2377 			if (!(((NI) 0) < T6_)) goto LA7_;
2378 			result = prefixMatch__sigmatch_4914(s, (*n)._kind_6.sons->data[((NI) 0)]);
2379 		}
2380 		LA7_: ;
2381 	}
2382 	break;
2383 	default:
2384 	{
2385 	}
2386 	break;
2387 	}
2388 	return result;
2389 }
N_INLINE(NIM_BOOL,filterSym__sigmatch_4909)2390 static N_INLINE(NIM_BOOL, filterSym__sigmatch_4909)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prefix, tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q* res) {
2391 	NIM_BOOL result;
2392 	result = (NIM_BOOL)0;
2393 	{
2394 		if (!!(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)))) goto LA3_;
2395 		{
2396 			if (!!((prefix == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA7_;
2397 			(*res) = prefixMatch__sigmatch_4914(s, prefix);
2398 			result = !(((*res) == ((tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q) 0)));
2399 		}
2400 		goto LA5_;
2401 		LA7_: ;
2402 		{
2403 			result = NIM_TRUE;
2404 		}
2405 		LA5_: ;
2406 	}
2407 	LA3_: ;
2408 	return result;
2409 }
N_INLINE(void,nimGCunrefRC1)2410 static N_INLINE(void, nimGCunrefRC1)(void* p) {
2411 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
2412 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
2413 	T1_ = usrToCell__system_5271(p);
2414 	decRef__system_5316(T1_);
2415 }
N_INLINE(void,nimGCunrefNoCycle)2416 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
2417 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
2418 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
2419 	T1_ = usrToCell__system_5271(p);
2420 	decRef__system_5316(T1_);
2421 }
N_INLINE(NIM_BOOL,contains__pureZtimes_2283)2422 static N_INLINE(NIM_BOOL, contains__pureZtimes_2283)(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA s, NI value) {
2423 	NIM_BOOL result;
2424 	NIM_BOOL T1_;
2425 	result = (NIM_BOOL)0;
2426 	T1_ = (NIM_BOOL)0;
2427 	T1_ = (s.a <= value);
2428 	if (!(T1_)) goto LA2_;
2429 	T1_ = (value <= s.b);
2430 	LA2_: ;
2431 	result = T1_;
2432 	return result;
2433 }
N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA,dotdot___pureZunicode_840)2434 static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___pureZunicode_840)(NI a, NI b) {
2435 	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
2436 	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
2437 	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
2438 	result.a = a;
2439 	result.b = b;
2440 	return result;
2441 }
N_INLINE(void,appendChar)2442 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
2443 	(*dest).data[(*dest).Sup.len] = c;
2444 	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
2445 	(*dest).Sup.len += ((NI) 1);
2446 }
N_INLINE(void,nimCopyMem)2447 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
2448 	void* T1_;
2449 	T1_ = (void*)0;
2450 	T1_ = memcpy(dest, source, ((size_t) (size)));
2451 }
N_INLINE(void,copyMem__system_1727)2452 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
2453 	nimCopyMem(dest, source, size);
2454 }
N_INLINE(void,appendString)2455 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
2456 	{
2457 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
2458 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
2459 		(*dest).Sup.len += (*src).Sup.len;
2460 	}
2461 	LA3_: ;
2462 }
N_INLINE(NI,toLinenumber__msgs_609)2463 static N_INLINE(NI, toLinenumber__msgs_609)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
2464 	NI result;
2465 	result = (NI)0;
2466 	result = ((NI) (info.line));
2467 	return result;
2468 }
N_INLINE(NI,toColumn__msgs_612)2469 static N_INLINE(NI, toColumn__msgs_612)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
2470 	NI result;
2471 	result = (NI)0;
2472 	result = ((NI) (info.col));
2473 	return result;
2474 }
N_NIMCALL(void,Marker_tyRef__AQEmz0epsPFaQWAZOZKqTA)2475 static N_NIMCALL(void, Marker_tyRef__AQEmz0epsPFaQWAZOZKqTA)(void* p, NI op) {
2476 	tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ* a;
2477 	a = (tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ*)p;
2478 	nimGCvisit((void*)(*a).line1, op);
2479 }
N_CLOSURE(NIM_BOOL,isOpeningBacktick__sigmatch_4458)2480 N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, isOpeningBacktick__sigmatch_4458)(NI col, void* ClE_0) {
2481 	NIM_BOOL result;
2482 	tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ* colonenvP_;
2483 	result = (NIM_BOOL)0;
2484 	colonenvP_ = (tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ*) ClE_0;
2485 	{
2486 		NIM_BOOL T3_;
2487 		T3_ = (NIM_BOOL)0;
2488 		T3_ = (((NI) 0) <= col);
2489 		if (!(T3_)) goto LA4_;
2490 		T3_ = (col < ((*colonenvP_).line1 ? (*colonenvP_).line1->Sup.len : 0));
2491 		LA4_: ;
2492 		if (!T3_) goto LA5_;
2493 		{
2494 			tyProc__cOOsXj9cY0bKt2oqNqLbhZw T11_;
2495 			NIM_BOOL T12_;
2496 			if (!((NU8)((*colonenvP_).line1->data[col]) == (NU8)(96))) goto LA9_;
2497 			nimZeroMem((void*)(&T11_), sizeof(tyProc__cOOsXj9cY0bKt2oqNqLbhZw));
2498 			T11_.ClP_0 = isOpeningBacktick__sigmatch_4458; T11_.ClE_0 = colonenvP_;
2499 			T12_ = (NIM_BOOL)0;
2500 			T12_ = T11_.ClE_0? T11_.ClP_0((NI)(col - ((NI) 1)), T11_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_5)(T11_.ClP_0))((NI)(col - ((NI) 1)));
2501 			result = !(T12_);
2502 		}
2503 		goto LA7_;
2504 		LA9_: ;
2505 		{
2506 			tyProc__cOOsXj9cY0bKt2oqNqLbhZw T14_;
2507 			nimZeroMem((void*)(&T14_), sizeof(tyProc__cOOsXj9cY0bKt2oqNqLbhZw));
2508 			T14_.ClP_0 = isOpeningBacktick__sigmatch_4458; T14_.ClE_0 = colonenvP_;
2509 			result = T14_.ClE_0? T14_.ClP_0((NI)(col - ((NI) 1)), T14_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_6)(T14_.ClP_0))((NI)(col - ((NI) 1)));
2510 		}
2511 		LA7_: ;
2512 	}
2513 	goto LA1_;
2514 	LA5_: ;
2515 	{
2516 		result = NIM_FALSE;
2517 	}
2518 	LA1_: ;
2519 	return result;
2520 }
N_INLINE(NI,skipUntil__pureZparseutils_148)2521 static N_INLINE(NI, skipUntil__pureZparseutils_148)(NimStringDesc* s, NIM_CHAR until, NI start) {
2522 	NI result;
2523 	result = (NI)0;
2524 	result = ((NI) 0);
2525 	{
2526 		while (1) {
2527 			NIM_BOOL T3_;
2528 			T3_ = (NIM_BOOL)0;
2529 			T3_ = ((NI)(start + result) < (s ? s->Sup.len : 0));
2530 			if (!(T3_)) goto LA4_;
2531 			T3_ = !(((NU8)(s->data[(NI)(result + start)]) == (NU8)(until)));
2532 			LA4_: ;
2533 			if (!T3_) goto LA2;
2534 			result += ((NI) 1);
2535 		} LA2: ;
2536 	}
2537 	return result;
2538 }
N_INLINE(NimStringDesc *,X5BX5D___pureZunicode_865)2539 static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_865)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {
2540 	NimStringDesc* result;
2541 	NI a;
2542 	NI L;
2543 	result = NIM_NIL;
2544 	a = x.a;
2545 	L = (NI)((NI)(x.b - a) + ((NI) 1));
2546 	result = mnewString(((NI) (L)));
2547 	{
2548 		NI i;
2549 		NI i_2;
2550 		i = (NI)0;
2551 		i_2 = ((NI) 0);
2552 		{
2553 			while (1) {
2554 				if (!(i_2 < L)) goto LA3;
2555 				i = i_2;
2556 				result->data[i] = s->data[(NI)(i + a)];
2557 				i_2 += ((NI) 1);
2558 			} LA3: ;
2559 		}
2560 	}
2561 	return result;
2562 }
N_INLINE(NIM_CHAR,X5BX5D___system_7329)2563 static N_INLINE(NIM_CHAR, X5BX5D___system_7329)(NimStringDesc* s, NI i) {
2564 	NIM_CHAR result;
2565 	result = (NIM_CHAR)0;
2566 	result = s->data[(NI)((s ? s->Sup.len : 0) - i)];
2567 	return result;
2568 }
N_INLINE(NI,parseWhile__pureZparseutils_226)2569 static N_INLINE(NI, parseWhile__pureZparseutils_226)(NimStringDesc* s, NimStringDesc** token, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw validChars, NI start) {
2570 	NI result;
2571 	NI i;
2572 	result = (NI)0;
2573 	i = start;
2574 	{
2575 		while (1) {
2576 			NIM_BOOL T3_;
2577 			T3_ = (NIM_BOOL)0;
2578 			T3_ = (i < (s ? s->Sup.len : 0));
2579 			if (!(T3_)) goto LA4_;
2580 			T3_ = ((validChars[(NU)(((NU8)(s->data[i])))>>3] &(1U<<((NU)(((NU8)(s->data[i])))&7U)))!=0);
2581 			LA4_: ;
2582 			if (!T3_) goto LA2;
2583 			i += ((NI) 1);
2584 		} LA2: ;
2585 	}
2586 	result = (NI)(i - start);
2587 	fastSubstr__pureZparseutils_170(s, token, start, result);
2588 	return result;
2589 }
N_INLINE(int,nimCmpMem)2590 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
2591 	int result;
2592 	result = (int)0;
2593 	result = memcmp(a, b, ((size_t) (size)));
2594 	return result;
2595 }
N_INLINE(NIM_BOOL,equalMem__system_1735)2596 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
2597 	NIM_BOOL result;
2598 	int T1_;
2599 	result = (NIM_BOOL)0;
2600 	T1_ = (int)0;
2601 	T1_ = nimCmpMem(a, b, size);
2602 	result = (T1_ == ((NI32) 0));
2603 	return result;
2604 }
N_INLINE(NIM_BOOL,eqStrings)2605 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
2606 	NIM_BOOL result;
2607 	NI alen;
2608 	NI blen;
2609 {	result = (NIM_BOOL)0;
2610 	alen = (a ? a->Sup.len : 0);
2611 	blen = (b ? b->Sup.len : 0);
2612 	{
2613 		if (!(alen == blen)) goto LA3_;
2614 		{
2615 			if (!(alen == ((NI) 0))) goto LA7_;
2616 			result = NIM_TRUE;
2617 			goto BeforeRet_;
2618 		}
2619 		LA7_: ;
2620 		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
2621 		goto BeforeRet_;
2622 	}
2623 	LA3_: ;
2624 	}BeforeRet_: ;
2625 	return result;
2626 }
N_NIMCALL(NI,getTokenLenFromSource__sigmatch_4451)2627 N_LIB_PRIVATE N_NIMCALL(NI, getTokenLenFromSource__sigmatch_4451)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* ident, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
2628 	NI result;
2629 	tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ* colonenv_;
2630 	NI column;
2631 	result = (NI)0;
2632 	colonenv_ = NIM_NIL;
2633 	colonenv_ = (tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ*) newObj((&NTIrefobject__AQEmz0epsPFaQWAZOZKqTA_), sizeof(tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ));
2634 	(*colonenv_).Sup.m_type = (&NTIobject__OOiDxDXQlxWHlb9aU1AkbWQ_);
2635 	asgnRef((void**) (&(*colonenv_).line1), sourceLine__msgs_1101(conf, info));
2636 	column = toColumn__msgs_612(info);
2637 	{
2638 		if (!(((*colonenv_).line1 ? (*colonenv_).line1->Sup.len : 0) < column)) goto LA3_;
2639 		result = ((NI) 0);
2640 	}
2641 	goto LA1_;
2642 	LA3_: ;
2643 	{
2644 		NIM_BOOL T6_;
2645 		NIM_BOOL T7_;
2646 		tyProc__cOOsXj9cY0bKt2oqNqLbhZw T10_;
2647 		T6_ = (NIM_BOOL)0;
2648 		T7_ = (NIM_BOOL)0;
2649 		T7_ = (((NI) 0) < column);
2650 		if (!(T7_)) goto LA8_;
2651 		T7_ = ((NU8)((*colonenv_).line1->data[(NI)(column - ((NI) 1))]) == (NU8)(96));
2652 		LA8_: ;
2653 		T6_ = T7_;
2654 		if (!(T6_)) goto LA9_;
2655 		nimZeroMem((void*)(&T10_), sizeof(tyProc__cOOsXj9cY0bKt2oqNqLbhZw));
2656 		T10_.ClP_0 = isOpeningBacktick__sigmatch_4458; T10_.ClE_0 = colonenv_;
2657 		T6_ = T10_.ClE_0? T10_.ClP_0((NI)(column - ((NI) 1)), T10_.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_7)(T10_.ClP_0))((NI)(column - ((NI) 1)));
2658 		LA9_: ;
2659 		if (!T6_) goto LA11_;
2660 		result = skipUntil__pureZparseutils_148((*colonenv_).line1, 96, column);
2661 		{
2662 			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T15_;
2663 			NimStringDesc* T16_;
2664 			NI T17_;
2665 			T15_ = dotdot___pureZunicode_840(column, (NI)((NI)(column + result) - ((NI) 1)));
2666 			T16_ = NIM_NIL;
2667 			T16_ = X5BX5D___pureZunicode_865((*colonenv_).line1, T15_);
2668 			T17_ = (NI)0;
2669 			T17_ = nsuCmpIgnoreStyle(T16_, ident);
2670 			if (!!((T17_ == ((NI) 0)))) goto LA18_;
2671 			result = ((NI) 0);
2672 		}
2673 		LA18_: ;
2674 	}
2675 	goto LA1_;
2676 	LA11_: ;
2677 	{
2678 		NIM_BOOL T21_;
2679 		NIM_CHAR T23_;
2680 		T21_ = (NIM_BOOL)0;
2681 		T21_ = (((NU8)(ident->data[((NI) 0)])) >= ((NU8)(97)) && ((NU8)(ident->data[((NI) 0)])) <= ((NU8)(122)) || ((NU8)(ident->data[((NI) 0)])) >= ((NU8)(65)) && ((NU8)(ident->data[((NI) 0)])) <= ((NU8)(90)) || ((NU8)(ident->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)(ident->data[((NI) 0)])) <= ((NU8)(57)) || ((NU8)(ident->data[((NI) 0)])) >= ((NU8)(128)) && ((NU8)(ident->data[((NI) 0)])) <= ((NU8)(255)) || ((NU8)(ident->data[((NI) 0)])) == ((NU8)(95)));
2682 		if (!(T21_)) goto LA22_;
2683 		T23_ = (NIM_CHAR)0;
2684 		T23_ = X5BX5D___system_7329(ident, ((NI) 1));
2685 		T21_ = !(((NU8)(T23_) == (NU8)(61)));
2686 		LA22_: ;
2687 		if (!T21_) goto LA24_;
2688 		result = identLen__linter_11((*colonenv_).line1, column);
2689 		{
2690 			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T28_;
2691 			NimStringDesc* T29_;
2692 			NI T30_;
2693 			T28_ = dotdot___pureZunicode_840(column, (NI)((NI)(column + result) - ((NI) 1)));
2694 			T29_ = NIM_NIL;
2695 			T29_ = X5BX5D___pureZunicode_865((*colonenv_).line1, T28_);
2696 			T30_ = (NI)0;
2697 			T30_ = nsuCmpIgnoreStyle(T29_, ident);
2698 			if (!!((T30_ == ((NI) 0)))) goto LA31_;
2699 			result = ((NI) 0);
2700 		}
2701 		LA31_: ;
2702 	}
2703 	goto LA1_;
2704 	LA24_: ;
2705 	{
2706 		NimStringDesc* sourceIdent;
2707 		sourceIdent = NIM_NIL;
2708 		result = parseWhile__pureZparseutils_226((*colonenv_).line1, (&sourceIdent), TM__EV5hHJmjIY9cla9b9be7fSVJQ_8, column);
2709 		{
2710 			NIM_BOOL T36_;
2711 			NIM_CHAR T37_;
2712 			T36_ = (NIM_BOOL)0;
2713 			T37_ = (NIM_CHAR)0;
2714 			T37_ = X5BX5D___system_7329(ident, ((NI) 1));
2715 			T36_ = ((NU8)(T37_) == (NU8)(61));
2716 			if (!(T36_)) goto LA38_;
2717 			T36_ = (((NU8)(ident->data[((NI) 0)])) >= ((NU8)(97)) && ((NU8)(ident->data[((NI) 0)])) <= ((NU8)(122)) || ((NU8)(ident->data[((NI) 0)])) >= ((NU8)(65)) && ((NU8)(ident->data[((NI) 0)])) <= ((NU8)(90)) || ((NU8)(ident->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)(ident->data[((NI) 0)])) <= ((NU8)(57)) || ((NU8)(ident->data[((NI) 0)])) >= ((NU8)(128)) && ((NU8)(ident->data[((NI) 0)])) <= ((NU8)(255)) || ((NU8)(ident->data[((NI) 0)])) == ((NU8)(95)));
2718 			LA38_: ;
2719 			if (!T36_) goto LA39_;
2720 			{
2721 				if (!!(eqStrings(sourceIdent, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_9)))) goto LA43_;
2722 				result = ((NI) 0);
2723 			}
2724 			LA43_: ;
2725 		}
2726 		goto LA34_;
2727 		LA39_: ;
2728 		{
2729 			NIM_BOOL T46_;
2730 			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T48_;
2731 			NimStringDesc* T49_;
2732 			T46_ = (NIM_BOOL)0;
2733 			T46_ = ((ident ? ident->Sup.len : 0) < (sourceIdent ? sourceIdent->Sup.len : 0));
2734 			if (!(T46_)) goto LA47_;
2735 			T48_ = dotdot___pureZunicode_840(((NI) 0), ((ident ? ident->Sup.len : 0)-1));
2736 			T49_ = NIM_NIL;
2737 			T49_ = X5BX5D___pureZunicode_865(sourceIdent, T48_);
2738 			T46_ = eqStrings(T49_, ident);
2739 			LA47_: ;
2740 			if (!T46_) goto LA50_;
2741 			result = (ident ? ident->Sup.len : 0);
2742 		}
2743 		goto LA34_;
2744 		LA50_: ;
2745 		{
2746 			if (!!(eqStrings(sourceIdent, ident))) goto LA53_;
2747 			result = ((NI) 0);
2748 		}
2749 		goto LA34_;
2750 		LA53_: ;
2751 		LA34_: ;
2752 	}
2753 	LA1_: ;
2754 	return result;
2755 }
N_NIMCALL(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ *,symToSuggest__sigmatch_4528)2756 N_LIB_PRIVATE N_NIMCALL(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ*, symToSuggest__sigmatch_4528)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, NIM_BOOL isLocal, tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ section, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI quality, tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q prefix, NIM_BOOL inTypeContext, NI scope, NIM_BOOL useSuppliedInfo) {
2757 	tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result;
2758 	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q infox;
2759 	result = NIM_NIL;
2760 	result = (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ*) newObj((&NTIsuggest__qG8FNvsuCmStKCBZxTA0eg_), sizeof(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ));
2761 	(*result).section = section;
2762 	(*result).quality = quality;
2763 	(*result).isGlobal = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
2764 	(*result).prefix = prefix;
2765 	(*result).contextFits = (inTypeContext == ((144 &((NU32)1<<((NU)((*s).kind)&31U)))!=0));
2766 	(*result).scope = scope;
2767 	(*result).name = (&(*(*s).name).s);
2768 	(*result).symkind = ((NU8) ((*s).kind));
2769 	{
2770 		if (!!((((*(*g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 30))&63U)))!=0))) goto LA3_;
2771 		if ((*result).qualifiedPath) { nimGCunrefRC1((*result).qualifiedPath); (*result).qualifiedPath = NIM_NIL; }
2772 		{
2773 			NIM_BOOL T7_;
2774 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* ow;
2775 			T7_ = (NIM_BOOL)0;
2776 			T7_ = !(isLocal);
2777 			if (!(T7_)) goto LA8_;
2778 			T7_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
2779 			LA8_: ;
2780 			if (!T7_) goto LA9_;
2781 			ow = (*s).owner;
2782 			{
2783 				NIM_BOOL T13_;
2784 				NIM_BOOL T14_;
2785 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* ow2;
2786 				NI T19_;
2787 				NimStringDesc* T20_;
2788 				T13_ = (NIM_BOOL)0;
2789 				T14_ = (NIM_BOOL)0;
2790 				T14_ = !((ow == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
2791 				if (!(T14_)) goto LA15_;
2792 				T14_ = !(((*ow).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
2793 				LA15_: ;
2794 				T13_ = T14_;
2795 				if (!(T13_)) goto LA16_;
2796 				T13_ = !(((*ow).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
2797 				LA16_: ;
2798 				if (!T13_) goto LA17_;
2799 				ow2 = (*ow).owner;
2800 				asgnRef((void**) (&(*result).qualifiedPath), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*result).qualifiedPath), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
2801 				T19_ = (*result).qualifiedPath->Sup.len++;
2802 				T20_ = NIM_NIL;
2803 				T20_ = (*result).qualifiedPath->data[T19_]; (*result).qualifiedPath->data[T19_] = copyStringRC1((*(*ow2).name).s);
2804 				if (T20_) nimGCunrefNoCycle(T20_);
2805 			}
2806 			LA17_: ;
2807 			{
2808 				NI T25_;
2809 				NimStringDesc* T26_;
2810 				if (!!((ow == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA23_;
2811 				asgnRef((void**) (&(*result).qualifiedPath), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*result).qualifiedPath), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
2812 				T25_ = (*result).qualifiedPath->Sup.len++;
2813 				T26_ = NIM_NIL;
2814 				T26_ = (*result).qualifiedPath->data[T25_]; (*result).qualifiedPath->data[T25_] = copyStringRC1((*(*ow).name).s);
2815 				if (T26_) nimGCunrefNoCycle(T26_);
2816 			}
2817 			LA23_: ;
2818 		}
2819 		LA9_: ;
2820 		{
2821 			NIM_BOOL T29_;
2822 			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T31_;
2823 			NimStringDesc* T34_;
2824 			NI T35_;
2825 			NimStringDesc* T36_;
2826 			T29_ = (NIM_BOOL)0;
2827 			T29_ = ((TM__EV5hHJmjIY9cla9b9be7fSVJQ_3[(NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))>>3] &(1U<<((NU)(((NU8)((*(*s).name).s->data[((NI) 0)])))&7U)))!=0);
2828 			if (T29_) goto LA30_;
2829 			T31_ = dotdot___pureZunicode_840(((NI) 1), ((NI) 66));
2830 			T29_ = contains__pureZtimes_2283(T31_, (*(*s).name).id);
2831 			LA30_: ;
2832 			if (!T29_) goto LA32_;
2833 			T34_ = NIM_NIL;
2834 			T34_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 2);
2835 appendChar(T34_, 96);
2836 appendString(T34_, (*(*s).name).s);
2837 appendChar(T34_, 96);
2838 			asgnRef((void**) (&(*result).qualifiedPath), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*result).qualifiedPath), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
2839 			T35_ = (*result).qualifiedPath->Sup.len++;
2840 			T36_ = NIM_NIL;
2841 			T36_ = (*result).qualifiedPath->data[T35_]; (*result).qualifiedPath->data[T35_] = copyStringRC1(T34_);
2842 			if (T36_) nimGCunrefNoCycle(T36_);
2843 		}
2844 		goto LA27_;
2845 		LA32_: ;
2846 		{
2847 			NI T38_;
2848 			NimStringDesc* T39_;
2849 			asgnRef((void**) (&(*result).qualifiedPath), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*result).qualifiedPath), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
2850 			T38_ = (*result).qualifiedPath->Sup.len++;
2851 			T39_ = NIM_NIL;
2852 			T39_ = (*result).qualifiedPath->data[T38_]; (*result).qualifiedPath->data[T38_] = copyStringRC1((*(*s).name).s);
2853 			if (T39_) nimGCunrefNoCycle(T39_);
2854 		}
2855 		LA27_: ;
2856 		{
2857 			if (!!(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA42_;
2858 			asgnRef((void**) (&(*result).forth), typeToString__types_50((*s).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0)));
2859 		}
2860 		goto LA40_;
2861 		LA42_: ;
2862 		{
2863 			asgnRef((void**) (&(*result).forth), ((NimStringDesc*) NIM_NIL));
2864 		}
2865 		LA40_: ;
2866 	}
2867 	LA3_: ;
2868 	{
2869 		NIM_BOOL T47_;
2870 		T47_ = (NIM_BOOL)0;
2871 		T47_ = useSuppliedInfo;
2872 		if (T47_) goto LA48_;
2873 		T47_ = ((784 &((NU16)1<<((NU)(section)&15U)))!=0);
2874 		LA48_: ;
2875 		if (!T47_) goto LA49_;
2876 		infox = info;
2877 	}
2878 	goto LA45_;
2879 	LA49_: ;
2880 	{
2881 		infox = (*s).info;
2882 	}
2883 	LA45_: ;
2884 	asgnRef((void**) (&(*result).filePath), toFullPath__msgs_538((*g).config, infox.fileIndex));
2885 	(*result).line = toLinenumber__msgs_609(infox);
2886 	(*result).column = toColumn__msgs_612(infox);
2887 	(*result).version = (*(*g).config).suggestVersion;
2888 	{
2889 		if (!!((section == ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 8)))) goto LA54_;
2890 		(*result).tokenLen = ((*(*s).name).s ? (*(*s).name).s->Sup.len : 0);
2891 	}
2892 	goto LA52_;
2893 	LA54_: ;
2894 	{
2895 		(*result).tokenLen = getTokenLenFromSource__sigmatch_4451((*g).config, (*(*s).name).s, infox);
2896 	}
2897 	LA52_: ;
2898 	return result;
2899 }
N_INLINE(NI,len__ast_4002)2900 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) {
2901 	NI result;
2902 	NI T1_;
2903 	result = (NI)0;
2904 	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
2905 	result = T1_;
2906 	return result;
2907 }
N_NIMCALL(NI,getQuality__sigmatch_5002)2908 N_LIB_PRIVATE N_NIMCALL(NI, getQuality__sigmatch_5002)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
2909 	NI result;
2910 	result = (NI)0;
2911 	result = ((NI) 100);
2912 	{
2913 		NIM_BOOL T3_;
2914 		NI T5_;
2915 		tyObject_TType__facALICuu8zUj0hjvbTLFg* exp_1;
2916 		T3_ = (NIM_BOOL)0;
2917 		T3_ = !(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
2918 		if (!(T3_)) goto LA4_;
2919 		T5_ = (NI)0;
2920 		T5_ = len__ast_4002((*s).typ);
2921 		T3_ = (((NI) 1) < T5_);
2922 		LA4_: ;
2923 		if (!T3_) goto LA6_;
2924 		exp_1 = skipTypes__ast_3735((*(*s).typ).sons->data[((NI) 1)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_10);
2925 		{
2926 			if (!((*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA10_;
2927 			exp_1 = elemType__types_263(exp_1);
2928 		}
2929 		LA10_: ;
2930 		{
2931 			if (!((*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6) || (*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7) || (*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59))) goto LA14_;
2932 			result = ((NI) 50);
2933 		}
2934 		LA14_: ;
2935 	}
2936 	LA6_: ;
2937 	{
2938 		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 22))&63U)))!=0)) goto LA18_;
2939 		result = ((NI) ((NI)(((NI) (result)) - ((NI) 5))));
2940 	}
2941 	LA18_: ;
2942 	return result;
2943 }
N_INLINE(NIM_BOOL,isCachedModule__modulegraphs_2697)2944 static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2697)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module) {
2945 	NIM_BOOL result;
2946 	NIM_BOOL T1_;
2947 	NI T2_;
2948 	result = (NIM_BOOL)0;
2949 	T1_ = (NIM_BOOL)0;
2950 	T2_ = ((*g).packed_0 ? (*g).packed_0->Sup.len : 0);
2951 	T1_ = (module < T2_);
2952 	if (!(T1_)) goto LA3_;
2953 	T1_ = ((*g).packed_0->data[module].status == ((tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q) 3));
2954 	LA3_: ;
2955 	result = T1_;
2956 	return result;
2957 }
N_INLINE(NIM_BOOL,isCachedModule__modulegraphs_2709)2958 static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2709)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m) {
2959 	NIM_BOOL result;
2960 	result = (NIM_BOOL)0;
2961 	result = isCachedModule__modulegraphs_2697(g, (*m).position);
2962 	return result;
2963 }
N_NIMCALL(void,suggestEverything__sigmatch_5217)2964 N_LIB_PRIVATE N_NIMCALL(void, suggestEverything__sigmatch_5217)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs) {
2965 	{
2966 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it;
2967 		NI scopeN;
2968 		NIM_BOOL isLocal;
2969 		NIM_BOOL isLocal_2;
2970 		NI scopeN_2;
2971 		it = NIM_NIL;
2972 		scopeN = (NI)0;
2973 		isLocal = (NIM_BOOL)0;
2974 		isLocal_2 = NIM_TRUE;
2975 		scopeN_2 = ((NI) 0);
2976 		{
2977 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
2978 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
2979 			scope = NIM_NIL;
2980 			current = (*c).currentScope;
2981 			{
2982 				while (1) {
2983 					if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA4;
2984 					scope = current;
2985 					{
2986 						if (!(scope == (*c).topLevelScope)) goto LA7_;
2987 						isLocal_2 = NIM_FALSE;
2988 					}
2989 					LA7_: ;
2990 					scopeN_2 -= ((NI) 1);
2991 					{
2992 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item;
2993 						tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg it_2;
2994 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
2995 						item = NIM_NIL;
2996 						nimZeroMem((void*)(&it_2), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
2997 						s = initTabIter__astalgo_3777((&it_2), (*scope).symbols);
2998 						{
2999 							while (1) {
3000 								tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp_;
3001 								tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm;
3002 								if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA11;
3003 								item = s;
3004 								nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
3005 								colontmp_.Field0 = item;
3006 								colontmp_.Field1 = scopeN_2;
3007 								colontmp_.Field2 = isLocal_2;
3008 								it = colontmp_.Field0;
3009 								scopeN = colontmp_.Field1;
3010 								isLocal = colontmp_.Field2;
3011 								pm = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
3012 								{
3013 									NIM_BOOL T14_;
3014 									NI T17_;
3015 									tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T18_;
3016 									NI T19_;
3017 									T14_ = (NIM_BOOL)0;
3018 									T14_ = filterSym__sigmatch_4909(it, f, (&pm));
3019 									if (!T14_) goto LA15_;
3020 									T17_ = (NI)0;
3021 									T17_ = getQuality__sigmatch_5002(it);
3022 									T18_ = NIM_NIL;
3023 									T18_ = symToSuggest__sigmatch_4528((*c).graph, it, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), (*n).info, T17_, pm, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
3024 									unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
3025 									T19_ = (*outputs)->Sup.len++;
3026 									asgnRef((void**) (&(*outputs)->data[T19_]), T18_);
3027 								}
3028 								LA15_: ;
3029 								s = nextIter__astalgo_3762((&it_2), (*scope).symbols);
3030 							} LA11: ;
3031 						}
3032 					}
3033 					current = (*current).parent;
3034 				} LA4: ;
3035 			}
3036 		}
3037 		scopeN_2 -= ((NI) 1);
3038 		isLocal_2 = NIM_FALSE;
3039 		{
3040 			tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ* im;
3041 			NI i;
3042 			NI L;
3043 			NI T21_;
3044 			im = (tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ*)0;
3045 			i = ((NI) 0);
3046 			T21_ = ((*c).imports ? (*c).imports->Sup.len : 0);
3047 			L = T21_;
3048 			{
3049 				while (1) {
3050 					if (!(i < L)) goto LA23;
3051 					im = (&(*c).imports->data[i]);
3052 					{
3053 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
3054 						NIM_BOOL importHidden;
3055 						s_2 = NIM_NIL;
3056 						importHidden = (((*(*im).m).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0);
3057 						{
3058 							NIM_BOOL T27_;
3059 							tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
3060 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* r;
3061 							T27_ = (NIM_BOOL)0;
3062 							T27_ = isCachedModule__modulegraphs_2709((*c).graph, (*im).m);
3063 							if (!T27_) goto LA28_;
3064 							nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg));
3065 							r = initRodIterAllSyms__icZic_8667((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*(*im).m).position)), importHidden);
3066 							{
3067 								while (1) {
3068 									tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__2;
3069 									tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_2;
3070 									if (!!((r == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA31;
3071 									s_2 = r;
3072 									nimZeroMem((void*)(&colontmp__2), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
3073 									colontmp__2.Field0 = s_2;
3074 									colontmp__2.Field1 = scopeN_2;
3075 									colontmp__2.Field2 = isLocal_2;
3076 									it = colontmp__2.Field0;
3077 									scopeN = colontmp__2.Field1;
3078 									isLocal = colontmp__2.Field2;
3079 									pm_2 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
3080 									{
3081 										NIM_BOOL T34_;
3082 										NI T37_;
3083 										tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T38_;
3084 										NI T39_;
3085 										T34_ = (NIM_BOOL)0;
3086 										T34_ = filterSym__sigmatch_4909(it, f, (&pm_2));
3087 										if (!T34_) goto LA35_;
3088 										T37_ = (NI)0;
3089 										T37_ = getQuality__sigmatch_5002(it);
3090 										T38_ = NIM_NIL;
3091 										T38_ = symToSuggest__sigmatch_4528((*c).graph, it, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), (*n).info, T37_, pm_2, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
3092 										unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
3093 										T39_ = (*outputs)->Sup.len++;
3094 										asgnRef((void**) (&(*outputs)->data[T39_]), T38_);
3095 									}
3096 									LA35_: ;
3097 									r = nextRodIter__icZic_8962((&rodIt), (&(*(*c).graph).packed_0));
3098 								} LA31: ;
3099 							}
3100 						}
3101 						goto LA25_;
3102 						LA28_: ;
3103 						{
3104 							{
3105 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** s_3;
3106 								tySequence__eHqUwlHGGaPw0TDPDeL79cQ* colontmp__3;
3107 								tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* retX60gensym17_;
3108 								NI i_2;
3109 								NI L_2;
3110 								NI T46_;
3111 								s_3 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
3112 								colontmp__3 = NIM_NIL;
3113 								retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interf);
3114 								{
3115 									if (!importHidden) goto LA44_;
3116 									retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interfHidden);
3117 								}
3118 								LA44_: ;
3119 								colontmp__3 = (*retX60gensym17_).data;
3120 								i_2 = ((NI) 0);
3121 								T46_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
3122 								L_2 = T46_;
3123 								{
3124 									while (1) {
3125 										if (!(i_2 < L_2)) goto LA48;
3126 										s_3 = &colontmp__3->data[i_2];
3127 										{
3128 											tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__4;
3129 											tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_3;
3130 											if (!!(((*s_3) == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA51_;
3131 											s_2 = (*s_3);
3132 											nimZeroMem((void*)(&colontmp__4), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
3133 											colontmp__4.Field0 = s_2;
3134 											colontmp__4.Field1 = scopeN_2;
3135 											colontmp__4.Field2 = isLocal_2;
3136 											it = colontmp__4.Field0;
3137 											scopeN = colontmp__4.Field1;
3138 											isLocal = colontmp__4.Field2;
3139 											pm_3 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
3140 											{
3141 												NIM_BOOL T55_;
3142 												NI T58_;
3143 												tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T59_;
3144 												NI T60_;
3145 												T55_ = (NIM_BOOL)0;
3146 												T55_ = filterSym__sigmatch_4909(it, f, (&pm_3));
3147 												if (!T55_) goto LA56_;
3148 												T58_ = (NI)0;
3149 												T58_ = getQuality__sigmatch_5002(it);
3150 												T59_ = NIM_NIL;
3151 												T59_ = symToSuggest__sigmatch_4528((*c).graph, it, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), (*n).info, T58_, pm_3, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
3152 												unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
3153 												T60_ = (*outputs)->Sup.len++;
3154 												asgnRef((void**) (&(*outputs)->data[T60_]), T59_);
3155 											}
3156 											LA56_: ;
3157 										}
3158 										LA51_: ;
3159 										i_2 += ((NI) 1);
3160 									} LA48: ;
3161 								}
3162 							}
3163 						}
3164 						LA25_: ;
3165 					}
3166 					i += ((NI) 1);
3167 				} LA23: ;
3168 			}
3169 		}
3170 	}
3171 }
N_INLINE(NIM_BOOL,fieldVisible__sigmatch_4944)3172 static N_INLINE(NIM_BOOL, fieldVisible__sigmatch_4944)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f) {
3173 	NIM_BOOL result;
3174 	NI fmoduleId;
3175 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym794_;
3176 	NIM_BOOL T1_;
3177 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym796_;
3178 {	result = (NIM_BOOL)0;
3179 	xX60gensym794_ = getModule__astalgo_216(f);
3180 	fmoduleId = (NI)((NI)((NU64)(((NI) ((*xX60gensym794_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym794_).Sup.itemId.item)));
3181 	T1_ = (NIM_BOOL)0;
3182 	T1_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0);
3183 	if (T1_) goto LA2_;
3184 	xX60gensym796_ = (*c).module;
3185 	T1_ = (fmoduleId == (NI)((NI)((NU64)(((NI) ((*xX60gensym796_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym796_).Sup.itemId.item))));
3186 	LA2_: ;
3187 	result = T1_;
3188 	{
3189 		if (!!(result)) goto LA5_;
3190 		{
3191 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** module;
3192 			NI i;
3193 			NI L;
3194 			NI T8_;
3195 			module = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
3196 			i = ((NI) 0);
3197 			T8_ = ((*c).friendModules ? (*c).friendModules->Sup.len : 0);
3198 			L = T8_;
3199 			{
3200 				while (1) {
3201 					if (!(i < L)) goto LA10;
3202 					module = &(*c).friendModules->data[i];
3203 					{
3204 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym797_;
3205 						xX60gensym797_ = (*module);
3206 						if (!(fmoduleId == (NI)((NI)((NU64)(((NI) ((*xX60gensym797_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym797_).Sup.itemId.item))))) goto LA13_;
3207 						result = NIM_TRUE;
3208 						goto BeforeRet_;
3209 					}
3210 					LA13_: ;
3211 					i += ((NI) 1);
3212 				} LA10: ;
3213 			}
3214 		}
3215 		{
3216 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* symObj;
3217 			if (!((*f).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19))) goto LA17_;
3218 			symObj = (*f).owner;
3219 			{
3220 				if (!((*(*symObj).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*(*symObj).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA21_;
3221 				symObj = (*(*(*symObj).typ).sons->data[((NI) 0)]).sym;
3222 			}
3223 			LA21_: ;
3224 			{
3225 				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
3226 				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
3227 				scope = NIM_NIL;
3228 				current = (*c).currentScope;
3229 				{
3230 					while (1) {
3231 						if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA25;
3232 						scope = current;
3233 						{
3234 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** sym;
3235 							NI i_2;
3236 							NI L_2;
3237 							NI T27_;
3238 							sym = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
3239 							i_2 = ((NI) 0);
3240 							T27_ = ((*scope).allowPrivateAccess ? (*scope).allowPrivateAccess->Sup.len : 0);
3241 							L_2 = T27_;
3242 							{
3243 								while (1) {
3244 									if (!(i_2 < L_2)) goto LA29;
3245 									sym = &(*scope).allowPrivateAccess->data[i_2];
3246 									{
3247 										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym800_;
3248 										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym801_;
3249 										xX60gensym800_ = symObj;
3250 										xX60gensym801_ = (*sym);
3251 										if (!((NI)((NI)((NU64)(((NI) ((*xX60gensym800_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym800_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym801_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym801_).Sup.itemId.item))))) goto LA32_;
3252 										result = NIM_TRUE;
3253 										goto BeforeRet_;
3254 									}
3255 									LA32_: ;
3256 									i_2 += ((NI) 1);
3257 								} LA29: ;
3258 							}
3259 						}
3260 						current = (*current).parent;
3261 					} LA25: ;
3262 				}
3263 			}
3264 		}
3265 		LA17_: ;
3266 	}
3267 	LA5_: ;
3268 	}BeforeRet_: ;
3269 	return result;
3270 }
N_NIMCALL(void,suggestField__sigmatch_5026)3271 N_LIB_PRIVATE N_NIMCALL(void, suggestField__sigmatch_5026)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs) {
3272 	tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm;
3273 	pm = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
3274 	{
3275 		NIM_BOOL T3_;
3276 		NI T7_;
3277 		tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T8_;
3278 		NI T9_;
3279 		T3_ = (NIM_BOOL)0;
3280 		T3_ = filterSym__sigmatch_4909(s, f, (&pm));
3281 		if (!(T3_)) goto LA4_;
3282 		T3_ = fieldVisible__sigmatch_4944(c, s);
3283 		LA4_: ;
3284 		if (!T3_) goto LA5_;
3285 		T7_ = (NI)0;
3286 		T7_ = getQuality__sigmatch_5002(s);
3287 		T8_ = NIM_NIL;
3288 		T8_ = symToSuggest__sigmatch_4528((*c).graph, s, NIM_TRUE, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), info, T7_, pm, (((NI) 0) < (*c).inTypeContext), ((NI) 0), NIM_FALSE);
3289 		unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
3290 		T9_ = (*outputs)->Sup.len++;
3291 		asgnRef((void**) (&(*outputs)->data[T9_]), T8_);
3292 	}
3293 	LA5_: ;
3294 }
N_NIMCALL(void,suggestSymList__sigmatch_5040)3295 N_LIB_PRIVATE N_NIMCALL(void, suggestSymList__sigmatch_5040)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* list, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs) {
3296 	{
3297 		NI i;
3298 		NI colontmp_;
3299 		NI i_2;
3300 		i = (NI)0;
3301 		colontmp_ = (NI)0;
3302 		colontmp_ = len__ast_3198(list);
3303 		i_2 = ((NI) 0);
3304 		{
3305 			while (1) {
3306 				if (!(i_2 < colontmp_)) goto LA3;
3307 				i = i_2;
3308 				{
3309 					if (!((*(*list)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA6_;
3310 					suggestField__sigmatch_5026(c, (*(*list)._kind_6.sons->data[i])._kind_4.sym, f, info, outputs);
3311 				}
3312 				LA6_: ;
3313 				i_2 += ((NI) 1);
3314 			} LA3: ;
3315 		}
3316 	}
3317 }
N_NIMCALL(void,suggestObject__sigmatch_5060)3318 N_LIB_PRIVATE N_NIMCALL(void, suggestObject__sigmatch_5060)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs) {
3319 	switch ((*n).kind) {
3320 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
3321 	{
3322 		{
3323 			NI i;
3324 			NI colontmp_;
3325 			NI i_2;
3326 			i = (NI)0;
3327 			colontmp_ = (NI)0;
3328 			colontmp_ = len__ast_3198(n);
3329 			i_2 = ((NI) 0);
3330 			{
3331 				while (1) {
3332 					if (!(i_2 < colontmp_)) goto LA4;
3333 					i = i_2;
3334 					suggestObject__sigmatch_5060(c, (*n)._kind_6.sons->data[i], f, info, outputs);
3335 					i_2 += ((NI) 1);
3336 				} LA4: ;
3337 			}
3338 		}
3339 	}
3340 	break;
3341 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
3342 	{
3343 		{
3344 			NI T8_;
3345 			T8_ = (NI)0;
3346 			T8_ = len__ast_3198(n);
3347 			if (!(((NI) 0) < T8_)) goto LA9_;
3348 			suggestObject__sigmatch_5060(c, (*n)._kind_6.sons->data[((NI) 0)], f, info, outputs);
3349 			{
3350 				NI i_3;
3351 				NI colontmp__2;
3352 				NI i_4;
3353 				i_3 = (NI)0;
3354 				colontmp__2 = (NI)0;
3355 				colontmp__2 = len__ast_3198(n);
3356 				i_4 = ((NI) 1);
3357 				{
3358 					while (1) {
3359 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
3360 						if (!(i_4 < colontmp__2)) goto LA13;
3361 						i_3 = i_4;
3362 						T14_ = NIM_NIL;
3363 						T14_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_3]);
3364 						suggestObject__sigmatch_5060(c, T14_, f, info, outputs);
3365 						i_4 += ((NI) 1);
3366 					} LA13: ;
3367 				}
3368 			}
3369 		}
3370 		LA9_: ;
3371 	}
3372 	break;
3373 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
3374 	{
3375 		suggestField__sigmatch_5026(c, (*n)._kind_4.sym, f, info, outputs);
3376 	}
3377 	break;
3378 	default:
3379 	{
3380 	}
3381 	break;
3382 	}
3383 }
N_INLINE(NIM_BOOL,filterSymNoOpr__sigmatch_4935)3384 static N_INLINE(NIM_BOOL, filterSymNoOpr__sigmatch_4935)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prefix, tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q* res) {
3385 	NIM_BOOL result;
3386 	NIM_BOOL T1_;
3387 	NIM_BOOL T2_;
3388 	NIM_BOOL T5_;
3389 	result = (NIM_BOOL)0;
3390 	T1_ = (NIM_BOOL)0;
3391 	T2_ = (NIM_BOOL)0;
3392 	T2_ = filterSym__sigmatch_4909(s, prefix, res);
3393 	if (!(T2_)) goto LA3_;
3394 	T2_ = (((NU8)((*(*s).name).s->data[((NI) 0)])) >= ((NU8)(97)) && ((NU8)((*(*s).name).s->data[((NI) 0)])) <= ((NU8)(122)) || ((NU8)((*(*s).name).s->data[((NI) 0)])) >= ((NU8)(65)) && ((NU8)((*(*s).name).s->data[((NI) 0)])) <= ((NU8)(90)) || ((NU8)((*(*s).name).s->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)((*(*s).name).s->data[((NI) 0)])) <= ((NU8)(57)) || ((NU8)((*(*s).name).s->data[((NI) 0)])) >= ((NU8)(128)) && ((NU8)((*(*s).name).s->data[((NI) 0)])) <= ((NU8)(255)));
3395 	LA3_: ;
3396 	T1_ = T2_;
3397 	if (!(T1_)) goto LA4_;
3398 	T5_ = (NIM_BOOL)0;
3399 	T5_ = isKeyword__renderer_73((*s).name);
3400 	T1_ = !(T5_);
3401 	LA4_: ;
3402 	result = T1_;
3403 	return result;
3404 }
N_INLINE(void,initCandidateAux__sigmatch_94)3405 static N_INLINE(void, initCandidateAux__sigmatch_94)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* callee) {
3406 	tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ T1_;
3407 	unsureAsgnRef((void**) (&(*c).c), ctx);
3408 	(*c).exactMatches = ((NI) 0);
3409 	(*c).subtypeMatches = ((NI) 0);
3410 	(*c).convMatches = ((NI) 0);
3411 	(*c).intConvMatches = ((NI) 0);
3412 	(*c).genericMatches = ((NI) 0);
3413 	(*c).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 0);
3414 	nimZeroMem((void*)(&T1_), sizeof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ));
3415 	nimZeroMem((void*)(&T1_), sizeof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ));
3416 	(*c).firstMismatch.kind = T1_.kind;
3417 	(*c).firstMismatch.arg = T1_.arg;
3418 	unsureAsgnRef((void**) (&(*c).firstMismatch.formal), T1_.formal);
3419 	unsureAsgnRef((void**) (&(*c).callee), callee);
3420 	unsureAsgnRef((void**) (&(*c).call), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3421 	(*c).baseTypeMatch = NIM_FALSE;
3422 	(*c).genericConverter = NIM_FALSE;
3423 	(*c).inheritancePenalty = ((NI) 0);
3424 }
N_NIMCALL(void,initCandidate__sigmatch_116)3425 N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_116)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* callee) {
3426 	initCandidateAux__sigmatch_94(ctx, c, callee);
3427 	unsureAsgnRef((void**) (&(*c).calleeSym), ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
3428 	initIdTable__ast_4096((&(*c).bindings));
3429 }
N_NIMCALL(void,newCandidate__sigmatch_195)3430 N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_195)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TType__facALICuu8zUj0hjvbTLFg* callee, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result) {
3431 	unsureAsgnRef((void**)&(*Result).c, NIM_NIL);
3432 	(*Result).exactMatches = 0;
3433 	(*Result).genericMatches = 0;
3434 	(*Result).subtypeMatches = 0;
3435 	(*Result).intConvMatches = 0;
3436 	(*Result).convMatches = 0;
3437 	(*Result).state = 0;
3438 	unsureAsgnRef((void**)&(*Result).callee, NIM_NIL);
3439 	unsureAsgnRef((void**)&(*Result).calleeSym, NIM_NIL);
3440 	(*Result).calleeScope = 0;
3441 	unsureAsgnRef((void**)&(*Result).call, NIM_NIL);
3442 	(*Result).bindings.counter = 0;
3443 	unsureAsgnRef((void**)&(*Result).bindings.data, NIM_NIL);
3444 	(*Result).magic = 0;
3445 	(*Result).baseTypeMatch = 0;
3446 	(*Result).fauxMatch = 0;
3447 	(*Result).genericConverter = 0;
3448 	(*Result).coerceDistincts = 0;
3449 	(*Result).typedescMatched = 0;
3450 	(*Result).isNoCall = 0;
3451 	unsureAsgnRef((void**)&(*Result).inferredTypes, NIM_NIL);
3452 	unsureAsgnRef((void**)&(*Result).diagnostics, NIM_NIL);
3453 	(*Result).inheritancePenalty = 0;
3454 	(*Result).firstMismatch.kind = 0;
3455 	(*Result).firstMismatch.arg = 0;
3456 	unsureAsgnRef((void**)&(*Result).firstMismatch.formal, NIM_NIL);
3457 	(*Result).diagnosticsEnabled = 0;
3458 	initCandidate__sigmatch_116(ctx, Result, callee);
3459 }
N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g,nextTypeId__ast_3151)3460 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
3461 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
3462 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
3463 	(*x).typeId_0 += ((NI) 1);
3464 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
3465 	result.module = (*x).module;
3466 	result.item = (*x).typeId_0;
3467 	return result;
3468 }
N_INLINE(tyObject_TType__facALICuu8zUj0hjvbTLFg *,skipIntLit__magicsys_124)3469 static N_INLINE(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipIntLit__magicsys_124)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id) {
3470 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
3471 	result = NIM_NIL;
3472 	{
3473 		NIM_BOOL T3_;
3474 		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T7_;
3475 		T3_ = (NIM_BOOL)0;
3476 		T3_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
3477 		if (!(T3_)) goto LA4_;
3478 		T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36));
3479 		LA4_: ;
3480 		if (!T3_) goto LA5_;
3481 		T7_ = nextTypeId__ast_3151(id);
3482 		result = copyType__ast_4046(t, T7_, (*t).owner);
3483 		asgnRef((void**) (&(*result).n), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3484 	}
3485 	goto LA1_;
3486 	LA5_: ;
3487 	{
3488 		result = t;
3489 	}
3490 	LA1_: ;
3491 	return result;
3492 }
N_INLINE(void,put__sigmatch_120)3493 static N_INLINE(void, put__sigmatch_120)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val) {
3494 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
3495 	T1_ = NIM_NIL;
3496 	T1_ = skipIntLit__magicsys_124(val, (*(*c).c).Sup.idgen);
3497 	idTablePut__astalgo_70((&(*c).bindings), &key->Sup, &T1_->Sup.Sup);
3498 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,tryResolvingStaticExpr__sigmatch_1227)3499 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryResolvingStaticExpr__sigmatch_1227)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL allowUnresolved) {
3500 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
3501 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* instantiated;
3502 	result = NIM_NIL;
3503 	instantiated = replaceTypesInBody__semtypinst_988((*c).c, (*c).bindings, n, ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), allowUnresolved);
3504 	result = (*(*c).c).semExpr((*c).c, instantiated, 0);
3505 	return result;
3506 }
N_INLINE(NI,safeLen__ast_3191)3507 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
3508 	NI result;
3509 	result = (NI)0;
3510 	{
3511 		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
3512 		result = ((NI) 0);
3513 	}
3514 	goto LA1_;
3515 	LA3_: ;
3516 	{
3517 		result = len__ast_3198(n);
3518 	}
3519 	LA1_: ;
3520 	return result;
3521 }
N_INLINE(NIM_BOOL,eqeq___idents_220)3522 static N_INLINE(NIM_BOOL, eqeq___idents_220)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* a, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* b) {
3523 	NIM_BOOL result;
3524 	result = (NIM_BOOL)0;
3525 	{
3526 		NIM_BOOL T3_;
3527 		T3_ = (NIM_BOOL)0;
3528 		T3_ = (a == 0);
3529 		if (T3_) goto LA4_;
3530 		T3_ = (b == 0);
3531 		LA4_: ;
3532 		if (!T3_) goto LA5_;
3533 		result = (a == b);
3534 	}
3535 	goto LA1_;
3536 	LA5_: ;
3537 	{
3538 		result = ((*a).id == (*b).id);
3539 	}
3540 	LA1_: ;
3541 	return result;
3542 }
N_NIMCALL(NIM_BOOL,shouldSkipDistinct__sigmatch_1199)3543 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldSkipDistinct__sigmatch_1199)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rules, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* callIdent) {
3544 	NIM_BOOL result;
3545 {	result = (NIM_BOOL)0;
3546 	{
3547 		if (!((*rules).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 130))) goto LA3_;
3548 		{
3549 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
3550 			r = NIM_NIL;
3551 			{
3552 				NI i;
3553 				NI colontmp_;
3554 				NI i_2;
3555 				i = (NI)0;
3556 				colontmp_ = (NI)0;
3557 				colontmp_ = safeLen__ast_3191(rules);
3558 				i_2 = ((NI) 0);
3559 				{
3560 					while (1) {
3561 						if (!(i_2 < colontmp_)) goto LA8;
3562 						i = i_2;
3563 						r = (*rules)._kind_6.sons->data[i];
3564 						{
3565 							tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T11_;
3566 							NIM_BOOL T12_;
3567 							T11_ = NIM_NIL;
3568 							T11_ = considerQuotedIdent__lookups_28((*m).c, r, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3569 							T12_ = (NIM_BOOL)0;
3570 							T12_ = eqeq___idents_220(T11_, callIdent);
3571 							if (!T12_) goto LA13_;
3572 							result = NIM_TRUE;
3573 							goto BeforeRet_;
3574 						}
3575 						LA13_: ;
3576 						i_2 += ((NI) 1);
3577 					} LA8: ;
3578 				}
3579 			}
3580 		}
3581 		result = NIM_FALSE;
3582 		goto BeforeRet_;
3583 	}
3584 	goto LA1_;
3585 	LA3_: ;
3586 	{
3587 		{
3588 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r_2;
3589 			r_2 = NIM_NIL;
3590 			{
3591 				NI i_3;
3592 				NI colontmp__2;
3593 				NI i_4;
3594 				i_3 = (NI)0;
3595 				colontmp__2 = (NI)0;
3596 				colontmp__2 = safeLen__ast_3191(rules);
3597 				i_4 = ((NI) 0);
3598 				{
3599 					while (1) {
3600 						if (!(i_4 < colontmp__2)) goto LA19;
3601 						i_3 = i_4;
3602 						r_2 = (*rules)._kind_6.sons->data[i_3];
3603 						{
3604 							tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T22_;
3605 							NIM_BOOL T23_;
3606 							T22_ = NIM_NIL;
3607 							T22_ = considerQuotedIdent__lookups_28((*m).c, r_2, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3608 							T23_ = (NIM_BOOL)0;
3609 							T23_ = eqeq___idents_220(T22_, callIdent);
3610 							if (!T23_) goto LA24_;
3611 							result = NIM_FALSE;
3612 							goto BeforeRet_;
3613 						}
3614 						LA24_: ;
3615 						i_4 += ((NI) 1);
3616 					} LA19: ;
3617 				}
3618 			}
3619 		}
3620 		result = NIM_TRUE;
3621 		goto BeforeRet_;
3622 	}
3623 	LA1_: ;
3624 	}BeforeRet_: ;
3625 	return result;
3626 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,maybeSkipDistinct__sigmatch_1210)3627 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, maybeSkipDistinct__sigmatch_1210)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee) {
3628 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
3629 	result = NIM_NIL;
3630 	{
3631 		NIM_BOOL T3_;
3632 		NIM_BOOL T4_;
3633 		NIM_BOOL T5_;
3634 		T3_ = (NIM_BOOL)0;
3635 		T4_ = (NIM_BOOL)0;
3636 		T5_ = (NIM_BOOL)0;
3637 		T5_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
3638 		if (!(T5_)) goto LA6_;
3639 		T5_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
3640 		LA6_: ;
3641 		T4_ = T5_;
3642 		if (!(T4_)) goto LA7_;
3643 		T4_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
3644 		LA7_: ;
3645 		T3_ = T4_;
3646 		if (!(T3_)) goto LA8_;
3647 		T3_ = shouldSkipDistinct__sigmatch_1199(m, (*t).n, (*callee).name);
3648 		LA8_: ;
3649 		if (!T3_) goto LA9_;
3650 		result = base__types_63(t);
3651 	}
3652 	goto LA1_;
3653 	LA9_: ;
3654 	{
3655 		result = t;
3656 	}
3657 	LA1_: ;
3658 	return result;
3659 }
N_INLINE(NIM_BOOL,sameEnumTypes__types_2096)3660 static N_INLINE(NIM_BOOL, sameEnumTypes__types_2096)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
3661 	NIM_BOOL result;
3662 	tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym296_;
3663 	tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym297_;
3664 	result = (NIM_BOOL)0;
3665 	xX60gensym296_ = a;
3666 	xX60gensym297_ = b;
3667 	result = ((NI)((NI)((NU64)(((NI) ((*xX60gensym296_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym296_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym297_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym297_).Sup.itemId.item))));
3668 	return result;
3669 }
N_NOINLINE(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,typeRangeRel__sigmatch_981)3670 N_LIB_PRIVATE N_NOINLINE(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, typeRangeRel__sigmatch_981)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
3671 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
3672 	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
3673 	{
3674 		NIM_BOOL T3_;
3675 		T3_ = (NIM_BOOL)0;
3676 		T3_ = isOrdinalType__types_299(f, NIM_FALSE);
3677 		if (!T3_) goto LA4_;
3678 		{
3679 			NIM_BOOL T8_;
3680 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_;
3681 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T10_;
3682 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T12_;
3683 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T13_;
3684 			T8_ = (NIM_BOOL)0;
3685 			T9_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), a);
3686 			T10_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
3687 			T8_ = eqeq___int495056_313(T9_, T10_);
3688 			if (!(T8_)) goto LA11_;
3689 			T12_ = lastOrd__types_1470(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), a);
3690 			T13_ = lastOrd__types_1470(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
3691 			T8_ = eqeq___int495056_313(T12_, T13_);
3692 			LA11_: ;
3693 			if (!T8_) goto LA14_;
3694 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
3695 		}
3696 		goto LA6_;
3697 		LA14_: ;
3698 		{
3699 			NIM_BOOL T17_;
3700 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T18_;
3701 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T19_;
3702 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T21_;
3703 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T22_;
3704 			T17_ = (NIM_BOOL)0;
3705 			T18_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
3706 			T19_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), a);
3707 			T17_ = lteq___int495056_309(T18_, T19_);
3708 			if (!(T17_)) goto LA20_;
3709 			T21_ = lastOrd__types_1470(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), a);
3710 			T22_ = lastOrd__types_1470(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
3711 			T17_ = lteq___int495056_309(T21_, T22_);
3712 			LA20_: ;
3713 			if (!T17_) goto LA23_;
3714 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
3715 		}
3716 		goto LA6_;
3717 		LA23_: ;
3718 		{
3719 			NIM_BOOL T26_;
3720 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T27_;
3721 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T28_;
3722 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T30_;
3723 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T31_;
3724 			T26_ = (NIM_BOOL)0;
3725 			T27_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), a);
3726 			T28_ = lastOrd__types_1470(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
3727 			T26_ = lteq___int495056_309(T27_, T28_);
3728 			if (!(T26_)) goto LA29_;
3729 			T30_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
3730 			T31_ = lastOrd__types_1470(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), a);
3731 			T26_ = lteq___int495056_309(T30_, T31_);
3732 			LA29_: ;
3733 			if (!T26_) goto LA32_;
3734 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
3735 		}
3736 		goto LA6_;
3737 		LA32_: ;
3738 		{
3739 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
3740 		}
3741 		LA6_: ;
3742 	}
3743 	goto LA1_;
3744 	LA4_: ;
3745 	{
3746 		{
3747 			NIM_BOOL T38_;
3748 			NF T39_;
3749 			NF T40_;
3750 			NF T42_;
3751 			NF T43_;
3752 			T38_ = (NIM_BOOL)0;
3753 			T39_ = (NF)0;
3754 			T39_ = firstFloat__types_1445(a);
3755 			T40_ = (NF)0;
3756 			T40_ = firstFloat__types_1445(f);
3757 			T38_ = (T39_ == T40_);
3758 			if (!(T38_)) goto LA41_;
3759 			T42_ = (NF)0;
3760 			T42_ = lastFloat__types_1588(a);
3761 			T43_ = (NF)0;
3762 			T43_ = lastFloat__types_1588(f);
3763 			T38_ = (T42_ == T43_);
3764 			LA41_: ;
3765 			if (!T38_) goto LA44_;
3766 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
3767 		}
3768 		goto LA36_;
3769 		LA44_: ;
3770 		{
3771 			NIM_BOOL T47_;
3772 			NF T48_;
3773 			NF T49_;
3774 			NF T51_;
3775 			NF T52_;
3776 			T47_ = (NIM_BOOL)0;
3777 			T48_ = (NF)0;
3778 			T48_ = firstFloat__types_1445(f);
3779 			T49_ = (NF)0;
3780 			T49_ = firstFloat__types_1445(a);
3781 			T47_ = (T48_ <= T49_);
3782 			if (!(T47_)) goto LA50_;
3783 			T51_ = (NF)0;
3784 			T51_ = lastFloat__types_1588(a);
3785 			T52_ = (NF)0;
3786 			T52_ = lastFloat__types_1588(f);
3787 			T47_ = (T51_ <= T52_);
3788 			LA50_: ;
3789 			if (!T47_) goto LA53_;
3790 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
3791 		}
3792 		goto LA36_;
3793 		LA53_: ;
3794 		{
3795 			NIM_BOOL T56_;
3796 			NF T57_;
3797 			NF T58_;
3798 			NF T60_;
3799 			NF T61_;
3800 			T56_ = (NIM_BOOL)0;
3801 			T57_ = (NF)0;
3802 			T57_ = firstFloat__types_1445(a);
3803 			T58_ = (NF)0;
3804 			T58_ = lastFloat__types_1588(f);
3805 			T56_ = (T57_ <= T58_);
3806 			if (!(T56_)) goto LA59_;
3807 			T60_ = (NF)0;
3808 			T60_ = firstFloat__types_1445(f);
3809 			T61_ = (NF)0;
3810 			T61_ = lastFloat__types_1588(a);
3811 			T56_ = (T60_ <= T61_);
3812 			LA59_: ;
3813 			if (!T56_) goto LA62_;
3814 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
3815 		}
3816 		goto LA36_;
3817 		LA62_: ;
3818 		{
3819 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
3820 		}
3821 		LA36_: ;
3822 	}
3823 	LA1_: ;
3824 	return result;
3825 }
N_INLINE(NIM_BOOL,isIntLit__types_186)3826 static N_INLINE(NIM_BOOL, isIntLit__types_186)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
3827 	NIM_BOOL result;
3828 	NIM_BOOL T1_;
3829 	NIM_BOOL T2_;
3830 	result = (NIM_BOOL)0;
3831 	T1_ = (NIM_BOOL)0;
3832 	T2_ = (NIM_BOOL)0;
3833 	T2_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
3834 	if (!(T2_)) goto LA3_;
3835 	T2_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
3836 	LA3_: ;
3837 	T1_ = T2_;
3838 	if (!(T1_)) goto LA4_;
3839 	T1_ = ((*(*t).n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6));
3840 	LA4_: ;
3841 	result = T1_;
3842 	return result;
3843 }
N_NIMCALL(NIM_BOOL,isConvertibleToRange__sigmatch_548)3844 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConvertibleToRange__sigmatch_548)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
3845 	NIM_BOOL result;
3846 	result = (NIM_BOOL)0;
3847 	{
3848 		NIM_BOOL T3_;
3849 		T3_ = (NIM_BOOL)0;
3850 		T3_ = ((*f).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*f).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*f).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*f).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
3851 		if (!(T3_)) goto LA4_;
3852 		T3_ = ((*a).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*a).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*a).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*a).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
3853 		LA4_: ;
3854 		if (!T3_) goto LA5_;
3855 		switch ((*f).kind) {
3856 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
3857 		{
3858 			NIM_BOOL T8_;
3859 			T8_ = (NIM_BOOL)0;
3860 			T8_ = isIntLit__types_186(a);
3861 			if (T8_) goto LA9_;
3862 			T8_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32));
3863 			LA9_: ;
3864 			result = T8_;
3865 		}
3866 		break;
3867 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
3868 		{
3869 			NIM_BOOL T11_;
3870 			T11_ = (NIM_BOOL)0;
3871 			T11_ = isIntLit__types_186(a);
3872 			if (T11_) goto LA12_;
3873 			T11_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33));
3874 			LA12_: ;
3875 			result = T11_;
3876 		}
3877 		break;
3878 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
3879 		{
3880 			NIM_BOOL T14_;
3881 			T14_ = (NIM_BOOL)0;
3882 			T14_ = isIntLit__types_186(a);
3883 			if (T14_) goto LA15_;
3884 			T14_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34));
3885 			LA15_: ;
3886 			result = T14_;
3887 		}
3888 		break;
3889 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
3890 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40):
3891 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
3892 		{
3893 			result = NIM_TRUE;
3894 		}
3895 		break;
3896 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
3897 		{
3898 			NIM_BOOL T18_;
3899 			T18_ = (NIM_BOOL)0;
3900 			T18_ = isIntLit__types_186(a);
3901 			if (T18_) goto LA19_;
3902 			T18_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35));
3903 			LA19_: ;
3904 			result = T18_;
3905 		}
3906 		break;
3907 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41):
3908 		{
3909 			NIM_BOOL T21_;
3910 			T21_ = (NIM_BOOL)0;
3911 			T21_ = isIntLit__types_186(a);
3912 			if (T21_) goto LA22_;
3913 			T21_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41));
3914 			LA22_: ;
3915 			result = T21_;
3916 		}
3917 		break;
3918 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42):
3919 		{
3920 			NIM_BOOL T24_;
3921 			T24_ = (NIM_BOOL)0;
3922 			T24_ = isIntLit__types_186(a);
3923 			if (T24_) goto LA25_;
3924 			T24_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42));
3925 			LA25_: ;
3926 			result = T24_;
3927 		}
3928 		break;
3929 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
3930 		{
3931 			NIM_BOOL T27_;
3932 			T27_ = (NIM_BOOL)0;
3933 			T27_ = isIntLit__types_186(a);
3934 			if (T27_) goto LA28_;
3935 			T27_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43));
3936 			LA28_: ;
3937 			result = T27_;
3938 		}
3939 		break;
3940 		default:
3941 		{
3942 			result = NIM_FALSE;
3943 		}
3944 		break;
3945 		}
3946 	}
3947 	goto LA1_;
3948 	LA5_: ;
3949 	{
3950 		NIM_BOOL T33_;
3951 		if (!((*f).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*f).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39))) goto LA31_;
3952 		T33_ = (NIM_BOOL)0;
3953 		T33_ = isIntLit__types_186(a);
3954 		if (T33_) goto LA34_;
3955 		T33_ = ((*a).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*a).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39));
3956 		LA34_: ;
3957 		result = T33_;
3958 	}
3959 	goto LA1_;
3960 	LA31_: ;
3961 	LA1_: ;
3962 	return result;
3963 }
N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,handleRange__sigmatch_476)3964 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, handleRange__sigmatch_476)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag min, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag max) {
3965 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
3966 	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
3967 	{
3968 		if (!((*a).kind == (*f).kind)) goto LA3_;
3969 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
3970 	}
3971 	goto LA1_;
3972 	LA3_: ;
3973 	{
3974 		tyObject_TType__facALICuu8zUj0hjvbTLFg* ab;
3975 		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k;
3976 		ab = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
3977 		k = (*ab).kind;
3978 		{
3979 			if (!(k == (*f).kind)) goto LA8_;
3980 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 4);
3981 		}
3982 		goto LA6_;
3983 		LA8_: ;
3984 		{
3985 			NIM_BOOL T11_;
3986 			NIM_BOOL T12_;
3987 			NIM_BOOL T13_;
3988 			NIM_BOOL T14_;
3989 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T18_;
3990 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T19_;
3991 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T21_;
3992 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T22_;
3993 			T11_ = (NIM_BOOL)0;
3994 			T12_ = (NIM_BOOL)0;
3995 			T13_ = (NIM_BOOL)0;
3996 			T14_ = (NIM_BOOL)0;
3997 			T14_ = (k == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
3998 			if (!(T14_)) goto LA15_;
3999 			T14_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20) || (*f).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32) && (*f).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*f).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*f).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
4000 			LA15_: ;
4001 			T13_ = T14_;
4002 			if (!(T13_)) goto LA16_;
4003 			T13_ = isIntLit__types_186(ab);
4004 			LA16_: ;
4005 			T12_ = T13_;
4006 			if (!(T12_)) goto LA17_;
4007 			T18_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
4008 			T19_ = getInt__ast_4592((*ab).n);
4009 			T12_ = lteq___int495056_309(T18_, T19_);
4010 			LA17_: ;
4011 			T11_ = T12_;
4012 			if (!(T11_)) goto LA20_;
4013 			T21_ = getInt__ast_4592((*ab).n);
4014 			T22_ = lastOrd__types_1470(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
4015 			T11_ = lteq___int495056_309(T21_, T22_);
4016 			LA20_: ;
4017 			if (!T11_) goto LA23_;
4018 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 9);
4019 		}
4020 		goto LA6_;
4021 		LA23_: ;
4022 		{
4023 			NIM_BOOL T26_;
4024 			T26_ = (NIM_BOOL)0;
4025 			T26_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
4026 			if (!(T26_)) goto LA27_;
4027 			T26_ = (k >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32) && k <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34));
4028 			LA27_: ;
4029 			if (!T26_) goto LA28_;
4030 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 2);
4031 		}
4032 		goto LA6_;
4033 		LA28_: ;
4034 		{
4035 			NIM_BOOL T31_;
4036 			T31_ = (NIM_BOOL)0;
4037 			T31_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
4038 			if (!(T31_)) goto LA32_;
4039 			T31_ = (k >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41) && k <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43));
4040 			LA32_: ;
4041 			if (!T31_) goto LA33_;
4042 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 2);
4043 		}
4044 		goto LA6_;
4045 		LA33_: ;
4046 		{
4047 			NIM_BOOL T36_;
4048 			T36_ = (NIM_BOOL)0;
4049 			T36_ = (min <= k);
4050 			if (!(T36_)) goto LA37_;
4051 			T36_ = (k <= max);
4052 			LA37_: ;
4053 			if (!T36_) goto LA38_;
4054 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
4055 		}
4056 		goto LA6_;
4057 		LA38_: ;
4058 		{
4059 			NIM_BOOL T41_;
4060 			NIM_BOOL T42_;
4061 			NIM_BOOL T43_;
4062 			NIM_BOOL T45_;
4063 			NIM_BOOL T46_;
4064 			NIM_BOOL T49_;
4065 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T52_;
4066 			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T54_;
4067 			T41_ = (NIM_BOOL)0;
4068 			T42_ = (NIM_BOOL)0;
4069 			T43_ = (NIM_BOOL)0;
4070 			T43_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20));
4071 			if (!(T43_)) goto LA44_;
4072 			T45_ = (NIM_BOOL)0;
4073 			T46_ = (NIM_BOOL)0;
4074 			T46_ = ((*f).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*f).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35));
4075 			if (!(T46_)) goto LA47_;
4076 			T46_ = ((*(*a).sons->data[((NI) 0)]).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*(*a).sons->data[((NI) 0)]).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35));
4077 			LA47_: ;
4078 			T45_ = T46_;
4079 			if (T45_) goto LA48_;
4080 			T49_ = (NIM_BOOL)0;
4081 			T49_ = ((*f).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41) && (*f).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43));
4082 			if (!(T49_)) goto LA50_;
4083 			T49_ = ((*(*a).sons->data[((NI) 0)]).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41) && (*(*a).sons->data[((NI) 0)]).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43));
4084 			LA50_: ;
4085 			T45_ = T49_;
4086 			LA48_: ;
4087 			T43_ = T45_;
4088 			LA44_: ;
4089 			T42_ = T43_;
4090 			if (!(T42_)) goto LA51_;
4091 			T52_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
4092 			T42_ = lteq___int495056_745(T52_, (*(*(*a).n)._kind_6.sons->data[((NI) 0)])._kind_1.intVal);
4093 			LA51_: ;
4094 			T41_ = T42_;
4095 			if (!(T41_)) goto LA53_;
4096 			T54_ = lastOrd__types_1470(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), f);
4097 			T41_ = lteq___int495056_752((*(*(*a).n)._kind_6.sons->data[((NI) 1)])._kind_1.intVal, T54_);
4098 			LA53_: ;
4099 			if (!T41_) goto LA55_;
4100 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
4101 		}
4102 		goto LA6_;
4103 		LA55_: ;
4104 		{
4105 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4106 		}
4107 		LA6_: ;
4108 	}
4109 	LA1_: ;
4110 	return result;
4111 }
N_INLINE(NIM_BOOL,isFloatLit__types_201)4112 static N_INLINE(NIM_BOOL, isFloatLit__types_201)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
4113 	NIM_BOOL result;
4114 	NIM_BOOL T1_;
4115 	NIM_BOOL T2_;
4116 	result = (NIM_BOOL)0;
4117 	T1_ = (NIM_BOOL)0;
4118 	T2_ = (NIM_BOOL)0;
4119 	T2_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36));
4120 	if (!(T2_)) goto LA3_;
4121 	T2_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
4122 	LA3_: ;
4123 	T1_ = T2_;
4124 	if (!(T1_)) goto LA4_;
4125 	T1_ = ((*(*t).n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16));
4126 	LA4_: ;
4127 	result = T1_;
4128 	return result;
4129 }
N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,handleFloatRange__sigmatch_596)4130 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, handleFloatRange__sigmatch_596)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
4131 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
4132 	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4133 	{
4134 		if (!((*a).kind == (*f).kind)) goto LA3_;
4135 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
4136 	}
4137 	goto LA1_;
4138 	LA3_: ;
4139 	{
4140 		tyObject_TType__facALICuu8zUj0hjvbTLFg* ab;
4141 		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k;
4142 		ab = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
4143 		k = (*ab).kind;
4144 		{
4145 			if (!(k == (*f).kind)) goto LA8_;
4146 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 4);
4147 		}
4148 		goto LA6_;
4149 		LA8_: ;
4150 		{
4151 			NIM_BOOL T11_;
4152 			T11_ = (NIM_BOOL)0;
4153 			T11_ = isFloatLit__types_201(ab);
4154 			if (!T11_) goto LA12_;
4155 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 9);
4156 		}
4157 		goto LA6_;
4158 		LA12_: ;
4159 		{
4160 			NIM_BOOL T15_;
4161 			T15_ = (NIM_BOOL)0;
4162 			T15_ = isIntLit__types_186(ab);
4163 			if (!T15_) goto LA16_;
4164 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
4165 		}
4166 		goto LA6_;
4167 		LA16_: ;
4168 		{
4169 			NIM_BOOL T19_;
4170 			T19_ = (NIM_BOOL)0;
4171 			T19_ = (((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) <= k);
4172 			if (!(T19_)) goto LA20_;
4173 			T19_ = (k <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39));
4174 			LA20_: ;
4175 			if (!T19_) goto LA21_;
4176 			{
4177 				if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37))) goto LA25_;
4178 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
4179 			}
4180 			goto LA23_;
4181 			LA25_: ;
4182 			{
4183 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 2);
4184 			}
4185 			LA23_: ;
4186 		}
4187 		goto LA6_;
4188 		LA21_: ;
4189 		{
4190 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4191 		}
4192 		LA6_: ;
4193 	}
4194 	LA1_: ;
4195 	return result;
4196 }
N_NIMCALL(NIM_BOOL,isCovariantPtr__sigmatch_1405)4197 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCovariantPtr__sigmatch_1405)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
4198 	NIM_BOOL result;
4199 {	result = (NIM_BOOL)0;
4200 	switch ((*f).kind) {
4201 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
4202 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
4203 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
4204 	{
4205 		NIM_BOOL T2_;
4206 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T3_;
4207 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
4208 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
4209 		tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T7_;
4210 		T2_ = (NIM_BOOL)0;
4211 		T3_ = NIM_NIL;
4212 		T3_ = base__types_63(f);
4213 		T2_ = !(((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
4214 		if (!(T2_)) goto LA4_;
4215 		T5_ = NIM_NIL;
4216 		T5_ = base__types_63(f);
4217 		T6_ = NIM_NIL;
4218 		T6_ = base__types_63(a);
4219 		T7_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4220 		T7_ = typeRel__sigmatch_202(c, T5_, T6_, 2);
4221 		T2_ = (T7_ == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3));
4222 		LA4_: ;
4223 		result = T2_;
4224 		goto BeforeRet_;
4225 	}
4226 	break;
4227 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
4228 	{
4229 		tyObject_TType__facALICuu8zUj0hjvbTLFg* body;
4230 		NIM_BOOL T9_;
4231 		NIM_BOOL T10_;
4232 		NIM_BOOL T11_;
4233 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T12_;
4234 		NI T14_;
4235 		NIM_BOOL T17_;
4236 		tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T19_;
4237 		body = base__types_63(f);
4238 		T9_ = (NIM_BOOL)0;
4239 		T10_ = (NIM_BOOL)0;
4240 		T11_ = (NIM_BOOL)0;
4241 		T12_ = NIM_NIL;
4242 		T12_ = base__types_63(a);
4243 		T11_ = (body == T12_);
4244 		if (!(T11_)) goto LA13_;
4245 		T14_ = (NI)0;
4246 		T14_ = len__ast_4002(a);
4247 		T11_ = (T14_ == ((NI) 3));
4248 		LA13_: ;
4249 		T10_ = T11_;
4250 		if (!(T10_)) goto LA15_;
4251 		T10_ = !((((*(*body).sons->data[((NI) 0)]).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 36))&63U)))!=0));
4252 		LA15_: ;
4253 		T9_ = T10_;
4254 		if (!(T9_)) goto LA16_;
4255 		T17_ = (NIM_BOOL)0;
4256 		T17_ = !(((*(*f).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*(*f).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*(*f).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*f).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*(*f).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
4257 		if (!(T17_)) goto LA18_;
4258 		T19_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4259 		T19_ = typeRel__sigmatch_202(c, (*f).sons->data[((NI) 1)], (*a).sons->data[((NI) 1)], 2);
4260 		T17_ = (T19_ == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3));
4261 		LA18_: ;
4262 		T9_ = T17_;
4263 		LA16_: ;
4264 		result = T9_;
4265 		goto BeforeRet_;
4266 	}
4267 	break;
4268 	default:
4269 	{
4270 		result = NIM_FALSE;
4271 		goto BeforeRet_;
4272 	}
4273 	break;
4274 	}
4275 	}BeforeRet_: ;
4276 	return result;
4277 }
N_NIMCALL(NIM_BOOL,inferStaticParam__sigmatch_1235)4278 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inferStaticParam__sigmatch_1235)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lhs, NI64 rhs) {
4279 	NIM_BOOL result;
4280 {	result = (NIM_BOOL)0;
4281 	{
4282 		NIM_BOOL T3_;
4283 		T3_ = (NIM_BOOL)0;
4284 		T3_ = ((*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
4285 		if (!(T3_)) goto LA4_;
4286 		T3_ = ((*(*lhs)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
4287 		LA4_: ;
4288 		if (!T3_) goto LA5_;
4289 		switch ((*(*(*lhs)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
4290 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46):
4291 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 65):
4292 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 29):
4293 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
4294 		{
4295 			{
4296 				if (!((*(*lhs)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA10_;
4297 				result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 2)], (NI64)(rhs - (*(*lhs)._kind_6.sons->data[((NI) 1)])._kind_1.intVal));
4298 				goto BeforeRet_;
4299 			}
4300 			goto LA8_;
4301 			LA10_: ;
4302 			{
4303 				if (!((*(*lhs)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA13_;
4304 				result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 1)], (NI64)(rhs - (*(*lhs)._kind_6.sons->data[((NI) 2)])._kind_1.intVal));
4305 				goto BeforeRet_;
4306 			}
4307 			goto LA8_;
4308 			LA13_: ;
4309 			LA8_: ;
4310 		}
4311 		break;
4312 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 30):
4313 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47):
4314 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66):
4315 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
4316 		{
4317 			{
4318 				if (!((*(*lhs)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA18_;
4319 				result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 2)], (NI64)((*(*lhs)._kind_6.sons->data[((NI) 1)])._kind_1.intVal - rhs));
4320 				goto BeforeRet_;
4321 			}
4322 			goto LA16_;
4323 			LA18_: ;
4324 			{
4325 				if (!((*(*lhs)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA21_;
4326 				result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 1)], (NI64)(rhs + (*(*lhs)._kind_6.sons->data[((NI) 2)])._kind_1.intVal));
4327 				goto BeforeRet_;
4328 			}
4329 			goto LA16_;
4330 			LA21_: ;
4331 			LA16_: ;
4332 		}
4333 		break;
4334 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 48):
4335 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 67):
4336 		{
4337 			{
4338 				if (!((*(*lhs)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA26_;
4339 				{
4340 					if (!((NI64)(rhs % (*(*lhs)._kind_6.sons->data[((NI) 1)])._kind_1.intVal) == IL64(0))) goto LA30_;
4341 					result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 2)], (NI64)(rhs / (*(*lhs)._kind_6.sons->data[((NI) 1)])._kind_1.intVal));
4342 					goto BeforeRet_;
4343 				}
4344 				LA30_: ;
4345 			}
4346 			goto LA24_;
4347 			LA26_: ;
4348 			{
4349 				if (!((*(*lhs)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA33_;
4350 				{
4351 					if (!((NI64)(rhs % (*(*lhs)._kind_6.sons->data[((NI) 2)])._kind_1.intVal) == IL64(0))) goto LA37_;
4352 					result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 1)], (NI64)(rhs / (*(*lhs)._kind_6.sons->data[((NI) 2)])._kind_1.intVal));
4353 					goto BeforeRet_;
4354 				}
4355 				LA37_: ;
4356 			}
4357 			goto LA24_;
4358 			LA33_: ;
4359 			LA24_: ;
4360 		}
4361 		break;
4362 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
4363 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 68):
4364 		{
4365 			{
4366 				if (!((*(*lhs)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA42_;
4367 				{
4368 					if (!((NI64)((*(*lhs)._kind_6.sons->data[((NI) 1)])._kind_1.intVal % rhs) == IL64(0))) goto LA46_;
4369 					result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 2)], (NI64)((*(*lhs)._kind_6.sons->data[((NI) 1)])._kind_1.intVal / rhs));
4370 					goto BeforeRet_;
4371 				}
4372 				LA46_: ;
4373 			}
4374 			goto LA40_;
4375 			LA42_: ;
4376 			{
4377 				if (!((*(*lhs)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA49_;
4378 				result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 1)], (NI64)((*(*lhs)._kind_6.sons->data[((NI) 2)])._kind_1.intVal * rhs));
4379 				goto BeforeRet_;
4380 			}
4381 			goto LA40_;
4382 			LA49_: ;
4383 			LA40_: ;
4384 		}
4385 		break;
4386 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58):
4387 		{
4388 			{
4389 				if (!((*(*lhs)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA54_;
4390 				result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 1)], (NI64)((NI64)(rhs) >> (NU64)((*(*lhs)._kind_6.sons->data[((NI) 2)])._kind_1.intVal)));
4391 				goto BeforeRet_;
4392 			}
4393 			LA54_: ;
4394 		}
4395 		break;
4396 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57):
4397 		{
4398 			{
4399 				if (!((*(*lhs)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA59_;
4400 				result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 1)], (NI64)((NU64)(rhs) << (NU64)((*(*lhs)._kind_6.sons->data[((NI) 2)])._kind_1.intVal)));
4401 				goto BeforeRet_;
4402 			}
4403 			LA59_: ;
4404 		}
4405 		break;
4406 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59):
4407 		{
4408 			{
4409 				if (!((*(*lhs)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA64_;
4410 				result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 1)], (NI64)((NI64)(rhs) >> (NU64)((*(*lhs)._kind_6.sons->data[((NI) 2)])._kind_1.intVal)));
4411 				goto BeforeRet_;
4412 			}
4413 			LA64_: ;
4414 		}
4415 		break;
4416 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
4417 		{
4418 			result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 1)], -(rhs));
4419 			goto BeforeRet_;
4420 		}
4421 		break;
4422 		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97):
4423 		{
4424 			result = inferStaticParam__sigmatch_1235(c, (*lhs)._kind_6.sons->data[((NI) 1)], rhs);
4425 			goto BeforeRet_;
4426 		}
4427 		break;
4428 		default:
4429 		{
4430 		}
4431 		break;
4432 		}
4433 	}
4434 	goto LA1_;
4435 	LA5_: ;
4436 	{
4437 		NIM_BOOL T70_;
4438 		NIM_BOOL T71_;
4439 		tyObject_TType__facALICuu8zUj0hjvbTLFg* inferred;
4440 		T70_ = (NIM_BOOL)0;
4441 		T71_ = (NIM_BOOL)0;
4442 		T71_ = ((*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
4443 		if (!(T71_)) goto LA72_;
4444 		T71_ = ((*(*lhs).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
4445 		LA72_: ;
4446 		T70_ = T71_;
4447 		if (!(T70_)) goto LA73_;
4448 		T70_ = ((*(*lhs).typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
4449 		LA73_: ;
4450 		if (!T70_) goto LA74_;
4451 		inferred = newTypeWithSons__semdata_821((*c).c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), (*(*lhs).typ).sons);
4452 		asgnRef((void**) (&(*inferred).n), newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), rhs));
4453 		put__sigmatch_120(c, (*lhs).typ, inferred);
4454 		{
4455 			if (!!(((*(*c).c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)))) goto LA78_;
4456 			asgnRef((void**) (&(*(*lhs).typ).n), (*inferred).n);
4457 		}
4458 		LA78_: ;
4459 		result = NIM_TRUE;
4460 		goto BeforeRet_;
4461 	}
4462 	goto LA1_;
4463 	LA74_: ;
4464 	LA1_: ;
4465 	result = NIM_FALSE;
4466 	goto BeforeRet_;
4467 	}BeforeRet_: ;
4468 	return result;
4469 }
N_NIMCALL(void,failureToInferStaticParam__sigmatch_1361)4470 N_LIB_PRIVATE N_NIMCALL(void, failureToInferStaticParam__sigmatch_1361)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
4471 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* staticParam;
4472 	NimStringDesc* name;
4473 	NimStringDesc* T6_;
4474 	staticParam = findUnresolvedStatic__ast_4956(n);
4475 	{
4476 		if (!!((staticParam == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
4477 		name = (*(*(*staticParam)._kind_4.sym).name).s;
4478 	}
4479 	goto LA1_;
4480 	LA3_: ;
4481 	{
4482 		name = copyString(((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_17));
4483 	}
4484 	LA1_: ;
4485 	T6_ = NIM_NIL;
4486 	T6_ = rawNewString((name ? name->Sup.len : 0) + 45);
4487 appendString(T6_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_18));
4488 appendString(T6_, name);
4489 appendString(T6_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_19));
4490 	liMessage__msgs_1118(conf, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_20, NIM_FALSE);
4491 }
N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,inferStaticsInRange__sigmatch_1370)4492 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, inferStaticsInRange__sigmatch_1370)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* inferred, tyObject_TType__facALICuu8zUj0hjvbTLFg* concrete) {
4493 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
4494 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lowerBound;
4495 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* upperBound;
4496 {	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4497 	lowerBound = tryResolvingStaticExpr__sigmatch_1227(c, (*(*inferred).n)._kind_6.sons->data[((NI) 0)], NIM_TRUE);
4498 	upperBound = tryResolvingStaticExpr__sigmatch_1227(c, (*(*inferred).n)._kind_6.sons->data[((NI) 1)], NIM_TRUE);
4499 	{
4500 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* expX60gensym222_;
4501 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA rhsX60gensym222_;
4502 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T16_;
4503 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T17_;
4504 		if (!((*lowerBound).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA3_;
4505 		{
4506 			if (!((*upperBound).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA7_;
4507 			{
4508 				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T11_;
4509 				NIM_BOOL T12_;
4510 				T11_ = lengthOrd__types_1661((*(*(*c).c).graph).config, concrete);
4511 				T12_ = (NIM_BOOL)0;
4512 				T12_ = eqeq___int495056_759(T11_, (NI64)((NI64)((*upperBound)._kind_1.intVal - (*lowerBound)._kind_1.intVal) + IL64(1)));
4513 				if (!T12_) goto LA13_;
4514 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
4515 				goto BeforeRet_;
4516 			}
4517 			goto LA9_;
4518 			LA13_: ;
4519 			{
4520 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4521 				goto BeforeRet_;
4522 			}
4523 			LA9_: ;
4524 		}
4525 		LA7_: ;
4526 		expX60gensym222_ = upperBound;
4527 		T16_ = lengthOrd__types_1661((*(*(*c).c).graph).config, concrete);
4528 		T17_ = plus___int495056_794(T16_, (*lowerBound)._kind_1.intVal);
4529 		rhsX60gensym222_ = minus___int495056_780(T17_, IL64(1));
4530 		{
4531 			NI64 T20_;
4532 			NIM_BOOL T21_;
4533 			T20_ = (NI64)0;
4534 			T20_ = toInt64__int495056_88(rhsX60gensym222_);
4535 			T21_ = (NIM_BOOL)0;
4536 			T21_ = inferStaticParam__sigmatch_1235(c, expX60gensym222_, T20_);
4537 			if (!T21_) goto LA22_;
4538 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
4539 			goto BeforeRet_;
4540 		}
4541 		goto LA18_;
4542 		LA22_: ;
4543 		{
4544 			failureToInferStaticParam__sigmatch_1361((*(*(*c).c).graph).config, expX60gensym222_);
4545 		}
4546 		LA18_: ;
4547 	}
4548 	goto LA1_;
4549 	LA3_: ;
4550 	{
4551 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* expX60gensym225_;
4552 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA rhsX60gensym225_;
4553 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T28_;
4554 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T29_;
4555 		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T30_;
4556 		if (!((*upperBound).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA26_;
4557 		expX60gensym225_ = lowerBound;
4558 		T28_ = getInt__ast_4592(upperBound);
4559 		T29_ = plus___int495056_794(T28_, IL64(1));
4560 		T30_ = lengthOrd__types_1661((*(*(*c).c).graph).config, concrete);
4561 		rhsX60gensym225_ = minus___int495056_474(T29_, T30_);
4562 		{
4563 			NI64 T33_;
4564 			NIM_BOOL T34_;
4565 			T33_ = (NI64)0;
4566 			T33_ = toInt64__int495056_88(rhsX60gensym225_);
4567 			T34_ = (NIM_BOOL)0;
4568 			T34_ = inferStaticParam__sigmatch_1235(c, expX60gensym225_, T33_);
4569 			if (!T34_) goto LA35_;
4570 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
4571 			goto BeforeRet_;
4572 		}
4573 		goto LA31_;
4574 		LA35_: ;
4575 		{
4576 			failureToInferStaticParam__sigmatch_1361((*(*(*c).c).graph).config, expX60gensym225_);
4577 		}
4578 		LA31_: ;
4579 	}
4580 	goto LA1_;
4581 	LA26_: ;
4582 	LA1_: ;
4583 	}BeforeRet_: ;
4584 	return result;
4585 }
N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,minRel__sigmatch_798)4586 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, minRel__sigmatch_798)(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw a, tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw b) {
4587 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
4588 	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4589 	{
4590 		if (!(a <= b)) goto LA3_;
4591 		result = a;
4592 	}
4593 	goto LA1_;
4594 	LA3_: ;
4595 	{
4596 		result = b;
4597 	}
4598 	LA1_: ;
4599 	return result;
4600 }
N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,recordRel__sigmatch_806)4601 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, recordRel__sigmatch_806)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
4602 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
4603 {	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4604 	result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4605 	{
4606 		NIM_BOOL T3_;
4607 		T3_ = (NIM_BOOL)0;
4608 		T3_ = sameType__types_1824(f, a, 0);
4609 		if (!T3_) goto LA4_;
4610 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
4611 	}
4612 	goto LA1_;
4613 	LA4_: ;
4614 	{
4615 		NI T7_;
4616 		NI T8_;
4617 		NI firstField;
4618 		T7_ = (NI)0;
4619 		T7_ = len__ast_4002(a);
4620 		T8_ = (NI)0;
4621 		T8_ = len__ast_4002(f);
4622 		if (!(T7_ == T8_)) goto LA9_;
4623 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
4624 		{
4625 			if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA13_;
4626 			firstField = ((NI) 0);
4627 		}
4628 		goto LA11_;
4629 		LA13_: ;
4630 		{
4631 			firstField = ((NI) 1);
4632 		}
4633 		LA11_: ;
4634 		{
4635 			NI i;
4636 			NI colontmp_;
4637 			NI i_2;
4638 			i = (NI)0;
4639 			colontmp_ = (NI)0;
4640 			colontmp_ = len__ast_4002(f);
4641 			i_2 = firstField;
4642 			{
4643 				while (1) {
4644 					tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw m;
4645 					if (!(i_2 < colontmp_)) goto LA18;
4646 					i = i_2;
4647 					m = typeRel__sigmatch_202(c, (*f).sons->data[i], (*a).sons->data[i], 0);
4648 					{
4649 						if (!(m < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3))) goto LA21_;
4650 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4651 						goto BeforeRet_;
4652 					}
4653 					LA21_: ;
4654 					result = minRel__sigmatch_798(result, m);
4655 					i_2 += ((NI) 1);
4656 				} LA18: ;
4657 			}
4658 		}
4659 		{
4660 			NIM_BOOL T25_;
4661 			T25_ = (NIM_BOOL)0;
4662 			T25_ = !(((*f).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
4663 			if (!(T25_)) goto LA26_;
4664 			T25_ = !(((*a).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
4665 			LA26_: ;
4666 			if (!T25_) goto LA27_;
4667 			{
4668 				NI i_3;
4669 				NI colontmp__2;
4670 				NI i_4;
4671 				i_3 = (NI)0;
4672 				colontmp__2 = (NI)0;
4673 				colontmp__2 = len__ast_3198((*f).n);
4674 				i_4 = ((NI) 0);
4675 				{
4676 					while (1) {
4677 						if (!(i_4 < colontmp__2)) goto LA31;
4678 						i_3 = i_4;
4679 						{
4680 							if (!!(((*(*(*f).n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA34_;
4681 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4682 							goto BeforeRet_;
4683 						}
4684 						goto LA32_;
4685 						LA34_: ;
4686 						{
4687 							if (!!(((*(*(*a).n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA37_;
4688 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4689 							goto BeforeRet_;
4690 						}
4691 						goto LA32_;
4692 						LA37_: ;
4693 						{
4694 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* x;
4695 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* y;
4696 							x = (*(*(*f).n)._kind_6.sons->data[i_3])._kind_4.sym;
4697 							y = (*(*(*a).n)._kind_6.sons->data[i_3])._kind_4.sym;
4698 							{
4699 								NIM_BOOL T42_;
4700 								tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T44_;
4701 								T42_ = (NIM_BOOL)0;
4702 								T42_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
4703 								if (!(T42_)) goto LA43_;
4704 								T44_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4705 								T44_ = typeRel__sigmatch_202(c, (*x).typ, (*y).typ, 0);
4706 								T42_ = (T44_ < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3));
4707 								LA43_: ;
4708 								if (!T42_) goto LA45_;
4709 								result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4710 								goto BeforeRet_;
4711 							}
4712 							LA45_: ;
4713 							{
4714 								if (!!(((*(*x).name).id == (*(*y).name).id))) goto LA49_;
4715 								result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4716 								goto BeforeRet_;
4717 							}
4718 							LA49_: ;
4719 						}
4720 						LA32_: ;
4721 						i_4 += ((NI) 1);
4722 					} LA31: ;
4723 				}
4724 			}
4725 		}
4726 		LA27_: ;
4727 	}
4728 	goto LA1_;
4729 	LA9_: ;
4730 	LA1_: ;
4731 	}BeforeRet_: ;
4732 	return result;
4733 }
N_NIMCALL(void,genericParamPut__sigmatch_622)4734 N_LIB_PRIVATE N_NIMCALL(void, genericParamPut__sigmatch_622)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* last, tyObject_TType__facALICuu8zUj0hjvbTLFg* fGenericOrigin) {
4735 	{
4736 		NIM_BOOL T3_;
4737 		NIM_BOOL T4_;
4738 		NI T7_;
4739 		NI T8_;
4740 		T3_ = (NIM_BOOL)0;
4741 		T4_ = (NIM_BOOL)0;
4742 		T4_ = !((fGenericOrigin == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
4743 		if (!(T4_)) goto LA5_;
4744 		T4_ = ((*last).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
4745 		LA5_: ;
4746 		T3_ = T4_;
4747 		if (!(T3_)) goto LA6_;
4748 		T7_ = (NI)0;
4749 		T7_ = len__ast_4002(last);
4750 		T8_ = (NI)0;
4751 		T8_ = len__ast_4002(fGenericOrigin);
4752 		T3_ = ((NI)(T7_ - ((NI) 1)) == T8_);
4753 		LA6_: ;
4754 		if (!T3_) goto LA9_;
4755 		{
4756 			NI i;
4757 			NI colontmp_;
4758 			NI i_2;
4759 			i = (NI)0;
4760 			colontmp_ = (NI)0;
4761 			colontmp_ = len__ast_4002(fGenericOrigin);
4762 			i_2 = ((NI) 1);
4763 			{
4764 				while (1) {
4765 					tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
4766 					RootObj* T14_;
4767 					if (!(i_2 < colontmp_)) goto LA13;
4768 					i = i_2;
4769 					T14_ = NIM_NIL;
4770 					T14_ = idTableGet__astalgo_64((*c).bindings, (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&((*fGenericOrigin).sons->data[i])))));
4771 					x = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T14_));
4772 					{
4773 						if (!(x == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA17_;
4774 						put__sigmatch_120(c, (*fGenericOrigin).sons->data[i], (*last).sons->data[i]);
4775 					}
4776 					LA17_: ;
4777 					i_2 += ((NI) 1);
4778 				} LA13: ;
4779 			}
4780 		}
4781 	}
4782 	LA9_: ;
4783 }
N_NIMCALL(NI,isObjectSubtype__sigmatch_656)4784 N_LIB_PRIVATE N_NIMCALL(NI, isObjectSubtype__sigmatch_656)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* fGenericOrigin) {
4785 	NI result;
4786 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
4787 	NI depth;
4788 	tyObject_TType__facALICuu8zUj0hjvbTLFg* last;
4789 	result = (NI)0;
4790 	t = a;
4791 	depth = ((NI) 0);
4792 	last = a;
4793 	{
4794 		while (1) {
4795 			NIM_BOOL T3_;
4796 			NIM_BOOL T5_;
4797 			T3_ = (NIM_BOOL)0;
4798 			T3_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
4799 			if (!(T3_)) goto LA4_;
4800 			T5_ = (NIM_BOOL)0;
4801 			T5_ = sameObjectTypes__types_2047(f, t);
4802 			T3_ = !(T5_);
4803 			LA4_: ;
4804 			if (!T3_) goto LA2;
4805 			t = (*t).sons->data[((NI) 0)];
4806 			{
4807 				if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA8_;
4808 				goto LA1;
4809 			}
4810 			LA8_: ;
4811 			last = t;
4812 			t = skipTypes__ast_3735(t, TM__EV5hHJmjIY9cla9b9be7fSVJQ_12);
4813 			depth += ((NI) 1);
4814 		} LA2: ;
4815 	} LA1: ;
4816 	{
4817 		if (!!((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA12_;
4818 		genericParamPut__sigmatch_622(c, last, fGenericOrigin);
4819 		result = depth;
4820 	}
4821 	goto LA10_;
4822 	LA12_: ;
4823 	{
4824 		result = ((NI) -1);
4825 	}
4826 	LA10_: ;
4827 	return result;
4828 }
N_INLINE(NIM_BOOL,sameDistinctTypes__types_2092)4829 static N_INLINE(NIM_BOOL, sameDistinctTypes__types_2092)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
4830 	NIM_BOOL result;
4831 	result = (NIM_BOOL)0;
4832 	result = sameObjectTypes__types_2047(a, b);
4833 	return result;
4834 }
N_INLINE(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,allowsNil__sigmatch_875)4835 static N_INLINE(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, allowsNil__sigmatch_875)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f) {
4836 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
4837 	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4838 	{
4839 		if (!!((((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0))) goto LA3_;
4840 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
4841 	}
4842 	goto LA1_;
4843 	LA3_: ;
4844 	{
4845 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4846 	}
4847 	LA1_: ;
4848 	return result;
4849 }
N_INLINE(NIM_BOOL,inconsistentVarTypes__sigmatch_882)4850 static N_INLINE(NIM_BOOL, inconsistentVarTypes__sigmatch_882)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
4851 	NIM_BOOL result;
4852 	NIM_BOOL T1_;
4853 	NIM_BOOL T3_;
4854 	result = (NIM_BOOL)0;
4855 	T1_ = (NIM_BOOL)0;
4856 	T1_ = !(((*f).kind == (*a).kind));
4857 	if (!(T1_)) goto LA2_;
4858 	T3_ = (NIM_BOOL)0;
4859 	T3_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
4860 	if (T3_) goto LA4_;
4861 	T3_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
4862 	LA4_: ;
4863 	T1_ = T3_;
4864 	LA2_: ;
4865 	result = T1_;
4866 	return result;
4867 }
N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,procParamTypeRel__sigmatch_898)4868 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, procParamTypeRel__sigmatch_898)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
4869 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
4870 	tyObject_TType__facALICuu8zUj0hjvbTLFg* f_2;
4871 	tyObject_TType__facALICuu8zUj0hjvbTLFg* a_2;
4872 {	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4873 	f_2 = f;
4874 	a_2 = a;
4875 	{
4876 		NIM_BOOL T3_;
4877 		tyObject_TType__facALICuu8zUj0hjvbTLFg* aResolved;
4878 		RootObj* T6_;
4879 		T3_ = (NIM_BOOL)0;
4880 		T3_ = isMetaType__ast_3495(a_2);
4881 		if (!T3_) goto LA4_;
4882 		T6_ = NIM_NIL;
4883 		T6_ = idTableGet__astalgo_64((*c).bindings, (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&(a_2)))));
4884 		aResolved = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T6_));
4885 		{
4886 			if (!!((aResolved == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA9_;
4887 			a_2 = aResolved;
4888 		}
4889 		LA9_: ;
4890 	}
4891 	LA4_: ;
4892 	{
4893 		NIM_BOOL T13_;
4894 		tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw reverseRel;
4895 		T13_ = (NIM_BOOL)0;
4896 		T13_ = isMetaType__ast_3495(a_2);
4897 		if (!T13_) goto LA14_;
4898 		{
4899 			NIM_BOOL T18_;
4900 			T18_ = (NIM_BOOL)0;
4901 			T18_ = isMetaType__ast_3495(f_2);
4902 			if (!T18_) goto LA19_;
4903 			{
4904 				if (!!(((*c).call == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA23_;
4905 				f_2 = generateTypeInstance__semtypinst_1050((*c).c, (*c).bindings, (*(*c).call).info, f_2);
4906 			}
4907 			goto LA21_;
4908 			LA23_: ;
4909 			{
4910 				f_2 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
4911 			}
4912 			LA21_: ;
4913 			{
4914 				NIM_BOOL T28_;
4915 				T28_ = (NIM_BOOL)0;
4916 				T28_ = (f_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
4917 				if (T28_) goto LA29_;
4918 				T28_ = isMetaType__ast_3495(f_2);
4919 				LA29_: ;
4920 				if (!T28_) goto LA30_;
4921 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 5);
4922 				goto BeforeRet_;
4923 			}
4924 			LA30_: ;
4925 		}
4926 		LA19_: ;
4927 		reverseRel = typeRel__sigmatch_202(c, a_2, f_2, 0);
4928 		{
4929 			if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) <= reverseRel)) goto LA34_;
4930 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 6);
4931 		}
4932 		LA34_: ;
4933 	}
4934 	goto LA11_;
4935 	LA14_: ;
4936 	{
4937 		result = typeRel__sigmatch_202(c, f_2, a_2, 0);
4938 	}
4939 	LA11_: ;
4940 	{
4941 		NIM_BOOL T39_;
4942 		T39_ = (NIM_BOOL)0;
4943 		T39_ = (result <= ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 4));
4944 		if (T39_) goto LA40_;
4945 		T39_ = inconsistentVarTypes__sigmatch_882(f_2, a_2);
4946 		LA40_: ;
4947 		if (!T39_) goto LA41_;
4948 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
4949 	}
4950 	LA41_: ;
4951 	}BeforeRet_: ;
4952 	return result;
4953 }
N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,procTypeRel__sigmatch_927)4954 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, procTypeRel__sigmatch_927)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
4955 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
4956 {	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4957 	switch ((*a).kind) {
4958 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
4959 	{
4960 		tyTuple__8O9aaJHSzUqLkwUvcQd5m9aA T33_;
4961 		{
4962 			NI T4_;
4963 			NI T5_;
4964 			T4_ = (NI)0;
4965 			T4_ = len__ast_4002(f);
4966 			T5_ = (NI)0;
4967 			T5_ = len__ast_4002(a);
4968 			if (!!((T4_ == T5_))) goto LA6_;
4969 			goto BeforeRet_;
4970 		}
4971 		LA6_: ;
4972 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
4973 		{
4974 			NI i;
4975 			NI colontmp_;
4976 			NI i_2;
4977 			i = (NI)0;
4978 			colontmp_ = (NI)0;
4979 			colontmp_ = len__ast_4002(f);
4980 			i_2 = ((NI) 1);
4981 			{
4982 				while (1) {
4983 					tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T11_;
4984 					if (!(i_2 < colontmp_)) goto LA10;
4985 					i = i_2;
4986 					T11_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
4987 					T11_ = procParamTypeRel__sigmatch_898(c, (*f).sons->data[i], (*a).sons->data[i]);
4988 					result = minRel__sigmatch_798(result, T11_);
4989 					{
4990 						if (!(result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0))) goto LA14_;
4991 						goto BeforeRet_;
4992 					}
4993 					LA14_: ;
4994 					i_2 += ((NI) 1);
4995 				} LA10: ;
4996 			}
4997 		}
4998 		{
4999 			if (!!(((*f).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA18_;
5000 			{
5001 				tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T24_;
5002 				if (!!(((*a).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA22_;
5003 				T24_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
5004 				T24_ = procParamTypeRel__sigmatch_898(c, (*f).sons->data[((NI) 0)], (*a).sons->data[((NI) 0)]);
5005 				result = minRel__sigmatch_798(result, T24_);
5006 				{
5007 					if (!(result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0))) goto LA27_;
5008 					goto BeforeRet_;
5009 				}
5010 				LA27_: ;
5011 			}
5012 			goto LA20_;
5013 			LA22_: ;
5014 			{
5015 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5016 				goto BeforeRet_;
5017 			}
5018 			LA20_: ;
5019 		}
5020 		goto LA16_;
5021 		LA18_: ;
5022 		{
5023 			if (!!(((*a).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA31_;
5024 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5025 			goto BeforeRet_;
5026 		}
5027 		goto LA16_;
5028 		LA31_: ;
5029 		LA16_: ;
5030 		T33_ = getProcConvMismatch__types_3695((*(*(*c).c).graph).config, f, a, result);
5031 		result = T33_.Field1;
5032 		{
5033 			tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ T36_;
5034 			T36_ = (tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ)0;
5035 			T36_ = compatibleEffects__types_3425(f, a);
5036 			if (!!((T36_ == ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 0)))) goto LA37_;
5037 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5038 			goto BeforeRet_;
5039 		}
5040 		LA37_: ;
5041 	}
5042 	break;
5043 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
5044 	{
5045 		result = allowsNil__sigmatch_875(f);
5046 	}
5047 	break;
5048 	default:
5049 	{
5050 	}
5051 	break;
5052 	}
5053 	}BeforeRet_: ;
5054 	return result;
5055 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,skipToObject__sigmatch_703)5056 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipToObject__sigmatch_703)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ* skipped) {
5057 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
5058 	tyObject_TType__facALICuu8zUj0hjvbTLFg* r;
5059 	NI ptrs;
5060 	result = NIM_NIL;
5061 	r = t;
5062 	ptrs = ((NI) 0);
5063 	{
5064 		while (1) {
5065 			if (!!((r == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA2;
5066 			switch ((*r).kind) {
5067 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
5068 			{
5069 				r = (*r).sons->data[((NI) 0)];
5070 			}
5071 			break;
5072 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
5073 			{
5074 				ptrs += ((NI) 1);
5075 				(*skipped) = ((tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ) 1);
5076 				r = lastSon__ast_3743(r);
5077 			}
5078 			break;
5079 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
5080 			{
5081 				ptrs += ((NI) 1);
5082 				(*skipped) = ((tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ) 2);
5083 				r = lastSon__ast_3743(r);
5084 			}
5085 			break;
5086 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
5087 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
5088 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
5089 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
5090 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
5091 			{
5092 				r = lastSon__ast_3743(r);
5093 			}
5094 			break;
5095 			default:
5096 			{
5097 				goto LA1;
5098 			}
5099 			break;
5100 			}
5101 		} LA2: ;
5102 	} LA1: ;
5103 	{
5104 		NIM_BOOL T10_;
5105 		T10_ = (NIM_BOOL)0;
5106 		T10_ = ((*r).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
5107 		if (!(T10_)) goto LA11_;
5108 		T10_ = (ptrs <= ((NI) 1));
5109 		LA11_: ;
5110 		if (!T10_) goto LA12_;
5111 		result = r;
5112 	}
5113 	LA12_: ;
5114 	return result;
5115 }
N_NIMCALL(NIM_BOOL,isGenericSubtype__sigmatch_744)5116 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGenericSubtype__sigmatch_744)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, NI* d, tyObject_TType__facALICuu8zUj0hjvbTLFg* fGenericOrigin) {
5117 	NIM_BOOL result;
5118 	tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ askip;
5119 	tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ fskip;
5120 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
5121 	tyObject_TType__facALICuu8zUj0hjvbTLFg* r;
5122 	NI depth;
5123 	tyObject_TType__facALICuu8zUj0hjvbTLFg* last;
5124 {	result = (NIM_BOOL)0;
5125 	askip = ((tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ) 0);
5126 	fskip = ((tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ) 0);
5127 	t = skipToObject__sigmatch_703(a, (&askip));
5128 	r = skipToObject__sigmatch_703(f, (&fskip));
5129 	{
5130 		if (!(r == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
5131 		result = NIM_FALSE;
5132 		goto BeforeRet_;
5133 	}
5134 	LA3_: ;
5135 	depth = ((NI) 0);
5136 	last = a;
5137 	{
5138 		while (1) {
5139 			NIM_BOOL T7_;
5140 			NIM_BOOL T8_;
5141 			T7_ = (NIM_BOOL)0;
5142 			T8_ = (NIM_BOOL)0;
5143 			T8_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
5144 			if (!(T8_)) goto LA9_;
5145 			T8_ = !(((*r).sym == (*t).sym));
5146 			LA9_: ;
5147 			T7_ = T8_;
5148 			if (!(T7_)) goto LA10_;
5149 			T7_ = (askip == fskip);
5150 			LA10_: ;
5151 			if (!T7_) goto LA6;
5152 			t = (*t).sons->data[((NI) 0)];
5153 			{
5154 				if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA13_;
5155 				goto LA5;
5156 			}
5157 			LA13_: ;
5158 			last = t;
5159 			t = skipToObject__sigmatch_703(t, (&askip));
5160 			depth += ((NI) 1);
5161 		} LA6: ;
5162 	} LA5: ;
5163 	{
5164 		NIM_BOOL T17_;
5165 		T17_ = (NIM_BOOL)0;
5166 		T17_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
5167 		if (!(T17_)) goto LA18_;
5168 		T17_ = (askip == fskip);
5169 		LA18_: ;
5170 		if (!T17_) goto LA19_;
5171 		genericParamPut__sigmatch_622(c, last, fGenericOrigin);
5172 		(*d) = depth;
5173 		result = NIM_TRUE;
5174 	}
5175 	LA19_: ;
5176 	}BeforeRet_: ;
5177 	return result;
5178 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,concreteType__sigmatch_443)5179 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, concreteType__sigmatch_443)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TType__facALICuu8zUj0hjvbTLFg* f) {
5180 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
5181 	result = NIM_NIL;
5182 	switch ((*t).kind) {
5183 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
5184 	{
5185 		{
5186 			if (!(*c).isNoCall) goto LA4_;
5187 			result = t;
5188 		}
5189 		goto LA2_;
5190 		LA4_: ;
5191 		{
5192 			result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
5193 		}
5194 		LA2_: ;
5195 	}
5196 	break;
5197 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
5198 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
5199 	{
5200 		{
5201 			if (!((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3))) goto LA10_;
5202 			result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
5203 		}
5204 		goto LA8_;
5205 		LA10_: ;
5206 		{
5207 			result = t;
5208 		}
5209 		LA8_: ;
5210 	}
5211 	break;
5212 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
5213 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
5214 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
5215 	{
5216 		result = t;
5217 		{
5218 			while (1) {
5219 				RootObj* T16_;
5220 				T16_ = NIM_NIL;
5221 				T16_ = idTableGet__astalgo_64((*c).bindings, &t->Sup);
5222 				result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T16_));
5223 				{
5224 					if (!(result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA19_;
5225 					goto LA14;
5226 				}
5227 				LA19_: ;
5228 				{
5229 					if (!!(((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)))) goto LA23_;
5230 					goto LA14;
5231 				}
5232 				LA23_: ;
5233 			}
5234 		} LA14: ;
5235 	}
5236 	break;
5237 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
5238 	{
5239 		result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
5240 	}
5241 	break;
5242 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
5243 	{
5244 		{
5245 			NIM_BOOL T29_;
5246 			NIM_BOOL T30_;
5247 			NI T32_;
5248 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T34_;
5249 			T29_ = (NIM_BOOL)0;
5250 			T30_ = (NIM_BOOL)0;
5251 			T30_ = !((f == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
5252 			if (!(T30_)) goto LA31_;
5253 			T32_ = (NI)0;
5254 			T32_ = len__ast_4002(f);
5255 			T30_ = (((NI) 0) < T32_);
5256 			LA31_: ;
5257 			T29_ = T30_;
5258 			if (!(T29_)) goto LA33_;
5259 			T34_ = NIM_NIL;
5260 			T34_ = skipTypes__ast_3735((*f).sons->data[((NI) 0)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_29);
5261 			T29_ = ((*T34_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
5262 			LA33_: ;
5263 			if (!T29_) goto LA35_;
5264 			result = lastSon__ast_3743(t);
5265 		}
5266 		goto LA27_;
5267 		LA35_: ;
5268 		{
5269 			result = t;
5270 		}
5271 		LA27_: ;
5272 	}
5273 	break;
5274 	default:
5275 	{
5276 		result = t;
5277 	}
5278 	break;
5279 	}
5280 	return result;
5281 }
N_NIMCALL(void,Marker_tyRef__45NYJqjr6v2fbd4yf89cTdg)5282 static N_NIMCALL(void, Marker_tyRef__45NYJqjr6v2fbd4yf89cTdg)(void* p, NI op) {
5283 	tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA* a;
5284 	a = (tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA*)p;
5285 	nimGCvisit((void*)(*a).errorPrefix1, op);
5286 	nimGCvisit((void*)(*a).typeClass2, op);
5287 	nimGCvisit((void*)(*a).oldWriteHook3.ClE_0, op);
5288 	nimGCvisit((void*)(*a).diagnostics4, op);
5289 }
N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g,nextSymId__ast_3132)5290 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
5291 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
5292 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
5293 	(*x).symId += ((NI) 1);
5294 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
5295 	result.module = (*x).module;
5296 	result.item = (*x).symId;
5297 	return result;
5298 }
N_NIMCALL(void,Marker_tySequence__bGUffHlsVXt0g6ZKEF4OfQ)5299 static N_NIMCALL(void, Marker_tySequence__bGUffHlsVXt0g6ZKEF4OfQ)(void* p, NI op) {
5300 	tySequence__bGUffHlsVXt0g6ZKEF4OfQ* a;
5301 	NI T1_;
5302 	a = (tySequence__bGUffHlsVXt0g6ZKEF4OfQ*)p;
5303 	T1_ = (NI)0;
5304 	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
5305 	nimGCvisit((void*)a->data[T1_].Field0, op);
5306 	nimGCvisit((void*)a->data[T1_].Field1, op);
5307 	}
5308 }
N_INLINE(void,addDeclAt__lookups_837)5309 static N_INLINE(void, addDeclAt__lookups_837)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym) {
5310 	addDeclAt__lookups_815(c, scope, sym, (*sym).info);
5311 }
N_INLINE(void,addDecl__lookups_845)5312 static N_INLINE(void, addDecl__lookups_845)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym) {
5313 	addDeclAt__lookups_837(c, (*c).currentScope, sym);
5314 }
N_CLOSURE(void,colonanonymous___sigmatch_1102)5315 N_LIB_PRIVATE N_CLOSURE(void, colonanonymous___sigmatch_1102)(NimStringDesc* s, void* ClE_0) {
5316 	tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA* colonenvP_;
5317 	NimStringDesc* msg;
5318 	NI T10_;
5319 	NimStringDesc* T11_;
5320 	colonenvP_ = (tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA*) ClE_0;
5321 	{
5322 		NimStringDesc* T5_;
5323 		if (!(((*colonenvP_).errorPrefix1 ? (*colonenvP_).errorPrefix1->Sup.len : 0) == ((NI) 0))) goto LA3_;
5324 		T5_ = NIM_NIL;
5325 		T5_ = rawNewString(((*(*(*(*colonenvP_).typeClass2).sym).name).s ? (*(*(*(*colonenvP_).typeClass2).sym).name).s->Sup.len : 0) + 1);
5326 appendString(T5_, (*(*(*(*colonenvP_).typeClass2).sym).name).s);
5327 appendString(T5_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_37));
5328 		asgnRef((void**) (&(*colonenvP_).errorPrefix1), T5_);
5329 	}
5330 	LA3_: ;
5331 	msg = nsuReplaceStr(s, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_38), (*colonenvP_).errorPrefix1);
5332 	{
5333 		if (!!(((*colonenvP_).oldWriteHook3.ClP_0 == TM__EV5hHJmjIY9cla9b9be7fSVJQ_39.ClP_0 && (*colonenvP_).oldWriteHook3.ClE_0 == TM__EV5hHJmjIY9cla9b9be7fSVJQ_39.ClE_0))) goto LA8_;
5334 		(*colonenvP_).oldWriteHook3.ClE_0? (*colonenvP_).oldWriteHook3.ClP_0(msg, (*colonenvP_).oldWriteHook3.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_40)((*colonenvP_).oldWriteHook3.ClP_0))(msg);
5335 	}
5336 	LA8_: ;
5337 	asgnRef((void**) (&(*colonenvP_).diagnostics4), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*colonenvP_).diagnostics4), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
5338 	T10_ = (*colonenvP_).diagnostics4->Sup.len++;
5339 	T11_ = NIM_NIL;
5340 	T11_ = (*colonenvP_).diagnostics4->data[T10_]; (*colonenvP_).diagnostics4->data[T10_] = copyStringRC1(msg);
5341 	if (T11_) nimGCunrefNoCycle(T11_);
5342 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,matchUserTypeClass__sigmatch_993)5343 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, matchUserTypeClass__sigmatch_993)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* ff, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
5344 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
5345 	tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA* colonenv_;
5346 	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
5347 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
5348 	tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg matchedConceptContext;
5349 	tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* prevMatchedConcept;
5350 	tyObject_TType__facALICuu8zUj0hjvbTLFg* prevCandidateType;
5351 	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T11_;
5352 	TSafePoint TM__EV5hHJmjIY9cla9b9be7fSVJQ_35;
5353 	tySequence__bGUffHlsVXt0g6ZKEF4OfQ* typeParams;
5354 	tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags;
5355 	NIM_BOOL collectDiagnostics;
5356 	NIM_BOOL T56_;
5357 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* checkedBody;
5358 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T63_;
5359 {	result = NIM_NIL;
5360 	colonenv_ = NIM_NIL;
5361 	colonenv_ = (tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA*) newObj((&NTIrefobject__45NYJqjr6v2fbd4yf89cTdg_), sizeof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA));
5362 	(*colonenv_).Sup.m_type = (&NTIobject__ABsKQG07Jg0nSKN9cZsdHNA_);
5363 	c = (*m).c;
5364 	asgnRef((void**) (&(*colonenv_).typeClass2), skipTypes__ast_3735(ff, TM__EV5hHJmjIY9cla9b9be7fSVJQ_32));
5365 	body = (*(*(*colonenv_).typeClass2).n)._kind_6.sons->data[((NI) 3)];
5366 	nimZeroMem((void*)(&matchedConceptContext), sizeof(tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg));
5367 	prevMatchedConcept = (*c).matchedConcept;
5368 	prevCandidateType = (*(*(*colonenv_).typeClass2).sons->data[((NI) 0)]).sons->data[((NI) 0)];
5369 	{
5370 		if (!!((prevMatchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)))) goto LA3_;
5371 		matchedConceptContext.prev = prevMatchedConcept;
5372 		matchedConceptContext.depth = (NI)((*prevMatchedConcept).depth + ((NI) 1));
5373 		{
5374 			NimStringDesc* T9_;
5375 			NimStringDesc* T10_;
5376 			if (!(((NI) 4) < (*prevMatchedConcept).depth)) goto LA7_;
5377 			T9_ = NIM_NIL;
5378 			T10_ = NIM_NIL;
5379 			T10_ = dollar___renderer_2106(body);
5380 			T9_ = rawNewString((T10_ ? T10_->Sup.len : 0) + 29);
5381 appendString(T9_, T10_);
5382 appendString(T9_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_33));
5383 			liMessage__msgs_1118((*(*(*m).c).graph).config, (*body).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T9_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_34, NIM_FALSE);
5384 			result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
5385 			goto BeforeRet_;
5386 		}
5387 		LA7_: ;
5388 	}
5389 	LA3_: ;
5390 	T11_ = NIM_NIL;
5391 	T11_ = openScope__lookups_69(c);
5392 	matchedConceptContext.candidateType = a;
5393 	asgnRef((void**) (&(*(*(*colonenv_).typeClass2).sons->data[((NI) 0)]).sons->data[((NI) 0)]), a);
5394 	(*c).matchedConcept = (&matchedConceptContext);
5395 	pushSafePoint(&TM__EV5hHJmjIY9cla9b9be7fSVJQ_35);
5396 	TM__EV5hHJmjIY9cla9b9be7fSVJQ_35.status = setjmp(TM__EV5hHJmjIY9cla9b9be7fSVJQ_35.context);
5397 	if (TM__EV5hHJmjIY9cla9b9be7fSVJQ_35.status == 0) {
5398 	typeParams = NIM_NIL;
5399 	{
5400 		if (!((*ff).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53))) goto LA14_;
5401 		{
5402 			NI i;
5403 			NI colontmp_;
5404 			NI T17_;
5405 			NI i_2;
5406 			i = (NI)0;
5407 			colontmp_ = (NI)0;
5408 			T17_ = (NI)0;
5409 			T17_ = len__ast_4002(ff);
5410 			colontmp_ = (NI)(T17_ - ((NI) 1));
5411 			i_2 = ((NI) 1);
5412 			{
5413 				while (1) {
5414 					tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* typeParamName;
5415 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T20_;
5416 					tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
5417 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
5418 					tyObject_TType__facALICuu8zUj0hjvbTLFg* alreadyBound;
5419 					RootObj* T21_;
5420 					if (!(i_2 < colontmp_)) goto LA19;
5421 					i = i_2;
5422 					T20_ = NIM_NIL;
5423 					T20_ = base__types_63(ff);
5424 					typeParamName = (*(*(*T20_).sons->data[(NI)(i - ((NI) 1))]).sym).name;
5425 					typ = (*ff).sons->data[i];
5426 					param = NIM_NIL;
5427 					T21_ = NIM_NIL;
5428 					T21_ = idTableGet__astalgo_64((*m).bindings, (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&(typ)))));
5429 					alreadyBound = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T21_));
5430 					{
5431 						if (!!((alreadyBound == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA24_;
5432 						typ = alreadyBound;
5433 					}
5434 					LA24_: ;
5435 					{
5436 						tyTuple__Qqa8F49azZNOOP4FK3LKbhw T54_;
5437 						NI T55_;
5438 						{
5439 							tyTuple__Qqa8F49azZNOOP4FK3LKbhw* prev;
5440 							NI i_3;
5441 							NI L;
5442 							NI T28_;
5443 							prev = (tyTuple__Qqa8F49azZNOOP4FK3LKbhw*)0;
5444 							i_3 = ((NI) 0);
5445 							T28_ = (typeParams ? typeParams->Sup.len : 0);
5446 							L = T28_;
5447 							{
5448 								while (1) {
5449 									if (!(i_3 < L)) goto LA30;
5450 									prev = (&typeParams->data[i_3]);
5451 									{
5452 										tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym159_;
5453 										tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym160_;
5454 										tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T35_;
5455 										xX60gensym159_ = (*prev).Field1;
5456 										xX60gensym160_ = typ;
5457 										if (!((NI)((NI)((NU64)(((NI) ((*xX60gensym159_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym159_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym160_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym160_).Sup.itemId.item))))) goto LA33_;
5458 										T35_ = nextSymId__ast_3132((*c).Sup.idgen);
5459 										param = newSym__ast_3445((*(*prev).Field0).kind, typeParamName, T35_, (*(*colonenv_).typeClass2).sym, (*(*(*colonenv_).typeClass2).sym).info, 0);
5460 										asgnRef((void**) (&(*param).typ), (*(*prev).Field0).typ);
5461 										goto LA26;
5462 									}
5463 									LA33_: ;
5464 									i_3 += ((NI) 1);
5465 								} LA30: ;
5466 							}
5467 						}
5468 						switch ((*typ).kind) {
5469 						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
5470 						{
5471 							tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T37_;
5472 							T37_ = nextSymId__ast_3132((*c).Sup.idgen);
5473 							param = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10), typeParamName, T37_, (*(*colonenv_).typeClass2).sym, (*(*(*colonenv_).typeClass2).sym).info, 0);
5474 							asgnRef((void**) (&(*param).typ), exactReplica__ast_4051(typ));
5475 							{
5476 								if (!((*typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA40_;
5477 								(*(*param).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 27)) & 63);
5478 							}
5479 							goto LA38_;
5480 							LA40_: ;
5481 							{
5482 								asgnRef((void**) (&(*param).ast), (*typ).n);
5483 							}
5484 							LA38_: ;
5485 						}
5486 						break;
5487 						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
5488 						{
5489 							tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T44_;
5490 							T44_ = nextSymId__ast_3132((*c).Sup.idgen);
5491 							param = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8), typeParamName, T44_, (*(*colonenv_).typeClass2).sym, (*(*(*colonenv_).typeClass2).sym).info, 0);
5492 							asgnRef((void**) (&(*param).typ), exactReplica__ast_4051(typ));
5493 						}
5494 						break;
5495 						default:
5496 						{
5497 							tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T46_;
5498 							T46_ = nextSymId__ast_3132((*c).Sup.idgen);
5499 							param = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), typeParamName, T46_, (*(*colonenv_).typeClass2).sym, (*(*(*colonenv_).typeClass2).sym).info, 0);
5500 							{
5501 								NIM_BOOL T49_;
5502 								tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T52_;
5503 								T49_ = (NIM_BOOL)0;
5504 								T49_ = isMetaType__ast_3495(typ);
5505 								if (!T49_) goto LA50_;
5506 								T52_ = NIM_NIL;
5507 								T52_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
5508 								asgnRef((void**) (&T52_->data[0]), typ);
5509 								asgnRef((void**) (&(*param).typ), newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55), T52_));
5510 							}
5511 							goto LA47_;
5512 							LA50_: ;
5513 							{
5514 								asgnRef((void**) (&(*param).typ), makeTypeDesc__concepts_49(c, typ));
5515 							}
5516 							LA47_: ;
5517 						}
5518 						break;
5519 						}
5520 						nimZeroMem((void*)(&T54_), sizeof(tyTuple__Qqa8F49azZNOOP4FK3LKbhw));
5521 						T54_.Field0 = param;
5522 						T54_.Field1 = typ;
5523 						typeParams = (tySequence__bGUffHlsVXt0g6ZKEF4OfQ*) incrSeqV3((TGenericSeq*)(typeParams), (&NTIseqLLpsym_ptypeTT__bGUffHlsVXt0g6ZKEF4OfQ_));
5524 						T55_ = typeParams->Sup.len++;
5525 						asgnRef((void**) (&typeParams->data[T55_].Field0), T54_.Field0);
5526 						asgnRef((void**) (&typeParams->data[T55_].Field1), T54_.Field1);
5527 					} LA26: ;
5528 					addDecl__lookups_845(c, param);
5529 					i_2 += ((NI) 1);
5530 				} LA19: ;
5531 			}
5532 		}
5533 	}
5534 	LA14_: ;
5535 	nimZeroMem((void*)(&(*colonenv_).oldWriteHook3), sizeof(tyProc__k2HFjxisIgDALbEUFojxaQ));
5536 	asgnRef((void**) (&(*colonenv_).diagnostics4), NIM_NIL);
5537 	asgnRef((void**) (&(*colonenv_).errorPrefix1), NIM_NIL);
5538 	flags = 0;
5539 	T56_ = (NIM_BOOL)0;
5540 	T56_ = (*m).diagnosticsEnabled;
5541 	if (T56_) goto LA57_;
5542 	T56_ = (((*(*(*colonenv_).typeClass2).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0);
5543 	LA57_: ;
5544 	collectDiagnostics = T56_;
5545 	{
5546 		tyProc__k2HFjxisIgDALbEUFojxaQ T62_;
5547 		if (!collectDiagnostics) goto LA60_;
5548 		asgnRef((void**) (&(*colonenv_).oldWriteHook3.ClE_0), (*(*(*(*m).c).graph).config).writelnHook.ClE_0);
5549 		(*colonenv_).oldWriteHook3.ClP_0 = (*(*(*(*m).c).graph).config).writelnHook.ClP_0;
5550 		if ((*colonenv_).diagnostics4) { nimGCunrefRC1((*colonenv_).diagnostics4); (*colonenv_).diagnostics4 = NIM_NIL; }
5551 		flags = 1024;
5552 		nimZeroMem((void*)(&T62_), sizeof(tyProc__k2HFjxisIgDALbEUFojxaQ));
5553 		T62_.ClP_0 = colonanonymous___sigmatch_1102; T62_.ClE_0 = colonenv_;
5554 		asgnRef((void**) (&(*(*(*(*m).c).graph).config).writelnHook.ClE_0), T62_.ClE_0);
5555 		(*(*(*(*m).c).graph).config).writelnHook.ClP_0 = T62_.ClP_0;
5556 	}
5557 	LA60_: ;
5558 	T63_ = NIM_NIL;
5559 	T63_ = copyTree__ast_4431(body);
5560 	checkedBody = (*c).semTryExpr(c, T63_, flags);
5561 	{
5562 		if (!collectDiagnostics) goto LA66_;
5563 		asgnRef((void**) (&(*(*(*(*m).c).graph).config).writelnHook.ClE_0), (*colonenv_).oldWriteHook3.ClE_0);
5564 		(*(*(*(*m).c).graph).config).writelnHook.ClP_0 = (*colonenv_).oldWriteHook3.ClP_0;
5565 		{
5566 			NimStringDesc** msg;
5567 			NI i_4;
5568 			NI L_2;
5569 			NI T69_;
5570 			msg = (NimStringDesc**)0;
5571 			i_4 = ((NI) 0);
5572 			T69_ = ((*colonenv_).diagnostics4 ? (*colonenv_).diagnostics4->Sup.len : 0);
5573 			L_2 = T69_;
5574 			{
5575 				while (1) {
5576 					NI T72_;
5577 					NimStringDesc* T73_;
5578 					if (!(i_4 < L_2)) goto LA71;
5579 					msg = (&(*colonenv_).diagnostics4->data[i_4]);
5580 					unsureAsgnRef((void**) (&(*m).diagnostics), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*m).diagnostics), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
5581 					T72_ = (*m).diagnostics->Sup.len++;
5582 					T73_ = NIM_NIL;
5583 					T73_ = (*m).diagnostics->data[T72_]; (*m).diagnostics->data[T72_] = copyStringRC1((*msg));
5584 					if (T73_) nimGCunrefNoCycle(T73_);
5585 					(*m).diagnosticsEnabled = NIM_TRUE;
5586 					i_4 += ((NI) 1);
5587 				} LA71: ;
5588 			}
5589 		}
5590 	}
5591 	LA66_: ;
5592 	{
5593 		if (!(checkedBody == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA76_;
5594 		result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
5595 		popSafePoint();
5596 		(*c).matchedConcept = prevMatchedConcept;
5597 		asgnRef((void**) (&(*(*(*colonenv_).typeClass2).sons->data[((NI) 0)]).sons->data[((NI) 0)]), prevCandidateType);
5598 		closeScope__lookups_101(c);
5599 		goto BeforeRet_;
5600 	}
5601 	LA76_: ;
5602 	{
5603 		tyTuple__Qqa8F49azZNOOP4FK3LKbhw* p;
5604 		NI i_5;
5605 		NI L_3;
5606 		NI T79_;
5607 		p = (tyTuple__Qqa8F49azZNOOP4FK3LKbhw*)0;
5608 		i_5 = ((NI) 0);
5609 		T79_ = (typeParams ? typeParams->Sup.len : 0);
5610 		L_3 = T79_;
5611 		{
5612 			while (1) {
5613 				if (!(i_5 < L_3)) goto LA81;
5614 				p = (&typeParams->data[i_5]);
5615 				put__sigmatch_120(m, (*p).Field1, (*(*p).Field0).typ);
5616 				i_5 += ((NI) 1);
5617 			} LA81: ;
5618 		}
5619 	}
5620 	{
5621 		if (!((*ff).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53))) goto LA84_;
5622 		result = generateTypeInstance__semtypinst_1050(c, (*m).bindings, (*(*(*colonenv_).typeClass2).sym).info, ff);
5623 	}
5624 	goto LA82_;
5625 	LA84_: ;
5626 	{
5627 		result = exactReplica__ast_4051(ff);
5628 	}
5629 	LA82_: ;
5630 	asgnRef((void**) (&(*result).n), checkedBody);
5631 	popSafePoint();
5632 	}
5633 	else {
5634 		popSafePoint();
5635 	}
5636 	{
5637 		(*c).matchedConcept = prevMatchedConcept;
5638 		asgnRef((void**) (&(*(*(*colonenv_).typeClass2).sons->data[((NI) 0)]).sons->data[((NI) 0)]), prevCandidateType);
5639 		closeScope__lookups_101(c);
5640 		if (TM__EV5hHJmjIY9cla9b9be7fSVJQ_35.status != 0) nimLeaveFinally();
5641 	}
5642 	if (TM__EV5hHJmjIY9cla9b9be7fSVJQ_35.status != 0) reraiseException();
5643 	}BeforeRet_: ;
5644 	return result;
5645 }
N_INLINE(void,addInt__stdZprivateZdigitsutils_189)5646 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x) {
5647 	addInt__stdZprivateZdigitsutils_167(result, ((NI64) (x)));
5648 }
N_INLINE(NimStringDesc *,toFileLineCol__msgs_615)5649 static N_INLINE(NimStringDesc*, toFileLineCol__msgs_615)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info) {
5650 	NimStringDesc* result;
5651 	result = NIM_NIL;
5652 	result = resizeString(result, (info.Field0 ? info.Field0->Sup.len : 0) + 0);
5653 appendString(result, info.Field0);
5654 	{
5655 		if (!(((NI) 0) < info.Field1)) goto LA3_;
5656 		result = resizeString(result, 1);
5657 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_41));
5658 		addInt__stdZprivateZdigitsutils_189((&result), info.Field1);
5659 		{
5660 			if (!(((NI) 0) < (NI)(info.Field2 + ((NI) 1)))) goto LA7_;
5661 			result = resizeString(result, 2);
5662 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_42));
5663 			addInt__stdZprivateZdigitsutils_189((&result), (NI)(info.Field2 + ((NI) 1)));
5664 		}
5665 		LA7_: ;
5666 		result = resizeString(result, 1);
5667 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_43));
5668 	}
5669 	LA3_: ;
5670 	return result;
5671 }
N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,typeRel__sigmatch_202)5672 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, typeRel__sigmatch_202)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* aOrig, tySet_tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg flags) {
5673 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
5674 	NIM_BOOL useTypeLoweringRuleInTypeClass;
5675 	NIM_BOOL T9_;
5676 	NIM_BOOL T10_;
5677 	NIM_BOOL T11_;
5678 	NIM_BOOL T12_;
5679 	tyObject_TType__facALICuu8zUj0hjvbTLFg* aOrig_2;
5680 	tyObject_TType__facALICuu8zUj0hjvbTLFg* a;
5681 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T55_;
5682 {	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
5683 	result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5684 	{
5685 		if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6))) goto LA3_;
5686 		{
5687 			if (!!((aOrig == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA7_;
5688 			put__sigmatch_120(c, f, aOrig);
5689 		}
5690 		LA7_: ;
5691 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
5692 		goto BeforeRet_;
5693 	}
5694 	LA3_: ;
5695 	T9_ = (NIM_BOOL)0;
5696 	T10_ = (NIM_BOOL)0;
5697 	T11_ = (NIM_BOOL)0;
5698 	T12_ = (NIM_BOOL)0;
5699 	T12_ = !(((*(*c).c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)));
5700 	if (!(T12_)) goto LA13_;
5701 	T12_ = !((*c).isNoCall);
5702 	LA13_: ;
5703 	T11_ = T12_;
5704 	if (!(T11_)) goto LA14_;
5705 	T11_ = !(((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
5706 	LA14_: ;
5707 	T10_ = T11_;
5708 	if (!(T10_)) goto LA15_;
5709 	T10_ = !((((*aOrig).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 29))&63U)))!=0));
5710 	LA15_: ;
5711 	T9_ = T10_;
5712 	if (!(T9_)) goto LA16_;
5713 	T9_ = !((((*aOrig).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 28))&63U)))!=0));
5714 	LA16_: ;
5715 	useTypeLoweringRuleInTypeClass = T9_;
5716 	{
5717 		if (!useTypeLoweringRuleInTypeClass) goto LA19_;
5718 		aOrig_2 = skipTypes__ast_3735(aOrig, TM__EV5hHJmjIY9cla9b9be7fSVJQ_14);
5719 	}
5720 	goto LA17_;
5721 	LA19_: ;
5722 	{
5723 		aOrig_2 = aOrig;
5724 	}
5725 	LA17_: ;
5726 	{
5727 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prev;
5728 		if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55))) goto LA24_;
5729 		{
5730 			NI T28_;
5731 			T28_ = ((*aOrig_2).sons ? (*aOrig_2).sons->Sup.len : 0);
5732 			if (!(((NI) 1) < T28_)) goto LA29_;
5733 			prev = lastSon__ast_3743(aOrig_2);
5734 		}
5735 		goto LA26_;
5736 		LA29_: ;
5737 		{
5738 			prev = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
5739 		}
5740 		LA26_: ;
5741 		{
5742 			if (!!((prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA34_;
5743 			result = typeRel__sigmatch_202(c, f, prev, flags);
5744 			goto BeforeRet_;
5745 		}
5746 		goto LA32_;
5747 		LA34_: ;
5748 		{
5749 			tyObject_TType__facALICuu8zUj0hjvbTLFg* candidate;
5750 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T49_;
5751 			candidate = f;
5752 			switch ((*f).kind) {
5753 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
5754 			{
5755 				tyObject_TType__facALICuu8zUj0hjvbTLFg* prev_2;
5756 				RootObj* T38_;
5757 				T38_ = NIM_NIL;
5758 				T38_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
5759 				prev_2 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T38_));
5760 				{
5761 					if (!!((prev_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA41_;
5762 					candidate = prev_2;
5763 				}
5764 				LA41_: ;
5765 			}
5766 			break;
5767 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
5768 			{
5769 				tyObject_TType__facALICuu8zUj0hjvbTLFg* computedType;
5770 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
5771 				T44_ = NIM_NIL;
5772 				T44_ = tryResolvingStaticExpr__sigmatch_1227(c, (*f).n, NIM_FALSE);
5773 				computedType = (*T44_).typ;
5774 				switch ((*computedType).kind) {
5775 				case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
5776 				{
5777 					candidate = base__types_63(computedType);
5778 				}
5779 				break;
5780 				case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
5781 				{
5782 					candidate = computedType;
5783 				}
5784 				break;
5785 				default:
5786 				{
5787 				}
5788 				break;
5789 				}
5790 			}
5791 			break;
5792 			default:
5793 			{
5794 			}
5795 			break;
5796 			}
5797 			T49_ = NIM_NIL;
5798 			T49_ = base__types_63(aOrig_2);
5799 			result = typeRel__sigmatch_202(c, T49_, candidate, flags);
5800 			{
5801 				NI T54_;
5802 				if (!!((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA52_;
5803 				unsureAsgnRef((void**) (&(*c).inferredTypes), (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) incrSeqV3((TGenericSeq*)((*c).inferredTypes), (&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_)));
5804 				T54_ = (*c).inferredTypes->Sup.len++;
5805 				asgnRef((void**) (&(*c).inferredTypes->data[T54_]), aOrig_2);
5806 				add__concepts_23(aOrig_2, candidate);
5807 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
5808 			}
5809 			LA52_: ;
5810 			goto BeforeRet_;
5811 		}
5812 		LA32_: ;
5813 	}
5814 	LA24_: ;
5815 	T55_ = NIM_NIL;
5816 	T55_ = skipTypes__ast_3735(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_15);
5817 	a = maybeSkipDistinct__sigmatch_1210((&(*c)), T55_, (*c).calleeSym);
5818 	{
5819 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T60_;
5820 		if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4) || (*aOrig_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46))) goto LA58_;
5821 		T60_ = NIM_NIL;
5822 		T60_ = lastSon__ast_3743(aOrig_2);
5823 		result = typeRel__sigmatch_202(c, f, T60_, flags);
5824 		goto BeforeRet_;
5825 	}
5826 	LA58_: ;
5827 	{
5828 		NIM_BOOL T63_;
5829 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T65_;
5830 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T68_;
5831 		T63_ = (NIM_BOOL)0;
5832 		T63_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
5833 		if (!(T63_)) goto LA64_;
5834 		T65_ = NIM_NIL;
5835 		T65_ = skipTypes__ast_3735(f, TM__EV5hHJmjIY9cla9b9be7fSVJQ_15);
5836 		T63_ = !(((*T65_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9) && (*T65_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*T65_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51) && (*T65_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54) || (*T65_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56) && (*T65_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59)));
5837 		LA64_: ;
5838 		if (!T63_) goto LA66_;
5839 		T68_ = NIM_NIL;
5840 		T68_ = lastSon__ast_3743(a);
5841 		result = typeRel__sigmatch_202(c, f, T68_, flags);
5842 		goto BeforeRet_;
5843 	}
5844 	LA66_: ;
5845 	{
5846 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T73_;
5847 		if (!(((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA71_;
5848 		T73_ = NIM_NIL;
5849 		T73_ = lastSon__ast_3743(a);
5850 		result = typeRel__sigmatch_202(c, f, T73_, flags);
5851 		goto BeforeRet_;
5852 	}
5853 	LA71_: ;
5854 	switch ((*a).kind) {
5855 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
5856 	{
5857 		(*c).typedescMatched = NIM_TRUE;
5858 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
5859 		{
5860 			tyObject_TType__facALICuu8zUj0hjvbTLFg** branch;
5861 			NI i;
5862 			NI L;
5863 			NI T76_;
5864 			branch = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
5865 			i = ((NI) 0);
5866 			T76_ = ((*a).sons ? (*a).sons->Sup.len : 0);
5867 			L = T76_;
5868 			{
5869 				while (1) {
5870 					tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw x;
5871 					if (!(i < L)) goto LA78;
5872 					branch = &(*a).sons->data[i];
5873 					x = typeRel__sigmatch_202(c, f, (*branch), (flags | 1));
5874 					{
5875 						if (!(x == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0))) goto LA81_;
5876 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5877 						goto BeforeRet_;
5878 					}
5879 					LA81_: ;
5880 					{
5881 						if (!(x < result)) goto LA85_;
5882 						result = x;
5883 					}
5884 					LA85_: ;
5885 					i += ((NI) 1);
5886 				} LA78: ;
5887 			}
5888 		}
5889 		goto BeforeRet_;
5890 	}
5891 	break;
5892 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
5893 	{
5894 		(*c).typedescMatched = NIM_TRUE;
5895 		{
5896 			tyObject_TType__facALICuu8zUj0hjvbTLFg** branch_2;
5897 			NI i_2;
5898 			NI L_2;
5899 			NI T89_;
5900 			branch_2 = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
5901 			i_2 = ((NI) 0);
5902 			T89_ = ((*a).sons ? (*a).sons->Sup.len : 0);
5903 			L_2 = T89_;
5904 			{
5905 				while (1) {
5906 					tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw x_2;
5907 					if (!(i_2 < L_2)) goto LA91;
5908 					branch_2 = &(*a).sons->data[i_2];
5909 					x_2 = typeRel__sigmatch_202(c, f, (*branch_2), (flags | 1));
5910 					{
5911 						if (!!((x_2 == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA94_;
5912 						{
5913 							if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) <= x_2)) goto LA98_;
5914 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
5915 						}
5916 						goto LA96_;
5917 						LA98_: ;
5918 						{
5919 							result = x_2;
5920 						}
5921 						LA96_: ;
5922 						goto BeforeRet_;
5923 					}
5924 					LA94_: ;
5925 					i_2 += ((NI) 1);
5926 				} LA91: ;
5927 			}
5928 		}
5929 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5930 		goto BeforeRet_;
5931 	}
5932 	break;
5933 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64):
5934 	{
5935 		{
5936 			if (!!(((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64)))) goto LA104_;
5937 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5938 			goto BeforeRet_;
5939 		}
5940 		LA104_: ;
5941 	}
5942 	break;
5943 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
5944 	{
5945 		switch ((*f).kind) {
5946 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
5947 		{
5948 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T108_;
5949 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T109_;
5950 			T108_ = NIM_NIL;
5951 			T108_ = lastSon__ast_3743(a);
5952 			T109_ = NIM_NIL;
5953 			T109_ = lastSon__ast_3743(f);
5954 			result = typeRel__sigmatch_202(c, T108_, T109_, flags);
5955 			goto BeforeRet_;
5956 		}
5957 		break;
5958 		default:
5959 		{
5960 			{
5961 				if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59))) goto LA113_;
5962 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
5963 			}
5964 			goto LA111_;
5965 			LA113_: ;
5966 			{
5967 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5968 			}
5969 			LA111_: ;
5970 			goto BeforeRet_;
5971 		}
5972 		break;
5973 		}
5974 	}
5975 	break;
5976 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
5977 	{
5978 		{
5979 			if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59))) goto LA119_;
5980 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
5981 			goto BeforeRet_;
5982 		}
5983 		goto LA117_;
5984 		LA119_: ;
5985 		{
5986 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
5987 			goto BeforeRet_;
5988 		}
5989 		LA117_: ;
5990 	}
5991 	break;
5992 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
5993 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
5994 	{
5995 		{
5996 			NIM_BOOL T125_;
5997 			tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw x_3;
5998 			T125_ = (NIM_BOOL)0;
5999 			T125_ = !(((*(*c).c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)));
6000 			if (!(T125_)) goto LA126_;
6001 			T125_ = ((*(*(*c).c).matchedConcept).depth <= ((NI) 4));
6002 			LA126_: ;
6003 			if (!T125_) goto LA127_;
6004 			(*(*(*c).c).matchedConcept).depth += ((NI) 1);
6005 			x_3 = typeRel__sigmatch_202(c, a, f, (flags | 1));
6006 			{
6007 				if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) <= x_3)) goto LA131_;
6008 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
6009 				goto BeforeRet_;
6010 			}
6011 			LA131_: ;
6012 		}
6013 		LA127_: ;
6014 	}
6015 	break;
6016 	default:
6017 	{
6018 	}
6019 	break;
6020 	}
6021 	switch ((*f).kind) {
6022 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
6023 	{
6024 		{
6025 			NIM_BOOL T137_;
6026 			T137_ = (NIM_BOOL)0;
6027 			T137_ = ((*a).kind == (*f).kind);
6028 			if (!(T137_)) goto LA138_;
6029 			T137_ = sameEnumTypes__types_2096(f, a);
6030 			LA138_: ;
6031 			if (!T137_) goto LA139_;
6032 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
6033 		}
6034 		goto LA135_;
6035 		LA139_: ;
6036 		{
6037 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T142_;
6038 			NIM_BOOL T143_;
6039 			T142_ = NIM_NIL;
6040 			T142_ = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
6041 			T143_ = (NIM_BOOL)0;
6042 			T143_ = sameEnumTypes__types_2096(f, T142_);
6043 			if (!T143_) goto LA144_;
6044 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
6045 		}
6046 		goto LA135_;
6047 		LA144_: ;
6048 		LA135_: ;
6049 	}
6050 	break;
6051 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
6052 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
6053 	{
6054 		{
6055 			if (!((*a).kind == (*f).kind)) goto LA149_;
6056 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
6057 		}
6058 		goto LA147_;
6059 		LA149_: ;
6060 		{
6061 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T152_;
6062 			T152_ = NIM_NIL;
6063 			T152_ = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
6064 			if (!((*T152_).kind == (*f).kind)) goto LA153_;
6065 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
6066 		}
6067 		goto LA147_;
6068 		LA153_: ;
6069 		LA147_: ;
6070 	}
6071 	break;
6072 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
6073 	{
6074 		{
6075 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T165_;
6076 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T166_;
6077 			if (!((*a).kind == (*f).kind)) goto LA158_;
6078 			{
6079 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T162_;
6080 				T162_ = NIM_NIL;
6081 				T162_ = base__types_63(f);
6082 				if (!((*T162_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA163_;
6083 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
6084 				goto BeforeRet_;
6085 			}
6086 			LA163_: ;
6087 			T165_ = NIM_NIL;
6088 			T165_ = base__types_63(f);
6089 			T166_ = NIM_NIL;
6090 			T166_ = base__types_63(a);
6091 			result = typeRel__sigmatch_202(c, T165_, T166_, flags);
6092 			{
6093 				if (!!(((257 &((NU16)1<<((NU)(result)&15U)))!=0))) goto LA169_;
6094 				{
6095 					NI i_3;
6096 					NI res;
6097 					i_3 = (NI)0;
6098 					res = ((NI) 0);
6099 					{
6100 						while (1) {
6101 							if (!(res <= ((NI) 1))) goto LA173;
6102 							i_3 = res;
6103 							{
6104 								if (!((*(*(*f).n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 62))) goto LA176_;
6105 								asgnRef((void**) (&(*(*f).n)._kind_6.sons->data[i_3]), tryResolvingStaticExpr__sigmatch_1227(c, (*(*f).n)._kind_6.sons->data[i_3], NIM_FALSE));
6106 							}
6107 							LA176_: ;
6108 							res += ((NI) 1);
6109 						} LA173: ;
6110 					}
6111 				}
6112 				result = typeRangeRel__sigmatch_981(f, a);
6113 			}
6114 			LA169_: ;
6115 		}
6116 		goto LA156_;
6117 		LA158_: ;
6118 		{
6119 			tyObject_TType__facALICuu8zUj0hjvbTLFg* f_2;
6120 			f_2 = skipTypes__ast_3735(f, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
6121 			{
6122 				NIM_BOOL T181_;
6123 				NIM_BOOL T183_;
6124 				T181_ = (NIM_BOOL)0;
6125 				T181_ = ((*f_2).kind == (*a).kind);
6126 				if (!(T181_)) goto LA182_;
6127 				T183_ = (NIM_BOOL)0;
6128 				T183_ = !(((*f_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14)));
6129 				if (T183_) goto LA184_;
6130 				T183_ = sameEnumTypes__types_2096(f_2, a);
6131 				LA184_: ;
6132 				T181_ = T183_;
6133 				LA182_: ;
6134 				if (!T181_) goto LA185_;
6135 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 2);
6136 			}
6137 			goto LA179_;
6138 			LA185_: ;
6139 			{
6140 				NIM_BOOL T188_;
6141 				T188_ = (NIM_BOOL)0;
6142 				T188_ = isConvertibleToRange__sigmatch_548(f_2, a);
6143 				if (!T188_) goto LA189_;
6144 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6145 			}
6146 			goto LA179_;
6147 			LA189_: ;
6148 			LA179_: ;
6149 		}
6150 		LA156_: ;
6151 	}
6152 	break;
6153 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31):
6154 	{
6155 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34));
6156 	}
6157 	break;
6158 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32):
6159 	{
6160 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32));
6161 	}
6162 	break;
6163 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33):
6164 	{
6165 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33));
6166 	}
6167 	break;
6168 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34):
6169 	{
6170 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34));
6171 	}
6172 	break;
6173 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
6174 	{
6175 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35));
6176 	}
6177 	break;
6178 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40):
6179 	{
6180 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43));
6181 	}
6182 	break;
6183 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41):
6184 	{
6185 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41));
6186 	}
6187 	break;
6188 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42):
6189 	{
6190 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42));
6191 	}
6192 	break;
6193 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
6194 	{
6195 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43));
6196 	}
6197 	break;
6198 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
6199 	{
6200 		result = handleRange__sigmatch_476(f, a, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
6201 	}
6202 	break;
6203 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36):
6204 	{
6205 		result = handleFloatRange__sigmatch_596(f, a);
6206 	}
6207 	break;
6208 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37):
6209 	{
6210 		result = handleFloatRange__sigmatch_596(f, a);
6211 	}
6212 	break;
6213 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38):
6214 	{
6215 		result = handleFloatRange__sigmatch_596(f, a);
6216 	}
6217 	break;
6218 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
6219 	{
6220 		result = handleFloatRange__sigmatch_596(f, a);
6221 	}
6222 	break;
6223 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
6224 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
6225 	{
6226 		{
6227 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T210_;
6228 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T211_;
6229 			if (!((*aOrig_2).kind == (*f).kind)) goto LA208_;
6230 			T210_ = NIM_NIL;
6231 			T210_ = base__types_63(f);
6232 			T211_ = NIM_NIL;
6233 			T211_ = base__types_63(aOrig_2);
6234 			result = typeRel__sigmatch_202(c, T210_, T211_, flags);
6235 		}
6236 		goto LA206_;
6237 		LA208_: ;
6238 		{
6239 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T213_;
6240 			T213_ = NIM_NIL;
6241 			T213_ = base__types_63(f);
6242 			result = typeRel__sigmatch_202(c, T213_, aOrig_2, (flags | 2));
6243 		}
6244 		LA206_: ;
6245 		{
6246 			NIM_BOOL T216_;
6247 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T218_;
6248 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T219_;
6249 			T216_ = (NIM_BOOL)0;
6250 			T216_ = (result <= ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 4));
6251 			if (!(T216_)) goto LA217_;
6252 			T218_ = NIM_NIL;
6253 			T218_ = lastSon__ast_3743(f);
6254 			T219_ = NIM_NIL;
6255 			T219_ = skipTypes__ast_3735(T218_, abstractInst__ast_355);
6256 			T216_ = ((*T219_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T219_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T219_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T219_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*T219_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
6257 			LA217_: ;
6258 			if (!T216_) goto LA220_;
6259 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6260 		}
6261 		LA220_: ;
6262 	}
6263 	break;
6264 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
6265 	{
6266 		switch ((*a).kind) {
6267 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
6268 		{
6269 			tyObject_TType__facALICuu8zUj0hjvbTLFg* fRange;
6270 			tyObject_TType__facALICuu8zUj0hjvbTLFg* aRange;
6271 			tyObject_TType__facALICuu8zUj0hjvbTLFg* ff;
6272 			tyObject_TType__facALICuu8zUj0hjvbTLFg* aa;
6273 			fRange = (*f).sons->data[((NI) 0)];
6274 			aRange = (*a).sons->data[((NI) 0)];
6275 			{
6276 				tyObject_TType__facALICuu8zUj0hjvbTLFg* prev_3;
6277 				RootObj* T228_;
6278 				if (!((*fRange).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA226_;
6279 				T228_ = NIM_NIL;
6280 				T228_ = idTableGet__astalgo_64((*c).bindings, (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&(fRange)))));
6281 				prev_3 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T228_));
6282 				{
6283 					if (!(prev_3 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA231_;
6284 					put__sigmatch_120(c, fRange, (*a).sons->data[((NI) 0)]);
6285 					fRange = a;
6286 				}
6287 				goto LA229_;
6288 				LA231_: ;
6289 				{
6290 					fRange = prev_3;
6291 				}
6292 				LA229_: ;
6293 			}
6294 			LA226_: ;
6295 			ff = skipTypes__ast_3735((*f).sons->data[((NI) 1)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_14);
6296 			aa = (*a).sons->data[((NI) 1)];
6297 			{
6298 				NIM_BOOL T236_;
6299 				T236_ = (NIM_BOOL)0;
6300 				T236_ = !(((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
6301 				if (!(T236_)) goto LA237_;
6302 				T236_ = ((*aa).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
6303 				LA237_: ;
6304 				if (!T236_) goto LA238_;
6305 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
6306 			}
6307 			goto LA234_;
6308 			LA238_: ;
6309 			{
6310 				result = typeRel__sigmatch_202(c, ff, aa, flags);
6311 			}
6312 			LA234_: ;
6313 			{
6314 				if (!(result < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8))) goto LA243_;
6315 				{
6316 					NIM_BOOL T247_;
6317 					NIM_BOOL T248_;
6318 					NIM_BOOL T249_;
6319 					T247_ = (NIM_BOOL)0;
6320 					T248_ = (NIM_BOOL)0;
6321 					T249_ = (NIM_BOOL)0;
6322 					T249_ = NIM_FALSE;
6323 					if (!(T249_)) goto LA250_;
6324 					T249_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 1))&7U)))!=0));
6325 					LA250_: ;
6326 					T248_ = T249_;
6327 					if (!(T248_)) goto LA251_;
6328 					T248_ = ((*ff).kind == (*aa).kind);
6329 					LA251_: ;
6330 					T247_ = T248_;
6331 					if (!(T247_)) goto LA252_;
6332 					T247_ = isCovariantPtr__sigmatch_1405(c, ff, aa);
6333 					LA252_: ;
6334 					if (!T247_) goto LA253_;
6335 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
6336 				}
6337 				goto LA245_;
6338 				LA253_: ;
6339 				{
6340 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6341 					goto BeforeRet_;
6342 				}
6343 				LA245_: ;
6344 			}
6345 			LA243_: ;
6346 			{
6347 				if (!(((*fRange).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0)) goto LA258_;
6348 				result = inferStaticsInRange__sigmatch_1370(c, fRange, a);
6349 				goto BeforeRet_;
6350 			}
6351 			goto LA256_;
6352 			LA258_: ;
6353 			{
6354 				NIM_BOOL T261_;
6355 				T261_ = (NIM_BOOL)0;
6356 				T261_ = !(((*(*c).c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)));
6357 				if (!(T261_)) goto LA262_;
6358 				T261_ = (((*aRange).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0);
6359 				LA262_: ;
6360 				if (!T261_) goto LA263_;
6361 				result = inferStaticsInRange__sigmatch_1370(c, aRange, f);
6362 				goto BeforeRet_;
6363 			}
6364 			goto LA256_;
6365 			LA263_: ;
6366 			{
6367 				{
6368 					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T268_;
6369 					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T269_;
6370 					NIM_BOOL T270_;
6371 					T268_ = lengthOrd__types_1661((*(*(*c).c).graph).config, fRange);
6372 					T269_ = lengthOrd__types_1661((*(*(*c).c).graph).config, aRange);
6373 					T270_ = (NIM_BOOL)0;
6374 					T270_ = eqeq___int495056_313(T268_, T269_);
6375 					if (!!(T270_)) goto LA271_;
6376 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6377 				}
6378 				LA271_: ;
6379 			}
6380 			LA256_: ;
6381 		}
6382 		break;
6383 		default:
6384 		{
6385 		}
6386 		break;
6387 		}
6388 	}
6389 	break;
6390 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
6391 	{
6392 		{
6393 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T279_;
6394 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T280_;
6395 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49))) goto LA277_;
6396 			T279_ = NIM_NIL;
6397 			T279_ = base__types_63(f);
6398 			T280_ = NIM_NIL;
6399 			T280_ = base__types_63(a);
6400 			result = typeRel__sigmatch_202(c, T279_, T280_, flags);
6401 			{
6402 				if (!(result < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8))) goto LA283_;
6403 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6404 			}
6405 			LA283_: ;
6406 		}
6407 		goto LA275_;
6408 		LA277_: ;
6409 		{
6410 		}
6411 		LA275_: ;
6412 	}
6413 	break;
6414 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
6415 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
6416 	{
6417 		{
6418 			if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA289_;
6419 			{
6420 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T295_;
6421 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T296_;
6422 				if (!(((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0)) goto LA293_;
6423 				T295_ = NIM_NIL;
6424 				T295_ = base__types_63(f);
6425 				T296_ = NIM_NIL;
6426 				T296_ = lastSon__ast_3743(a);
6427 				result = typeRel__sigmatch_202(c, T295_, T296_, flags);
6428 				goto BeforeRet_;
6429 			}
6430 			LA293_: ;
6431 			{
6432 				if (!((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7))) goto LA299_;
6433 				goto BeforeRet_;
6434 			}
6435 			LA299_: ;
6436 		}
6437 		LA289_: ;
6438 		switch ((*a).kind) {
6439 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
6440 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
6441 		{
6442 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T302_;
6443 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T303_;
6444 			T302_ = NIM_NIL;
6445 			T302_ = base__types_63(f);
6446 			T303_ = NIM_NIL;
6447 			T303_ = base__types_63(a);
6448 			result = typeRel__sigmatch_202(c, T302_, T303_, flags);
6449 			{
6450 				if (!(result < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8))) goto LA306_;
6451 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6452 			}
6453 			LA306_: ;
6454 		}
6455 		break;
6456 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
6457 		{
6458 			tyObject_TType__facALICuu8zUj0hjvbTLFg* ffX60gensym291_;
6459 			tyObject_TType__facALICuu8zUj0hjvbTLFg* aaX60gensym291_;
6460 			tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw baseRelX60gensym291_;
6461 			{
6462 				NIM_BOOL T311_;
6463 				T311_ = (NIM_BOOL)0;
6464 				T311_ = !(((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
6465 				if (!(T311_)) goto LA312_;
6466 				T311_ = ((*(*a).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
6467 				LA312_: ;
6468 				if (!T311_) goto LA313_;
6469 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
6470 				goto BeforeRet_;
6471 			}
6472 			LA313_: ;
6473 			ffX60gensym291_ = base__types_63(f);
6474 			aaX60gensym291_ = (*a).sons->data[((NI) 1)];
6475 			baseRelX60gensym291_ = typeRel__sigmatch_202(c, ffX60gensym291_, aaX60gensym291_, flags);
6476 			{
6477 				if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) <= baseRelX60gensym291_)) goto LA317_;
6478 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6479 			}
6480 			goto LA315_;
6481 			LA317_: ;
6482 			{
6483 				NIM_BOOL T320_;
6484 				NIM_BOOL T321_;
6485 				NIM_BOOL T322_;
6486 				T320_ = (NIM_BOOL)0;
6487 				T321_ = (NIM_BOOL)0;
6488 				T322_ = (NIM_BOOL)0;
6489 				T322_ = NIM_FALSE;
6490 				if (!(T322_)) goto LA323_;
6491 				T322_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 1))&7U)))!=0));
6492 				LA323_: ;
6493 				T321_ = T322_;
6494 				if (!(T321_)) goto LA324_;
6495 				T321_ = ((*ffX60gensym291_).kind == (*aaX60gensym291_).kind);
6496 				LA324_: ;
6497 				T320_ = T321_;
6498 				if (!(T320_)) goto LA325_;
6499 				T320_ = isCovariantPtr__sigmatch_1405(c, ffX60gensym291_, aaX60gensym291_);
6500 				LA325_: ;
6501 				if (!T320_) goto LA326_;
6502 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6503 			}
6504 			goto LA315_;
6505 			LA326_: ;
6506 			LA315_: ;
6507 		}
6508 		break;
6509 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
6510 		{
6511 			tyObject_TType__facALICuu8zUj0hjvbTLFg* ffX60gensym298_;
6512 			tyObject_TType__facALICuu8zUj0hjvbTLFg* aaX60gensym298_;
6513 			tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw baseRelX60gensym298_;
6514 			{
6515 				NIM_BOOL T331_;
6516 				T331_ = (NIM_BOOL)0;
6517 				T331_ = !(((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
6518 				if (!(T331_)) goto LA332_;
6519 				T331_ = ((*(*a).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
6520 				LA332_: ;
6521 				if (!T331_) goto LA333_;
6522 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6523 				goto BeforeRet_;
6524 			}
6525 			LA333_: ;
6526 			ffX60gensym298_ = base__types_63(f);
6527 			aaX60gensym298_ = (*a).sons->data[((NI) 0)];
6528 			baseRelX60gensym298_ = typeRel__sigmatch_202(c, ffX60gensym298_, aaX60gensym298_, flags);
6529 			{
6530 				if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) <= baseRelX60gensym298_)) goto LA337_;
6531 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6532 			}
6533 			goto LA335_;
6534 			LA337_: ;
6535 			{
6536 				NIM_BOOL T340_;
6537 				NIM_BOOL T341_;
6538 				NIM_BOOL T342_;
6539 				T340_ = (NIM_BOOL)0;
6540 				T341_ = (NIM_BOOL)0;
6541 				T342_ = (NIM_BOOL)0;
6542 				T342_ = NIM_FALSE;
6543 				if (!(T342_)) goto LA343_;
6544 				T342_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 1))&7U)))!=0));
6545 				LA343_: ;
6546 				T341_ = T342_;
6547 				if (!(T341_)) goto LA344_;
6548 				T341_ = ((*ffX60gensym298_).kind == (*aaX60gensym298_).kind);
6549 				LA344_: ;
6550 				T340_ = T341_;
6551 				if (!(T340_)) goto LA345_;
6552 				T340_ = isCovariantPtr__sigmatch_1405(c, ffX60gensym298_, aaX60gensym298_);
6553 				LA345_: ;
6554 				if (!T340_) goto LA346_;
6555 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6556 			}
6557 			goto LA335_;
6558 			LA346_: ;
6559 			LA335_: ;
6560 		}
6561 		break;
6562 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
6563 		{
6564 			{
6565 				if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27))) goto LA351_;
6566 				{
6567 					if (!((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA355_;
6568 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6569 				}
6570 				goto LA353_;
6571 				LA355_: ;
6572 				{
6573 					NIM_BOOL T358_;
6574 					NIM_BOOL T359_;
6575 					NI T361_;
6576 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T363_;
6577 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T364_;
6578 					tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T365_;
6579 					T358_ = (NIM_BOOL)0;
6580 					T359_ = (NIM_BOOL)0;
6581 					T359_ = ((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
6582 					if (!(T359_)) goto LA360_;
6583 					T361_ = (NI)0;
6584 					T361_ = len__ast_4002(a);
6585 					T359_ = (((NI) 0) < T361_);
6586 					LA360_: ;
6587 					T358_ = T359_;
6588 					if (!(T358_)) goto LA362_;
6589 					T363_ = NIM_NIL;
6590 					T363_ = base__types_63(f);
6591 					T364_ = NIM_NIL;
6592 					T364_ = base__types_63(a);
6593 					T365_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
6594 					T365_ = typeRel__sigmatch_202(c, T363_, T364_, flags);
6595 					T358_ = (((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) <= T365_);
6596 					LA362_: ;
6597 					if (!T358_) goto LA366_;
6598 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6599 				}
6600 				goto LA353_;
6601 				LA366_: ;
6602 				LA353_: ;
6603 			}
6604 			LA351_: ;
6605 		}
6606 		break;
6607 		default:
6608 		{
6609 		}
6610 		break;
6611 		}
6612 	}
6613 	break;
6614 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
6615 	{
6616 		switch ((*a).kind) {
6617 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
6618 		{
6619 			{
6620 				NIM_BOOL T373_;
6621 				T373_ = (NIM_BOOL)0;
6622 				T373_ = !(((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
6623 				if (!(T373_)) goto LA374_;
6624 				T373_ = ((*(*a).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
6625 				LA374_: ;
6626 				if (!T373_) goto LA375_;
6627 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
6628 			}
6629 			goto LA371_;
6630 			LA375_: ;
6631 			{
6632 				tyObject_TType__facALICuu8zUj0hjvbTLFg* ff_2;
6633 				tyObject_TType__facALICuu8zUj0hjvbTLFg* aa_2;
6634 				ff_2 = (*f).sons->data[((NI) 0)];
6635 				aa_2 = (*a).sons->data[((NI) 0)];
6636 				result = typeRel__sigmatch_202(c, ff_2, aa_2, flags);
6637 				{
6638 					if (!(result < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8))) goto LA380_;
6639 					{
6640 						NIM_BOOL T384_;
6641 						NIM_BOOL T385_;
6642 						NIM_BOOL T386_;
6643 						T384_ = (NIM_BOOL)0;
6644 						T385_ = (NIM_BOOL)0;
6645 						T386_ = (NIM_BOOL)0;
6646 						T386_ = NIM_FALSE;
6647 						if (!(T386_)) goto LA387_;
6648 						T386_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 1))&7U)))!=0));
6649 						LA387_: ;
6650 						T385_ = T386_;
6651 						if (!(T385_)) goto LA388_;
6652 						T385_ = ((*ff_2).kind == (*aa_2).kind);
6653 						LA388_: ;
6654 						T384_ = T385_;
6655 						if (!(T384_)) goto LA389_;
6656 						T384_ = isCovariantPtr__sigmatch_1405(c, ff_2, aa_2);
6657 						LA389_: ;
6658 						if (!T384_) goto LA390_;
6659 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
6660 					}
6661 					goto LA382_;
6662 					LA390_: ;
6663 					{
6664 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6665 					}
6666 					LA382_: ;
6667 				}
6668 				goto LA378_;
6669 				LA380_: ;
6670 				{
6671 					NIM_BOOL T394_;
6672 					T394_ = (NIM_BOOL)0;
6673 					T394_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
6674 					if (!(T394_)) goto LA395_;
6675 					T394_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0));
6676 					LA395_: ;
6677 					if (!T394_) goto LA396_;
6678 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6679 				}
6680 				goto LA378_;
6681 				LA396_: ;
6682 				LA378_: ;
6683 			}
6684 			LA371_: ;
6685 		}
6686 		break;
6687 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
6688 		{
6689 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6690 		}
6691 		break;
6692 		default:
6693 		{
6694 		}
6695 		break;
6696 		}
6697 	}
6698 	break;
6699 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
6700 	{
6701 		{
6702 			NIM_BOOL T403_;
6703 			tyObject_TType__facALICuu8zUj0hjvbTLFg* x_4;
6704 			T403_ = (NIM_BOOL)0;
6705 			T403_ = isOrdinalType__types_299(a, (((*(*(*(*c).c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 47))&63U)))!=0));
6706 			if (!T403_) goto LA404_;
6707 			{
6708 				if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15))) goto LA408_;
6709 				x_4 = (*a).sons->data[((NI) 0)];
6710 			}
6711 			goto LA406_;
6712 			LA408_: ;
6713 			{
6714 				x_4 = a;
6715 			}
6716 			LA406_: ;
6717 			{
6718 				if (!((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA413_;
6719 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
6720 			}
6721 			goto LA411_;
6722 			LA413_: ;
6723 			{
6724 				result = typeRel__sigmatch_202(c, (*f).sons->data[((NI) 0)], x_4, flags);
6725 				{
6726 					if (!(result < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8))) goto LA418_;
6727 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6728 				}
6729 				LA418_: ;
6730 			}
6731 			LA411_: ;
6732 		}
6733 		goto LA401_;
6734 		LA404_: ;
6735 		{
6736 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA421_;
6737 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
6738 		}
6739 		goto LA401_;
6740 		LA421_: ;
6741 		LA401_: ;
6742 	}
6743 	break;
6744 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
6745 	{
6746 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6747 	}
6748 	break;
6749 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
6750 	{
6751 		{
6752 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA427_;
6753 			a = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
6754 		}
6755 		LA427_: ;
6756 		{
6757 			if (!((*a).kind == (*f).kind)) goto LA431_;
6758 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
6759 		}
6760 		LA431_: ;
6761 	}
6762 	break;
6763 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
6764 	{
6765 		{
6766 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA436_;
6767 			result = recordRel__sigmatch_806(c, f, a);
6768 		}
6769 		LA436_: ;
6770 	}
6771 	break;
6772 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
6773 	{
6774 		{
6775 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA441_;
6776 			{
6777 				NIM_BOOL T445_;
6778 				T445_ = (NIM_BOOL)0;
6779 				T445_ = sameObjectTypes__types_2047(f, a);
6780 				if (!T445_) goto LA446_;
6781 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
6782 			}
6783 			goto LA443_;
6784 			LA446_: ;
6785 			{
6786 				NI depth;
6787 				depth = isObjectSubtype__sigmatch_656(c, a, f, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
6788 				{
6789 					if (!(((NI) 0) < depth)) goto LA451_;
6790 					(*c).inheritancePenalty += depth;
6791 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
6792 				}
6793 				LA451_: ;
6794 			}
6795 			LA443_: ;
6796 		}
6797 		LA441_: ;
6798 	}
6799 	break;
6800 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
6801 	{
6802 		a = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_23);
6803 		{
6804 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA456_;
6805 			{
6806 				NIM_BOOL T460_;
6807 				T460_ = (NIM_BOOL)0;
6808 				T460_ = sameDistinctTypes__types_2092(f, a);
6809 				if (!T460_) goto LA461_;
6810 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
6811 			}
6812 			goto LA458_;
6813 			LA461_: ;
6814 			{
6815 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T466_;
6816 				if (!(*c).coerceDistincts) goto LA464_;
6817 				T466_ = NIM_NIL;
6818 				T466_ = base__types_63(f);
6819 				result = typeRel__sigmatch_202(c, T466_, a, flags);
6820 			}
6821 			goto LA458_;
6822 			LA464_: ;
6823 			LA458_: ;
6824 		}
6825 		goto LA454_;
6826 		LA456_: ;
6827 		{
6828 			NIM_BOOL T468_;
6829 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T470_;
6830 			T468_ = (NIM_BOOL)0;
6831 			T468_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5));
6832 			if (!(T468_)) goto LA469_;
6833 			T470_ = NIM_NIL;
6834 			T470_ = base__types_63(f);
6835 			T468_ = ((*T470_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26) || (*T470_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29) || (*T470_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T470_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T470_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25) || (*T470_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50));
6836 			LA469_: ;
6837 			if (!T468_) goto LA471_;
6838 			result = allowsNil__sigmatch_875(f);
6839 		}
6840 		goto LA454_;
6841 		LA471_: ;
6842 		{
6843 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T476_;
6844 			if (!(*c).coerceDistincts) goto LA474_;
6845 			T476_ = NIM_NIL;
6846 			T476_ = base__types_63(f);
6847 			result = typeRel__sigmatch_202(c, T476_, a, flags);
6848 		}
6849 		goto LA454_;
6850 		LA474_: ;
6851 		LA454_: ;
6852 	}
6853 	break;
6854 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
6855 	{
6856 		{
6857 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA480_;
6858 			{
6859 				NIM_BOOL T484_;
6860 				T484_ = (NIM_BOOL)0;
6861 				T484_ = !(((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
6862 				if (!(T484_)) goto LA485_;
6863 				T484_ = ((*(*a).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
6864 				LA485_: ;
6865 				if (!T484_) goto LA486_;
6866 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
6867 			}
6868 			goto LA482_;
6869 			LA486_: ;
6870 			{
6871 				result = typeRel__sigmatch_202(c, (*f).sons->data[((NI) 0)], (*a).sons->data[((NI) 0)], flags);
6872 				{
6873 					if (!(result < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8))) goto LA491_;
6874 					{
6875 						if (!(result <= ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1))) goto LA495_;
6876 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6877 					}
6878 					goto LA493_;
6879 					LA495_: ;
6880 					{
6881 						if (!!((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 43))&63U)))!=0))) goto LA498_;
6882 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6883 					}
6884 					goto LA493_;
6885 					LA498_: ;
6886 					LA493_: ;
6887 				}
6888 				LA491_: ;
6889 			}
6890 			LA482_: ;
6891 		}
6892 		LA480_: ;
6893 	}
6894 	break;
6895 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
6896 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
6897 	{
6898 		{
6899 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA503_;
6900 			a = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
6901 		}
6902 		LA503_: ;
6903 		{
6904 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T524_;
6905 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T525_;
6906 			if (!((*a).kind == (*f).kind)) goto LA507_;
6907 			{
6908 				NI T511_;
6909 				NI T512_;
6910 				T511_ = (NI)0;
6911 				T511_ = len__ast_4002(a);
6912 				T512_ = (NI)0;
6913 				T512_ = len__ast_4002(f);
6914 				if (!(T511_ < T512_)) goto LA513_;
6915 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6916 				goto BeforeRet_;
6917 			}
6918 			LA513_: ;
6919 			{
6920 				NI i_4;
6921 				NI colontmp_;
6922 				NI T516_;
6923 				NI i_5;
6924 				i_4 = (NI)0;
6925 				colontmp_ = (NI)0;
6926 				T516_ = (NI)0;
6927 				T516_ = len__ast_4002(f);
6928 				colontmp_ = (NI)(T516_ - ((NI) 1));
6929 				i_5 = ((NI) 0);
6930 				{
6931 					while (1) {
6932 						if (!(i_5 < colontmp_)) goto LA518;
6933 						i_4 = i_5;
6934 						{
6935 							tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T521_;
6936 							T521_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
6937 							T521_ = typeRel__sigmatch_202(c, (*f).sons->data[i_4], (*a).sons->data[i_4], flags);
6938 							if (!(T521_ == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0))) goto LA522_;
6939 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6940 							goto BeforeRet_;
6941 						}
6942 						LA522_: ;
6943 						i_5 += ((NI) 1);
6944 					} LA518: ;
6945 				}
6946 			}
6947 			T524_ = NIM_NIL;
6948 			T524_ = lastSon__ast_3743(f);
6949 			T525_ = NIM_NIL;
6950 			T525_ = lastSon__ast_3743(a);
6951 			result = typeRel__sigmatch_202(c, T524_, T525_, (flags | 2));
6952 			{
6953 				NIM_BOOL T528_;
6954 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T530_;
6955 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T531_;
6956 				T528_ = (NIM_BOOL)0;
6957 				T528_ = (result <= ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 4));
6958 				if (!(T528_)) goto LA529_;
6959 				T530_ = NIM_NIL;
6960 				T530_ = lastSon__ast_3743(f);
6961 				T531_ = NIM_NIL;
6962 				T531_ = skipTypes__ast_3735(T530_, abstractInst__ast_355);
6963 				T528_ = ((*T531_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T531_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T531_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T531_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*T531_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
6964 				LA529_: ;
6965 				if (!T528_) goto LA532_;
6966 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6967 			}
6968 			LA532_: ;
6969 			{
6970 				if (!(result <= ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 2))) goto LA536_;
6971 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
6972 			}
6973 			goto LA534_;
6974 			LA536_: ;
6975 			{
6976 				NIM_BOOL T539_;
6977 				T539_ = (NIM_BOOL)0;
6978 				T539_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
6979 				if (!(T539_)) goto LA540_;
6980 				T539_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0));
6981 				LA540_: ;
6982 				if (!T539_) goto LA541_;
6983 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
6984 			}
6985 			goto LA534_;
6986 			LA541_: ;
6987 			LA534_: ;
6988 		}
6989 		goto LA505_;
6990 		LA507_: ;
6991 		{
6992 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5))) goto LA544_;
6993 			result = allowsNil__sigmatch_875(f);
6994 		}
6995 		goto LA505_;
6996 		LA544_: ;
6997 		{
6998 		}
6999 		LA505_: ;
7000 	}
7001 	break;
7002 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
7003 	{
7004 		{
7005 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA550_;
7006 			a = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
7007 		}
7008 		LA550_: ;
7009 		result = procTypeRel__sigmatch_927(c, f, a);
7010 		{
7011 			NIM_BOOL T554_;
7012 			NIM_BOOL T555_;
7013 			T554_ = (NIM_BOOL)0;
7014 			T555_ = (NIM_BOOL)0;
7015 			T555_ = !((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)));
7016 			if (!(T555_)) goto LA556_;
7017 			T555_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
7018 			LA556_: ;
7019 			T554_ = T555_;
7020 			if (!(T554_)) goto LA557_;
7021 			T554_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0));
7022 			LA557_: ;
7023 			if (!T554_) goto LA558_;
7024 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7025 		}
7026 		LA558_: ;
7027 	}
7028 	break;
7029 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
7030 	{
7031 		switch ((*a).kind) {
7032 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
7033 		{
7034 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T562_;
7035 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T563_;
7036 			T562_ = NIM_NIL;
7037 			T562_ = lastSon__ast_3743(f);
7038 			T563_ = NIM_NIL;
7039 			T563_ = lastSon__ast_3743(a);
7040 			result = typeRel__sigmatch_202(c, T562_, T563_, flags);
7041 		}
7042 		break;
7043 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
7044 		{
7045 			result = allowsNil__sigmatch_875(f);
7046 		}
7047 		break;
7048 		default:
7049 		{
7050 		}
7051 		break;
7052 		}
7053 	}
7054 	break;
7055 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
7056 	{
7057 		{
7058 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA569_;
7059 			a = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_22);
7060 		}
7061 		LA569_: ;
7062 		switch ((*a).kind) {
7063 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
7064 		{
7065 			{
7066 				NIM_BOOL T574_;
7067 				T574_ = (NIM_BOOL)0;
7068 				T574_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
7069 				if (!(T574_)) goto LA575_;
7070 				T574_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0));
7071 				LA575_: ;
7072 				if (!T574_) goto LA576_;
7073 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7074 			}
7075 			goto LA572_;
7076 			LA576_: ;
7077 			{
7078 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
7079 			}
7080 			LA572_: ;
7081 		}
7082 		break;
7083 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
7084 		{
7085 			result = allowsNil__sigmatch_875(f);
7086 		}
7087 		break;
7088 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
7089 		{
7090 			{
7091 				if (!!(((*a).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)))) goto LA583_;
7092 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7093 			}
7094 			LA583_: ;
7095 		}
7096 		break;
7097 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
7098 		{
7099 			{
7100 				NI T588_;
7101 				T588_ = (NI)0;
7102 				T588_ = len__ast_4002(a);
7103 				if (!(T588_ == ((NI) 1))) goto LA589_;
7104 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7105 			}
7106 			LA589_: ;
7107 		}
7108 		break;
7109 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
7110 		{
7111 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7112 		}
7113 		break;
7114 		default:
7115 		{
7116 		}
7117 		break;
7118 		}
7119 	}
7120 	break;
7121 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
7122 	{
7123 		switch ((*a).kind) {
7124 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
7125 		{
7126 			{
7127 				NIM_BOOL T597_;
7128 				T597_ = (NIM_BOOL)0;
7129 				T597_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
7130 				if (!(T597_)) goto LA598_;
7131 				T597_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0));
7132 				LA598_: ;
7133 				if (!T597_) goto LA599_;
7134 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7135 			}
7136 			goto LA595_;
7137 			LA599_: ;
7138 			{
7139 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
7140 			}
7141 			LA595_: ;
7142 		}
7143 		break;
7144 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
7145 		{
7146 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
7147 		}
7148 		break;
7149 		default:
7150 		{
7151 		}
7152 		break;
7153 		}
7154 	}
7155 	break;
7156 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
7157 	{
7158 		switch ((*a).kind) {
7159 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
7160 		{
7161 			{
7162 				NIM_BOOL T608_;
7163 				T608_ = (NIM_BOOL)0;
7164 				T608_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
7165 				if (!(T608_)) goto LA609_;
7166 				T608_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0));
7167 				LA609_: ;
7168 				if (!T608_) goto LA610_;
7169 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7170 			}
7171 			goto LA606_;
7172 			LA610_: ;
7173 			{
7174 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
7175 			}
7176 			LA606_: ;
7177 		}
7178 		break;
7179 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
7180 		{
7181 			result = allowsNil__sigmatch_875(f);
7182 		}
7183 		break;
7184 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
7185 		{
7186 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7187 		}
7188 		break;
7189 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
7190 		{
7191 			{
7192 				NI T618_;
7193 				tyObject_TType__facALICuu8zUj0hjvbTLFg* pointsTo;
7194 				T618_ = (NI)0;
7195 				T618_ = len__ast_4002(a);
7196 				if (!(T618_ == ((NI) 1))) goto LA619_;
7197 				pointsTo = skipTypes__ast_3735((*a).sons->data[((NI) 0)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_24);
7198 				{
7199 					if (!((*pointsTo).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA623_;
7200 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7201 				}
7202 				goto LA621_;
7203 				LA623_: ;
7204 				{
7205 					NIM_BOOL T626_;
7206 					T626_ = (NIM_BOOL)0;
7207 					T626_ = ((*pointsTo).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49));
7208 					if (!(T626_)) goto LA627_;
7209 					T626_ = ((*(*pointsTo).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
7210 					LA627_: ;
7211 					if (!T626_) goto LA628_;
7212 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7213 				}
7214 				goto LA621_;
7215 				LA628_: ;
7216 				{
7217 					NIM_BOOL T631_;
7218 					NIM_BOOL T632_;
7219 					NIM_BOOL T633_;
7220 					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T635_;
7221 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T637_;
7222 					T631_ = (NIM_BOOL)0;
7223 					T632_ = (NIM_BOOL)0;
7224 					T633_ = (NIM_BOOL)0;
7225 					T633_ = ((*pointsTo).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
7226 					if (!(T633_)) goto LA634_;
7227 					T635_ = firstOrd__types_1353(((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL), (*pointsTo).sons->data[((NI) 0)]);
7228 					T633_ = eqeq___int495056_759(T635_, IL64(0));
7229 					LA634_: ;
7230 					T632_ = T633_;
7231 					if (!(T632_)) goto LA636_;
7232 					T637_ = NIM_NIL;
7233 					T637_ = skipTypes__ast_3735((*pointsTo).sons->data[((NI) 0)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
7234 					T632_ = ((*T637_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T637_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35));
7235 					LA636_: ;
7236 					T631_ = T632_;
7237 					if (!(T631_)) goto LA638_;
7238 					T631_ = ((*(*pointsTo).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
7239 					LA638_: ;
7240 					if (!T631_) goto LA639_;
7241 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1);
7242 				}
7243 				goto LA621_;
7244 				LA639_: ;
7245 				LA621_: ;
7246 			}
7247 			LA619_: ;
7248 		}
7249 		break;
7250 		default:
7251 		{
7252 		}
7253 		break;
7254 		}
7255 	}
7256 	break;
7257 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3):
7258 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63):
7259 	{
7260 		{
7261 			if (!((*a).kind == (*f).kind)) goto LA645_;
7262 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
7263 		}
7264 		LA645_: ;
7265 	}
7266 	break;
7267 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
7268 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
7269 	{
7270 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T648_;
7271 		T648_ = NIM_NIL;
7272 		T648_ = lastSon__ast_3743(f);
7273 		result = typeRel__sigmatch_202(c, T648_, a, flags);
7274 	}
7275 	break;
7276 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64):
7277 	{
7278 		{
7279 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64))) goto LA652_;
7280 			{
7281 				NI T656_;
7282 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T659_;
7283 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T660_;
7284 				T656_ = (NI)0;
7285 				T656_ = len__ast_4002(f);
7286 				if (!(T656_ == ((NI) 1))) goto LA657_;
7287 				T659_ = NIM_NIL;
7288 				T659_ = lastSon__ast_3743(f);
7289 				T660_ = NIM_NIL;
7290 				T660_ = lastSon__ast_3743(a);
7291 				result = typeRel__sigmatch_202(c, T659_, T660_, flags);
7292 			}
7293 			goto LA654_;
7294 			LA657_: ;
7295 			{
7296 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
7297 			}
7298 			LA654_: ;
7299 		}
7300 		goto LA650_;
7301 		LA652_: ;
7302 		{
7303 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
7304 		}
7305 		LA650_: ;
7306 	}
7307 	break;
7308 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
7309 	{
7310 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prev_4;
7311 		RootObj* T664_;
7312 		tyObject_TType__facALICuu8zUj0hjvbTLFg* origF;
7313 		tyObject_TType__facALICuu8zUj0hjvbTLFg* f_3;
7314 		tyObject_TType__facALICuu8zUj0hjvbTLFg* roota;
7315 		tyObject_TType__facALICuu8zUj0hjvbTLFg* rootf;
7316 		T664_ = NIM_NIL;
7317 		T664_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
7318 		prev_4 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T664_));
7319 		origF = f;
7320 		{
7321 			if (!(prev_4 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA667_;
7322 			f_3 = f;
7323 		}
7324 		goto LA665_;
7325 		LA667_: ;
7326 		{
7327 			f_3 = prev_4;
7328 		}
7329 		LA665_: ;
7330 		roota = skipGenericAlias__types_2219(a);
7331 		rootf = skipGenericAlias__types_2219(f_3);
7332 		{
7333 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11))) goto LA672_;
7334 			{
7335 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T676_;
7336 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T677_;
7337 				tySet_tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg nextFlags;
7338 				NIM_BOOL hasCovariance;
7339 				T676_ = NIM_NIL;
7340 				T676_ = base__types_63(roota);
7341 				T677_ = NIM_NIL;
7342 				T677_ = base__types_63(rootf);
7343 				if (!(T676_ == T677_)) goto LA678_;
7344 				nextFlags = (flags | 2);
7345 				hasCovariance = NIM_FALSE;
7346 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
7347 				{
7348 					NI i_6;
7349 					NI colontmp__2;
7350 					NI T681_;
7351 					NI i_7;
7352 					i_6 = (NI)0;
7353 					colontmp__2 = (NI)0;
7354 					T681_ = (NI)0;
7355 					T681_ = len__ast_4002(rootf);
7356 					colontmp__2 = (NI)(T681_ - ((NI) 1));
7357 					i_7 = ((NI) 1);
7358 					{
7359 						while (1) {
7360 							if (!(i_7 < colontmp__2)) goto LA683;
7361 							i_6 = i_7;
7362 							{
7363 								tyObject_TType__facALICuu8zUj0hjvbTLFg* ff_3;
7364 								tyObject_TType__facALICuu8zUj0hjvbTLFg* aa_3;
7365 								tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw res_2;
7366 								ff_3 = (*rootf).sons->data[i_6];
7367 								aa_3 = (*roota).sons->data[i_6];
7368 								res_2 = typeRel__sigmatch_202(c, ff_3, aa_3, nextFlags);
7369 								{
7370 									NIM_BOOL T687_;
7371 									T687_ = (NIM_BOOL)0;
7372 									T687_ = !((res_2 == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)));
7373 									if (!(T687_)) goto LA688_;
7374 									T687_ = !((res_2 == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10)));
7375 									LA688_: ;
7376 									if (!T687_) goto LA689_;
7377 									result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
7378 								}
7379 								LA689_: ;
7380 								{
7381 									if (!!(((1280 &((NU16)1<<((NU)(res_2)&15U)))!=0))) goto LA693_;
7382 									{
7383 										NIM_BOOL T697_;
7384 										tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw paramFlags;
7385 										tyObject_TType__facALICuu8zUj0hjvbTLFg* T701_;
7386 										T697_ = (NIM_BOOL)0;
7387 										T697_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 1))&7U)))!=0));
7388 										if (!(T697_)) goto LA698_;
7389 										T697_ = ((*ff_3).kind == (*aa_3).kind);
7390 										LA698_: ;
7391 										if (!T697_) goto LA699_;
7392 										T701_ = NIM_NIL;
7393 										T701_ = base__types_63(rootf);
7394 										paramFlags = (*(*T701_).sons->data[(NI)(i_6 - ((NI) 1))]).flags;
7395 										{
7396 											if (!((paramFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35))&63U)))!=0)) goto LA704_;
7397 											{
7398 												if (!((paramFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 36))&63U)))!=0)) goto LA708_;
7399 												hasCovariance = isCovariantPtr__sigmatch_1405(c, ff_3, aa_3);
7400 											}
7401 											goto LA706_;
7402 											LA708_: ;
7403 											{
7404 												NIM_BOOL T711_;
7405 												T711_ = (NIM_BOOL)0;
7406 												T711_ = !(((*ff_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*ff_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21)));
7407 												if (!(T711_)) goto LA712_;
7408 												T711_ = (res_2 == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3));
7409 												LA712_: ;
7410 												hasCovariance = T711_;
7411 											}
7412 											LA706_: ;
7413 										}
7414 										goto LA702_;
7415 										LA704_: ;
7416 										{
7417 											NIM_BOOL T714_;
7418 											tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T716_;
7419 											T714_ = (NIM_BOOL)0;
7420 											T714_ = ((paramFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 37))&63U)))!=0);
7421 											if (!(T714_)) goto LA715_;
7422 											T716_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
7423 											T716_ = typeRel__sigmatch_202(c, aa_3, ff_3, flags);
7424 											T714_ = (T716_ == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3));
7425 											LA715_: ;
7426 											hasCovariance = T714_;
7427 										}
7428 										LA702_: ;
7429 										{
7430 											if (!hasCovariance) goto LA719_;
7431 											goto LA684;
7432 										}
7433 										LA719_: ;
7434 									}
7435 									LA699_: ;
7436 									result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
7437 									goto BeforeRet_;
7438 								}
7439 								LA693_: ;
7440 							} LA684: ;
7441 							i_7 += ((NI) 1);
7442 						} LA683: ;
7443 					}
7444 				}
7445 				{
7446 					if (!(prev_4 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA723_;
7447 					put__sigmatch_120(c, f_3, a);
7448 				}
7449 				LA723_: ;
7450 			}
7451 			goto LA674_;
7452 			LA678_: ;
7453 			{
7454 				tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag fKind;
7455 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T726_;
7456 				tyObject_TType__facALICuu8zUj0hjvbTLFg* aAsObject;
7457 				T726_ = NIM_NIL;
7458 				T726_ = lastSon__ast_3743(rootf);
7459 				fKind = (*T726_).kind;
7460 				{
7461 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T731_;
7462 					if (!(fKind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56) || fKind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57))) goto LA729_;
7463 					T731_ = NIM_NIL;
7464 					T731_ = lastSon__ast_3743(f_3);
7465 					result = typeRel__sigmatch_202(c, T731_, a, flags);
7466 					{
7467 						if (!!((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA734_;
7468 						put__sigmatch_120(c, f_3, a);
7469 					}
7470 					LA734_: ;
7471 					goto BeforeRet_;
7472 				}
7473 				LA729_: ;
7474 				aAsObject = lastSon__ast_3743(roota);
7475 				{
7476 					if (!(fKind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || fKind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA738_;
7477 					{
7478 						if (!((*aAsObject).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA742_;
7479 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
7480 						goto BeforeRet_;
7481 					}
7482 					goto LA740_;
7483 					LA742_: ;
7484 					{
7485 						if (!((*aAsObject).kind == fKind)) goto LA745_;
7486 						aAsObject = base__types_63(aAsObject);
7487 					}
7488 					goto LA740_;
7489 					LA745_: ;
7490 					LA740_: ;
7491 				}
7492 				LA738_: ;
7493 				{
7494 					tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType;
7495 					if (!((*aAsObject).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA749_;
7496 					baseType = base__types_63(aAsObject);
7497 					{
7498 						tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw ret;
7499 						if (!!((baseType == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA753_;
7500 						(*c).inheritancePenalty += ((NI) 1);
7501 						ret = typeRel__sigmatch_202(c, f_3, baseType, flags);
7502 						{
7503 							if (!((1280 &((NU16)1<<((NU)(ret)&15U)))!=0)) goto LA757_;
7504 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
7505 						}
7506 						goto LA755_;
7507 						LA757_: ;
7508 						{
7509 							result = ret;
7510 						}
7511 						LA755_: ;
7512 						goto BeforeRet_;
7513 					}
7514 					LA753_: ;
7515 				}
7516 				LA749_: ;
7517 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
7518 			}
7519 			LA674_: ;
7520 		}
7521 		goto LA670_;
7522 		LA672_: ;
7523 		{
7524 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T761_;
7525 			T761_ = NIM_NIL;
7526 			T761_ = lastSon__ast_3743(origF);
7527 			result = typeRel__sigmatch_202(c, T761_, a, flags);
7528 			{
7529 				NIM_BOOL T764_;
7530 				T764_ = (NIM_BOOL)0;
7531 				T764_ = !((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)));
7532 				if (!(T764_)) goto LA765_;
7533 				T764_ = !(((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5)));
7534 				LA765_: ;
7535 				if (!T764_) goto LA766_;
7536 				put__sigmatch_120(c, f_3, a);
7537 			}
7538 			LA766_: ;
7539 		}
7540 		LA670_: ;
7541 	}
7542 	break;
7543 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
7544 	{
7545 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prevX60gensym373_;
7546 		RootObj* T769_;
7547 		T769_ = NIM_NIL;
7548 		T769_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
7549 		prevX60gensym373_ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T769_));
7550 		{
7551 			tyObject_TType__facALICuu8zUj0hjvbTLFg* ff_4;
7552 			if (!(prevX60gensym373_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA772_;
7553 			{
7554 				NIM_BOOL T776_;
7555 				NIM_BOOL T778_;
7556 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T780_;
7557 				T776_ = (NIM_BOOL)0;
7558 				T776_ = (a == f);
7559 				if (T776_) goto LA777_;
7560 				T778_ = (NIM_BOOL)0;
7561 				T778_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
7562 				if (!(T778_)) goto LA779_;
7563 				T780_ = NIM_NIL;
7564 				T780_ = skipGenericAlias__types_2219(a);
7565 				T778_ = ((*T780_).sons->data[((NI) 0)] == f);
7566 				LA779_: ;
7567 				T776_ = T778_;
7568 				LA777_: ;
7569 				if (!T776_) goto LA781_;
7570 				{
7571 					tyObject_TType__facALICuu8zUj0hjvbTLFg* boundX60gensym375_;
7572 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T787_;
7573 					if (!!(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 0))&7U)))!=0))) goto LA785_;
7574 					T787_ = NIM_NIL;
7575 					T787_ = skipTypes__ast_3735(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
7576 					boundX60gensym375_ = skipIntLit__magicsys_124(T787_, (*(*c).c).Sup.idgen);
7577 					put__sigmatch_120(c, f, boundX60gensym375_);
7578 				}
7579 				LA785_: ;
7580 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
7581 				goto BeforeRet_;
7582 			}
7583 			LA781_: ;
7584 			ff_4 = lastSon__ast_3743(f);
7585 			{
7586 				if (!!((ff_4 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA790_;
7587 				result = typeRel__sigmatch_202(c, ff_4, a, flags);
7588 			}
7589 			LA790_: ;
7590 		}
7591 		goto LA770_;
7592 		LA772_: ;
7593 		{
7594 			result = typeRel__sigmatch_202(c, prevX60gensym373_, a, flags);
7595 			goto BeforeRet_;
7596 		}
7597 		LA770_: ;
7598 	}
7599 	break;
7600 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
7601 	{
7602 		tyObject_TType__facALICuu8zUj0hjvbTLFg* x_5;
7603 		tyObject_TType__facALICuu8zUj0hjvbTLFg* concpt;
7604 		NIM_BOOL preventHack;
7605 		x_5 = skipGenericAlias__types_2219(a);
7606 		concpt = skipTypes__ast_3735((*f).sons->data[((NI) 0)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_25);
7607 		preventHack = ((*concpt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62));
7608 		{
7609 			NIM_BOOL T796_;
7610 			T796_ = (NIM_BOOL)0;
7611 			T796_ = ((*x_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
7612 			if (!(T796_)) goto LA797_;
7613 			T796_ = !(((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
7614 			LA797_: ;
7615 			if (!T796_) goto LA798_;
7616 			preventHack = NIM_TRUE;
7617 			x_5 = lastSon__ast_3743(x_5);
7618 		}
7619 		LA798_: ;
7620 		{
7621 			NIM_BOOL T802_;
7622 			NIM_BOOL T803_;
7623 			NIM_BOOL T804_;
7624 			NIM_BOOL T805_;
7625 			tyObject_TType__facALICuu8zUj0hjvbTLFg* inst;
7626 			T802_ = (NIM_BOOL)0;
7627 			T803_ = (NIM_BOOL)0;
7628 			T804_ = (NIM_BOOL)0;
7629 			T805_ = (NIM_BOOL)0;
7630 			T805_ = ((*x_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11) || (*x_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
7631 			if (!(T805_)) goto LA806_;
7632 			T805_ = !(((*c).calleeSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
7633 			LA806_: ;
7634 			T804_ = T805_;
7635 			if (!(T804_)) goto LA807_;
7636 			T804_ = ((12288 &((NU32)1<<((NU)((*(*c).calleeSym).kind)&31U)))!=0);
7637 			LA807_: ;
7638 			T803_ = T804_;
7639 			if (!(T803_)) goto LA808_;
7640 			T803_ = !(((*c).call == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
7641 			LA808_: ;
7642 			T802_ = T803_;
7643 			if (!(T802_)) goto LA809_;
7644 			T802_ = !(preventHack);
7645 			LA809_: ;
7646 			if (!T802_) goto LA810_;
7647 			inst = prepareMetatypeForSigmatch__semtypinst_1064((*c).c, (*c).bindings, (*(*c).call).info, f);
7648 			result = typeRel__sigmatch_202(c, inst, a, flags);
7649 			goto BeforeRet_;
7650 		}
7651 		LA810_: ;
7652 		{
7653 			if (!((*x_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA814_;
7654 			{
7655 				if (!((*f).sons->data[((NI) 0)] == (*x_5).sons->data[((NI) 0)])) goto LA818_;
7656 				{
7657 					NI i_8;
7658 					NI colontmp__3;
7659 					NI i_9;
7660 					i_8 = (NI)0;
7661 					colontmp__3 = (NI)0;
7662 					colontmp__3 = len__ast_4002(f);
7663 					i_9 = ((NI) 1);
7664 					{
7665 						while (1) {
7666 							tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw tr;
7667 							if (!(i_9 < colontmp__3)) goto LA822;
7668 							i_8 = i_9;
7669 							tr = typeRel__sigmatch_202(c, (*f).sons->data[i_8], (*x_5).sons->data[i_8], flags);
7670 							{
7671 								if (!(tr <= ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3))) goto LA825_;
7672 								goto BeforeRet_;
7673 							}
7674 							LA825_: ;
7675 							i_9 += ((NI) 1);
7676 						} LA822: ;
7677 					}
7678 				}
7679 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
7680 			}
7681 			LA818_: ;
7682 		}
7683 		goto LA812_;
7684 		LA814_: ;
7685 		{
7686 			NIM_BOOL T828_;
7687 			NIM_BOOL T829_;
7688 			NI T832_;
7689 			NI T833_;
7690 			T828_ = (NIM_BOOL)0;
7691 			T829_ = (NIM_BOOL)0;
7692 			T829_ = ((*x_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
7693 			if (!(T829_)) goto LA830_;
7694 			T829_ = ((*f).sons->data[((NI) 0)] == (*x_5).sons->data[((NI) 0)]);
7695 			LA830_: ;
7696 			T828_ = T829_;
7697 			if (!(T828_)) goto LA831_;
7698 			T832_ = (NI)0;
7699 			T832_ = len__ast_4002(x_5);
7700 			T833_ = (NI)0;
7701 			T833_ = len__ast_4002(f);
7702 			T828_ = ((NI)(T832_ - ((NI) 1)) == T833_);
7703 			LA831_: ;
7704 			if (!T828_) goto LA834_;
7705 			{
7706 				NI i_10;
7707 				NI colontmp__4;
7708 				NI i_11;
7709 				i_10 = (NI)0;
7710 				colontmp__4 = (NI)0;
7711 				colontmp__4 = len__ast_4002(f);
7712 				i_11 = ((NI) 1);
7713 				{
7714 					while (1) {
7715 						if (!(i_11 < colontmp__4)) goto LA838;
7716 						i_10 = i_11;
7717 						{
7718 							if (!((*(*x_5).sons->data[i_10]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA841_;
7719 							internalErrorImpl__msgs_1431((*(*(*c).c).graph).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_26), TM__EV5hHJmjIY9cla9b9be7fSVJQ_27);
7720 						}
7721 						goto LA839_;
7722 						LA841_: ;
7723 						{
7724 							tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T844_;
7725 							T844_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
7726 							T844_ = typeRel__sigmatch_202(c, (*f).sons->data[i_10], (*x_5).sons->data[i_10], flags);
7727 							if (!(T844_ <= ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3))) goto LA845_;
7728 							{
7729 								if (!!(((*(*f).sons->data[i_10]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA849_;
7730 								goto BeforeRet_;
7731 							}
7732 							LA849_: ;
7733 						}
7734 						goto LA839_;
7735 						LA845_: ;
7736 						LA839_: ;
7737 						i_11 += ((NI) 1);
7738 					} LA838: ;
7739 				}
7740 			}
7741 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
7742 		}
7743 		goto LA812_;
7744 		LA834_: ;
7745 		{
7746 			NIM_BOOL T852_;
7747 			T852_ = (NIM_BOOL)0;
7748 			T852_ = ((*x_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
7749 			if (!(T852_)) goto LA853_;
7750 			T852_ = ((*concpt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62));
7751 			LA853_: ;
7752 			if (!T852_) goto LA854_;
7753 			{
7754 				NIM_BOOL T858_;
7755 				T858_ = (NIM_BOOL)0;
7756 				T858_ = conceptMatch__concepts_538((*c).c, concpt, x_5, (&(*c).bindings), f);
7757 				if (!T858_) goto LA859_;
7758 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
7759 			}
7760 			goto LA856_;
7761 			LA859_: ;
7762 			{
7763 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
7764 			}
7765 			LA856_: ;
7766 		}
7767 		goto LA812_;
7768 		LA854_: ;
7769 		{
7770 			tyObject_TType__facALICuu8zUj0hjvbTLFg* genericBody;
7771 			tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ askip;
7772 			tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ fskip;
7773 			tyObject_TType__facALICuu8zUj0hjvbTLFg* aobj;
7774 			tyObject_TType__facALICuu8zUj0hjvbTLFg* fobj;
7775 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T863_;
7776 			NI depth_2;
7777 			genericBody = (*f).sons->data[((NI) 0)];
7778 			askip = ((tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ) 0);
7779 			fskip = ((tyEnum_SkippedPtr__WOSTpykTcTHo6Kb9bHoOUqQ) 0);
7780 			aobj = skipToObject__sigmatch_703(x_5, (&askip));
7781 			T863_ = NIM_NIL;
7782 			T863_ = lastSon__ast_3743(genericBody);
7783 			fobj = skipToObject__sigmatch_703(T863_, (&fskip));
7784 			depth_2 = ((NI) -1);
7785 			{
7786 				NIM_BOOL T866_;
7787 				NIM_BOOL T867_;
7788 				T866_ = (NIM_BOOL)0;
7789 				T867_ = (NIM_BOOL)0;
7790 				T867_ = !((fobj == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
7791 				if (!(T867_)) goto LA868_;
7792 				T867_ = !((aobj == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
7793 				LA868_: ;
7794 				T866_ = T867_;
7795 				if (!(T866_)) goto LA869_;
7796 				T866_ = (askip == fskip);
7797 				LA869_: ;
7798 				if (!T866_) goto LA870_;
7799 				depth_2 = isObjectSubtype__sigmatch_656(c, aobj, fobj, f);
7800 			}
7801 			LA870_: ;
7802 			result = typeRel__sigmatch_202(c, genericBody, x_5, flags);
7803 			{
7804 				if (!!((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA874_;
7805 				{
7806 					NI i_12;
7807 					NI colontmp__5;
7808 					NI i_13;
7809 					i_12 = (NI)0;
7810 					colontmp__5 = (NI)0;
7811 					colontmp__5 = len__ast_4002(f);
7812 					i_13 = ((NI) 1);
7813 					{
7814 						while (1) {
7815 							tyObject_TType__facALICuu8zUj0hjvbTLFg* x_6;
7816 							RootObj* T879_;
7817 							if (!(i_13 < colontmp__5)) goto LA878;
7818 							i_12 = i_13;
7819 							T879_ = NIM_NIL;
7820 							T879_ = idTableGet__astalgo_64((*c).bindings, (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&((*genericBody).sons->data[(NI)(i_12 - ((NI) 1))])))));
7821 							x_6 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T879_));
7822 							{
7823 								if (!(x_6 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA882_;
7824 							}
7825 							goto LA880_;
7826 							LA882_: ;
7827 							{
7828 								if (!((*x_6).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9) || (*x_6).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA885_;
7829 								internalErrorImpl__msgs_1431((*(*(*c).c).graph).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_26), TM__EV5hHJmjIY9cla9b9be7fSVJQ_28);
7830 							}
7831 							goto LA880_;
7832 							LA885_: ;
7833 							{
7834 								tyObject_TType__facALICuu8zUj0hjvbTLFg* key;
7835 								tyObject_TType__facALICuu8zUj0hjvbTLFg* old;
7836 								RootObj* T888_;
7837 								key = (*f).sons->data[i_12];
7838 								T888_ = NIM_NIL;
7839 								T888_ = idTableGet__astalgo_64((*c).bindings, &key->Sup);
7840 								old = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T888_));
7841 								{
7842 									if (!(old == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA891_;
7843 									put__sigmatch_120(c, key, x_6);
7844 								}
7845 								goto LA889_;
7846 								LA891_: ;
7847 								{
7848 									tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T894_;
7849 									T894_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
7850 									T894_ = typeRel__sigmatch_202(c, old, x_6, (flags | 1));
7851 									if (!(T894_ == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0))) goto LA895_;
7852 									result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
7853 									goto BeforeRet_;
7854 								}
7855 								goto LA889_;
7856 								LA895_: ;
7857 								LA889_: ;
7858 							}
7859 							LA880_: ;
7860 							i_13 += ((NI) 1);
7861 						} LA878: ;
7862 					}
7863 				}
7864 			}
7865 			LA874_: ;
7866 			{
7867 				NIM_BOOL genericSubtype;
7868 				if (!(result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0))) goto LA899_;
7869 				genericSubtype = isGenericSubtype__sigmatch_744(c, x_5, f, (&depth_2), f);
7870 				{
7871 					NIM_BOOL T903_;
7872 					NIM_BOOL T904_;
7873 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym409_;
7874 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym410_;
7875 					T903_ = (NIM_BOOL)0;
7876 					T904_ = (NIM_BOOL)0;
7877 					T904_ = genericSubtype;
7878 					if (!(T904_)) goto LA905_;
7879 					xX60gensym409_ = (*aobj).sym;
7880 					xX60gensym410_ = (*fobj).sym;
7881 					T904_ = !(((NI)((NI)((NU64)(((NI) ((*xX60gensym409_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym409_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym410_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym410_).Sup.itemId.item)))));
7882 					LA905_: ;
7883 					T903_ = !(T904_);
7884 					if (!(T903_)) goto LA906_;
7885 					T903_ = !(((*aOrig_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10)));
7886 					LA906_: ;
7887 					if (!T903_) goto LA907_;
7888 					depth_2 = ((NI) -1);
7889 				}
7890 				LA907_: ;
7891 			}
7892 			LA899_: ;
7893 			{
7894 				if (!(((NI) 0) <= depth_2)) goto LA911_;
7895 				(*c).inheritancePenalty += depth_2;
7896 				{
7897 					if (!(depth_2 == ((NI) 0))) goto LA915_;
7898 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
7899 				}
7900 				goto LA913_;
7901 				LA915_: ;
7902 				{
7903 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3);
7904 				}
7905 				LA913_: ;
7906 			}
7907 			LA911_: ;
7908 		}
7909 		LA812_: ;
7910 	}
7911 	break;
7912 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
7913 	{
7914 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prevX60gensym413_;
7915 		RootObj* T919_;
7916 		T919_ = NIM_NIL;
7917 		T919_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
7918 		prevX60gensym413_ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T919_));
7919 		{
7920 			if (!(prevX60gensym413_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA922_;
7921 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
7922 			{
7923 				tyObject_TType__facALICuu8zUj0hjvbTLFg** branch_3;
7924 				NI i_14;
7925 				NI L_3;
7926 				NI T925_;
7927 				branch_3 = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
7928 				i_14 = ((NI) 0);
7929 				T925_ = ((*f).sons ? (*f).sons->Sup.len : 0);
7930 				L_3 = T925_;
7931 				{
7932 					while (1) {
7933 						tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw x_7;
7934 						if (!(i_14 < L_3)) goto LA927;
7935 						branch_3 = &(*f).sons->data[i_14];
7936 						x_7 = typeRel__sigmatch_202(c, (*branch_3), aOrig_2, flags);
7937 						{
7938 							if (!(x_7 < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3))) goto LA930_;
7939 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
7940 							goto BeforeRet_;
7941 						}
7942 						LA930_: ;
7943 						{
7944 							if (!(x_7 < result)) goto LA934_;
7945 							result = x_7;
7946 						}
7947 						LA934_: ;
7948 						i_14 += ((NI) 1);
7949 					} LA927: ;
7950 				}
7951 			}
7952 			{
7953 				if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) < result)) goto LA938_;
7954 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
7955 			}
7956 			LA938_: ;
7957 			{
7958 				tyObject_TType__facALICuu8zUj0hjvbTLFg* boundX60gensym415_;
7959 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T944_;
7960 				if (!!(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 0))&7U)))!=0))) goto LA942_;
7961 				T944_ = NIM_NIL;
7962 				T944_ = skipTypes__ast_3735(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
7963 				boundX60gensym415_ = skipIntLit__magicsys_124(T944_, (*(*c).c).Sup.idgen);
7964 				put__sigmatch_120(c, f, boundX60gensym415_);
7965 			}
7966 			LA942_: ;
7967 			goto BeforeRet_;
7968 		}
7969 		goto LA920_;
7970 		LA922_: ;
7971 		{
7972 			result = typeRel__sigmatch_202(c, prevX60gensym413_, a, flags);
7973 			goto BeforeRet_;
7974 		}
7975 		LA920_: ;
7976 	}
7977 	break;
7978 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
7979 	{
7980 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prevX60gensym418_;
7981 		RootObj* T947_;
7982 		T947_ = NIM_NIL;
7983 		T947_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
7984 		prevX60gensym418_ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T947_));
7985 		{
7986 			NI oldInheritancePenalty;
7987 			NI maxInheritance;
7988 			if (!(prevX60gensym418_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA950_;
7989 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
7990 			oldInheritancePenalty = (*c).inheritancePenalty;
7991 			maxInheritance = ((NI) 0);
7992 			{
7993 				tyObject_TType__facALICuu8zUj0hjvbTLFg** branch_4;
7994 				NI i_15;
7995 				NI L_4;
7996 				NI T953_;
7997 				branch_4 = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
7998 				i_15 = ((NI) 0);
7999 				T953_ = ((*f).sons ? (*f).sons->Sup.len : 0);
8000 				L_4 = T953_;
8001 				{
8002 					while (1) {
8003 						tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw x_8;
8004 						if (!(i_15 < L_4)) goto LA955;
8005 						branch_4 = &(*f).sons->data[i_15];
8006 						(*c).inheritancePenalty = ((NI) 0);
8007 						x_8 = typeRel__sigmatch_202(c, (*branch_4), aOrig_2, flags);
8008 						maxInheritance = ((maxInheritance >= (*c).inheritancePenalty) ? maxInheritance : (*c).inheritancePenalty);
8009 						{
8010 							if (!(result < x_8)) goto LA958_;
8011 							result = x_8;
8012 						}
8013 						LA958_: ;
8014 						i_15 += ((NI) 1);
8015 					} LA955: ;
8016 				}
8017 			}
8018 			{
8019 				if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3) <= result)) goto LA962_;
8020 				{
8021 					if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) < result)) goto LA966_;
8022 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8023 				}
8024 				LA966_: ;
8025 				{
8026 					tyObject_TType__facALICuu8zUj0hjvbTLFg* boundX60gensym422_;
8027 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T972_;
8028 					if (!!(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 0))&7U)))!=0))) goto LA970_;
8029 					T972_ = NIM_NIL;
8030 					T972_ = skipTypes__ast_3735(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
8031 					boundX60gensym422_ = skipIntLit__magicsys_124(T972_, (*(*c).c).Sup.idgen);
8032 					put__sigmatch_120(c, f, boundX60gensym422_);
8033 				}
8034 				LA970_: ;
8035 				goto BeforeRet_;
8036 			}
8037 			goto LA960_;
8038 			LA962_: ;
8039 			{
8040 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8041 			}
8042 			LA960_: ;
8043 			(*c).inheritancePenalty = (NI)(oldInheritancePenalty + maxInheritance);
8044 		}
8045 		goto LA948_;
8046 		LA950_: ;
8047 		{
8048 			result = typeRel__sigmatch_202(c, prevX60gensym418_, a, flags);
8049 			goto BeforeRet_;
8050 		}
8051 		LA948_: ;
8052 	}
8053 	break;
8054 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
8055 	{
8056 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prevX60gensym425_;
8057 		RootObj* T976_;
8058 		T976_ = NIM_NIL;
8059 		T976_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
8060 		prevX60gensym425_ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T976_));
8061 		{
8062 			if (!(prevX60gensym425_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA979_;
8063 			{
8064 				tyObject_TType__facALICuu8zUj0hjvbTLFg** branch_5;
8065 				NI i_16;
8066 				NI L_5;
8067 				NI T982_;
8068 				branch_5 = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
8069 				i_16 = ((NI) 0);
8070 				T982_ = ((*f).sons ? (*f).sons->Sup.len : 0);
8071 				L_5 = T982_;
8072 				{
8073 					while (1) {
8074 						if (!(i_16 < L_5)) goto LA984;
8075 						branch_5 = &(*f).sons->data[i_16];
8076 						{
8077 							tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T987_;
8078 							T987_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
8079 							T987_ = typeRel__sigmatch_202(c, (*branch_5), aOrig_2, flags);
8080 							if (!!((T987_ == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA988_;
8081 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8082 							goto BeforeRet_;
8083 						}
8084 						LA988_: ;
8085 						i_16 += ((NI) 1);
8086 					} LA984: ;
8087 				}
8088 			}
8089 			{
8090 				tyObject_TType__facALICuu8zUj0hjvbTLFg* boundX60gensym427_;
8091 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T994_;
8092 				if (!!(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 0))&7U)))!=0))) goto LA992_;
8093 				T994_ = NIM_NIL;
8094 				T994_ = skipTypes__ast_3735(aOrig_2, TM__EV5hHJmjIY9cla9b9be7fSVJQ_16);
8095 				boundX60gensym427_ = skipIntLit__magicsys_124(T994_, (*(*c).c).Sup.idgen);
8096 				put__sigmatch_120(c, f, boundX60gensym427_);
8097 			}
8098 			LA992_: ;
8099 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8100 			goto BeforeRet_;
8101 		}
8102 		goto LA977_;
8103 		LA979_: ;
8104 		{
8105 			result = typeRel__sigmatch_202(c, prevX60gensym425_, a, flags);
8106 			goto BeforeRet_;
8107 		}
8108 		LA977_: ;
8109 	}
8110 	break;
8111 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
8112 	{
8113 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prevX60gensym430_;
8114 		RootObj* T997_;
8115 		T997_ = NIM_NIL;
8116 		T997_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
8117 		prevX60gensym430_ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T997_));
8118 		{
8119 			tyObject_TType__facALICuu8zUj0hjvbTLFg* concrete;
8120 			if (!(prevX60gensym430_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1000_;
8121 			concrete = concreteType__sigmatch_443((&(*c)), a, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
8122 			{
8123 				NIM_BOOL T1004_;
8124 				T1004_ = (NIM_BOOL)0;
8125 				T1004_ = !((concrete == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
8126 				if (!(T1004_)) goto LA1005_;
8127 				T1004_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 0))&7U)))!=0));
8128 				LA1005_: ;
8129 				if (!T1004_) goto LA1006_;
8130 				put__sigmatch_120(c, f, concrete);
8131 			}
8132 			LA1006_: ;
8133 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8134 			goto BeforeRet_;
8135 		}
8136 		goto LA998_;
8137 		LA1000_: ;
8138 		{
8139 			result = typeRel__sigmatch_202(c, prevX60gensym430_, a, flags);
8140 			goto BeforeRet_;
8141 		}
8142 		LA998_: ;
8143 	}
8144 	break;
8145 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
8146 	{
8147 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prevX60gensym434_;
8148 		RootObj* T1010_;
8149 		T1010_ = NIM_NIL;
8150 		T1010_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
8151 		prevX60gensym434_ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T1010_));
8152 		{
8153 			tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag targetKind;
8154 			tyObject_TType__facALICuu8zUj0hjvbTLFg* effectiveArgType;
8155 			NIM_BOOL typeClassMatches;
8156 			NIM_BOOL T1015_;
8157 			NIM_BOOL T1017_;
8158 			if (!(prevX60gensym434_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1013_;
8159 			targetKind = (*(*f).sons->data[((NI) 0)]).kind;
8160 			effectiveArgType = skipTypes__ast_3735(a, TM__EV5hHJmjIY9cla9b9be7fSVJQ_30);
8161 			T1015_ = (NIM_BOOL)0;
8162 			T1015_ = (targetKind == (*effectiveArgType).kind);
8163 			if (!(T1015_)) goto LA1016_;
8164 			T1017_ = (NIM_BOOL)0;
8165 			T1017_ = isEmptyContainer__types_3626(effectiveArgType);
8166 			T1015_ = !(T1017_);
8167 			LA1016_: ;
8168 			typeClassMatches = T1015_;
8169 			{
8170 				NIM_BOOL T1020_;
8171 				NIM_BOOL T1022_;
8172 				T1020_ = (NIM_BOOL)0;
8173 				T1020_ = typeClassMatches;
8174 				if (T1020_) goto LA1021_;
8175 				T1022_ = (NIM_BOOL)0;
8176 				T1022_ = (targetKind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25) || targetKind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26));
8177 				if (!(T1022_)) goto LA1023_;
8178 				T1022_ = ((*effectiveArgType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5));
8179 				LA1023_: ;
8180 				T1020_ = T1022_;
8181 				LA1021_: ;
8182 				if (!T1020_) goto LA1024_;
8183 				put__sigmatch_120(c, f, a);
8184 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8185 				goto BeforeRet_;
8186 			}
8187 			goto LA1018_;
8188 			LA1024_: ;
8189 			{
8190 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8191 				goto BeforeRet_;
8192 			}
8193 			LA1018_: ;
8194 		}
8195 		goto LA1011_;
8196 		LA1013_: ;
8197 		{
8198 			result = typeRel__sigmatch_202(c, prevX60gensym434_, a, flags);
8199 			goto BeforeRet_;
8200 		}
8201 		LA1011_: ;
8202 	}
8203 	break;
8204 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
8205 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
8206 	{
8207 		{
8208 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T1033_;
8209 			if (!(((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA1031_;
8210 			T1033_ = NIM_NIL;
8211 			T1033_ = lastSon__ast_3743(f);
8212 			result = typeRel__sigmatch_202(c, T1033_, a, flags);
8213 		}
8214 		goto LA1029_;
8215 		LA1031_: ;
8216 		{
8217 			tyObject_TType__facALICuu8zUj0hjvbTLFg* prevX60gensym439_;
8218 			RootObj* T1035_;
8219 			T1035_ = NIM_NIL;
8220 			T1035_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
8221 			prevX60gensym439_ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T1035_));
8222 			{
8223 				tyObject_TType__facALICuu8zUj0hjvbTLFg* matched;
8224 				if (!(prevX60gensym439_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1038_;
8225 				{
8226 					if (!(aOrig_2 == f)) goto LA1042_;
8227 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
8228 					goto BeforeRet_;
8229 				}
8230 				LA1042_: ;
8231 				matched = matchUserTypeClass__sigmatch_993(c, f, aOrig_2);
8232 				{
8233 					if (!!((matched == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA1046_;
8234 					add__concepts_23(matched, a);
8235 					(*matched).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10)) & 63);
8236 					{
8237 						if (!!(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 0))&7U)))!=0))) goto LA1050_;
8238 						put__sigmatch_120(c, f, matched);
8239 					}
8240 					LA1050_: ;
8241 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8242 				}
8243 				goto LA1044_;
8244 				LA1046_: ;
8245 				{
8246 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8247 				}
8248 				LA1044_: ;
8249 			}
8250 			goto LA1036_;
8251 			LA1038_: ;
8252 			{
8253 				result = typeRel__sigmatch_202(c, prevX60gensym439_, a, flags);
8254 				goto BeforeRet_;
8255 			}
8256 			LA1036_: ;
8257 		}
8258 		LA1029_: ;
8259 	}
8260 	break;
8261 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
8262 	{
8263 		{
8264 			NIM_BOOL T1057_;
8265 			T1057_ = (NIM_BOOL)0;
8266 			T1057_ = conceptMatch__concepts_538((*c).c, f, a, (&(*c).bindings), ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
8267 			if (!T1057_) goto LA1058_;
8268 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8269 		}
8270 		goto LA1055_;
8271 		LA1058_: ;
8272 		{
8273 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8274 		}
8275 		LA1055_: ;
8276 	}
8277 	break;
8278 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
8279 	{
8280 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prevX60gensym444_;
8281 		RootObj* T1062_;
8282 		T1062_ = NIM_NIL;
8283 		T1062_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
8284 		prevX60gensym444_ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T1062_));
8285 		{
8286 			tyObject_TType__facALICuu8zUj0hjvbTLFg* roota_2;
8287 			tyObject_TType__facALICuu8zUj0hjvbTLFg* rootf_2;
8288 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T1067_;
8289 			if (!(prevX60gensym444_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1065_;
8290 			roota_2 = skipGenericAlias__types_2219(a);
8291 			T1067_ = NIM_NIL;
8292 			T1067_ = lastSon__ast_3743(f);
8293 			rootf_2 = skipGenericAlias__types_2219(T1067_);
8294 			{
8295 				NIM_BOOL T1070_;
8296 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1072_;
8297 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1073_;
8298 				T1070_ = (NIM_BOOL)0;
8299 				T1070_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
8300 				if (!(T1070_)) goto LA1071_;
8301 				T1072_ = NIM_NIL;
8302 				T1072_ = base__types_63(roota_2);
8303 				T1073_ = NIM_NIL;
8304 				T1073_ = base__types_63(rootf_2);
8305 				T1070_ = (T1072_ == T1073_);
8306 				LA1071_: ;
8307 				if (!T1070_) goto LA1074_;
8308 				{
8309 					NI i_17;
8310 					NI colontmp__6;
8311 					NI T1077_;
8312 					NI i_18;
8313 					i_17 = (NI)0;
8314 					colontmp__6 = (NI)0;
8315 					T1077_ = (NI)0;
8316 					T1077_ = len__ast_4002(rootf_2);
8317 					colontmp__6 = (NI)(T1077_ - ((NI) 1));
8318 					i_18 = ((NI) 1);
8319 					{
8320 						while (1) {
8321 							tyObject_TType__facALICuu8zUj0hjvbTLFg* ff_5;
8322 							tyObject_TType__facALICuu8zUj0hjvbTLFg* aa_4;
8323 							if (!(i_18 < colontmp__6)) goto LA1079;
8324 							i_17 = i_18;
8325 							ff_5 = (*rootf_2).sons->data[i_17];
8326 							aa_4 = (*roota_2).sons->data[i_17];
8327 							result = typeRel__sigmatch_202(c, ff_5, aa_4, flags);
8328 							{
8329 								if (!(result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0))) goto LA1082_;
8330 								goto BeforeRet_;
8331 							}
8332 							LA1082_: ;
8333 							{
8334 								NIM_BOOL T1086_;
8335 								T1086_ = (NIM_BOOL)0;
8336 								T1086_ = ((*ff_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20));
8337 								if (!(T1086_)) goto LA1087_;
8338 								T1086_ = !((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10)));
8339 								LA1087_: ;
8340 								if (!T1086_) goto LA1088_;
8341 								result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8342 								goto BeforeRet_;
8343 							}
8344 							LA1088_: ;
8345 							i_18 += ((NI) 1);
8346 						} LA1079: ;
8347 					}
8348 				}
8349 			}
8350 			goto LA1068_;
8351 			LA1074_: ;
8352 			{
8353 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1091_;
8354 				T1091_ = NIM_NIL;
8355 				T1091_ = lastSon__ast_3743(rootf_2);
8356 				result = typeRel__sigmatch_202(c, T1091_, a, flags);
8357 			}
8358 			LA1068_: ;
8359 			{
8360 				if (!!((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA1094_;
8361 				put__sigmatch_120(c, f, a);
8362 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8363 			}
8364 			LA1094_: ;
8365 		}
8366 		goto LA1063_;
8367 		LA1065_: ;
8368 		{
8369 			result = typeRel__sigmatch_202(c, prevX60gensym444_, a, flags);
8370 			goto BeforeRet_;
8371 		}
8372 		LA1063_: ;
8373 	}
8374 	break;
8375 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
8376 	{
8377 		NIM_BOOL doBindGP;
8378 		NIM_BOOL T1098_;
8379 		tyObject_TType__facALICuu8zUj0hjvbTLFg* x_9;
8380 		RootObj* T1100_;
8381 		T1098_ = (NIM_BOOL)0;
8382 		T1098_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 0))&7U)))!=0));
8383 		if (T1098_) goto LA1099_;
8384 		T1098_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg) 2))&7U)))!=0);
8385 		LA1099_: ;
8386 		doBindGP = T1098_;
8387 		T1100_ = NIM_NIL;
8388 		T1100_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
8389 		x_9 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T1100_));
8390 		{
8391 			if (!(x_9 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1103_;
8392 			{
8393 				NIM_BOOL T1107_;
8394 				T1107_ = (NIM_BOOL)0;
8395 				T1107_ = ((*(*c).callee).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10));
8396 				if (!(T1107_)) goto LA1108_;
8397 				T1107_ = !((*c).typedescMatched);
8398 				LA1108_: ;
8399 				if (!T1107_) goto LA1109_;
8400 				{
8401 					if (!(((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0)) goto LA1113_;
8402 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8403 				}
8404 				goto LA1111_;
8405 				LA1113_: ;
8406 				{
8407 					if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA1116_;
8408 					{
8409 						NI T1120_;
8410 						T1120_ = (NI)0;
8411 						T1120_ = len__ast_4002(f);
8412 						if (!(T1120_ == ((NI) 0))) goto LA1121_;
8413 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8414 					}
8415 					goto LA1118_;
8416 					LA1121_: ;
8417 					{
8418 						tyObject_TType__facALICuu8zUj0hjvbTLFg* aa_5;
8419 						tyObject_TType__facALICuu8zUj0hjvbTLFg* T1138_;
8420 						{
8421 							NI T1126_;
8422 							NimStringDesc* argX60gensym454_;
8423 							T1126_ = (NI)0;
8424 							T1126_ = len__ast_4002(a);
8425 							if (!!((((NI) 0) < T1126_))) goto LA1127_;
8426 							argX60gensym454_ = toFileLineCol__msgs_615(TM__EV5hHJmjIY9cla9b9be7fSVJQ_44);
8427 							internalErrorImpl__msgs_1431((*(*(*c).c).graph).config, unknownLineInfo__lineinfos_280, argX60gensym454_, TM__EV5hHJmjIY9cla9b9be7fSVJQ_44);
8428 						}
8429 						LA1127_: ;
8430 						(*c).typedescMatched = NIM_TRUE;
8431 						aa_5 = a;
8432 						{
8433 							while (1) {
8434 								NIM_BOOL T1131_;
8435 								NI T1133_;
8436 								T1131_ = (NIM_BOOL)0;
8437 								T1131_ = ((*aa_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*aa_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
8438 								if (!(T1131_)) goto LA1132_;
8439 								T1133_ = (NI)0;
8440 								T1133_ = len__ast_4002(aa_5);
8441 								T1131_ = (((NI) 0) < T1133_);
8442 								LA1132_: ;
8443 								if (!T1131_) goto LA1130;
8444 								aa_5 = lastSon__ast_3743(aa_5);
8445 							} LA1130: ;
8446 						}
8447 						{
8448 							if (!((*aa_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA1136_;
8449 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8450 							goto BeforeRet_;
8451 						}
8452 						LA1136_: ;
8453 						T1138_ = NIM_NIL;
8454 						T1138_ = base__types_63(f);
8455 						result = typeRel__sigmatch_202(c, T1138_, aa_5, flags);
8456 						{
8457 							if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) < result)) goto LA1141_;
8458 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8459 						}
8460 						LA1141_: ;
8461 					}
8462 					LA1118_: ;
8463 				}
8464 				goto LA1111_;
8465 				LA1116_: ;
8466 				{
8467 					if (!(*c).isNoCall) goto LA1144_;
8468 					{
8469 						tyObject_TType__facALICuu8zUj0hjvbTLFg* concrete_2;
8470 						if (!doBindGP) goto LA1148_;
8471 						concrete_2 = concreteType__sigmatch_443((&(*c)), a, f);
8472 						{
8473 							if (!(concrete_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1152_;
8474 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8475 							goto BeforeRet_;
8476 						}
8477 						LA1152_: ;
8478 						put__sigmatch_120(c, f, concrete_2);
8479 					}
8480 					LA1148_: ;
8481 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8482 				}
8483 				goto LA1111_;
8484 				LA1144_: ;
8485 				{
8486 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8487 				}
8488 				LA1111_: ;
8489 			}
8490 			goto LA1105_;
8491 			LA1109_: ;
8492 			{
8493 				{
8494 					NIM_BOOL T1158_;
8495 					NI T1159_;
8496 					NI oldInheritancePenalty_2;
8497 					T1158_ = (NIM_BOOL)0;
8498 					T1159_ = (NI)0;
8499 					T1159_ = len__ast_4002(f);
8500 					T1158_ = (((NI) 0) < T1159_);
8501 					if (!(T1158_)) goto LA1160_;
8502 					T1158_ = !(((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
8503 					LA1160_: ;
8504 					if (!T1158_) goto LA1161_;
8505 					oldInheritancePenalty_2 = (*c).inheritancePenalty;
8506 					result = typeRel__sigmatch_202(c, (*f).sons->data[((NI) 0)], a, (flags | 5));
8507 					{
8508 						NIM_BOOL T1165_;
8509 						tyObject_TType__facALICuu8zUj0hjvbTLFg* concrete_3;
8510 						T1165_ = (NIM_BOOL)0;
8511 						T1165_ = doBindGP;
8512 						if (!(T1165_)) goto LA1166_;
8513 						T1165_ = !(((257 &((NU16)1<<((NU)(result)&15U)))!=0));
8514 						LA1166_: ;
8515 						if (!T1165_) goto LA1167_;
8516 						concrete_3 = concreteType__sigmatch_443((&(*c)), a, f);
8517 						{
8518 							if (!(concrete_3 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1171_;
8519 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8520 							goto BeforeRet_;
8521 						}
8522 						LA1171_: ;
8523 						put__sigmatch_120(c, f, concrete_3);
8524 					}
8525 					LA1167_: ;
8526 					{
8527 						if (!((1032 &((NU16)1<<((NU)(result)&15U)))!=0)) goto LA1175_;
8528 						(*c).inheritancePenalty = (NI)((NI)(oldInheritancePenalty_2 - (*c).inheritancePenalty) - (NI)(((NI) 100) * (result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10))));
8529 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8530 					}
8531 					LA1175_: ;
8532 				}
8533 				goto LA1156_;
8534 				LA1161_: ;
8535 				{
8536 					if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA1178_;
8537 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8538 				}
8539 				goto LA1156_;
8540 				LA1178_: ;
8541 				{
8542 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8543 				}
8544 				LA1156_: ;
8545 			}
8546 			LA1105_: ;
8547 			{
8548 				tyObject_TType__facALICuu8zUj0hjvbTLFg* concrete_4;
8549 				if (!(result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8))) goto LA1183_;
8550 				concrete_4 = a;
8551 				{
8552 					if (!(((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0)) goto LA1187_;
8553 					transitionGenericParamToType__ast_4390((*a).sym);
8554 					(*a).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30)) & 63));
8555 				}
8556 				goto LA1185_;
8557 				LA1187_: ;
8558 				{
8559 					concrete_4 = concreteType__sigmatch_443((&(*c)), a, f);
8560 					{
8561 						if (!(concrete_4 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1192_;
8562 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8563 						goto BeforeRet_;
8564 					}
8565 					LA1192_: ;
8566 				}
8567 				LA1185_: ;
8568 				{
8569 					if (!doBindGP) goto LA1196_;
8570 					put__sigmatch_120(c, f, concrete_4);
8571 				}
8572 				LA1196_: ;
8573 			}
8574 			goto LA1181_;
8575 			LA1183_: ;
8576 			{
8577 				if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) < result)) goto LA1199_;
8578 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8579 			}
8580 			goto LA1181_;
8581 			LA1199_: ;
8582 			LA1181_: ;
8583 		}
8584 		goto LA1101_;
8585 		LA1103_: ;
8586 		{
8587 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3))) goto LA1202_;
8588 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8589 		}
8590 		goto LA1101_;
8591 		LA1202_: ;
8592 		{
8593 			if (!((*x_9).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA1205_;
8594 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8595 		}
8596 		goto LA1101_;
8597 		LA1205_: ;
8598 		{
8599 			result = typeRel__sigmatch_202(c, x_9, a, flags);
8600 			{
8601 				if (!(((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8) < result)) goto LA1210_;
8602 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8603 			}
8604 			LA1210_: ;
8605 		}
8606 		LA1101_: ;
8607 	}
8608 	break;
8609 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
8610 	{
8611 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prev_5;
8612 		RootObj* T1213_;
8613 		T1213_ = NIM_NIL;
8614 		T1213_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
8615 		prev_5 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T1213_));
8616 		{
8617 			if (!(prev_5 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1216_;
8618 			{
8619 				if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA1220_;
8620 				{
8621 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T1224_;
8622 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T1227_;
8623 					T1224_ = NIM_NIL;
8624 					T1224_ = base__types_63(f);
8625 					if (!!(((*T1224_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)))) goto LA1225_;
8626 					T1227_ = NIM_NIL;
8627 					T1227_ = base__types_63(f);
8628 					result = typeRel__sigmatch_202(c, T1227_, a, flags);
8629 					{
8630 						NIM_BOOL T1230_;
8631 						T1230_ = (NIM_BOOL)0;
8632 						T1230_ = !((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)));
8633 						if (!(T1230_)) goto LA1231_;
8634 						T1230_ = !(((*f).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
8635 						LA1231_: ;
8636 						if (!T1230_) goto LA1232_;
8637 						{
8638 							NIM_BOOL T1236_;
8639 							T1236_ = (NIM_BOOL)0;
8640 							T1236_ = exprStructuralEquivalent__trees_56((*f).n, (*aOrig_2).n, NIM_FALSE);
8641 							if (!!(T1236_)) goto LA1237_;
8642 							result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8643 						}
8644 						LA1237_: ;
8645 					}
8646 					LA1232_: ;
8647 				}
8648 				goto LA1222_;
8649 				LA1225_: ;
8650 				{
8651 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8652 				}
8653 				LA1222_: ;
8654 				{
8655 					if (!!((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA1242_;
8656 					put__sigmatch_120(c, f, aOrig_2);
8657 				}
8658 				LA1242_: ;
8659 			}
8660 			goto LA1218_;
8661 			LA1220_: ;
8662 			{
8663 				NIM_BOOL T1245_;
8664 				T1245_ = (NIM_BOOL)0;
8665 				T1245_ = !(((*aOrig_2).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
8666 				if (!(T1245_)) goto LA1246_;
8667 				T1245_ = !(((*(*aOrig_2).n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
8668 				LA1246_: ;
8669 				if (!T1245_) goto LA1247_;
8670 				{
8671 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T1251_;
8672 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T1254_;
8673 					T1251_ = NIM_NIL;
8674 					T1251_ = base__types_63(f);
8675 					if (!!(((*T1251_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)))) goto LA1252_;
8676 					T1254_ = NIM_NIL;
8677 					T1254_ = lastSon__ast_3743(f);
8678 					result = typeRel__sigmatch_202(c, T1254_, (*(*aOrig_2).n).typ, flags);
8679 				}
8680 				goto LA1249_;
8681 				LA1252_: ;
8682 				{
8683 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8684 				}
8685 				LA1249_: ;
8686 				{
8687 					tyObject_TType__facALICuu8zUj0hjvbTLFg* boundType;
8688 					tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T1260_;
8689 					if (!!((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA1258_;
8690 					T1260_ = NIM_NIL;
8691 					T1260_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
8692 					asgnRef((void**) (&T1260_->data[0]), (*(*aOrig_2).n).typ);
8693 					boundType = newTypeWithSons__semdata_821((*c).c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), T1260_);
8694 					asgnRef((void**) (&(*boundType).n), (*aOrig_2).n);
8695 					put__sigmatch_120(c, f, boundType);
8696 				}
8697 				LA1258_: ;
8698 			}
8699 			goto LA1218_;
8700 			LA1247_: ;
8701 			{
8702 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8703 			}
8704 			LA1218_: ;
8705 		}
8706 		goto LA1214_;
8707 		LA1216_: ;
8708 		{
8709 			if (!((*prev_5).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA1263_;
8710 			{
8711 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1269_;
8712 				if (!((*aOrig_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA1267_;
8713 				T1269_ = NIM_NIL;
8714 				T1269_ = lastSon__ast_3743(prev_5);
8715 				result = typeRel__sigmatch_202(c, T1269_, a, flags);
8716 				{
8717 					NIM_BOOL T1272_;
8718 					T1272_ = (NIM_BOOL)0;
8719 					T1272_ = !((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)));
8720 					if (!(T1272_)) goto LA1273_;
8721 					T1272_ = !(((*prev_5).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
8722 					LA1273_: ;
8723 					if (!T1272_) goto LA1274_;
8724 					{
8725 						NIM_BOOL T1278_;
8726 						T1278_ = (NIM_BOOL)0;
8727 						T1278_ = exprStructuralEquivalent__trees_56((*prev_5).n, (*aOrig_2).n, NIM_FALSE);
8728 						if (!!(T1278_)) goto LA1279_;
8729 						result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8730 					}
8731 					LA1279_: ;
8732 				}
8733 				LA1274_: ;
8734 			}
8735 			goto LA1265_;
8736 			LA1267_: ;
8737 			{
8738 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8739 			}
8740 			LA1265_: ;
8741 		}
8742 		goto LA1214_;
8743 		LA1263_: ;
8744 		{
8745 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8746 		}
8747 		LA1214_: ;
8748 	}
8749 	break;
8750 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
8751 	{
8752 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prev_6;
8753 		{
8754 			NI T1286_;
8755 			T1286_ = ((*f).sons ? (*f).sons->Sup.len : 0);
8756 			if (!(((NI) 1) < T1286_)) goto LA1287_;
8757 			prev_6 = lastSon__ast_3743(f);
8758 		}
8759 		goto LA1284_;
8760 		LA1287_: ;
8761 		{
8762 			prev_6 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
8763 		}
8764 		LA1284_: ;
8765 		{
8766 			if (!!((prev_6 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA1292_;
8767 			result = typeRel__sigmatch_202(c, prev_6, a, flags);
8768 		}
8769 		goto LA1290_;
8770 		LA1292_: ;
8771 		{
8772 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T1295_;
8773 			T1295_ = NIM_NIL;
8774 			T1295_ = base__types_63(f);
8775 			result = typeRel__sigmatch_202(c, T1295_, a, flags);
8776 			{
8777 				NI T1300_;
8778 				if (!!((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA1298_;
8779 				unsureAsgnRef((void**) (&(*c).inferredTypes), (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) incrSeqV3((TGenericSeq*)((*c).inferredTypes), (&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_)));
8780 				T1300_ = (*c).inferredTypes->Sup.len++;
8781 				asgnRef((void**) (&(*c).inferredTypes->data[T1300_]), f);
8782 				add__concepts_23(f, a);
8783 			}
8784 			LA1298_: ;
8785 		}
8786 		LA1290_: ;
8787 	}
8788 	break;
8789 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
8790 	{
8791 		tyObject_TType__facALICuu8zUj0hjvbTLFg* prev_7;
8792 		RootObj* T1302_;
8793 		T1302_ = NIM_NIL;
8794 		T1302_ = idTableGet__astalgo_64((*c).bindings, &f->Sup);
8795 		prev_7 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T1302_));
8796 		{
8797 			if (!(prev_7 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA1305_;
8798 			{
8799 				if (!!(((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA1309_;
8800 				{
8801 					NIM_BOOL T1313_;
8802 					T1313_ = (NIM_BOOL)0;
8803 					T1313_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
8804 					if (!(T1313_)) goto LA1314_;
8805 					T1313_ = (((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0);
8806 					LA1314_: ;
8807 					if (!T1313_) goto LA1315_;
8808 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8809 				}
8810 				goto LA1311_;
8811 				LA1315_: ;
8812 				{
8813 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8814 				}
8815 				LA1311_: ;
8816 			}
8817 			goto LA1307_;
8818 			LA1309_: ;
8819 			{
8820 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1319_;
8821 				T1319_ = NIM_NIL;
8822 				T1319_ = base__types_63(f);
8823 				if (!((*T1319_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA1320_;
8824 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8825 			}
8826 			goto LA1307_;
8827 			LA1320_: ;
8828 			{
8829 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1323_;
8830 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1324_;
8831 				T1323_ = NIM_NIL;
8832 				T1323_ = base__types_63(f);
8833 				T1324_ = NIM_NIL;
8834 				T1324_ = base__types_63(a);
8835 				result = typeRel__sigmatch_202(c, T1323_, T1324_, flags);
8836 			}
8837 			LA1307_: ;
8838 			{
8839 				if (!!((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA1327_;
8840 				put__sigmatch_120(c, f, a);
8841 			}
8842 			LA1327_: ;
8843 		}
8844 		goto LA1303_;
8845 		LA1305_: ;
8846 		{
8847 			{
8848 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1334_;
8849 				if (!(((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0)) goto LA1332_;
8850 				T1334_ = NIM_NIL;
8851 				T1334_ = base__types_63(prev_7);
8852 				result = typeRel__sigmatch_202(c, T1334_, a, flags);
8853 			}
8854 			goto LA1330_;
8855 			LA1332_: ;
8856 			{
8857 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1338_;
8858 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T1339_;
8859 				if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA1336_;
8860 				T1338_ = NIM_NIL;
8861 				T1338_ = base__types_63(prev_7);
8862 				T1339_ = NIM_NIL;
8863 				T1339_ = base__types_63(a);
8864 				result = typeRel__sigmatch_202(c, T1338_, T1339_, flags);
8865 			}
8866 			goto LA1330_;
8867 			LA1336_: ;
8868 			{
8869 				result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8870 			}
8871 			LA1330_: ;
8872 		}
8873 		LA1303_: ;
8874 	}
8875 	break;
8876 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
8877 	{
8878 		{
8879 			if (!!((aOrig_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA1344_;
8880 			put__sigmatch_120(c, f, aOrig_2);
8881 		}
8882 		LA1344_: ;
8883 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8884 	}
8885 	break;
8886 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
8887 	{
8888 		result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
8889 	}
8890 	break;
8891 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
8892 	{
8893 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* reevaluated;
8894 		{
8895 			NIM_BOOL T1350_;
8896 			T1350_ = (NIM_BOOL)0;
8897 			T1350_ = ((*f).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
8898 			if (T1350_) goto LA1351_;
8899 			T1350_ = ((*(*f).n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
8900 			LA1351_: ;
8901 			if (!T1350_) goto LA1352_;
8902 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8);
8903 			goto BeforeRet_;
8904 		}
8905 		LA1352_: ;
8906 		reevaluated = tryResolvingStaticExpr__sigmatch_1227(c, (*f).n, NIM_FALSE);
8907 		switch ((*(*reevaluated).typ).kind) {
8908 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
8909 		{
8910 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T1355_;
8911 			T1355_ = NIM_NIL;
8912 			T1355_ = base__types_63((*reevaluated).typ);
8913 			result = typeRel__sigmatch_202(c, a, T1355_, flags);
8914 		}
8915 		break;
8916 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
8917 		{
8918 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T1357_;
8919 			T1357_ = NIM_NIL;
8920 			T1357_ = base__types_63((*reevaluated).typ);
8921 			result = typeRel__sigmatch_202(c, a, T1357_, flags);
8922 			{
8923 				NIM_BOOL T1360_;
8924 				T1360_ = (NIM_BOOL)0;
8925 				T1360_ = !((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)));
8926 				if (!(T1360_)) goto LA1361_;
8927 				T1360_ = !(((*(*reevaluated).typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
8928 				LA1361_: ;
8929 				if (!T1360_) goto LA1362_;
8930 				{
8931 					NIM_BOOL T1366_;
8932 					T1366_ = (NIM_BOOL)0;
8933 					T1366_ = exprStructuralEquivalent__trees_56((*aOrig_2).n, (*(*reevaluated).typ).n, NIM_FALSE);
8934 					if (!!(T1366_)) goto LA1367_;
8935 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8936 				}
8937 				LA1367_: ;
8938 			}
8939 			LA1362_: ;
8940 		}
8941 		break;
8942 		default:
8943 		{
8944 			result = typeRel__sigmatch_202(c, a, (*reevaluated).typ, flags);
8945 			{
8946 				NIM_BOOL T1372_;
8947 				T1372_ = (NIM_BOOL)0;
8948 				T1372_ = !((result == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)));
8949 				if (!(T1372_)) goto LA1373_;
8950 				T1372_ = !(((*(*reevaluated).typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
8951 				LA1373_: ;
8952 				if (!T1372_) goto LA1374_;
8953 				{
8954 					NIM_BOOL T1378_;
8955 					T1378_ = (NIM_BOOL)0;
8956 					T1378_ = exprStructuralEquivalent__trees_56((*aOrig_2).n, (*(*reevaluated).typ).n, NIM_FALSE);
8957 					if (!!(T1378_)) goto LA1379_;
8958 					result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0);
8959 				}
8960 				LA1379_: ;
8961 			}
8962 			LA1374_: ;
8963 		}
8964 		break;
8965 		}
8966 	}
8967 	break;
8968 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0):
8969 	{
8970 		{
8971 			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA1384_;
8972 			result = ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10);
8973 		}
8974 		LA1384_: ;
8975 	}
8976 	break;
8977 	default:
8978 	{
8979 		NimStringDesc* T1387_;
8980 		T1387_ = NIM_NIL;
8981 		T1387_ = rawNewString((reprEnum((NI)(*f).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*f).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 19);
8982 appendString(T1387_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_45));
8983 appendString(T1387_, reprEnum((NI)(*f).kind, (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_)));
8984 		internalErrorImpl__msgs_1431((*(*(*c).c).graph).config, unknownLineInfo__lineinfos_280, T1387_, TM__EV5hHJmjIY9cla9b9be7fSVJQ_46);
8985 	}
8986 	break;
8987 	}
8988 	}BeforeRet_: ;
8989 	return result;
8990 }
N_NIMCALL(void,incMatches__sigmatch_3238)8991 N_LIB_PRIVATE N_NIMCALL(void, incMatches__sigmatch_3238)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw r, NI convMatch) {
8992 	switch (r) {
8993 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1):
8994 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 2):
8995 	{
8996 		(*m).convMatches += convMatch;
8997 	}
8998 	break;
8999 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3):
9000 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 4):
9001 	{
9002 		(*m).subtypeMatches += ((NI) 1);
9003 	}
9004 	break;
9005 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8):
9006 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 6):
9007 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 5):
9008 	{
9009 		(*m).genericMatches += ((NI) 1);
9010 	}
9011 	break;
9012 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 9):
9013 	{
9014 		(*m).intConvMatches += ((NI) 256);
9015 	}
9016 	break;
9017 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 7):
9018 	{
9019 		(*m).convMatches += ((NI) 1);
9020 	}
9021 	break;
9022 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10):
9023 	{
9024 		(*m).exactMatches += ((NI) 1);
9025 	}
9026 	break;
9027 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0):
9028 	{
9029 	}
9030 	break;
9031 	}
9032 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,getInstantiatedType__sigmatch_3053)9033 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getInstantiatedType__sigmatch_3053)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f) {
9034 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
9035 	RootObj* T1_;
9036 	result = NIM_NIL;
9037 	T1_ = NIM_NIL;
9038 	T1_ = idTableGet__astalgo_64((*m).bindings, &f->Sup);
9039 	result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T1_));
9040 	{
9041 		if (!(result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA4_;
9042 		result = generateTypeInstance__semtypinst_1050(c, (*m).bindings, (*arg).info, f);
9043 	}
9044 	LA4_: ;
9045 	{
9046 		if (!(result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA8_;
9047 		internalErrorImpl__msgs_1431((*(*c).graph).config, (*arg).info, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_49), TM__EV5hHJmjIY9cla9b9be7fSVJQ_50);
9048 		result = errorType__semdata_1002(c);
9049 	}
9050 	LA8_: ;
9051 	return result;
9052 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,implicitConv__sigmatch_3067)9053 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, implicitConv__sigmatch_3067)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
9054 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
9055 	result = NIM_NIL;
9056 	result = newNodeI__ast_3356(kind, (*arg).info);
9057 	{
9058 		NIM_BOOL T3_;
9059 		T3_ = (NIM_BOOL)0;
9060 		T3_ = containsGenericType__types_3360(f);
9061 		if (!T3_) goto LA4_;
9062 		{
9063 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
9064 			if (!!(!(((*m).fauxMatch == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))))) goto LA8_;
9065 			T10_ = NIM_NIL;
9066 			T10_ = getInstantiatedType__sigmatch_3053(c, arg, m, f);
9067 			asgnRef((void**) (&(*result).typ), skipTypes__ast_3735(T10_, TM__EV5hHJmjIY9cla9b9be7fSVJQ_51));
9068 		}
9069 		goto LA6_;
9070 		LA8_: ;
9071 		{
9072 			asgnRef((void**) (&(*result).typ), errorType__semdata_1002(c));
9073 		}
9074 		LA6_: ;
9075 	}
9076 	goto LA1_;
9077 	LA4_: ;
9078 	{
9079 		asgnRef((void**) (&(*result).typ), skipTypes__ast_3735(f, TM__EV5hHJmjIY9cla9b9be7fSVJQ_51));
9080 	}
9081 	LA1_: ;
9082 	{
9083 		if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA15_;
9084 		internalErrorImpl__msgs_1431((*(*c).graph).config, (*arg).info, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_52), TM__EV5hHJmjIY9cla9b9be7fSVJQ_53);
9085 	}
9086 	LA15_: ;
9087 	add__ast_4797(result, (*(*c).graph).emptyNode);
9088 	add__ast_4797(result, arg);
9089 	return result;
9090 }
N_INLINE(NIM_BOOL,isLValue__sigmatch_3090)9091 static N_INLINE(NIM_BOOL, isLValue__sigmatch_3090)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
9092 	NIM_BOOL result;
9093 	tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag aa;
9094 	result = (NIM_BOOL)0;
9095 	aa = isAssignable__parampatterns_334(((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), n, NIM_FALSE);
9096 	switch (aa) {
9097 	case ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1):
9098 	case ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 2):
9099 	case ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 5):
9100 	{
9101 		result = NIM_TRUE;
9102 	}
9103 	break;
9104 	case ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 3):
9105 	{
9106 		result = (((NI) 0) < (*c).inUncheckedAssignSection);
9107 	}
9108 	break;
9109 	default:
9110 	{
9111 		result = NIM_FALSE;
9112 	}
9113 	break;
9114 	}
9115 	return result;
9116 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,extractPragma__sigmatch_5382)9117 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, extractPragma__sigmatch_5382)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
9118 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
9119 	result = NIM_NIL;
9120 	{
9121 		if (!((520192 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA3_;
9122 		result = (*(*s).ast)._kind_6.sons->data[((NI) 4)];
9123 	}
9124 	goto LA1_;
9125 	LA3_: ;
9126 	{
9127 		if (!((896 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA6_;
9128 		{
9129 			NIM_BOOL T10_;
9130 			NI T12_;
9131 			T10_ = (NIM_BOOL)0;
9132 			T10_ = !(((*s).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
9133 			if (!(T10_)) goto LA11_;
9134 			T12_ = (NI)0;
9135 			T12_ = len__ast_3198((*s).ast);
9136 			T10_ = (((NI) 0) < T12_);
9137 			LA11_: ;
9138 			if (!T10_) goto LA13_;
9139 			{
9140 				NIM_BOOL T17_;
9141 				NI T19_;
9142 				T17_ = (NIM_BOOL)0;
9143 				T17_ = ((*(*(*s).ast)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43));
9144 				if (!(T17_)) goto LA18_;
9145 				T19_ = (NI)0;
9146 				T19_ = len__ast_3198((*(*s).ast)._kind_6.sons->data[((NI) 0)]);
9147 				T17_ = (((NI) 1) < T19_);
9148 				LA18_: ;
9149 				if (!T17_) goto LA20_;
9150 				result = (*(*(*s).ast)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
9151 			}
9152 			LA20_: ;
9153 		}
9154 		LA13_: ;
9155 	}
9156 	goto LA1_;
9157 	LA6_: ;
9158 	LA1_: ;
9159 	{
9160 		NIM_BOOL T24_;
9161 		T24_ = (NIM_BOOL)0;
9162 		T24_ = (result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
9163 		if (T24_) goto LA25_;
9164 		T24_ = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90));
9165 		LA25_: ;
9166 		if (!!(T24_)) goto LA26_;
9167 		failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_57));
9168 	}
9169 	LA26_: ;
9170 	return result;
9171 }
N_NIMCALL(void,warnAboutDeprecated__sigmatch_5425)9172 N_LIB_PRIVATE N_NIMCALL(void, warnAboutDeprecated__sigmatch_5425)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
9173 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmaNode;
9174 	NimStringDesc* name;
9175 	NimStringDesc* T33_;
9176 {	pragmaNode = NIM_NIL;
9177 	{
9178 		if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20))) goto LA3_;
9179 		pragmaNode = extractPragma__sigmatch_5382((*s).owner);
9180 	}
9181 	goto LA1_;
9182 	LA3_: ;
9183 	{
9184 		pragmaNode = extractPragma__sigmatch_5382(s);
9185 	}
9186 	LA1_: ;
9187 	{
9188 		NIM_BOOL T8_;
9189 		NimStringDesc* T12_;
9190 		T8_ = (NIM_BOOL)0;
9191 		T8_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20));
9192 		if (!(T8_)) goto LA9_;
9193 		T8_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 22))&63U)))!=0));
9194 		LA9_: ;
9195 		if (!T8_) goto LA10_;
9196 		T12_ = NIM_NIL;
9197 		T12_ = rawNewString(((*(*(*s).owner).name).s ? (*(*(*s).owner).name).s->Sup.len : 0) + ((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 31);
9198 appendString(T12_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_58));
9199 appendString(T12_, (*(*(*s).owner).name).s);
9200 appendString(T12_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_59));
9201 appendString(T12_, (*(*s).name).s);
9202 appendString(T12_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_19));
9203 		name = T12_;
9204 	}
9205 	goto LA6_;
9206 	LA10_: ;
9207 	{
9208 		name = (*(*s).name).s;
9209 	}
9210 	LA6_: ;
9211 	{
9212 		if (!!((pragmaNode == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA16_;
9213 		{
9214 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
9215 			it = NIM_NIL;
9216 			{
9217 				NI i;
9218 				NI colontmp_;
9219 				NI i_2;
9220 				i = (NI)0;
9221 				colontmp_ = (NI)0;
9222 				colontmp_ = safeLen__ast_3191(pragmaNode);
9223 				i_2 = ((NI) 0);
9224 				{
9225 					while (1) {
9226 						if (!(i_2 < colontmp_)) goto LA21;
9227 						i = i_2;
9228 						it = (*pragmaNode)._kind_6.sons->data[i];
9229 						{
9230 							NIM_BOOL T24_;
9231 							NIM_BOOL T25_;
9232 							tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T26_;
9233 							NI T28_;
9234 							NimStringDesc* T32_;
9235 							T24_ = (NIM_BOOL)0;
9236 							T25_ = (NIM_BOOL)0;
9237 							T26_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
9238 							T26_ = whichPragma__trees_244(it);
9239 							T25_ = (T26_ == ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 138));
9240 							if (!(T25_)) goto LA27_;
9241 							T28_ = (NI)0;
9242 							T28_ = safeLen__ast_3191(it);
9243 							T25_ = (T28_ == ((NI) 2));
9244 							LA27_: ;
9245 							T24_ = T25_;
9246 							if (!(T24_)) goto LA29_;
9247 							T24_ = ((*(*it)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*it)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22));
9248 							LA29_: ;
9249 							if (!T24_) goto LA30_;
9250 							T32_ = NIM_NIL;
9251 							T32_ = rawNewString(((*(*it)._kind_6.sons->data[((NI) 1)])._kind_3.strVal ? (*(*it)._kind_6.sons->data[((NI) 1)])._kind_3.strVal->Sup.len : 0) + (name ? name->Sup.len : 0) + 16);
9252 appendString(T32_, (*(*it)._kind_6.sons->data[((NI) 1)])._kind_3.strVal);
9253 appendString(T32_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_60));
9254 appendString(T32_, name);
9255 appendString(T32_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_61));
9256 							liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 20), T32_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_62, NIM_FALSE);
9257 							goto BeforeRet_;
9258 						}
9259 						LA30_: ;
9260 						i_2 += ((NI) 1);
9261 					} LA21: ;
9262 				}
9263 			}
9264 		}
9265 	}
9266 	LA16_: ;
9267 	T33_ = NIM_NIL;
9268 	T33_ = rawNewString((name ? name->Sup.len : 0) + 14);
9269 appendString(T33_, name);
9270 appendString(T33_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_61));
9271 	liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 20), T33_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_64, NIM_FALSE);
9272 	}BeforeRet_: ;
9273 }
N_INLINE(NimStringDesc *,toFileLineCol__msgs_619)9274 static N_INLINE(NimStringDesc*, toFileLineCol__msgs_619)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
9275 	NimStringDesc* result;
9276 	NimStringDesc* T1_;
9277 	result = NIM_NIL;
9278 	T1_ = NIM_NIL;
9279 	T1_ = toMsgFilename__msgs_602(conf, info.fileIndex);
9280 	result = resizeString(result, (T1_ ? T1_->Sup.len : 0) + 0);
9281 appendString(result, T1_);
9282 	{
9283 		if (!(((NI) 0) < ((NI) (info.line)))) goto LA4_;
9284 		result = resizeString(result, 1);
9285 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_41));
9286 		addInt__stdZprivateZdigitsutils_189((&result), ((NI) (info.line)));
9287 		{
9288 			if (!(((NI) 0) < (NI)(((NI) (info.col)) + ((NI) 1)))) goto LA8_;
9289 			result = resizeString(result, 2);
9290 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_42));
9291 			addInt__stdZprivateZdigitsutils_189((&result), (NI)(((NI) (info.col)) + ((NI) 1)));
9292 		}
9293 		LA8_: ;
9294 		result = resizeString(result, 1);
9295 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_43));
9296 	}
9297 	LA4_: ;
9298 	return result;
9299 }
N_NIMCALL(void,userError__sigmatch_5458)9300 N_LIB_PRIVATE N_NIMCALL(void, userError__sigmatch_5458)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
9301 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmaNode;
9302 	tyArray__24KAM9afIUgUaqBaEBB6r9bg T22_;
9303 	NimStringDesc* T23_;
9304 {	pragmaNode = extractPragma__sigmatch_5382(s);
9305 	{
9306 		if (!!((pragmaNode == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
9307 		{
9308 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
9309 			it = NIM_NIL;
9310 			{
9311 				NI i;
9312 				NI colontmp_;
9313 				NI i_2;
9314 				i = (NI)0;
9315 				colontmp_ = (NI)0;
9316 				colontmp_ = safeLen__ast_3191(pragmaNode);
9317 				i_2 = ((NI) 0);
9318 				{
9319 					while (1) {
9320 						if (!(i_2 < colontmp_)) goto LA8;
9321 						i = i_2;
9322 						it = (*pragmaNode)._kind_6.sons->data[i];
9323 						{
9324 							NIM_BOOL T11_;
9325 							NIM_BOOL T12_;
9326 							tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T13_;
9327 							NI T15_;
9328 							tyArray__24KAM9afIUgUaqBaEBB6r9bg T19_;
9329 							NimStringDesc* T20_;
9330 							NimStringDesc* T21_;
9331 							T11_ = (NIM_BOOL)0;
9332 							T12_ = (NIM_BOOL)0;
9333 							T13_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
9334 							T13_ = whichPragma__trees_244(it);
9335 							T12_ = (T13_ == ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 122));
9336 							if (!(T12_)) goto LA14_;
9337 							T15_ = (NI)0;
9338 							T15_ = safeLen__ast_3191(it);
9339 							T12_ = (T15_ == ((NI) 2));
9340 							LA14_: ;
9341 							T11_ = T12_;
9342 							if (!(T11_)) goto LA16_;
9343 							T11_ = ((*(*it)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*it)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22));
9344 							LA16_: ;
9345 							if (!T11_) goto LA17_;
9346 							nimZeroMem((void*)T19_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
9347 							T20_ = NIM_NIL;
9348 							T20_ = rawNewString(((*(*it)._kind_6.sons->data[((NI) 1)])._kind_3.strVal ? (*(*it)._kind_6.sons->data[((NI) 1)])._kind_3.strVal->Sup.len : 0) + 2);
9349 appendString(T20_, (*(*it)._kind_6.sons->data[((NI) 1)])._kind_3.strVal);
9350 appendString(T20_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_60));
9351 							T19_[0] = T20_;
9352 							T19_[1] = copyString((*(*s).name).s);
9353 							T19_[2] = toFileLineCol__msgs_619(conf, (*(*s).ast).info);
9354 							T21_ = NIM_NIL;
9355 							T21_ = nsuFormatOpenArray(((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_65), T19_, 3);
9356 							liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_66, NIM_FALSE);
9357 							goto BeforeRet_;
9358 						}
9359 						LA17_: ;
9360 						i_2 += ((NI) 1);
9361 					} LA8: ;
9362 				}
9363 			}
9364 		}
9365 	}
9366 	LA3_: ;
9367 	nimZeroMem((void*)T22_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
9368 	T22_[0] = ((NimStringDesc*) NIM_NIL);
9369 	T22_[1] = copyString((*(*s).name).s);
9370 	T22_[2] = toFileLineCol__msgs_619(conf, (*(*s).ast).info);
9371 	T23_ = NIM_NIL;
9372 	T23_ = nsuFormatOpenArray(((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_65), T22_, 3);
9373 	liMessage__msgs_1118(conf, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T23_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_67, NIM_FALSE);
9374 	}BeforeRet_: ;
9375 }
N_INLINE(NU64,hiXorLo__pureZhashes_79)9376 static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b) {
9377 	NU64 result;
9378 	result = (NU64)0;
9379 	__uint128_t r = a; r *= b; result = (r >> 64) ^ r;
9380 	return result;
9381 }
N_INLINE(NI,hashWangYi1__pureZhashes_136)9382 static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x) {
9383 	NI result;
9384 	NU64 T1_;
9385 	NU64 T2_;
9386 	result = (NI)0;
9387 	T1_ = (NU64)0;
9388 	T1_ = hiXorLo__pureZhashes_79(11562461410679940143ULL, (NU64)(x ^ 16646288086500911323ULL));
9389 	T2_ = (NU64)0;
9390 	T2_ = hiXorLo__pureZhashes_79(T1_, 16952864883938283885ULL);
9391 	result = ((NI) (T2_));
9392 	return result;
9393 }
N_INLINE(NI,hash__pureZhashes_128)9394 static N_INLINE(NI, hash__pureZhashes_128)(NI x) {
9395 	NI result;
9396 	result = (NI)0;
9397 	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
9398 	return result;
9399 }
N_INLINE(NIM_BOOL,isFilled__pureZcollectionsZtables_31)9400 static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode) {
9401 	NIM_BOOL result;
9402 	result = (NIM_BOOL)0;
9403 	result = !((hcode == ((NI) 0)));
9404 	return result;
9405 }
N_INLINE(NI,nextTry__pureZcollectionsZtables_34)9406 static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash) {
9407 	NI result;
9408 	result = (NI)0;
9409 	result = (NI)((NI)(h + ((NI) 1)) & maxHash);
9410 	return result;
9411 }
N_INLINE(NI,rawGet__sigmatch_5618)9412 static N_INLINE(NI, rawGet__sigmatch_5618)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key, NI* hc) {
9413 	NI result;
9414 	NI h;
9415 	NI T10_;
9416 {	result = (NI)0;
9417 	(*hc) = hash__pureZhashes_128(key);
9418 	{
9419 		if (!((*hc) == ((NI) 0))) goto LA3_;
9420 		(*hc) = ((NI) 314159265);
9421 	}
9422 	LA3_: ;
9423 	{
9424 		NI T7_;
9425 		T7_ = (t.data ? t.data->Sup.len : 0);
9426 		if (!(T7_ == ((NI) 0))) goto LA8_;
9427 		result = ((NI) -1);
9428 		goto BeforeRet_;
9429 	}
9430 	LA8_: ;
9431 	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
9432 	h = (NI)((*hc) & T10_);
9433 	{
9434 		while (1) {
9435 			NIM_BOOL T13_;
9436 			NI T20_;
9437 			T13_ = (NIM_BOOL)0;
9438 			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
9439 			if (!T13_) goto LA12;
9440 			{
9441 				NIM_BOOL T16_;
9442 				T16_ = (NIM_BOOL)0;
9443 				T16_ = (t.data->data[h].Field0 == (*hc));
9444 				if (!(T16_)) goto LA17_;
9445 				T16_ = (t.data->data[h].Field1 == key);
9446 				LA17_: ;
9447 				if (!T16_) goto LA18_;
9448 				result = h;
9449 				goto BeforeRet_;
9450 			}
9451 			LA18_: ;
9452 			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
9453 			h = nextTry__pureZcollectionsZtables_34(h, T20_);
9454 		} LA12: ;
9455 	}
9456 	result = (NI)(((NI) -1) - h);
9457 	}BeforeRet_: ;
9458 	return result;
9459 }
N_NIMCALL(NI,getOrDefault__sigmatch_5608)9460 N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__sigmatch_5608)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key, NI default_0) {
9461 	NI result;
9462 	NI hcX60gensym888_;
9463 	NI indexX60gensym888_;
9464 	result = (NI)0;
9465 	hcX60gensym888_ = (NI)0;
9466 	indexX60gensym888_ = rawGet__sigmatch_5618(t, key, (&hcX60gensym888_));
9467 	{
9468 		if (!(((NI) 0) <= indexX60gensym888_)) goto LA3_;
9469 		result = t.data->data[indexX60gensym888_].Field2;
9470 	}
9471 	goto LA1_;
9472 	LA3_: ;
9473 	{
9474 		result = default_0;
9475 	}
9476 	LA1_: ;
9477 	return result;
9478 }
N_INLINE(NI,emarkamp___pureZhashes_3)9479 static N_INLINE(NI, emarkamp___pureZhashes_3)(NI h, NI val) {
9480 	NI result;
9481 	NU h_2;
9482 	NU val_2;
9483 	NU res;
9484 	result = (NI)0;
9485 	h_2 = ((NU) (h));
9486 	val_2 = ((NU) (val));
9487 	res = (NU)((NU64)(h_2) + (NU64)(val_2));
9488 	res = (NU)((NU64)(res) + (NU64)((NU)((NU64)(res) << (NU64)(((NI) 10)))));
9489 	res = (NU)(res ^ (NU)((NU64)(res) >> (NU64)(((NI) 6))));
9490 	result = ((NI) (res));
9491 	return result;
9492 }
N_INLINE(NI,emarkdollar___pureZhashes_18)9493 static N_INLINE(NI, emarkdollar___pureZhashes_18)(NI h) {
9494 	NI result;
9495 	NU h_2;
9496 	NU res;
9497 	result = (NI)0;
9498 	h_2 = ((NU) (h));
9499 	res = (NU)((NU64)(h_2) + (NU64)((NU)((NU64)(h_2) << (NU64)(((NI) 3)))));
9500 	res = (NU)(res ^ (NU)((NU64)(res) >> (NU64)(((NI) 11))));
9501 	res = (NU)((NU64)(res) + (NU64)((NU)((NU64)(res) << (NU64)(((NI) 15)))));
9502 	result = ((NI) (res));
9503 	return result;
9504 }
N_NIMCALL(NI,hash__sigmatch_6038)9505 N_LIB_PRIVATE N_NIMCALL(NI, hash__sigmatch_6038)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x) {
9506 	NI result;
9507 	NI T1_;
9508 	NI T2_;
9509 	result = (NI)0;
9510 	T1_ = (NI)0;
9511 	T1_ = hash__pureZhashes_128(x.Field0);
9512 	result = emarkamp___pureZhashes_3(result, T1_);
9513 	T2_ = (NI)0;
9514 	T2_ = hash__pureZhashes_128(x.Field1);
9515 	result = emarkamp___pureZhashes_3(result, T2_);
9516 	result = emarkdollar___pureZhashes_18(result);
9517 	return result;
9518 }
N_INLINE(NIM_BOOL,isFilled__pureZcollectionsZsets_38)9519 static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_38)(NI hcode) {
9520 	NIM_BOOL result;
9521 	result = (NIM_BOOL)0;
9522 	result = !((hcode == ((NI) 0)));
9523 	return result;
9524 }
N_NIMCALL(NIM_BOOL,eqeq___sigmatch_6286)9525 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___sigmatch_6286)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y) {
9526 	NIM_BOOL result;
9527 {	result = (NIM_BOOL)0;
9528 	{
9529 		if (!!((x.Field0 == y.Field0))) goto LA3_;
9530 		result = NIM_FALSE;
9531 		goto BeforeRet_;
9532 	}
9533 	LA3_: ;
9534 	{
9535 		if (!!((x.Field1 == y.Field1))) goto LA7_;
9536 		result = NIM_FALSE;
9537 		goto BeforeRet_;
9538 	}
9539 	LA7_: ;
9540 	result = NIM_TRUE;
9541 	goto BeforeRet_;
9542 	}BeforeRet_: ;
9543 	return result;
9544 }
N_INLINE(NI,nextTry__pureZcollectionsZsets_41)9545 static N_INLINE(NI, nextTry__pureZcollectionsZsets_41)(NI h, NI maxHash) {
9546 	NI result;
9547 	result = (NI)0;
9548 	result = (NI)((NI)(h + ((NI) 1)) & maxHash);
9549 	return result;
9550 }
N_INLINE(NI,rawGet__sigmatch_6031)9551 static N_INLINE(NI, rawGet__sigmatch_6031)(tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w t, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key, NI* hc) {
9552 	NI result;
9553 	NI h;
9554 	NI T10_;
9555 {	result = (NI)0;
9556 	(*hc) = hash__sigmatch_6038(key);
9557 	{
9558 		if (!((*hc) == ((NI) 0))) goto LA3_;
9559 		(*hc) = ((NI) 314159265);
9560 	}
9561 	LA3_: ;
9562 	{
9563 		NI T7_;
9564 		T7_ = (t.data ? t.data->Sup.len : 0);
9565 		if (!(T7_ == ((NI) 0))) goto LA8_;
9566 		result = ((NI) -1);
9567 		goto BeforeRet_;
9568 	}
9569 	LA8_: ;
9570 	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
9571 	h = (NI)((*hc) & T10_);
9572 	{
9573 		while (1) {
9574 			NIM_BOOL T13_;
9575 			NI T20_;
9576 			T13_ = (NIM_BOOL)0;
9577 			T13_ = isFilled__pureZcollectionsZsets_38(t.data->data[h].Field0);
9578 			if (!T13_) goto LA12;
9579 			{
9580 				NIM_BOOL T16_;
9581 				T16_ = (NIM_BOOL)0;
9582 				T16_ = (t.data->data[h].Field0 == (*hc));
9583 				if (!(T16_)) goto LA17_;
9584 				T16_ = eqeq___sigmatch_6286(t.data->data[h].Field1, key);
9585 				LA17_: ;
9586 				if (!T16_) goto LA18_;
9587 				result = h;
9588 				goto BeforeRet_;
9589 			}
9590 			LA18_: ;
9591 			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
9592 			h = nextTry__pureZcollectionsZsets_41(h, T20_);
9593 		} LA12: ;
9594 	}
9595 	result = (NI)(((NI) -1) - h);
9596 	}BeforeRet_: ;
9597 	return result;
9598 }
N_NIMCALL(NIM_BOOL,contains__sigmatch_6018)9599 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__sigmatch_6018)(tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w s, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key) {
9600 	NIM_BOOL result;
9601 	NI hc;
9602 	NI index;
9603 	result = (NIM_BOOL)0;
9604 	hc = (NI)0;
9605 	index = rawGet__sigmatch_6031(s, key, (&hc));
9606 	result = (((NI) 0) <= index);
9607 	return result;
9608 }
N_NIMCALL(void,del__sigmatch_6318)9609 N_LIB_PRIVATE N_NIMCALL(void, del__sigmatch_6318)(tySequence__xSqu3cxq5WeFlOO3YgE6yA** x, NI i) {
9610 	NI xl;
9611 	NI T1_;
9612 	T1_ = ((*x) ? (*x)->Sup.len : 0);
9613 	xl = (NI)(T1_ - ((NI) 1));
9614 	asgnRef((void**) (&(*x)->data[i].Field0), (*x)->data[xl].Field0);
9615 	(*x)->data[i].Field1 = (*x)->data[xl].Field1;
9616 	unsureAsgnRef((void**) (&(*x)), (tySequence__xSqu3cxq5WeFlOO3YgE6yA*) setLengthSeqV2(&((*x))->Sup, (&NTIseqLLpsym_tlineinfoTT__xSqu3cxq5WeFlOO3YgE6yA_), ((NI) (xl))));
9617 }
N_NIMCALL(void,markOwnerModuleAsUsed__sigmatch_89)9618 N_LIB_PRIVATE N_NIMCALL(void, markOwnerModuleAsUsed__sigmatch_89)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
9619 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
9620 	module = s;
9621 	{
9622 		while (1) {
9623 			NIM_BOOL T3_;
9624 			T3_ = (NIM_BOOL)0;
9625 			T3_ = !((module == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
9626 			if (!(T3_)) goto LA4_;
9627 			T3_ = !(((*module).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
9628 			LA4_: ;
9629 			if (!T3_) goto LA2;
9630 			module = (*module).owner;
9631 		} LA2: ;
9632 	}
9633 	{
9634 		NIM_BOOL T7_;
9635 		NI i;
9636 		T7_ = (NIM_BOOL)0;
9637 		T7_ = !((module == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
9638 		if (!(T7_)) goto LA8_;
9639 		T7_ = !((module == (*c).module));
9640 		LA8_: ;
9641 		if (!T7_) goto LA9_;
9642 		i = ((NI) 0);
9643 		{
9644 			while (1) {
9645 				NI T13_;
9646 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* candidate;
9647 				T13_ = (((*c).unusedImports ? (*c).unusedImports->Sup.len : 0)-1);
9648 				if (!(i <= T13_)) goto LA12;
9649 				candidate = (*c).unusedImports->data[i].Field0;
9650 				{
9651 					NIM_BOOL T16_;
9652 					NIM_BOOL T17_;
9653 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym887_;
9654 					NI T19_;
9655 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym892_;
9656 					tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T21_;
9657 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym893_;
9658 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym894_;
9659 					T16_ = (NIM_BOOL)0;
9660 					T17_ = (NIM_BOOL)0;
9661 					T17_ = (candidate == module);
9662 					if (T17_) goto LA18_;
9663 					xX60gensym887_ = candidate;
9664 					T19_ = (NI)0;
9665 					T19_ = getOrDefault__sigmatch_5608((*c).importModuleMap, (NI)((NI)((NU64)(((NI) ((*xX60gensym887_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym887_).Sup.itemId.item))), ((NI) (IL64(-9223372036854775807) - IL64(1))));
9666 					xX60gensym892_ = module;
9667 					T17_ = (T19_ == (NI)((NI)((NU64)(((NI) ((*xX60gensym892_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym892_).Sup.itemId.item))));
9668 					LA18_: ;
9669 					T16_ = T17_;
9670 					if (T16_) goto LA20_;
9671 					xX60gensym893_ = candidate;
9672 					T21_.Field0 = (NI)((NI)((NU64)(((NI) ((*xX60gensym893_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym893_).Sup.itemId.item)));
9673 					xX60gensym894_ = s;
9674 					T21_.Field1 = (NI)((NI)((NU64)(((NI) ((*xX60gensym894_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym894_).Sup.itemId.item)));
9675 					T16_ = contains__sigmatch_6018((*c).exportIndirections, T21_);
9676 					LA20_: ;
9677 					if (!T16_) goto LA22_;
9678 					del__sigmatch_6318((&(*c).unusedImports), ((NI) (i)));
9679 				}
9680 				goto LA14_;
9681 				LA22_: ;
9682 				{
9683 					i += ((NI) 1);
9684 				}
9685 				LA14_: ;
9686 			} LA12: ;
9687 		}
9688 	}
9689 	LA9_: ;
9690 }
N_NIMCALL(void,markUsed__sigmatch_85)9691 N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_85)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
9692 	tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf;
9693 	conf = (*(*c).graph).config;
9694 	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
9695 	{
9696 		NIM_BOOL T3_;
9697 		T3_ = (NIM_BOOL)0;
9698 		T3_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20));
9699 		if (!(T3_)) goto LA4_;
9700 		T3_ = !(((*s).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
9701 		LA4_: ;
9702 		if (!T3_) goto LA5_;
9703 		(*(*s).owner).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
9704 		{
9705 			if (!(((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 22))&63U)))!=0)) goto LA9_;
9706 			warnAboutDeprecated__sigmatch_5425(conf, info, s);
9707 		}
9708 		LA9_: ;
9709 	}
9710 	LA5_: ;
9711 	{
9712 		if (!!(((20971520 & (*s).flags) == 0))) goto LA13_;
9713 		{
9714 			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 22))&63U)))!=0)) goto LA17_;
9715 			{
9716 				NIM_BOOL T21_;
9717 				T21_ = (NIM_BOOL)0;
9718 				T21_ = ((*c).lastTLineInfo.line == info.line);
9719 				if (!(T21_)) goto LA22_;
9720 				T21_ = ((*c).lastTLineInfo.col == info.col);
9721 				LA22_: ;
9722 				if (!!(T21_)) goto LA23_;
9723 				warnAboutDeprecated__sigmatch_5425(conf, info, s);
9724 				(*c).lastTLineInfo = info;
9725 			}
9726 			LA23_: ;
9727 		}
9728 		LA17_: ;
9729 		{
9730 			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA27_;
9731 			userError__sigmatch_5458(conf, info, s);
9732 		}
9733 		LA27_: ;
9734 	}
9735 	LA13_: ;
9736 	{
9737 		if (!!(((49152 & (*conf).globalOptions) == 0))) goto LA31_;
9738 		styleCheckUse__linter_192(conf, info, s);
9739 	}
9740 	LA31_: ;
9741 	markOwnerModuleAsUsed__sigmatch_89(c, s);
9742 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newDeref__lowerings_11)9743 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__lowerings_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
9744 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
9745 	result = NIM_NIL;
9746 	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info, (*(*n).typ).sons->data[((NI) 0)]);
9747 	add__ast_4797(result, n);
9748 	return result;
9749 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,userConvMatch__sigmatch_3095)9750 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, userConvMatch__sigmatch_3095)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
9751 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
9752 {	result = NIM_NIL;
9753 	result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
9754 	{
9755 		NI i;
9756 		NI colontmp_;
9757 		NI T2_;
9758 		NI i_2;
9759 		i = (NI)0;
9760 		colontmp_ = (NI)0;
9761 		T2_ = ((*c).converters ? (*c).converters->Sup.len : 0);
9762 		colontmp_ = T2_;
9763 		i_2 = ((NI) 0);
9764 		{
9765 			while (1) {
9766 				if (!(i_2 < colontmp_)) goto LA4;
9767 				i = i_2;
9768 				{
9769 					tyObject_TType__facALICuu8zUj0hjvbTLFg* src;
9770 					tyObject_TType__facALICuu8zUj0hjvbTLFg* dest;
9771 					tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw srca;
9772 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
9773 					NIM_BOOL destIsGeneric;
9774 					tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw fdest;
9775 					src = (*(*(*c).converters->data[i]).typ).sons->data[((NI) 1)];
9776 					dest = (*(*(*c).converters->data[i]).typ).sons->data[((NI) 0)];
9777 					srca = typeRel__sigmatch_202(m, src, a, 0);
9778 					{
9779 						if (!!(((1288 &((NU16)1<<((NU)(srca)&15U)))!=0))) goto LA8_;
9780 						goto LA5;
9781 					}
9782 					LA8_: ;
9783 					constraint = (*(*(*(*(*(*c).converters->data[i]).typ).n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).constraint;
9784 					{
9785 						NIM_BOOL T12_;
9786 						NIM_BOOL T14_;
9787 						T12_ = (NIM_BOOL)0;
9788 						T12_ = !((constraint == 0));
9789 						if (!(T12_)) goto LA13_;
9790 						T14_ = (NIM_BOOL)0;
9791 						T14_ = matchNodeKinds__parampatterns_505(constraint, arg);
9792 						T12_ = !(T14_);
9793 						LA13_: ;
9794 						if (!T12_) goto LA15_;
9795 						goto LA5;
9796 					}
9797 					LA15_: ;
9798 					{
9799 						NIM_BOOL T19_;
9800 						NIM_BOOL T21_;
9801 						T19_ = (NIM_BOOL)0;
9802 						T19_ = ((*src).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*src).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
9803 						if (!(T19_)) goto LA20_;
9804 						T21_ = (NIM_BOOL)0;
9805 						T21_ = isLValue__sigmatch_3090(c, arg);
9806 						T19_ = !(T21_);
9807 						LA20_: ;
9808 						if (!T19_) goto LA22_;
9809 						goto LA5;
9810 					}
9811 					LA22_: ;
9812 					destIsGeneric = containsGenericType__types_3360(dest);
9813 					{
9814 						if (!destIsGeneric) goto LA26_;
9815 						dest = generateTypeInstance__semtypinst_1050(c, (*m).bindings, (*arg).info, dest);
9816 					}
9817 					LA26_: ;
9818 					fdest = typeRel__sigmatch_202(m, f, dest, 0);
9819 					{
9820 						NIM_BOOL T30_;
9821 						NIM_BOOL T32_;
9822 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
9823 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* param;
9824 						T30_ = (NIM_BOOL)0;
9825 						T30_ = ((1280 &((NU16)1<<((NU)(fdest)&15U)))!=0);
9826 						if (!(T30_)) goto LA31_;
9827 						T32_ = (NIM_BOOL)0;
9828 						T32_ = ((*dest).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
9829 						if (!(T32_)) goto LA33_;
9830 						T32_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
9831 						LA33_: ;
9832 						T30_ = !(T32_);
9833 						LA31_: ;
9834 						if (!T30_) goto LA34_;
9835 						markUsed__sigmatch_85(c, (*arg).info, (*c).converters->data[i]);
9836 						s = newSymNode__ast_3716((*c).converters->data[i]);
9837 						asgnRef((void**) (&(*s).typ), (*(*c).converters->data[i]).typ);
9838 						(*s).info = (*arg).info;
9839 						result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32), (*arg).info, dest);
9840 						add__ast_4797(result, s);
9841 						param = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
9842 						{
9843 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
9844 							if (!(srca == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3))) goto LA38_;
9845 							T40_ = NIM_NIL;
9846 							T40_ = copyTree__ast_4431(arg);
9847 							param = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59), src, T40_, (&(*m)), c);
9848 						}
9849 						goto LA36_;
9850 						LA38_: ;
9851 						{
9852 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
9853 							if (!((*src).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA42_;
9854 							param = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), (*arg).info, (*(*s).typ).sons->data[((NI) 1)]);
9855 							T44_ = NIM_NIL;
9856 							T44_ = copyTree__ast_4431(arg);
9857 							add__ast_4797(param, T44_);
9858 						}
9859 						goto LA36_;
9860 						LA42_: ;
9861 						{
9862 							param = copyTree__ast_4431(arg);
9863 						}
9864 						LA36_: ;
9865 						add__ast_4797(result, param);
9866 						{
9867 							if (!((*dest).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*dest).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA48_;
9868 							(*dest).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
9869 							result = newDeref__lowerings_11(result);
9870 						}
9871 						LA48_: ;
9872 						(*m).convMatches += ((NI) 1);
9873 						{
9874 							NIM_BOOL T54_;
9875 							if (!!((*m).genericConverter)) goto LA52_;
9876 							T54_ = (NIM_BOOL)0;
9877 							T54_ = (srca == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8));
9878 							if (T54_) goto LA55_;
9879 							T54_ = destIsGeneric;
9880 							LA55_: ;
9881 							(*m).genericConverter = T54_;
9882 						}
9883 						LA52_: ;
9884 						goto BeforeRet_;
9885 					}
9886 					LA34_: ;
9887 				} LA5: ;
9888 				i_2 += ((NI) 1);
9889 			} LA4: ;
9890 		}
9891 	}
9892 	}BeforeRet_: ;
9893 	return result;
9894 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,localConvMatch__sigmatch_3181)9895 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, localConvMatch__sigmatch_3181)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
9896 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
9897 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
9898 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
9899 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
9900 {	result = NIM_NIL;
9901 	{
9902 		if (!((*arg).typ == 0)) goto LA3_;
9903 		result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
9904 		goto BeforeRet_;
9905 	}
9906 	LA3_: ;
9907 	{
9908 		NIM_BOOL T7_;
9909 		T7_ = (NIM_BOOL)0;
9910 		T7_ = (f == (*arg).typ);
9911 		if (!(T7_)) goto LA8_;
9912 		T7_ = ((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58));
9913 		LA8_: ;
9914 		if (!T7_) goto LA9_;
9915 		result = arg;
9916 		goto BeforeRet_;
9917 	}
9918 	LA9_: ;
9919 	call = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*arg).info);
9920 	T11_ = NIM_NIL;
9921 	T11_ = copyTree__ast_4431((*f).n);
9922 	add__ast_4797(call, T11_);
9923 	T12_ = NIM_NIL;
9924 	T12_ = copyTree__ast_4431(arg);
9925 	add__ast_4797(call, T12_);
9926 	result = (*c).semTryExpr(c, call, 131072);
9927 	{
9928 		tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw r;
9929 		if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA15_;
9930 		{
9931 			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA19_;
9932 			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
9933 			goto BeforeRet_;
9934 		}
9935 		LA19_: ;
9936 		result = (*c).semExpr(c, call, 0);
9937 		r = typeRel__sigmatch_202(m, (*f).sons->data[((NI) 0)], (*result).typ, 0);
9938 		{
9939 			if (!(r < ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8))) goto LA23_;
9940 			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
9941 			goto BeforeRet_;
9942 		}
9943 		LA23_: ;
9944 		{
9945 			if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27))) goto LA27_;
9946 			transitionSonsKind__ast_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 32));
9947 		}
9948 		LA27_: ;
9949 		(*m).convMatches += ((NI) 1);
9950 		{
9951 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T33_;
9952 			if (!(r == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8))) goto LA31_;
9953 			T33_ = NIM_NIL;
9954 			T33_ = base__types_63(f);
9955 			asgnRef((void**) (&(*result).typ), getInstantiatedType__sigmatch_3053(c, arg, (&(*m)), T33_));
9956 		}
9957 		LA31_: ;
9958 		(*m).baseTypeMatch = NIM_TRUE;
9959 	}
9960 	LA15_: ;
9961 	}BeforeRet_: ;
9962 	return result;
9963 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,paramTypesMatchAux__sigmatch_3268)9964 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, paramTypesMatchAux__sigmatch_3268)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argSemantized, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argOrig) {
9965 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
9966 	tyObject_TType__facALICuu8zUj0hjvbTLFg* fMaybeStatic;
9967 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
9968 	tyObject_TType__facALICuu8zUj0hjvbTLFg* a_2;
9969 	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
9970 	NI oldInheritancePenalty;
9971 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw r;
9972 	NI bothMetaCounter;
9973 	NI lastBindingsLength;
9974 {	result = NIM_NIL;
9975 	fMaybeStatic = skipTypes__ast_3735(f, TM__EV5hHJmjIY9cla9b9be7fSVJQ_13);
9976 	arg = argSemantized;
9977 	a_2 = a;
9978 	c = (*m).c;
9979 	{
9980 		if (!(((*fMaybeStatic).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 24))&63U)))!=0)) goto LA3_;
9981 		{
9982 			NIM_BOOL T7_;
9983 			T7_ = (NIM_BOOL)0;
9984 			T7_ = ((*a_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
9985 			if (!(T7_)) goto LA8_;
9986 			T7_ = (((*a_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0);
9987 			LA8_: ;
9988 			if (!T7_) goto LA9_;
9989 			assignType__ast_3976(a_2, f);
9990 			result = argSemantized;
9991 			goto BeforeRet_;
9992 		}
9993 		LA9_: ;
9994 		{
9995 			if (!((*a_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA13_;
9996 			{
9997 				NIM_BOOL T17_;
9998 				NIM_BOOL T18_;
9999 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T23_;
10000 				T17_ = (NIM_BOOL)0;
10001 				T18_ = (NIM_BOOL)0;
10002 				T18_ = ((*(*m).callee).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10));
10003 				if (!(T18_)) goto LA19_;
10004 				T18_ = ((*a_2).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
10005 				LA19_: ;
10006 				T17_ = T18_;
10007 				if (!(T17_)) goto LA20_;
10008 				T17_ = !((((*a_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 25))&63U)))!=0));
10009 				LA20_: ;
10010 				if (!T17_) goto LA21_;
10011 				T23_ = NIM_NIL;
10012 				T23_ = makeTypeFromExpr__semdata_804(c, arg);
10013 				result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*argOrig).info, T23_);
10014 				goto BeforeRet_;
10015 			}
10016 			LA21_: ;
10017 		}
10018 		goto LA11_;
10019 		LA13_: ;
10020 		{
10021 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated;
10022 			evaluated = (*c).semTryConstExpr(c, arg);
10023 			{
10024 				tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
10025 				if (!!((evaluated == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA27_;
10026 				typ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), c);
10027 				if ((*typ).sons) { nimGCunrefRC1((*typ).sons); (*typ).sons = NIM_NIL; }
10028 				(*typ).sons = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeqRC1((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
10029 				asgnRef((void**) (&(*typ).sons->data[0]), (*evaluated).typ);
10030 				asgnRef((void**) (&(*typ).n), evaluated);
10031 				arg = copyTree__ast_4431(arg);
10032 				asgnRef((void**) (&(*arg).typ), typ);
10033 				a_2 = typ;
10034 			}
10035 			goto LA25_;
10036 			LA27_: ;
10037 			{
10038 				{
10039 					if (!((*(*m).callee).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA32_;
10040 					{
10041 						NIM_BOOL T36_;
10042 						tyObject_TType__facALICuu8zUj0hjvbTLFg* T38_;
10043 						tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T39_;
10044 						T36_ = (NIM_BOOL)0;
10045 						T36_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
10046 						if (!(T36_)) goto LA37_;
10047 						T38_ = NIM_NIL;
10048 						T38_ = base__types_63(f);
10049 						T39_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
10050 						T39_ = typeRel__sigmatch_202(m, T38_, a_2, 0);
10051 						T36_ = !((T39_ == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)));
10052 						LA37_: ;
10053 						if (!T36_) goto LA40_;
10054 						result = makeStaticExpr__semdata_826((*m).c, arg);
10055 						(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
10056 						asgnRef((void**) (&(*(*result).typ).n), arg);
10057 						goto BeforeRet_;
10058 					}
10059 					LA40_: ;
10060 				}
10061 				LA32_: ;
10062 			}
10063 			LA25_: ;
10064 		}
10065 		LA11_: ;
10066 	}
10067 	LA3_: ;
10068 	oldInheritancePenalty = (*m).inheritancePenalty;
10069 	r = typeRel__sigmatch_202(m, f, a_2, 0);
10070 	{
10071 		NIM_BOOL T44_;
10072 		NIM_BOOL T45_;
10073 		T44_ = (NIM_BOOL)0;
10074 		T45_ = (NIM_BOOL)0;
10075 		T45_ = !((r == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)));
10076 		if (!(T45_)) goto LA46_;
10077 		T45_ = !(((*m).calleeSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
10078 		LA46_: ;
10079 		T44_ = T45_;
10080 		if (!(T44_)) goto LA47_;
10081 		T44_ = ((393216 &((NU32)1<<((NU)((*(*m).calleeSym).kind)&31U)))!=0);
10082 		LA47_: ;
10083 		if (!T44_) goto LA48_;
10084 		incMatches__sigmatch_3238(m, r, ((NI) 1));
10085 		{
10086 			if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7))) goto LA52_;
10087 			result = arg;
10088 			goto BeforeRet_;
10089 		}
10090 		goto LA50_;
10091 		LA52_: ;
10092 		{
10093 			if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA55_;
10094 			result = arg;
10095 			goto BeforeRet_;
10096 		}
10097 		goto LA50_;
10098 		LA55_: ;
10099 		{
10100 			NIM_BOOL T58_;
10101 			T58_ = (NIM_BOOL)0;
10102 			T58_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
10103 			if (!(T58_)) goto LA59_;
10104 			T58_ = !(((*(*arg).typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
10105 			LA59_: ;
10106 			if (!T58_) goto LA60_;
10107 			result = (*(*arg).typ).n;
10108 			goto BeforeRet_;
10109 		}
10110 		goto LA50_;
10111 		LA60_: ;
10112 		{
10113 			result = argSemantized;
10114 			goto BeforeRet_;
10115 		}
10116 		LA50_: ;
10117 	}
10118 	LA48_: ;
10119 	bothMetaCounter = ((NI) 0);
10120 	lastBindingsLength = ((NI) -1);
10121 	{
10122 		while (1) {
10123 			NIM_BOOL T65_;
10124 			NIM_BOOL T66_;
10125 			T65_ = (NIM_BOOL)0;
10126 			T66_ = (NIM_BOOL)0;
10127 			T66_ = (r == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 5));
10128 			if (!(T66_)) goto LA67_;
10129 			T66_ = !((lastBindingsLength == (*m).bindings.counter));
10130 			LA67_: ;
10131 			T65_ = T66_;
10132 			if (!(T65_)) goto LA68_;
10133 			T65_ = (bothMetaCounter < ((NI) 100));
10134 			LA68_: ;
10135 			if (!T65_) goto LA64;
10136 			lastBindingsLength = (*m).bindings.counter;
10137 			bothMetaCounter += ((NI) 1);
10138 			{
10139 				if (!((*arg).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) && (*arg).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159))) goto LA71_;
10140 				result = (*c).semInferredLambda.ClE_0? (*c).semInferredLambda.ClP_0(c, (*m).bindings, arg, (*c).semInferredLambda.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_47)((*c).semInferredLambda.ClP_0))(c, (*m).bindings, arg);
10141 			}
10142 			goto LA69_;
10143 			LA71_: ;
10144 			{
10145 				if (!!(((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA74_;
10146 				result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
10147 				goto BeforeRet_;
10148 			}
10149 			goto LA69_;
10150 			LA74_: ;
10151 			{
10152 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* inferred;
10153 				inferred = (*c).semGenerateInstance.ClE_0? (*c).semGenerateInstance.ClP_0(c, (*arg)._kind_4.sym, (*m).bindings, (*arg).info, (*c).semGenerateInstance.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_48)((*c).semGenerateInstance.ClP_0))(c, (*arg)._kind_4.sym, (*m).bindings, (*arg).info);
10154 				result = newSymNode__ast_3719(inferred, (*arg).info);
10155 			}
10156 			LA69_: ;
10157 			(*m).convMatches += ((NI) 1);
10158 			arg = result;
10159 			r = typeRel__sigmatch_202(m, f, (*arg).typ, 0);
10160 		} LA64: ;
10161 	}
10162 	switch (r) {
10163 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 1):
10164 	{
10165 		(*m).convMatches += ((NI) 1);
10166 		result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), f, arg, (&(*m)), c);
10167 	}
10168 	break;
10169 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 2):
10170 	{
10171 		(*m).intConvMatches += ((NI) 1);
10172 		result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), f, arg, (&(*m)), c);
10173 	}
10174 	break;
10175 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3):
10176 	{
10177 		(*m).subtypeMatches += ((NI) 1);
10178 		{
10179 			if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA82_;
10180 			result = arg;
10181 		}
10182 		goto LA80_;
10183 		LA82_: ;
10184 		{
10185 			result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59), f, arg, (&(*m)), c);
10186 		}
10187 		LA80_: ;
10188 	}
10189 	break;
10190 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 4):
10191 	{
10192 		(*m).subtypeMatches += ((NI) 1);
10193 		{
10194 			if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA88_;
10195 			result = arg;
10196 		}
10197 		goto LA86_;
10198 		LA88_: ;
10199 		{
10200 			result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), f, arg, (&(*m)), c);
10201 		}
10202 		LA86_: ;
10203 	}
10204 	break;
10205 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 6):
10206 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 7):
10207 	{
10208 		{
10209 			if (!((*arg).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) && (*arg).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159))) goto LA94_;
10210 			result = (*c).semInferredLambda.ClE_0? (*c).semInferredLambda.ClP_0(c, (*m).bindings, arg, (*c).semInferredLambda.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_54)((*c).semInferredLambda.ClP_0))(c, (*m).bindings, arg);
10211 		}
10212 		goto LA92_;
10213 		LA94_: ;
10214 		{
10215 			if (!!(((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA97_;
10216 			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
10217 			goto BeforeRet_;
10218 		}
10219 		goto LA92_;
10220 		LA97_: ;
10221 		{
10222 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* inferred_2;
10223 			inferred_2 = (*c).semGenerateInstance.ClE_0? (*c).semGenerateInstance.ClP_0(c, (*arg)._kind_4.sym, (*m).bindings, (*arg).info, (*c).semGenerateInstance.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_55)((*c).semGenerateInstance.ClP_0))(c, (*arg)._kind_4.sym, (*m).bindings, (*arg).info);
10224 			result = newSymNode__ast_3719(inferred_2, (*arg).info);
10225 		}
10226 		LA92_: ;
10227 		{
10228 			if (!(r == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 7))) goto LA102_;
10229 			(*m).convMatches += ((NI) 1);
10230 			result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), f, result, (&(*m)), c);
10231 		}
10232 		goto LA100_;
10233 		LA102_: ;
10234 		{
10235 			(*m).genericMatches += ((NI) 1);
10236 		}
10237 		LA100_: ;
10238 	}
10239 	break;
10240 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8):
10241 	{
10242 		(*m).genericMatches += ((NI) 1);
10243 		{
10244 			if (!((*arg).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA108_;
10245 			result = arg;
10246 		}
10247 		goto LA106_;
10248 		LA108_: ;
10249 		{
10250 			NIM_BOOL T111_;
10251 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T112_;
10252 			T111_ = (NIM_BOOL)0;
10253 			T112_ = NIM_NIL;
10254 			T112_ = skipTypes__ast_3735((*arg).typ, TM__EV5hHJmjIY9cla9b9be7fSVJQ_56);
10255 			T111_ = ((*T112_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
10256 			if (T111_) goto LA113_;
10257 			T111_ = (oldInheritancePenalty < (*m).inheritancePenalty);
10258 			LA113_: ;
10259 			if (!T111_) goto LA114_;
10260 			result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59), f, arg, (&(*m)), c);
10261 		}
10262 		goto LA106_;
10263 		LA114_: ;
10264 		{
10265 			NIM_BOOL T117_;
10266 			T117_ = (NIM_BOOL)0;
10267 			T117_ = isEmptyContainer__types_3626((*arg).typ);
10268 			if (!T117_) goto LA118_;
10269 			result = copyTree__ast_4431(arg);
10270 			asgnRef((void**) (&(*result).typ), getInstantiatedType__sigmatch_3053(c, arg, (&(*m)), f));
10271 		}
10272 		goto LA106_;
10273 		LA118_: ;
10274 		{
10275 			result = arg;
10276 		}
10277 		LA106_: ;
10278 	}
10279 	break;
10280 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 5):
10281 	{
10282 		result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
10283 	}
10284 	break;
10285 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 9):
10286 	{
10287 		(*m).intConvMatches += ((NI) 256);
10288 		result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), f, arg, (&(*m)), c);
10289 	}
10290 	break;
10291 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10):
10292 	{
10293 		(*m).exactMatches += ((NI) 1);
10294 		result = arg;
10295 		{
10296 			NIM_BOOL T126_;
10297 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T127_;
10298 			NIM_BOOL T129_;
10299 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T131_;
10300 			T126_ = (NIM_BOOL)0;
10301 			T127_ = NIM_NIL;
10302 			T127_ = skipTypes__ast_3735(f, TM__EV5hHJmjIY9cla9b9be7fSVJQ_56);
10303 			T126_ = ((*T127_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
10304 			if (T126_) goto LA128_;
10305 			T129_ = (NIM_BOOL)0;
10306 			T129_ = !(((*arg).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
10307 			if (!(T129_)) goto LA130_;
10308 			T131_ = NIM_NIL;
10309 			T131_ = skipTypes__ast_3735((*arg).typ, TM__EV5hHJmjIY9cla9b9be7fSVJQ_56);
10310 			T129_ = ((*T131_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
10311 			LA130_: ;
10312 			T126_ = T129_;
10313 			LA128_: ;
10314 			if (!T126_) goto LA132_;
10315 			result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59), f, arg, (&(*m)), c);
10316 		}
10317 		LA132_: ;
10318 	}
10319 	break;
10320 	case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0):
10321 	{
10322 		{
10323 			if (!((*a_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50) || (*a_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61))) goto LA137_;
10324 			(*m).genericMatches += ((NI) 1);
10325 			(*m).fauxMatch = (*a_2).kind;
10326 			result = arg;
10327 			goto BeforeRet_;
10328 		}
10329 		goto LA135_;
10330 		LA137_: ;
10331 		{
10332 			NIM_BOOL T140_;
10333 			NIM_BOOL T141_;
10334 			NIM_BOOL T143_;
10335 			NIM_BOOL T144_;
10336 			NIM_BOOL T145_;
10337 			NI T147_;
10338 			NIM_BOOL T150_;
10339 			tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* p;
10340 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lifted;
10341 			tyArray__jlWPjgtbdjE069arIWHC9c9bg T155_;
10342 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T156_;
10343 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T157_;
10344 			T140_ = (NIM_BOOL)0;
10345 			T141_ = (NIM_BOOL)0;
10346 			T141_ = ((*a_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63));
10347 			if (!(T141_)) goto LA142_;
10348 			T143_ = (NIM_BOOL)0;
10349 			T144_ = (NIM_BOOL)0;
10350 			T145_ = (NIM_BOOL)0;
10351 			T145_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
10352 			if (!(T145_)) goto LA146_;
10353 			T147_ = (NI)0;
10354 			T147_ = len__ast_4002(f);
10355 			T145_ = (T147_ == ((NI) 1));
10356 			LA146_: ;
10357 			T144_ = T145_;
10358 			if (!(T144_)) goto LA148_;
10359 			T144_ = ((*f).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
10360 			LA148_: ;
10361 			T143_ = T144_;
10362 			if (T143_) goto LA149_;
10363 			T150_ = (NIM_BOOL)0;
10364 			T150_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51));
10365 			if (!(T150_)) goto LA151_;
10366 			T150_ = ((*(*f).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
10367 			LA151_: ;
10368 			T143_ = T150_;
10369 			LA149_: ;
10370 			T141_ = T143_;
10371 			LA142_: ;
10372 			T140_ = T141_;
10373 			if (!(T140_)) goto LA152_;
10374 			T140_ = ((*argOrig).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
10375 			LA152_: ;
10376 			if (!T140_) goto LA153_;
10377 			p = (*c).graph;
10378 			nimZeroMem((void*)T155_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
10379 			T155_[0] = (*p).emptyNode;
10380 			T156_ = NIM_NIL;
10381 			T156_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), T155_, 1);
10382 			T157_ = NIM_NIL;
10383 			T157_ = newProcNode__ast_3821(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52), (*argOrig).info, argOrig, T156_, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode, (*p).emptyNode);
10384 			lifted = (*c).semExpr(c, T157_, 0);
10385 			{
10386 				if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51))) goto LA160_;
10387 				(*m).genericMatches += ((NI) 1);
10388 				put__sigmatch_120(m, f, (*lifted).typ);
10389 			}
10390 			LA160_: ;
10391 			(*m).convMatches += ((NI) 1);
10392 			result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), f, lifted, (&(*m)), c);
10393 			goto BeforeRet_;
10394 		}
10395 		goto LA135_;
10396 		LA153_: ;
10397 		LA135_: ;
10398 		result = userConvMatch__sigmatch_3095(c, m, f, a_2, arg);
10399 		{
10400 			NIM_BOOL T164_;
10401 			T164_ = (NIM_BOOL)0;
10402 			T164_ = (result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
10403 			if (!(T164_)) goto LA165_;
10404 			T164_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48));
10405 			LA165_: ;
10406 			if (!T164_) goto LA166_;
10407 			{
10408 				if (!!(((*f).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA170_;
10409 				result = localConvMatch__sigmatch_3181(c, m, f, a_2, arg);
10410 			}
10411 			goto LA168_;
10412 			LA170_: ;
10413 			{
10414 				tyObject_TType__facALICuu8zUj0hjvbTLFg* T173_;
10415 				T173_ = NIM_NIL;
10416 				T173_ = base__types_63(f);
10417 				r = typeRel__sigmatch_202(m, T173_, a_2, 0);
10418 				switch (r) {
10419 				case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8):
10420 				{
10421 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T175_;
10422 					(*m).convMatches += ((NI) 1);
10423 					result = copyTree__ast_4431(arg);
10424 					T175_ = NIM_NIL;
10425 					T175_ = base__types_63(f);
10426 					asgnRef((void**) (&(*result).typ), getInstantiatedType__sigmatch_3053(c, arg, (&(*m)), T175_));
10427 					(*m).baseTypeMatch = NIM_TRUE;
10428 				}
10429 				break;
10430 				case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 9):
10431 				{
10432 					(*m).intConvMatches += ((NI) 256);
10433 					result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), (*f).sons->data[((NI) 0)], arg, (&(*m)), c);
10434 					(*m).baseTypeMatch = NIM_TRUE;
10435 				}
10436 				break;
10437 				case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 10):
10438 				{
10439 					(*m).convMatches += ((NI) 1);
10440 					result = copyTree__ast_4431(arg);
10441 					(*m).baseTypeMatch = NIM_TRUE;
10442 				}
10443 				break;
10444 				case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3):
10445 				{
10446 					(*m).subtypeMatches += ((NI) 1);
10447 					{
10448 						tyObject_TType__facALICuu8zUj0hjvbTLFg* T181_;
10449 						T181_ = NIM_NIL;
10450 						T181_ = base__types_63(f);
10451 						if (!((*T181_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA182_;
10452 						result = arg;
10453 					}
10454 					goto LA179_;
10455 					LA182_: ;
10456 					{
10457 						tyObject_TType__facALICuu8zUj0hjvbTLFg* T185_;
10458 						T185_ = NIM_NIL;
10459 						T185_ = base__types_63(f);
10460 						result = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59), T185_, arg, (&(*m)), c);
10461 					}
10462 					LA179_: ;
10463 					(*m).baseTypeMatch = NIM_TRUE;
10464 				}
10465 				break;
10466 				default:
10467 				{
10468 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T187_;
10469 					T187_ = NIM_NIL;
10470 					T187_ = base__types_63(f);
10471 					result = userConvMatch__sigmatch_3095(c, m, T187_, a_2, arg);
10472 					{
10473 						if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA190_;
10474 						(*m).baseTypeMatch = NIM_TRUE;
10475 					}
10476 					LA190_: ;
10477 				}
10478 				break;
10479 				}
10480 			}
10481 			LA168_: ;
10482 		}
10483 		LA166_: ;
10484 	}
10485 	break;
10486 	}
10487 	}BeforeRet_: ;
10488 	return result;
10489 }
N_NIMCALL(void,copyCandidate__sigmatch_199)10490 N_LIB_PRIVATE N_NIMCALL(void, copyCandidate__sigmatch_199)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* b) {
10491 	unsureAsgnRef((void**) (&(*a).c), (*b).c);
10492 	(*a).exactMatches = (*b).exactMatches;
10493 	(*a).subtypeMatches = (*b).subtypeMatches;
10494 	(*a).convMatches = (*b).convMatches;
10495 	(*a).intConvMatches = (*b).intConvMatches;
10496 	(*a).genericMatches = (*b).genericMatches;
10497 	(*a).state = (*b).state;
10498 	unsureAsgnRef((void**) (&(*a).callee), (*b).callee);
10499 	unsureAsgnRef((void**) (&(*a).calleeSym), (*b).calleeSym);
10500 	unsureAsgnRef((void**) (&(*a).call), copyTree__ast_4431((*b).call));
10501 	(*a).baseTypeMatch = (*b).baseTypeMatch;
10502 	copyIdTable__ast_3610((&(*a).bindings), (*b).bindings);
10503 }
N_NIMCALL(NI,checkGeneric__sigmatch_207)10504 N_LIB_PRIVATE N_NIMCALL(NI, checkGeneric__sigmatch_207)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* b) {
10505 	NI result;
10506 	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
10507 	tyObject_TType__facALICuu8zUj0hjvbTLFg* aa;
10508 	tyObject_TType__facALICuu8zUj0hjvbTLFg* bb;
10509 	NI winner;
10510 {	result = (NI)0;
10511 	c = (*a).c;
10512 	aa = (*a).callee;
10513 	bb = (*b).callee;
10514 	winner = ((NI) 0);
10515 	{
10516 		NI i;
10517 		NI colontmp_;
10518 		NI T2_;
10519 		NI T3_;
10520 		NI i_2;
10521 		i = (NI)0;
10522 		colontmp_ = (NI)0;
10523 		T2_ = (NI)0;
10524 		T2_ = len__ast_4002(aa);
10525 		T3_ = (NI)0;
10526 		T3_ = len__ast_4002(bb);
10527 		colontmp_ = ((T2_ <= T3_) ? T2_ : T3_);
10528 		i_2 = ((NI) 1);
10529 		{
10530 			while (1) {
10531 				tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA ma;
10532 				tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw tra;
10533 				tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA mb;
10534 				tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw trb;
10535 				if (!(i_2 < colontmp_)) goto LA5;
10536 				i = i_2;
10537 				nimZeroMem((void*)(&ma), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
10538 				newCandidate__sigmatch_195(c, (*bb).sons->data[i], (&ma));
10539 				tra = typeRel__sigmatch_202((&ma), (*bb).sons->data[i], (*aa).sons->data[i], 1);
10540 				nimZeroMem((void*)(&mb), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
10541 				newCandidate__sigmatch_195(c, (*aa).sons->data[i], (&mb));
10542 				trb = typeRel__sigmatch_202((&mb), (*aa).sons->data[i], (*bb).sons->data[i], 1);
10543 				{
10544 					NIM_BOOL T8_;
10545 					T8_ = (NIM_BOOL)0;
10546 					T8_ = (tra == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8));
10547 					if (!(T8_)) goto LA9_;
10548 					T8_ = (trb == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0));
10549 					LA9_: ;
10550 					if (!T8_) goto LA10_;
10551 					{
10552 						if (!(winner == ((NI) -1))) goto LA14_;
10553 						result = ((NI) 0);
10554 						goto BeforeRet_;
10555 					}
10556 					LA14_: ;
10557 					winner = ((NI) 1);
10558 				}
10559 				LA10_: ;
10560 				{
10561 					NIM_BOOL T18_;
10562 					T18_ = (NIM_BOOL)0;
10563 					T18_ = (trb == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8));
10564 					if (!(T18_)) goto LA19_;
10565 					T18_ = (tra == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0));
10566 					LA19_: ;
10567 					if (!T18_) goto LA20_;
10568 					{
10569 						if (!(winner == ((NI) 1))) goto LA24_;
10570 						result = ((NI) 0);
10571 						goto BeforeRet_;
10572 					}
10573 					LA24_: ;
10574 					winner = ((NI) -1);
10575 				}
10576 				LA20_: ;
10577 				i_2 += ((NI) 1);
10578 			} LA5: ;
10579 		}
10580 	}
10581 	result = winner;
10582 	}BeforeRet_: ;
10583 	return result;
10584 }
N_NIMCALL(NI,sumGeneric__sigmatch_261)10585 N_LIB_PRIVATE N_NIMCALL(NI, sumGeneric__sigmatch_261)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
10586 	NI result;
10587 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
10588 	NI isvar;
10589 {	result = (NI)0;
10590 	t_2 = t;
10591 	isvar = ((NI) 1);
10592 	{
10593 		while (1) {
10594 			switch ((*t_2).kind) {
10595 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
10596 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
10597 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
10598 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
10599 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
10600 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
10601 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
10602 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
10603 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
10604 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
10605 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
10606 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
10607 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
10608 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
10609 			{
10610 				t_2 = lastSon__ast_3743(t_2);
10611 				result += ((NI) 1);
10612 			}
10613 			break;
10614 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
10615 			{
10616 				NI maxBranch;
10617 				maxBranch = ((NI) 0);
10618 				{
10619 					tyObject_TType__facALICuu8zUj0hjvbTLFg** branch;
10620 					NI i;
10621 					NI L;
10622 					NI T6_;
10623 					branch = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
10624 					i = ((NI) 0);
10625 					T6_ = ((*t_2).sons ? (*t_2).sons->Sup.len : 0);
10626 					L = T6_;
10627 					{
10628 						while (1) {
10629 							NI branchSum;
10630 							if (!(i < L)) goto LA8;
10631 							branch = &(*t_2).sons->data[i];
10632 							branchSum = sumGeneric__sigmatch_261((*branch));
10633 							{
10634 								if (!(maxBranch < branchSum)) goto LA11_;
10635 								maxBranch = branchSum;
10636 							}
10637 							LA11_: ;
10638 							i += ((NI) 1);
10639 						} LA8: ;
10640 					}
10641 				}
10642 				result += maxBranch;
10643 				goto LA1;
10644 			}
10645 			break;
10646 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
10647 			{
10648 				t_2 = (*t_2).sons->data[((NI) 0)];
10649 				result += ((NI) 1);
10650 				isvar += ((NI) 1);
10651 			}
10652 			break;
10653 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
10654 			{
10655 				t_2 = lastSon__ast_3743(t_2);
10656 				{
10657 					if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3))) goto LA17_;
10658 					goto LA1;
10659 				}
10660 				LA17_: ;
10661 				result += ((NI) 1);
10662 			}
10663 			break;
10664 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
10665 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
10666 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
10667 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
10668 			{
10669 				result += ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9) || (*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56));
10670 				{
10671 					NI i_2;
10672 					NI colontmp_;
10673 					NI i_3;
10674 					i_2 = (NI)0;
10675 					colontmp_ = (NI)0;
10676 					colontmp_ = len__ast_4002(t_2);
10677 					i_3 = ((NI) 0);
10678 					{
10679 						while (1) {
10680 							if (!(i_3 < colontmp_)) goto LA22;
10681 							i_2 = i_3;
10682 							{
10683 								NI T27_;
10684 								if (!!(((*t_2).sons->data[i_2] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA25_;
10685 								T27_ = (NI)0;
10686 								T27_ = sumGeneric__sigmatch_261((*t_2).sons->data[i_2]);
10687 								result += T27_;
10688 							}
10689 							LA25_: ;
10690 							i_3 += ((NI) 1);
10691 						} LA22: ;
10692 					}
10693 				}
10694 				goto LA1;
10695 			}
10696 			break;
10697 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
10698 			{
10699 				NI T29_;
10700 				T29_ = (NI)0;
10701 				T29_ = sumGeneric__sigmatch_261((*t_2).sons->data[((NI) 0)]);
10702 				result = (NI)(T29_ + ((NI) 1));
10703 				goto BeforeRet_;
10704 			}
10705 			break;
10706 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
10707 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
10708 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
10709 			{
10710 				goto LA1;
10711 			}
10712 			break;
10713 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
10714 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
10715 			{
10716 				t_2 = lastSon__ast_3743(t_2);
10717 			}
10718 			break;
10719 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
10720 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
10721 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
10722 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
10723 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
10724 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
10725 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
10726 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
10727 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
10728 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
10729 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
10730 			{
10731 				result = isvar;
10732 				goto BeforeRet_;
10733 			}
10734 			break;
10735 			default:
10736 			{
10737 				result = ((NI) 0);
10738 				goto BeforeRet_;
10739 			}
10740 			break;
10741 			}
10742 		}
10743 	} LA1: ;
10744 	}BeforeRet_: ;
10745 	return result;
10746 }
N_NIMCALL(NI,complexDisambiguation__sigmatch_336)10747 N_LIB_PRIVATE N_NIMCALL(NI, complexDisambiguation__sigmatch_336)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b) {
10748 	NI result;
10749 	NI winner;
10750 {	result = (NI)0;
10751 	winner = ((NI) 0);
10752 	{
10753 		NI i;
10754 		NI colontmp_;
10755 		NI T2_;
10756 		NI T3_;
10757 		NI i_2;
10758 		i = (NI)0;
10759 		colontmp_ = (NI)0;
10760 		T2_ = (NI)0;
10761 		T2_ = len__ast_4002(a);
10762 		T3_ = (NI)0;
10763 		T3_ = len__ast_4002(b);
10764 		colontmp_ = ((T2_ <= T3_) ? T2_ : T3_);
10765 		i_2 = ((NI) 1);
10766 		{
10767 			while (1) {
10768 				NI x;
10769 				NI y;
10770 				if (!(i_2 < colontmp_)) goto LA5;
10771 				i = i_2;
10772 				x = sumGeneric__sigmatch_261((*a).sons->data[i]);
10773 				y = sumGeneric__sigmatch_261((*b).sons->data[i]);
10774 				{
10775 					if (!!((x == y))) goto LA8_;
10776 					{
10777 						if (!(winner == ((NI) 0))) goto LA12_;
10778 						{
10779 							if (!(y < x)) goto LA16_;
10780 							winner = ((NI) 1);
10781 						}
10782 						goto LA14_;
10783 						LA16_: ;
10784 						{
10785 							winner = ((NI) -1);
10786 						}
10787 						LA14_: ;
10788 					}
10789 					goto LA10_;
10790 					LA12_: ;
10791 					{
10792 						if (!(y < x)) goto LA20_;
10793 						{
10794 							if (!!((winner == ((NI) 1)))) goto LA24_;
10795 							result = ((NI) 0);
10796 							goto BeforeRet_;
10797 						}
10798 						LA24_: ;
10799 					}
10800 					goto LA10_;
10801 					LA20_: ;
10802 					{
10803 						{
10804 							if (!!((winner == ((NI) -1)))) goto LA29_;
10805 							result = ((NI) 0);
10806 							goto BeforeRet_;
10807 						}
10808 						LA29_: ;
10809 					}
10810 					LA10_: ;
10811 				}
10812 				LA8_: ;
10813 				i_2 += ((NI) 1);
10814 			} LA5: ;
10815 		}
10816 	}
10817 	result = winner;
10818 	}BeforeRet_: ;
10819 	return result;
10820 }
N_NIMCALL(NI,cmpCandidates__sigmatch_358)10821 N_LIB_PRIVATE N_NIMCALL(NI, cmpCandidates__sigmatch_358)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* b) {
10822 	NI result;
10823 {	result = (NI)0;
10824 	result = (NI)((*a).exactMatches - (*b).exactMatches);
10825 	{
10826 		if (!!((result == ((NI) 0)))) goto LA3_;
10827 		goto BeforeRet_;
10828 	}
10829 	LA3_: ;
10830 	result = (NI)((*a).genericMatches - (*b).genericMatches);
10831 	{
10832 		if (!!((result == ((NI) 0)))) goto LA7_;
10833 		goto BeforeRet_;
10834 	}
10835 	LA7_: ;
10836 	result = (NI)((*a).subtypeMatches - (*b).subtypeMatches);
10837 	{
10838 		if (!!((result == ((NI) 0)))) goto LA11_;
10839 		goto BeforeRet_;
10840 	}
10841 	LA11_: ;
10842 	result = (NI)((*a).intConvMatches - (*b).intConvMatches);
10843 	{
10844 		if (!!((result == ((NI) 0)))) goto LA15_;
10845 		goto BeforeRet_;
10846 	}
10847 	LA15_: ;
10848 	result = (NI)((*a).convMatches - (*b).convMatches);
10849 	{
10850 		if (!!((result == ((NI) 0)))) goto LA19_;
10851 		goto BeforeRet_;
10852 	}
10853 	LA19_: ;
10854 	result = (NI)((*b).inheritancePenalty - (*a).inheritancePenalty);
10855 	{
10856 		if (!!((result == ((NI) 0)))) goto LA23_;
10857 		goto BeforeRet_;
10858 	}
10859 	LA23_: ;
10860 	result = checkGeneric__sigmatch_207(a, b);
10861 	{
10862 		if (!!((result == ((NI) 0)))) goto LA27_;
10863 		goto BeforeRet_;
10864 	}
10865 	LA27_: ;
10866 	result = complexDisambiguation__sigmatch_336((*a).callee, (*b).callee);
10867 	{
10868 		if (!!((result == ((NI) 0)))) goto LA31_;
10869 		goto BeforeRet_;
10870 	}
10871 	LA31_: ;
10872 	result = (NI)((*a).calleeScope - (*b).calleeScope);
10873 	}BeforeRet_: ;
10874 	return result;
10875 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,paramTypesMatch__sigmatch_3583)10876 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, paramTypesMatch__sigmatch_3583)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argOrig) {
10877 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
10878 	result = NIM_NIL;
10879 	{
10880 		NIM_BOOL T3_;
10881 		T3_ = (NIM_BOOL)0;
10882 		T3_ = (arg == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
10883 		if (T3_) goto LA4_;
10884 		T3_ = !(((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57)));
10885 		LA4_: ;
10886 		if (!T3_) goto LA5_;
10887 		result = paramTypesMatchAux__sigmatch_3268(m, f, a, arg, argOrig);
10888 	}
10889 	goto LA1_;
10890 	LA5_: ;
10891 	{
10892 		tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
10893 		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA x;
10894 		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA T8_;
10895 		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA y;
10896 		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA T9_;
10897 		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA z;
10898 		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA T10_;
10899 		NI best;
10900 		c = (*m).c;
10901 		nimZeroMem((void*)(&x), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
10902 		nimZeroMem((void*)(&T8_), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
10903 		newCandidate__sigmatch_195(c, (*m).callee, (&T8_));
10904 		nimCopyMem((void*)(&x), (NIM_CONST void*)(&T8_), sizeof(x));
10905 		nimZeroMem((void*)(&y), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
10906 		nimZeroMem((void*)(&T9_), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
10907 		newCandidate__sigmatch_195(c, (*m).callee, (&T9_));
10908 		nimCopyMem((void*)(&y), (NIM_CONST void*)(&T9_), sizeof(y));
10909 		nimZeroMem((void*)(&z), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
10910 		nimZeroMem((void*)(&T10_), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
10911 		newCandidate__sigmatch_195(c, (*m).callee, (&T10_));
10912 		nimCopyMem((void*)(&z), (NIM_CONST void*)(&T10_), sizeof(z));
10913 		x.calleeSym = (*m).calleeSym;
10914 		y.calleeSym = (*m).calleeSym;
10915 		z.calleeSym = (*m).calleeSym;
10916 		best = ((NI) -1);
10917 		{
10918 			NI i;
10919 			NI colontmp_;
10920 			NI i_2;
10921 			i = (NI)0;
10922 			colontmp_ = (NI)0;
10923 			colontmp_ = len__ast_3198(arg);
10924 			i_2 = ((NI) 0);
10925 			{
10926 				while (1) {
10927 					if (!(i_2 < colontmp_)) goto LA13;
10928 					i = i_2;
10929 					{
10930 						{
10931 							tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw r;
10932 							if (!((1568768 &((NU32)1<<((NU)((*(*(*arg)._kind_6.sons->data[i])._kind_4.sym).kind)&31U)))!=0)) goto LA17_;
10933 							copyCandidate__sigmatch_199((&z), (&(*m)));
10934 							z.callee = (*(*arg)._kind_6.sons->data[i]).typ;
10935 							{
10936 								if (!(((*z.callee).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0)) goto LA21_;
10937 								goto LA14;
10938 							}
10939 							LA21_: ;
10940 							z.calleeSym = (*(*arg)._kind_6.sons->data[i])._kind_4.sym;
10941 							r = typeRel__sigmatch_202((&z), f, (*(*arg)._kind_6.sons->data[i]).typ, 0);
10942 							incMatches__sigmatch_3238((&z), r, ((NI) 2));
10943 							{
10944 								if (!!((r == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0)))) goto LA25_;
10945 								z.state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1);
10946 								switch (x.state) {
10947 								case ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 0):
10948 								case ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2):
10949 								{
10950 									genericAssign((void*)(&x), (void*)(&z), (&NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_));
10951 									best = i;
10952 								}
10953 								break;
10954 								case ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1):
10955 								{
10956 									NI cmp;
10957 									cmp = cmpCandidates__sigmatch_358((&x), (&z));
10958 									{
10959 										if (!(cmp < ((NI) 0))) goto LA31_;
10960 										best = i;
10961 										genericAssign((void*)(&x), (void*)(&z), (&NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_));
10962 									}
10963 									goto LA29_;
10964 									LA31_: ;
10965 									{
10966 										if (!(cmp == ((NI) 0))) goto LA34_;
10967 										genericAssign((void*)(&y), (void*)(&z), (&NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_));
10968 									}
10969 									goto LA29_;
10970 									LA34_: ;
10971 									LA29_: ;
10972 								}
10973 								break;
10974 								}
10975 							}
10976 							LA25_: ;
10977 						}
10978 						LA17_: ;
10979 					} LA14: ;
10980 					i_2 += ((NI) 1);
10981 				} LA13: ;
10982 			}
10983 		}
10984 		{
10985 			if (!(x.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 0))) goto LA38_;
10986 			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
10987 		}
10988 		goto LA36_;
10989 		LA38_: ;
10990 		{
10991 			NIM_BOOL T41_;
10992 			NI T43_;
10993 			T41_ = (NIM_BOOL)0;
10994 			T41_ = (y.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1));
10995 			if (!(T41_)) goto LA42_;
10996 			T43_ = (NI)0;
10997 			T43_ = cmpCandidates__sigmatch_358((&x), (&y));
10998 			T41_ = (T43_ == ((NI) 0));
10999 			LA42_: ;
11000 			if (!T41_) goto LA44_;
11001 			{
11002 				if (!!((x.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA48_;
11003 				internalErrorImpl__msgs_1431((*(*(*m).c).graph).config, (*arg).info, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_76), TM__EV5hHJmjIY9cla9b9be7fSVJQ_77);
11004 			}
11005 			LA48_: ;
11006 			{
11007 				if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6) || (*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7))) goto LA52_;
11008 				result = arg;
11009 			}
11010 			goto LA50_;
11011 			LA52_: ;
11012 			{
11013 				result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
11014 			}
11015 			LA50_: ;
11016 		}
11017 		goto LA36_;
11018 		LA44_: ;
11019 		{
11020 			markUsed__sigmatch_85((*m).c, (*arg).info, (*(*arg)._kind_6.sons->data[best])._kind_4.sym);
11021 			result = paramTypesMatchAux__sigmatch_3268(m, f, (*(*arg)._kind_6.sons->data[best]).typ, (*arg)._kind_6.sons->data[best], argOrig);
11022 		}
11023 		LA36_: ;
11024 	}
11025 	LA1_: ;
11026 	return result;
11027 }
N_INLINE(NI,find__sigmatch_4304)11028 static N_INLINE(NI, find__sigmatch_4304)(NI* a, NI aLen_0, NI item) {
11029 	NI result;
11030 {	result = (NI)0;
11031 	result = ((NI) 0);
11032 	{
11033 		NI* i;
11034 		NI i_2;
11035 		i = (NI*)0;
11036 		i_2 = ((NI) 0);
11037 		{
11038 			while (1) {
11039 				if (!(i_2 < aLen_0)) goto LA3;
11040 				i = (&a[i_2]);
11041 				{
11042 					if (!((*i) == item)) goto LA6_;
11043 					goto BeforeRet_;
11044 				}
11045 				LA6_: ;
11046 				result += ((NI) 1);
11047 				i_2 += ((NI) 1);
11048 			} LA3: ;
11049 		}
11050 	}
11051 	result = ((NI) -1);
11052 	}BeforeRet_: ;
11053 	return result;
11054 }
N_INLINE(NIM_BOOL,contains__sigmatch_4299)11055 static N_INLINE(NIM_BOOL, contains__sigmatch_4299)(NI* a, NI aLen_0, NI item) {
11056 	NIM_BOOL result;
11057 	NI T1_;
11058 {	result = (NIM_BOOL)0;
11059 	T1_ = (NI)0;
11060 	T1_ = find__sigmatch_4304(a, aLen_0, item);
11061 	result = (((NI) 0) <= T1_);
11062 	goto BeforeRet_;
11063 	}BeforeRet_: ;
11064 	return result;
11065 }
N_NIMCALL(NIM_BOOL,argtypeMatches__sigmatch_4281)11066 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argtypeMatches__sigmatch_4281)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, NIM_BOOL fromHlo) {
11067 	NIM_BOOL result;
11068 	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
11069 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res;
11070 	result = (NIM_BOOL)0;
11071 	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
11072 	newCandidate__sigmatch_195(c, f, (&m));
11073 	res = paramTypesMatch__sigmatch_3583((&m), f, a, (*(*c).graph).emptyNode, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
11074 	{
11075 		if (!!(fromHlo)) goto LA3_;
11076 		result = !((res == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
11077 	}
11078 	goto LA1_;
11079 	LA3_: ;
11080 	{
11081 		NIM_BOOL T6_;
11082 		NIM_BOOL T7_;
11083 		T6_ = (NIM_BOOL)0;
11084 		T7_ = (NIM_BOOL)0;
11085 		T7_ = !((res == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
11086 		if (!(T7_)) goto LA8_;
11087 		T7_ = (m.convMatches == ((NI) 0));
11088 		LA8_: ;
11089 		T6_ = T7_;
11090 		if (!(T6_)) goto LA9_;
11091 		T6_ = contains__sigmatch_4299(TM__EV5hHJmjIY9cla9b9be7fSVJQ_78, 2, m.intConvMatches);
11092 		LA9_: ;
11093 		result = T6_;
11094 	}
11095 	LA1_: ;
11096 	return result;
11097 }
N_INLINE(NIM_BOOL,typeFits__sigmatch_5153)11098 static N_INLINE(NIM_BOOL, typeFits__sigmatch_5153)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* firstArg) {
11099 	NIM_BOOL result;
11100 {	result = (NIM_BOOL)0;
11101 	{
11102 		NIM_BOOL T3_;
11103 		NIM_BOOL T4_;
11104 		NI T6_;
11105 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
11106 		T3_ = (NIM_BOOL)0;
11107 		T4_ = (NIM_BOOL)0;
11108 		T4_ = !(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
11109 		if (!(T4_)) goto LA5_;
11110 		T6_ = (NI)0;
11111 		T6_ = len__ast_4002((*s).typ);
11112 		T4_ = (((NI) 1) < T6_);
11113 		LA5_: ;
11114 		T3_ = T4_;
11115 		if (!(T3_)) goto LA7_;
11116 		T3_ = !(((*(*s).typ).sons->data[((NI) 1)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
11117 		LA7_: ;
11118 		if (!T3_) goto LA8_;
11119 		m = getModule__astalgo_216(s);
11120 		{
11121 			NIM_BOOL T12_;
11122 			tyObject_TType__facALICuu8zUj0hjvbTLFg* exp_1;
11123 			T12_ = (NIM_BOOL)0;
11124 			T12_ = !((m == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
11125 			if (!(T12_)) goto LA13_;
11126 			T12_ = (((*m).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
11127 			LA13_: ;
11128 			if (!T12_) goto LA14_;
11129 			{
11130 				if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7))) goto LA18_;
11131 				goto BeforeRet_;
11132 			}
11133 			LA18_: ;
11134 			exp_1 = skipTypes__ast_3735((*(*s).typ).sons->data[((NI) 1)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_10);
11135 			{
11136 				if (!((*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA22_;
11137 				exp_1 = elemType__types_263(exp_1);
11138 			}
11139 			LA22_: ;
11140 			{
11141 				if (!((*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6) || (*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7) || (*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*exp_1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59))) goto LA26_;
11142 				goto BeforeRet_;
11143 			}
11144 			LA26_: ;
11145 		}
11146 		LA14_: ;
11147 		result = argtypeMatches__sigmatch_4281(c, (*(*s).typ).sons->data[((NI) 1)], firstArg, NIM_FALSE);
11148 	}
11149 	LA8_: ;
11150 	}BeforeRet_: ;
11151 	return result;
11152 }
N_NIMCALL(void,suggestOperations__sigmatch_5194)11153 N_LIB_PRIVATE N_NIMCALL(void, suggestOperations__sigmatch_5194)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs) {
11154 	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
11155 	info = (*n).info;
11156 	{
11157 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item;
11158 		NI scopeN;
11159 		NIM_BOOL isLocal;
11160 		NIM_BOOL isLocal_2;
11161 		NI scopeN_2;
11162 		item = NIM_NIL;
11163 		scopeN = (NI)0;
11164 		isLocal = (NIM_BOOL)0;
11165 		isLocal_2 = NIM_TRUE;
11166 		scopeN_2 = ((NI) 0);
11167 		{
11168 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
11169 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
11170 			scope = NIM_NIL;
11171 			current = (*c).currentScope;
11172 			{
11173 				while (1) {
11174 					if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA4;
11175 					scope = current;
11176 					{
11177 						if (!(scope == (*c).topLevelScope)) goto LA7_;
11178 						isLocal_2 = NIM_FALSE;
11179 					}
11180 					LA7_: ;
11181 					scopeN_2 -= ((NI) 1);
11182 					{
11183 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item_2;
11184 						tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg it;
11185 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
11186 						item_2 = NIM_NIL;
11187 						nimZeroMem((void*)(&it), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
11188 						s = initTabIter__astalgo_3777((&it), (*scope).symbols);
11189 						{
11190 							while (1) {
11191 								tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp_;
11192 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_2;
11193 								tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm;
11194 								if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA11;
11195 								item_2 = s;
11196 								nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
11197 								colontmp_.Field0 = item_2;
11198 								colontmp_.Field1 = scopeN_2;
11199 								colontmp_.Field2 = isLocal_2;
11200 								item = colontmp_.Field0;
11201 								scopeN = colontmp_.Field1;
11202 								isLocal = colontmp_.Field2;
11203 								it_2 = item;
11204 								pm = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
11205 								{
11206 									NIM_BOOL T14_;
11207 									NI T18_;
11208 									tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T19_;
11209 									NI T20_;
11210 									T14_ = (NIM_BOOL)0;
11211 									T14_ = filterSymNoOpr__sigmatch_4935(it_2, f, (&pm));
11212 									if (!(T14_)) goto LA15_;
11213 									T14_ = typeFits__sigmatch_5153(c, it_2, typ);
11214 									LA15_: ;
11215 									if (!T14_) goto LA16_;
11216 									T18_ = (NI)0;
11217 									T18_ = getQuality__sigmatch_5002(it_2);
11218 									T19_ = NIM_NIL;
11219 									T19_ = symToSuggest__sigmatch_4528((*c).graph, it_2, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), info, T18_, pm, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
11220 									unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
11221 									T20_ = (*outputs)->Sup.len++;
11222 									asgnRef((void**) (&(*outputs)->data[T20_]), T19_);
11223 								}
11224 								LA16_: ;
11225 								s = nextIter__astalgo_3762((&it), (*scope).symbols);
11226 							} LA11: ;
11227 						}
11228 					}
11229 					current = (*current).parent;
11230 				} LA4: ;
11231 			}
11232 		}
11233 		scopeN_2 -= ((NI) 1);
11234 		isLocal_2 = NIM_FALSE;
11235 		{
11236 			tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ* im;
11237 			NI i;
11238 			NI L;
11239 			NI T22_;
11240 			im = (tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ*)0;
11241 			i = ((NI) 0);
11242 			T22_ = ((*c).imports ? (*c).imports->Sup.len : 0);
11243 			L = T22_;
11244 			{
11245 				while (1) {
11246 					if (!(i < L)) goto LA24;
11247 					im = (&(*c).imports->data[i]);
11248 					{
11249 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
11250 						NIM_BOOL importHidden;
11251 						s_2 = NIM_NIL;
11252 						importHidden = (((*(*im).m).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0);
11253 						{
11254 							NIM_BOOL T28_;
11255 							tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
11256 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* r;
11257 							T28_ = (NIM_BOOL)0;
11258 							T28_ = isCachedModule__modulegraphs_2709((*c).graph, (*im).m);
11259 							if (!T28_) goto LA29_;
11260 							nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg));
11261 							r = initRodIterAllSyms__icZic_8667((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*(*im).m).position)), importHidden);
11262 							{
11263 								while (1) {
11264 									tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__2;
11265 									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_3;
11266 									tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_2;
11267 									if (!!((r == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA32;
11268 									s_2 = r;
11269 									nimZeroMem((void*)(&colontmp__2), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
11270 									colontmp__2.Field0 = s_2;
11271 									colontmp__2.Field1 = scopeN_2;
11272 									colontmp__2.Field2 = isLocal_2;
11273 									item = colontmp__2.Field0;
11274 									scopeN = colontmp__2.Field1;
11275 									isLocal = colontmp__2.Field2;
11276 									it_3 = item;
11277 									pm_2 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
11278 									{
11279 										NIM_BOOL T35_;
11280 										NI T39_;
11281 										tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T40_;
11282 										NI T41_;
11283 										T35_ = (NIM_BOOL)0;
11284 										T35_ = filterSymNoOpr__sigmatch_4935(it_3, f, (&pm_2));
11285 										if (!(T35_)) goto LA36_;
11286 										T35_ = typeFits__sigmatch_5153(c, it_3, typ);
11287 										LA36_: ;
11288 										if (!T35_) goto LA37_;
11289 										T39_ = (NI)0;
11290 										T39_ = getQuality__sigmatch_5002(it_3);
11291 										T40_ = NIM_NIL;
11292 										T40_ = symToSuggest__sigmatch_4528((*c).graph, it_3, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), info, T39_, pm_2, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
11293 										unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
11294 										T41_ = (*outputs)->Sup.len++;
11295 										asgnRef((void**) (&(*outputs)->data[T41_]), T40_);
11296 									}
11297 									LA37_: ;
11298 									r = nextRodIter__icZic_8962((&rodIt), (&(*(*c).graph).packed_0));
11299 								} LA32: ;
11300 							}
11301 						}
11302 						goto LA26_;
11303 						LA29_: ;
11304 						{
11305 							{
11306 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** s_3;
11307 								tySequence__eHqUwlHGGaPw0TDPDeL79cQ* colontmp__3;
11308 								tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* retX60gensym17_;
11309 								NI i_2;
11310 								NI L_2;
11311 								NI T48_;
11312 								s_3 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
11313 								colontmp__3 = NIM_NIL;
11314 								retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interf);
11315 								{
11316 									if (!importHidden) goto LA46_;
11317 									retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interfHidden);
11318 								}
11319 								LA46_: ;
11320 								colontmp__3 = (*retX60gensym17_).data;
11321 								i_2 = ((NI) 0);
11322 								T48_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
11323 								L_2 = T48_;
11324 								{
11325 									while (1) {
11326 										if (!(i_2 < L_2)) goto LA50;
11327 										s_3 = &colontmp__3->data[i_2];
11328 										{
11329 											tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__4;
11330 											tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_4;
11331 											tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_3;
11332 											if (!!(((*s_3) == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA53_;
11333 											s_2 = (*s_3);
11334 											nimZeroMem((void*)(&colontmp__4), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
11335 											colontmp__4.Field0 = s_2;
11336 											colontmp__4.Field1 = scopeN_2;
11337 											colontmp__4.Field2 = isLocal_2;
11338 											item = colontmp__4.Field0;
11339 											scopeN = colontmp__4.Field1;
11340 											isLocal = colontmp__4.Field2;
11341 											it_4 = item;
11342 											pm_3 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
11343 											{
11344 												NIM_BOOL T57_;
11345 												NI T61_;
11346 												tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T62_;
11347 												NI T63_;
11348 												T57_ = (NIM_BOOL)0;
11349 												T57_ = filterSymNoOpr__sigmatch_4935(it_4, f, (&pm_3));
11350 												if (!(T57_)) goto LA58_;
11351 												T57_ = typeFits__sigmatch_5153(c, it_4, typ);
11352 												LA58_: ;
11353 												if (!T57_) goto LA59_;
11354 												T61_ = (NI)0;
11355 												T61_ = getQuality__sigmatch_5002(it_4);
11356 												T62_ = NIM_NIL;
11357 												T62_ = symToSuggest__sigmatch_4528((*c).graph, it_4, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), info, T61_, pm_3, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
11358 												unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
11359 												T63_ = (*outputs)->Sup.len++;
11360 												asgnRef((void**) (&(*outputs)->data[T63_]), T62_);
11361 											}
11362 											LA59_: ;
11363 										}
11364 										LA53_: ;
11365 										i_2 += ((NI) 1);
11366 									} LA50: ;
11367 								}
11368 							}
11369 						}
11370 						LA26_: ;
11371 					}
11372 					i += ((NI) 1);
11373 				} LA24: ;
11374 			}
11375 		}
11376 	}
11377 }
N_NIMCALL(void,suggestFieldAccess__sigmatch_5230)11378 N_LIB_PRIVATE N_NIMCALL(void, suggestFieldAccess__sigmatch_5230)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs) {
11379 	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
11380 	tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm;
11381 	typ = (*n).typ;
11382 	pm = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
11383 	{
11384 		if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
11385 		{
11386 			NIM_BOOL T7_;
11387 			T7_ = (NIM_BOOL)0;
11388 			T7_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
11389 			if (!(T7_)) goto LA8_;
11390 			T7_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6));
11391 			LA8_: ;
11392 			if (!T7_) goto LA9_;
11393 			{
11394 				if (!((*n)._kind_4.sym == (*c).module)) goto LA13_;
11395 				{
11396 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it;
11397 					tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg it_2;
11398 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
11399 					it = NIM_NIL;
11400 					nimZeroMem((void*)(&it_2), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
11401 					s = initTabIter__astalgo_3777((&it_2), (*(*c).topLevelScope).symbols);
11402 					{
11403 						while (1) {
11404 							if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA17;
11405 							it = s;
11406 							{
11407 								NIM_BOOL T20_;
11408 								NI T23_;
11409 								tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T24_;
11410 								NI T25_;
11411 								T20_ = (NIM_BOOL)0;
11412 								T20_ = filterSym__sigmatch_4909(it, field, (&pm));
11413 								if (!T20_) goto LA21_;
11414 								T23_ = (NI)0;
11415 								T23_ = getQuality__sigmatch_5002(it);
11416 								T24_ = NIM_NIL;
11417 								T24_ = symToSuggest__sigmatch_4528((*c).graph, it, NIM_FALSE, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), (*n).info, T23_, pm, (((NI) 0) < (*c).inTypeContext), ((NI) -99), NIM_FALSE);
11418 								unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
11419 								T25_ = (*outputs)->Sup.len++;
11420 								asgnRef((void**) (&(*outputs)->data[T25_]), T24_);
11421 							}
11422 							LA21_: ;
11423 							s = nextIter__astalgo_3762((&it_2), (*(*c).topLevelScope).symbols);
11424 						} LA17: ;
11425 					}
11426 				}
11427 			}
11428 			goto LA11_;
11429 			LA13_: ;
11430 			{
11431 				{
11432 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_3;
11433 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* colontmp_;
11434 					NIM_BOOL importHidden;
11435 					it_3 = NIM_NIL;
11436 					colontmp_ = NIM_NIL;
11437 					colontmp_ = (*n)._kind_4.sym;
11438 					importHidden = (((*colontmp_).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0);
11439 					{
11440 						NIM_BOOL T30_;
11441 						tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
11442 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* r;
11443 						T30_ = (NIM_BOOL)0;
11444 						T30_ = isCachedModule__modulegraphs_2709((*c).graph, colontmp_);
11445 						if (!T30_) goto LA31_;
11446 						nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg));
11447 						r = initRodIterAllSyms__icZic_8667((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*colontmp_).position)), importHidden);
11448 						{
11449 							while (1) {
11450 								if (!!((r == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA34;
11451 								it_3 = r;
11452 								{
11453 									NIM_BOOL T37_;
11454 									NI T40_;
11455 									tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T41_;
11456 									NI T42_;
11457 									T37_ = (NIM_BOOL)0;
11458 									T37_ = filterSym__sigmatch_4909(it_3, field, (&pm));
11459 									if (!T37_) goto LA38_;
11460 									T40_ = (NI)0;
11461 									T40_ = getQuality__sigmatch_5002(it_3);
11462 									T41_ = NIM_NIL;
11463 									T41_ = symToSuggest__sigmatch_4528((*c).graph, it_3, NIM_FALSE, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), (*n).info, T40_, pm, (((NI) 0) < (*c).inTypeContext), ((NI) -99), NIM_FALSE);
11464 									unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
11465 									T42_ = (*outputs)->Sup.len++;
11466 									asgnRef((void**) (&(*outputs)->data[T42_]), T41_);
11467 								}
11468 								LA38_: ;
11469 								r = nextRodIter__icZic_8962((&rodIt), (&(*(*c).graph).packed_0));
11470 							} LA34: ;
11471 						}
11472 					}
11473 					goto LA28_;
11474 					LA31_: ;
11475 					{
11476 						{
11477 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** s_2;
11478 							tySequence__eHqUwlHGGaPw0TDPDeL79cQ* colontmp__2;
11479 							tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* retX60gensym17_;
11480 							NI i;
11481 							NI L;
11482 							NI T49_;
11483 							s_2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
11484 							colontmp__2 = NIM_NIL;
11485 							retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*colontmp_).position].interf);
11486 							{
11487 								if (!importHidden) goto LA47_;
11488 								retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*colontmp_).position].interfHidden);
11489 							}
11490 							LA47_: ;
11491 							colontmp__2 = (*retX60gensym17_).data;
11492 							i = ((NI) 0);
11493 							T49_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
11494 							L = T49_;
11495 							{
11496 								while (1) {
11497 									if (!(i < L)) goto LA51;
11498 									s_2 = &colontmp__2->data[i];
11499 									{
11500 										if (!!(((*s_2) == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA54_;
11501 										it_3 = (*s_2);
11502 										{
11503 											NIM_BOOL T58_;
11504 											NI T61_;
11505 											tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T62_;
11506 											NI T63_;
11507 											T58_ = (NIM_BOOL)0;
11508 											T58_ = filterSym__sigmatch_4909(it_3, field, (&pm));
11509 											if (!T58_) goto LA59_;
11510 											T61_ = (NI)0;
11511 											T61_ = getQuality__sigmatch_5002(it_3);
11512 											T62_ = NIM_NIL;
11513 											T62_ = symToSuggest__sigmatch_4528((*c).graph, it_3, NIM_FALSE, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), (*n).info, T61_, pm, (((NI) 0) < (*c).inTypeContext), ((NI) -99), NIM_FALSE);
11514 											unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
11515 											T63_ = (*outputs)->Sup.len++;
11516 											asgnRef((void**) (&(*outputs)->data[T63_]), T62_);
11517 										}
11518 										LA59_: ;
11519 									}
11520 									LA54_: ;
11521 									i += ((NI) 1);
11522 								} LA51: ;
11523 							}
11524 						}
11525 					}
11526 					LA28_: ;
11527 				}
11528 			}
11529 			LA11_: ;
11530 		}
11531 		goto LA5_;
11532 		LA9_: ;
11533 		{
11534 			suggestEverything__sigmatch_5217(c, n, field, outputs);
11535 		}
11536 		LA5_: ;
11537 	}
11538 	goto LA1_;
11539 	LA3_: ;
11540 	{
11541 		tyObject_TType__facALICuu8zUj0hjvbTLFg* orig;
11542 		orig = typ;
11543 		typ = skipTypes__ast_3735(orig, TM__EV5hHJmjIY9cla9b9be7fSVJQ_11);
11544 		{
11545 			NIM_BOOL T68_;
11546 			NIM_BOOL T69_;
11547 			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
11548 			T68_ = (NIM_BOOL)0;
11549 			T69_ = (NIM_BOOL)0;
11550 			T69_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
11551 			if (!(T69_)) goto LA70_;
11552 			T69_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
11553 			LA70_: ;
11554 			T68_ = T69_;
11555 			if (!(T68_)) goto LA71_;
11556 			T68_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
11557 			LA71_: ;
11558 			if (!T68_) goto LA72_;
11559 			t = typ;
11560 			{
11561 				while (1) {
11562 					if (!!((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA75;
11563 					suggestSymList__sigmatch_5040(c, (*t).n, field, (*n).info, outputs);
11564 					t = (*t).sons->data[((NI) 0)];
11565 				} LA75: ;
11566 			}
11567 		}
11568 		goto LA66_;
11569 		LA72_: ;
11570 		{
11571 			tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
11572 			if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA77_;
11573 			t_2 = typ;
11574 			{
11575 				while (1) {
11576 					suggestObject__sigmatch_5060(c, (*t_2).n, field, (*n).info, outputs);
11577 					{
11578 						if (!((*t_2).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA83_;
11579 						goto LA79;
11580 					}
11581 					LA83_: ;
11582 					t_2 = skipTypes__ast_3735((*t_2).sons->data[((NI) 0)], TM__EV5hHJmjIY9cla9b9be7fSVJQ_12);
11583 				}
11584 			} LA79: ;
11585 		}
11586 		goto LA66_;
11587 		LA77_: ;
11588 		{
11589 			NIM_BOOL T86_;
11590 			T86_ = (NIM_BOOL)0;
11591 			T86_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
11592 			if (!(T86_)) goto LA87_;
11593 			T86_ = !(((*typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
11594 			LA87_: ;
11595 			if (!T86_) goto LA88_;
11596 			suggestSymList__sigmatch_5040(c, (*typ).n, field, (*n).info, outputs);
11597 		}
11598 		goto LA66_;
11599 		LA88_: ;
11600 		LA66_: ;
11601 		suggestOperations__sigmatch_5194(c, n, field, orig, outputs);
11602 		{
11603 			if (!!((typ == orig))) goto LA92_;
11604 			suggestOperations__sigmatch_5194(c, n, field, typ, outputs);
11605 		}
11606 		LA92_: ;
11607 	}
11608 	LA1_: ;
11609 }
N_NIMCALL(void,sugExpr__sigmatch_6417)11610 N_LIB_PRIVATE N_NIMCALL(void, sugExpr__sigmatch_6417)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs) {
11611 	{
11612 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj;
11613 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prefix;
11614 		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA3_;
11615 		obj = safeSemExpr__sigmatch_6411(c, (*n)._kind_6.sons->data[((NI) 0)]);
11616 		{
11617 			NIM_BOOL T7_;
11618 			NIM_BOOL T8_;
11619 			NI T9_;
11620 			T7_ = (NIM_BOOL)0;
11621 			T8_ = (NIM_BOOL)0;
11622 			T9_ = (NI)0;
11623 			T9_ = len__ast_3198(n);
11624 			T8_ = (T9_ == ((NI) 2));
11625 			if (!(T8_)) goto LA10_;
11626 			T8_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).info.line == (*(*n)._kind_6.sons->data[((NI) 0)]).info.line);
11627 			LA10_: ;
11628 			T7_ = T8_;
11629 			if (!(T7_)) goto LA11_;
11630 			T7_ = !((*(*(*c).graph).config).m.trackPosAttached);
11631 			LA11_: ;
11632 			if (!T7_) goto LA12_;
11633 			prefix = (*n)._kind_6.sons->data[((NI) 1)];
11634 		}
11635 		goto LA5_;
11636 		LA12_: ;
11637 		{
11638 			prefix = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
11639 		}
11640 		LA5_: ;
11641 		suggestFieldAccess__sigmatch_5230(c, obj, prefix, outputs);
11642 	}
11643 	goto LA1_;
11644 	LA3_: ;
11645 	{
11646 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prefix_2;
11647 		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
11648 		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA16_;
11649 		{
11650 			if (!(*(*(*c).graph).config).m.trackPosAttached) goto LA20_;
11651 			prefix_2 = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
11652 		}
11653 		goto LA18_;
11654 		LA20_: ;
11655 		{
11656 			prefix_2 = n;
11657 		}
11658 		LA18_: ;
11659 		info = (*n).info;
11660 		{
11661 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item;
11662 			NI scopeN;
11663 			NIM_BOOL isLocal;
11664 			NIM_BOOL isLocal_2;
11665 			NI scopeN_2;
11666 			item = NIM_NIL;
11667 			scopeN = (NI)0;
11668 			isLocal = (NIM_BOOL)0;
11669 			isLocal_2 = NIM_TRUE;
11670 			scopeN_2 = ((NI) 0);
11671 			{
11672 				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
11673 				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
11674 				scope = NIM_NIL;
11675 				current = (*c).currentScope;
11676 				{
11677 					while (1) {
11678 						if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA26;
11679 						scope = current;
11680 						{
11681 							if (!(scope == (*c).topLevelScope)) goto LA29_;
11682 							isLocal_2 = NIM_FALSE;
11683 						}
11684 						LA29_: ;
11685 						scopeN_2 -= ((NI) 1);
11686 						{
11687 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item_2;
11688 							tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg it;
11689 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
11690 							item_2 = NIM_NIL;
11691 							nimZeroMem((void*)(&it), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
11692 							s = initTabIter__astalgo_3777((&it), (*scope).symbols);
11693 							{
11694 								while (1) {
11695 									tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp_;
11696 									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_2;
11697 									tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm;
11698 									if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA33;
11699 									item_2 = s;
11700 									nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
11701 									colontmp_.Field0 = item_2;
11702 									colontmp_.Field1 = scopeN_2;
11703 									colontmp_.Field2 = isLocal_2;
11704 									item = colontmp_.Field0;
11705 									scopeN = colontmp_.Field1;
11706 									isLocal = colontmp_.Field2;
11707 									it_2 = item;
11708 									pm = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
11709 									{
11710 										NIM_BOOL T36_;
11711 										NI T39_;
11712 										tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T40_;
11713 										NI T41_;
11714 										T36_ = (NIM_BOOL)0;
11715 										T36_ = filterSym__sigmatch_4909(it_2, prefix_2, (&pm));
11716 										if (!T36_) goto LA37_;
11717 										T39_ = (NI)0;
11718 										T39_ = getQuality__sigmatch_5002(it_2);
11719 										T40_ = NIM_NIL;
11720 										T40_ = symToSuggest__sigmatch_4528((*c).graph, it_2, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), info, T39_, pm, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
11721 										unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
11722 										T41_ = (*outputs)->Sup.len++;
11723 										asgnRef((void**) (&(*outputs)->data[T41_]), T40_);
11724 									}
11725 									LA37_: ;
11726 									s = nextIter__astalgo_3762((&it), (*scope).symbols);
11727 								} LA33: ;
11728 							}
11729 						}
11730 						current = (*current).parent;
11731 					} LA26: ;
11732 				}
11733 			}
11734 			scopeN_2 -= ((NI) 1);
11735 			isLocal_2 = NIM_FALSE;
11736 			{
11737 				tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ* im;
11738 				NI i;
11739 				NI L;
11740 				NI T43_;
11741 				im = (tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ*)0;
11742 				i = ((NI) 0);
11743 				T43_ = ((*c).imports ? (*c).imports->Sup.len : 0);
11744 				L = T43_;
11745 				{
11746 					while (1) {
11747 						if (!(i < L)) goto LA45;
11748 						im = (&(*c).imports->data[i]);
11749 						{
11750 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
11751 							NIM_BOOL importHidden;
11752 							s_2 = NIM_NIL;
11753 							importHidden = (((*(*im).m).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0);
11754 							{
11755 								NIM_BOOL T49_;
11756 								tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
11757 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* r;
11758 								T49_ = (NIM_BOOL)0;
11759 								T49_ = isCachedModule__modulegraphs_2709((*c).graph, (*im).m);
11760 								if (!T49_) goto LA50_;
11761 								nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg));
11762 								r = initRodIterAllSyms__icZic_8667((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*(*im).m).position)), importHidden);
11763 								{
11764 									while (1) {
11765 										tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__2;
11766 										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_3;
11767 										tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_2;
11768 										if (!!((r == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA53;
11769 										s_2 = r;
11770 										nimZeroMem((void*)(&colontmp__2), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
11771 										colontmp__2.Field0 = s_2;
11772 										colontmp__2.Field1 = scopeN_2;
11773 										colontmp__2.Field2 = isLocal_2;
11774 										item = colontmp__2.Field0;
11775 										scopeN = colontmp__2.Field1;
11776 										isLocal = colontmp__2.Field2;
11777 										it_3 = item;
11778 										pm_2 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
11779 										{
11780 											NIM_BOOL T56_;
11781 											NI T59_;
11782 											tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T60_;
11783 											NI T61_;
11784 											T56_ = (NIM_BOOL)0;
11785 											T56_ = filterSym__sigmatch_4909(it_3, prefix_2, (&pm_2));
11786 											if (!T56_) goto LA57_;
11787 											T59_ = (NI)0;
11788 											T59_ = getQuality__sigmatch_5002(it_3);
11789 											T60_ = NIM_NIL;
11790 											T60_ = symToSuggest__sigmatch_4528((*c).graph, it_3, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), info, T59_, pm_2, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
11791 											unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
11792 											T61_ = (*outputs)->Sup.len++;
11793 											asgnRef((void**) (&(*outputs)->data[T61_]), T60_);
11794 										}
11795 										LA57_: ;
11796 										r = nextRodIter__icZic_8962((&rodIt), (&(*(*c).graph).packed_0));
11797 									} LA53: ;
11798 								}
11799 							}
11800 							goto LA47_;
11801 							LA50_: ;
11802 							{
11803 								{
11804 									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** s_3;
11805 									tySequence__eHqUwlHGGaPw0TDPDeL79cQ* colontmp__3;
11806 									tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* retX60gensym17_;
11807 									NI i_2;
11808 									NI L_2;
11809 									NI T68_;
11810 									s_3 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
11811 									colontmp__3 = NIM_NIL;
11812 									retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interf);
11813 									{
11814 										if (!importHidden) goto LA66_;
11815 										retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interfHidden);
11816 									}
11817 									LA66_: ;
11818 									colontmp__3 = (*retX60gensym17_).data;
11819 									i_2 = ((NI) 0);
11820 									T68_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
11821 									L_2 = T68_;
11822 									{
11823 										while (1) {
11824 											if (!(i_2 < L_2)) goto LA70;
11825 											s_3 = &colontmp__3->data[i_2];
11826 											{
11827 												tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__4;
11828 												tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_4;
11829 												tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_3;
11830 												if (!!(((*s_3) == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA73_;
11831 												s_2 = (*s_3);
11832 												nimZeroMem((void*)(&colontmp__4), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
11833 												colontmp__4.Field0 = s_2;
11834 												colontmp__4.Field1 = scopeN_2;
11835 												colontmp__4.Field2 = isLocal_2;
11836 												item = colontmp__4.Field0;
11837 												scopeN = colontmp__4.Field1;
11838 												isLocal = colontmp__4.Field2;
11839 												it_4 = item;
11840 												pm_3 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
11841 												{
11842 													NIM_BOOL T77_;
11843 													NI T80_;
11844 													tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T81_;
11845 													NI T82_;
11846 													T77_ = (NIM_BOOL)0;
11847 													T77_ = filterSym__sigmatch_4909(it_4, prefix_2, (&pm_3));
11848 													if (!T77_) goto LA78_;
11849 													T80_ = (NI)0;
11850 													T80_ = getQuality__sigmatch_5002(it_4);
11851 													T81_ = NIM_NIL;
11852 													T81_ = symToSuggest__sigmatch_4528((*c).graph, it_4, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), info, T80_, pm_3, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
11853 													unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
11854 													T82_ = (*outputs)->Sup.len++;
11855 													asgnRef((void**) (&(*outputs)->data[T82_]), T81_);
11856 												}
11857 												LA78_: ;
11858 											}
11859 											LA73_: ;
11860 											i_2 += ((NI) 1);
11861 										} LA70: ;
11862 									}
11863 								}
11864 							}
11865 							LA47_: ;
11866 						}
11867 						i += ((NI) 1);
11868 					} LA45: ;
11869 				}
11870 			}
11871 		}
11872 	}
11873 	goto LA1_;
11874 	LA16_: ;
11875 	{
11876 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prefix_3;
11877 		{
11878 			if (!(*(*(*c).graph).config).m.trackPosAttached) goto LA86_;
11879 			prefix_3 = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
11880 		}
11881 		goto LA84_;
11882 		LA86_: ;
11883 		{
11884 			prefix_3 = n;
11885 		}
11886 		LA84_: ;
11887 		suggestEverything__sigmatch_5217(c, n, prefix_3, outputs);
11888 	}
11889 	LA1_: ;
11890 }
N_NIMCALL(NIM_BOOL,nameFits__sigmatch_5091)11891 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nameFits__sigmatch_5091)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
11892 	NIM_BOOL result;
11893 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op;
11894 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* opr;
11895 {	result = (NIM_BOOL)0;
11896 	{
11897 		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA3_;
11898 		op = (*n)._kind_6.sons->data[((NI) 0)];
11899 	}
11900 	goto LA1_;
11901 	LA3_: ;
11902 	{
11903 		op = n;
11904 	}
11905 	LA1_: ;
11906 	{
11907 		if (!((*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56))) goto LA8_;
11908 		op = (*op)._kind_6.sons->data[((NI) 0)];
11909 	}
11910 	LA8_: ;
11911 	{
11912 		if (!((*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA12_;
11913 		op = (*op)._kind_6.sons->data[((NI) 1)];
11914 	}
11915 	LA12_: ;
11916 	opr = NIM_NIL;
11917 	switch ((*op).kind) {
11918 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
11919 	{
11920 		opr = (*(*op)._kind_4.sym).name;
11921 	}
11922 	break;
11923 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
11924 	{
11925 		opr = (*op)._kind_5.ident;
11926 	}
11927 	break;
11928 	default:
11929 	{
11930 		result = NIM_FALSE;
11931 		goto BeforeRet_;
11932 	}
11933 	break;
11934 	}
11935 	result = ((*opr).id == (*(*s).name).id);
11936 	}BeforeRet_: ;
11937 	return result;
11938 }
N_NIMCALL(void,initCandidate__sigmatch_124)11939 N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_124)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* binding, NI calleeScope, NIM_BOOL diagnosticsEnabled) {
11940 	initCandidateAux__sigmatch_94(ctx, c, (*callee).typ);
11941 	unsureAsgnRef((void**) (&(*c).calleeSym), callee);
11942 	{
11943 		NIM_BOOL T3_;
11944 		T3_ = (NIM_BOOL)0;
11945 		T3_ = ((520192 &((NU32)1<<((NU)((*callee).kind)&31U)))!=0);
11946 		if (!(T3_)) goto LA4_;
11947 		T3_ = (calleeScope == ((NI) -1));
11948 		LA4_: ;
11949 		if (!T3_) goto LA5_;
11950 		{
11951 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T9_;
11952 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
11953 			T9_ = NIM_NIL;
11954 			T9_ = originatingModule__ast_4669(callee);
11955 			if (!(T9_ == (*ctx).module)) goto LA10_;
11956 			(*c).calleeScope = ((NI) 2);
11957 			owner = callee;
11958 			{
11959 				while (1) {
11960 					owner = skipGenericOwner__ast_4658(owner);
11961 					{
11962 						if (!((*owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA16_;
11963 						goto LA12;
11964 					}
11965 					LA16_: ;
11966 					(*c).calleeScope += ((NI) 1);
11967 				}
11968 			} LA12: ;
11969 		}
11970 		goto LA7_;
11971 		LA10_: ;
11972 		{
11973 			(*c).calleeScope = ((NI) 1);
11974 		}
11975 		LA7_: ;
11976 	}
11977 	goto LA1_;
11978 	LA5_: ;
11979 	{
11980 		(*c).calleeScope = calleeScope;
11981 	}
11982 	LA1_: ;
11983 	unsureAsgnRef((void**) (&(*c).diagnostics), NIM_NIL);
11984 	(*c).diagnosticsEnabled = diagnosticsEnabled;
11985 	(*c).magic = (*(*c).calleeSym).magic;
11986 	initIdTable__ast_4096((&(*c).bindings));
11987 	{
11988 		NIM_BOOL T22_;
11989 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeParams;
11990 		T22_ = (NIM_BOOL)0;
11991 		T22_ = !((binding == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
11992 		if (!(T22_)) goto LA23_;
11993 		T22_ = ((520192 &((NU32)1<<((NU)((*callee).kind)&31U)))!=0);
11994 		LA23_: ;
11995 		if (!T22_) goto LA24_;
11996 		typeParams = (*(*callee).ast)._kind_6.sons->data[((NI) 2)];
11997 		{
11998 			NI i;
11999 			NI colontmp_;
12000 			NI T27_;
12001 			NI T28_;
12002 			NI res;
12003 			i = (NI)0;
12004 			colontmp_ = (NI)0;
12005 			T27_ = (NI)0;
12006 			T27_ = len__ast_3198(typeParams);
12007 			T28_ = (NI)0;
12008 			T28_ = len__ast_3198(binding);
12009 			colontmp_ = ((T27_ <= (NI)(T28_ - ((NI) 1))) ? T27_ : (NI)(T28_ - ((NI) 1)));
12010 			res = ((NI) 1);
12011 			{
12012 				while (1) {
12013 					tyObject_TType__facALICuu8zUj0hjvbTLFg* formalTypeParam;
12014 					tyObject_TType__facALICuu8zUj0hjvbTLFg* bound;
12015 					if (!(res <= colontmp_)) goto LA30;
12016 					i = res;
12017 					formalTypeParam = (*(*typeParams)._kind_6.sons->data[(NI)(i - ((NI) 1))]).typ;
12018 					bound = (*(*binding)._kind_6.sons->data[i]).typ;
12019 					{
12020 						if (!!((bound == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA33_;
12021 						{
12022 							if (!((*formalTypeParam).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA37_;
12023 							{
12024 								if (!!(((*bound).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA41_;
12025 								bound = makeTypeDesc__concepts_49(ctx, bound);
12026 							}
12027 							LA41_: ;
12028 						}
12029 						goto LA35_;
12030 						LA37_: ;
12031 						{
12032 							bound = skipTypes__ast_3735(bound, TM__EV5hHJmjIY9cla9b9be7fSVJQ_14);
12033 						}
12034 						LA35_: ;
12035 						put__sigmatch_120(c, formalTypeParam, bound);
12036 					}
12037 					LA33_: ;
12038 					res += ((NI) 1);
12039 				} LA30: ;
12040 			}
12041 		}
12042 	}
12043 	LA24_: ;
12044 }
N_NIMCALL(void,newCandidate__sigmatch_189)12045 N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_189)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* binding, NI calleeScope, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result) {
12046 	unsureAsgnRef((void**)&(*Result).c, NIM_NIL);
12047 	(*Result).exactMatches = 0;
12048 	(*Result).genericMatches = 0;
12049 	(*Result).subtypeMatches = 0;
12050 	(*Result).intConvMatches = 0;
12051 	(*Result).convMatches = 0;
12052 	(*Result).state = 0;
12053 	unsureAsgnRef((void**)&(*Result).callee, NIM_NIL);
12054 	unsureAsgnRef((void**)&(*Result).calleeSym, NIM_NIL);
12055 	(*Result).calleeScope = 0;
12056 	unsureAsgnRef((void**)&(*Result).call, NIM_NIL);
12057 	(*Result).bindings.counter = 0;
12058 	unsureAsgnRef((void**)&(*Result).bindings.data, NIM_NIL);
12059 	(*Result).magic = 0;
12060 	(*Result).baseTypeMatch = 0;
12061 	(*Result).fauxMatch = 0;
12062 	(*Result).genericConverter = 0;
12063 	(*Result).coerceDistincts = 0;
12064 	(*Result).typedescMatched = 0;
12065 	(*Result).isNoCall = 0;
12066 	unsureAsgnRef((void**)&(*Result).inferredTypes, NIM_NIL);
12067 	unsureAsgnRef((void**)&(*Result).diagnostics, NIM_NIL);
12068 	(*Result).inheritancePenalty = 0;
12069 	(*Result).firstMismatch.kind = 0;
12070 	(*Result).firstMismatch.arg = 0;
12071 	unsureAsgnRef((void**)&(*Result).firstMismatch.formal, NIM_NIL);
12072 	(*Result).diagnosticsEnabled = 0;
12073 	initCandidate__sigmatch_124(ctx, Result, callee, binding, calleeScope, NIM_FALSE);
12074 }
N_INLINE(void,initIntSet__pureZcollectionsZintsets_238)12075 static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
12076 	initPackedSet__pureZcollectionsZintsets_16(Result);
12077 }
N_NIMCALL(NI,findFirstArgBlock__sigmatch_3746)12078 N_LIB_PRIVATE N_NIMCALL(NI, findFirstArgBlock__sigmatch_3746)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
12079 	NI result;
12080 	result = (NI)0;
12081 	result = ((NI) IL64(9223372036854775807));
12082 	{
12083 		NI a2;
12084 		NI colontmp_;
12085 		NI T2_;
12086 		NI res;
12087 		a2 = (NI)0;
12088 		colontmp_ = (NI)0;
12089 		T2_ = (NI)0;
12090 		T2_ = len__ast_3198(n);
12091 		colontmp_ = (NI)(T2_ - ((NI) 1));
12092 		res = colontmp_;
12093 		{
12094 			while (1) {
12095 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* formalLast;
12096 				NI T9_;
12097 				NI T10_;
12098 				if (!(((NI) 0) <= res)) goto LA4;
12099 				a2 = res;
12100 				{
12101 					if (!!(((*(*n)._kind_6.sons->data[a2]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115)))) goto LA7_;
12102 					goto LA1;
12103 				}
12104 				LA7_: ;
12105 				T9_ = (NI)0;
12106 				T9_ = len__ast_3198((*(*m).callee).n);
12107 				T10_ = (NI)0;
12108 				T10_ = len__ast_3198(n);
12109 				formalLast = (*(*(*m).callee).n)._kind_6.sons->data[(NI)(T9_ - (NI)(T10_ - a2))];
12110 				{
12111 					NIM_BOOL T13_;
12112 					T13_ = (NIM_BOOL)0;
12113 					T13_ = ((*formalLast).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
12114 					if (!(T13_)) goto LA14_;
12115 					T13_ = ((*(*formalLast)._kind_4.sym).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
12116 					LA14_: ;
12117 					if (!T13_) goto LA15_;
12118 					result = a2;
12119 				}
12120 				goto LA11_;
12121 				LA15_: ;
12122 				{
12123 					goto LA1;
12124 				}
12125 				LA11_: ;
12126 				res -= ((NI) 1);
12127 			} LA4: ;
12128 		}
12129 	} LA1: ;
12130 	return result;
12131 }
N_NIMCALL(void,setSon__sigmatch_3650)12132 N_LIB_PRIVATE N_NIMCALL(void, setSon__sigmatch_3650)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, NI at, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son) {
12133 	NI oldLen;
12134 	oldLen = len__ast_3198(father);
12135 	{
12136 		if (!(oldLen <= at)) goto LA3_;
12137 		asgnRef((void**) (&(*father)._kind_6.sons), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*father)._kind_6.sons)->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((NI)(at + ((NI) 1))))));
12138 	}
12139 	LA3_: ;
12140 	asgnRef((void**) (&(*father)._kind_6.sons->data[at]), son);
12141 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,arrayConstr__sigmatch_3725)12142 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, arrayConstr__sigmatch_3725)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
12143 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
12144 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
12145 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
12146 	result = NIM_NIL;
12147 	result = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), c);
12148 	T1_ = NIM_NIL;
12149 	T1_ = makeRangeType__semdata_1039(c, IL64(0), IL64(-1), info, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
12150 	rawAddSon__ast_4288(result, T1_, NIM_TRUE);
12151 	T2_ = NIM_NIL;
12152 	T2_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3), c);
12153 	rawAddSon__ast_4288(result, T2_, NIM_TRUE);
12154 	return result;
12155 }
N_NIMCALL(void,incrIndexType__sigmatch_3729)12156 N_LIB_PRIVATE N_NIMCALL(void, incrIndexType__sigmatch_3729)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
12157 	(*(*(*(*t).sons->data[((NI) 0)]).n)._kind_6.sons->data[((NI) 1)])._kind_1.intVal += ((NI) 1);
12158 }
N_NIMCALL(void,prepareNamedParam__sigmatch_3709)12159 N_LIB_PRIVATE N_NIMCALL(void, prepareNamedParam__sigmatch_3709)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
12160 	{
12161 		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
12162 		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T5_;
12163 		if (!!(((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2)))) goto LA3_;
12164 		info = (*(*a)._kind_6.sons->data[((NI) 0)]).info;
12165 		T5_ = NIM_NIL;
12166 		T5_ = considerQuotedIdent__lookups_28(c, (*a)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
12167 		asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3712(T5_, info));
12168 	}
12169 	LA3_: ;
12170 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,prepareOperand__sigmatch_3663)12171 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, prepareOperand__sigmatch_3663)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
12172 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
12173 	result = NIM_NIL;
12174 	{
12175 		NIM_BOOL T3_;
12176 		NI T5_;
12177 		T3_ = (NIM_BOOL)0;
12178 		T3_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
12179 		if (!(T3_)) goto LA4_;
12180 		T5_ = (NI)0;
12181 		T5_ = len__ast_4002(formal);
12182 		T3_ = !((T5_ == ((NI) 1)));
12183 		LA4_: ;
12184 		if (!T3_) goto LA6_;
12185 		result = a;
12186 	}
12187 	goto LA1_;
12188 	LA6_: ;
12189 	{
12190 		if (!((*a).typ == 0)) goto LA9_;
12191 		{
12192 			tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags;
12193 			if (!((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64))) goto LA13_;
12194 			flags = 774;
12195 			result = (*c).semOperand(c, a, flags);
12196 		}
12197 		goto LA11_;
12198 		LA13_: ;
12199 		{
12200 			tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags_2;
12201 			flags_2 = 768;
12202 			result = (*c).semOperand(c, a, flags_2);
12203 		}
12204 		LA11_: ;
12205 	}
12206 	goto LA1_;
12207 	LA9_: ;
12208 	{
12209 		result = a;
12210 		considerGenSyms__semdata_425(c, result);
12211 		{
12212 			NIM_BOOL T19_;
12213 			NIM_BOOL T20_;
12214 			T19_ = (NIM_BOOL)0;
12215 			T20_ = (NIM_BOOL)0;
12216 			T20_ = !(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65)));
12217 			if (!(T20_)) goto LA21_;
12218 			T20_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
12219 			LA21_: ;
12220 			T19_ = T20_;
12221 			if (!(T19_)) goto LA22_;
12222 			T19_ = ((*c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL));
12223 			LA22_: ;
12224 			if (!T19_) goto LA23_;
12225 			result = newDeref__lowerings_11(result);
12226 		}
12227 		LA23_: ;
12228 	}
12229 	LA1_: ;
12230 	return result;
12231 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,arrayConstr__sigmatch_3721)12232 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, arrayConstr__sigmatch_3721)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
12233 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
12234 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
12235 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
12236 	result = NIM_NIL;
12237 	result = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), c);
12238 	T1_ = NIM_NIL;
12239 	T1_ = makeRangeType__semdata_1039(c, IL64(0), IL64(0), (*n).info, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
12240 	rawAddSon__ast_4288(result, T1_, NIM_TRUE);
12241 	T2_ = NIM_NIL;
12242 	T2_ = skipTypes__ast_3735((*n).typ, TM__EV5hHJmjIY9cla9b9be7fSVJQ_82);
12243 	addSonSkipIntLit__magicsys_136(result, T2_, (*c).Sup.idgen);
12244 	return result;
12245 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,prepareOperand__sigmatch_3700)12246 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, prepareOperand__sigmatch_3700)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
12247 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
12248 	result = NIM_NIL;
12249 	{
12250 		if (!((*a).typ == 0)) goto LA3_;
12251 		result = (*c).semOperand(c, a, 512);
12252 	}
12253 	goto LA1_;
12254 	LA3_: ;
12255 	{
12256 		result = a;
12257 		considerGenSyms__semdata_425(c, result);
12258 	}
12259 	LA1_: ;
12260 	return result;
12261 }
N_NIMCALL(void,matchesAux__sigmatch_3784)12262 N_LIB_PRIVATE N_NIMCALL(void, matchesAux__sigmatch_3784)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* marker) {
12263 	tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ T1_;
12264 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
12265 	NI a;
12266 	NI f;
12267 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
12268 	NI formalLen;
12269 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* formal;
12270 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* container;
12271 	NI firstArgBlock;
12272 {	(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1);
12273 	nimZeroMem((void*)(&T1_), sizeof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ));
12274 	nimZeroMem((void*)(&T1_), sizeof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ));
12275 	(*m).firstMismatch.kind = T1_.kind;
12276 	(*m).firstMismatch.arg = T1_.arg;
12277 	unsureAsgnRef((void**) (&(*m).firstMismatch.formal), T1_.formal);
12278 	T2_ = NIM_NIL;
12279 	T2_ = base__types_63((*m).callee);
12280 	unsureAsgnRef((void**) (&(*m).call), newNodeIT__ast_3378((*n).kind, (*n).info, T2_));
12281 	add__ast_4797((*m).call, (*n)._kind_6.sons->data[((NI) 0)]);
12282 	a = ((NI) 1);
12283 	{
12284 		if (!!(((*(*m).callee).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10)))) goto LA5_;
12285 		f = ((NI) 1);
12286 	}
12287 	goto LA3_;
12288 	LA5_: ;
12289 	{
12290 		f = ((NI) 0);
12291 	}
12292 	LA3_: ;
12293 	arg = NIM_NIL;
12294 	formalLen = len__ast_3198((*(*m).callee).n);
12295 	{
12296 		if (!(((NI) 1) < formalLen)) goto LA10_;
12297 		formal = (*(*(*(*m).callee).n)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
12298 	}
12299 	goto LA8_;
12300 	LA10_: ;
12301 	{
12302 		formal = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
12303 	}
12304 	LA8_: ;
12305 	container = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
12306 	firstArgBlock = findFirstArgBlock__sigmatch_3746(m, n);
12307 	{
12308 		while (1) {
12309 			NI T15_;
12310 			T15_ = (NI)0;
12311 			T15_ = len__ast_3198(n);
12312 			if (!(a < T15_)) goto LA14;
12313 			openShadowScope__lookups_903(c);
12314 			{
12315 				NIM_BOOL T18_;
12316 				NIM_BOOL T19_;
12317 				NIM_BOOL T22_;
12318 				T18_ = (NIM_BOOL)0;
12319 				T19_ = (NIM_BOOL)0;
12320 				T19_ = ((NI)(formalLen - ((NI) 1)) <= a);
12321 				if (!(T19_)) goto LA20_;
12322 				T19_ = (f < formalLen);
12323 				LA20_: ;
12324 				T18_ = T19_;
12325 				if (!(T18_)) goto LA21_;
12326 				T22_ = (NIM_BOOL)0;
12327 				T22_ = ((*(*(*(*(*m).callee).n)._kind_6.sons->data[f]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48));
12328 				if (!(T22_)) goto LA23_;
12329 				T22_ = ((*(*(*(*(*(*m).callee).n)._kind_6.sons->data[f]).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
12330 				LA23_: ;
12331 				T18_ = T22_;
12332 				LA21_: ;
12333 				if (!T18_) goto LA24_;
12334 				formal = (*(*(*(*m).callee).n)._kind_6.sons->data[f])._kind_4.sym;
12335 				incl__pureZcollectionsZintsets_55(marker, (*formal).position);
12336 				{
12337 					if (!((*(*n)._kind_6.sons->data[a]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58))) goto LA28_;
12338 					{
12339 						NIM_BOOL T32_;
12340 						T32_ = (NIM_BOOL)0;
12341 						T32_ = ((*(*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
12342 						if (!(T32_)) goto LA33_;
12343 						T32_ = ((*(*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41) || (*(*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152));
12344 						LA33_: ;
12345 						if (!!(T32_)) goto LA34_;
12346 						failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_79));
12347 					}
12348 					LA34_: ;
12349 					setSon__sigmatch_3650((*m).call, (NI)((*formal).position + ((NI) 1)), (*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)]);
12350 				}
12351 				goto LA26_;
12352 				LA28_: ;
12353 				{
12354 					{
12355 						tyObject_TType__facALICuu8zUj0hjvbTLFg* T41_;
12356 						if (!(container == 0)) goto LA39_;
12357 						T41_ = NIM_NIL;
12358 						T41_ = arrayConstr__sigmatch_3725(c, (*n).info);
12359 						container = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*(*n)._kind_6.sons->data[a]).info, T41_);
12360 						setSon__sigmatch_3650((*m).call, (NI)((*formal).position + ((NI) 1)), container);
12361 					}
12362 					goto LA37_;
12363 					LA39_: ;
12364 					{
12365 						incrIndexType__sigmatch_3729((*container).typ);
12366 					}
12367 					LA37_: ;
12368 					add__ast_4797(container, (*n)._kind_6.sons->data[a]);
12369 				}
12370 				LA26_: ;
12371 			}
12372 			goto LA16_;
12373 			LA24_: ;
12374 			{
12375 				if (!((*(*n)._kind_6.sons->data[a]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33))) goto LA44_;
12376 				(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 2);
12377 				prepareNamedParam__sigmatch_3709((*n)._kind_6.sons->data[a], c);
12378 				{
12379 					if (!!(((*(*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2)))) goto LA48_;
12380 					liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[a]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_80), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_81, NIM_FALSE);
12381 					mergeShadowScope__lookups_907(c);
12382 					(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12383 					(*m).firstMismatch.arg = a;
12384 					unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12385 					goto BeforeRet_;
12386 				}
12387 				LA48_: ;
12388 				formal = getNamedParamFromList__astalgo_293((*(*m).callee).n, (*(*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 0)])._kind_5.ident);
12389 				{
12390 					if (!(formal == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA52_;
12391 					mergeShadowScope__lookups_907(c);
12392 					(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12393 					(*m).firstMismatch.arg = a;
12394 					unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12395 					goto BeforeRet_;
12396 				}
12397 				LA52_: ;
12398 				{
12399 					NIM_BOOL T56_;
12400 					T56_ = (NIM_BOOL)0;
12401 					T56_ = containsOrIncl__astalgo_402(marker, (*formal).position);
12402 					if (!T56_) goto LA57_;
12403 					(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 1);
12404 					mergeShadowScope__lookups_907(c);
12405 					(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12406 					(*m).firstMismatch.arg = a;
12407 					unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12408 					goto BeforeRet_;
12409 				}
12410 				LA57_: ;
12411 				(*m).baseTypeMatch = NIM_FALSE;
12412 				(*m).typedescMatched = NIM_FALSE;
12413 				asgnRef((void**) (&(*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)]), prepareOperand__sigmatch_3663(c, (*formal).typ, (*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)]));
12414 				asgnRef((void**) (&(*(*n)._kind_6.sons->data[a]).typ), (*(*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)]).typ);
12415 				arg = paramTypesMatch__sigmatch_3583(m, (*formal).typ, (*(*n)._kind_6.sons->data[a]).typ, (*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)], (*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)]);
12416 				(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 3);
12417 				{
12418 					if (!(arg == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA61_;
12419 					mergeShadowScope__lookups_907(c);
12420 					(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12421 					(*m).firstMismatch.arg = a;
12422 					unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12423 					goto BeforeRet_;
12424 				}
12425 				LA61_: ;
12426 				{
12427 					if (!!(((*formal).constraint == 0))) goto LA65_;
12428 					{
12429 						NIM_BOOL T69_;
12430 						T69_ = (NIM_BOOL)0;
12431 						T69_ = matchNodeKinds__parampatterns_505((*formal).constraint, (*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)]);
12432 						if (!T69_) goto LA70_;
12433 						(*m).genericMatches += ((NI) 100);
12434 					}
12435 					goto LA67_;
12436 					LA70_: ;
12437 					{
12438 						mergeShadowScope__lookups_907(c);
12439 						(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12440 						(*m).firstMismatch.arg = a;
12441 						unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12442 						goto BeforeRet_;
12443 					}
12444 					LA67_: ;
12445 				}
12446 				LA65_: ;
12447 				{
12448 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argConverter;
12449 					if (!((*(*formal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA75_;
12450 					{
12451 						if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA79_;
12452 						argConverter = (*arg)._kind_6.sons->data[((NI) 0)];
12453 					}
12454 					goto LA77_;
12455 					LA79_: ;
12456 					{
12457 						argConverter = arg;
12458 					}
12459 					LA77_: ;
12460 					{
12461 						if (!((*argConverter).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA84_;
12462 						{
12463 							if (!!(((*(*argConverter).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23)))) goto LA88_;
12464 							(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4);
12465 							mergeShadowScope__lookups_907(c);
12466 							(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12467 							(*m).firstMismatch.arg = a;
12468 							unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12469 							goto BeforeRet_;
12470 						}
12471 						LA88_: ;
12472 					}
12473 					goto LA82_;
12474 					LA84_: ;
12475 					{
12476 						NIM_BOOL T91_;
12477 						T91_ = (NIM_BOOL)0;
12478 						T91_ = isLValue__sigmatch_3090(c, (*(*n)._kind_6.sons->data[a])._kind_6.sons->data[((NI) 1)]);
12479 						if (!!(T91_)) goto LA92_;
12480 						(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4);
12481 						mergeShadowScope__lookups_907(c);
12482 						(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12483 						(*m).firstMismatch.arg = a;
12484 						unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12485 						goto BeforeRet_;
12486 					}
12487 					goto LA82_;
12488 					LA92_: ;
12489 					LA82_: ;
12490 				}
12491 				LA75_: ;
12492 				{
12493 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T98_;
12494 					if (!(*m).baseTypeMatch) goto LA96_;
12495 					T98_ = NIM_NIL;
12496 					T98_ = arrayConstr__sigmatch_3721(c, arg);
12497 					container = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), (*(*n)._kind_6.sons->data[a]).info, T98_);
12498 					add__ast_4797(container, arg);
12499 					setSon__sigmatch_3650((*m).call, (NI)((*formal).position + ((NI) 1)), container);
12500 					{
12501 						if (!!((f == (NI)(formalLen - ((NI) 1))))) goto LA101_;
12502 						container = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
12503 					}
12504 					LA101_: ;
12505 				}
12506 				goto LA94_;
12507 				LA96_: ;
12508 				{
12509 					setSon__sigmatch_3650((*m).call, (NI)((*formal).position + ((NI) 1)), arg);
12510 				}
12511 				LA94_: ;
12512 				f += ((NI) 1);
12513 			}
12514 			goto LA16_;
12515 			LA44_: ;
12516 			{
12517 				{
12518 					if (!(formalLen <= f)) goto LA107_;
12519 					{
12520 						if (!(((*(*m).callee).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0)) goto LA111_;
12521 						asgnRef((void**) (&(*n)._kind_6.sons->data[a]), prepareOperand__sigmatch_3700(c, (*n)._kind_6.sons->data[a]));
12522 						{
12523 							tyObject_TType__facALICuu8zUj0hjvbTLFg* T115_;
12524 							tyObject_TType__facALICuu8zUj0hjvbTLFg* T118_;
12525 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T119_;
12526 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T120_;
12527 							T115_ = NIM_NIL;
12528 							T115_ = skipTypes__ast_3735((*(*n)._kind_6.sons->data[a]).typ, TM__EV5hHJmjIY9cla9b9be7fSVJQ_56);
12529 							if (!((*T115_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28))) goto LA116_;
12530 							T118_ = NIM_NIL;
12531 							T118_ = getSysType__magicsys_60((*c).graph, (*(*n)._kind_6.sons->data[a]).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29));
12532 							T119_ = NIM_NIL;
12533 							T119_ = copyTree__ast_4431((*n)._kind_6.sons->data[a]);
12534 							T120_ = NIM_NIL;
12535 							T120_ = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), T118_, T119_, (&(*m)), c);
12536 							add__ast_4797((*m).call, T120_);
12537 						}
12538 						goto LA113_;
12539 						LA116_: ;
12540 						{
12541 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T122_;
12542 							T122_ = NIM_NIL;
12543 							T122_ = copyTree__ast_4431((*n)._kind_6.sons->data[a]);
12544 							add__ast_4797((*m).call, T122_);
12545 						}
12546 						LA113_: ;
12547 					}
12548 					goto LA109_;
12549 					LA111_: ;
12550 					{
12551 						NIM_BOOL T124_;
12552 						T124_ = (NIM_BOOL)0;
12553 						T124_ = !((formal == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
12554 						if (!(T124_)) goto LA125_;
12555 						T124_ = ((*(*formal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48));
12556 						LA125_: ;
12557 						if (!T124_) goto LA126_;
12558 						(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 3);
12559 						(*m).baseTypeMatch = NIM_FALSE;
12560 						(*m).typedescMatched = NIM_FALSE;
12561 						incl__pureZcollectionsZintsets_55(marker, (*formal).position);
12562 						asgnRef((void**) (&(*n)._kind_6.sons->data[a]), prepareOperand__sigmatch_3663(c, (*formal).typ, (*n)._kind_6.sons->data[a]));
12563 						arg = paramTypesMatch__sigmatch_3583(m, (*formal).typ, (*(*n)._kind_6.sons->data[a]).typ, (*n)._kind_6.sons->data[a], (*nOrig)._kind_6.sons->data[a]);
12564 						{
12565 							NIM_BOOL T130_;
12566 							NIM_BOOL T131_;
12567 							T130_ = (NIM_BOOL)0;
12568 							T131_ = (NIM_BOOL)0;
12569 							T131_ = !((arg == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
12570 							if (!(T131_)) goto LA132_;
12571 							T131_ = (*m).baseTypeMatch;
12572 							LA132_: ;
12573 							T130_ = T131_;
12574 							if (!(T130_)) goto LA133_;
12575 							T130_ = !((container == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
12576 							LA133_: ;
12577 							if (!T130_) goto LA134_;
12578 							add__ast_4797(container, arg);
12579 							incrIndexType__sigmatch_3729((*container).typ);
12580 							{
12581 								if (!!(((*formal).constraint == 0))) goto LA138_;
12582 								{
12583 									NIM_BOOL T142_;
12584 									T142_ = (NIM_BOOL)0;
12585 									T142_ = matchNodeKinds__parampatterns_505((*formal).constraint, (*n)._kind_6.sons->data[a]);
12586 									if (!T142_) goto LA143_;
12587 									(*m).genericMatches += ((NI) 100);
12588 								}
12589 								goto LA140_;
12590 								LA143_: ;
12591 								{
12592 									mergeShadowScope__lookups_907(c);
12593 									(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12594 									(*m).firstMismatch.arg = a;
12595 									unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12596 									goto BeforeRet_;
12597 								}
12598 								LA140_: ;
12599 							}
12600 							LA138_: ;
12601 							{
12602 								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argConverter_2;
12603 								if (!((*(*formal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA148_;
12604 								{
12605 									if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA152_;
12606 									argConverter_2 = (*arg)._kind_6.sons->data[((NI) 0)];
12607 								}
12608 								goto LA150_;
12609 								LA152_: ;
12610 								{
12611 									argConverter_2 = arg;
12612 								}
12613 								LA150_: ;
12614 								{
12615 									if (!((*argConverter_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA157_;
12616 									{
12617 										if (!!(((*(*argConverter_2).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23)))) goto LA161_;
12618 										(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4);
12619 										mergeShadowScope__lookups_907(c);
12620 										(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12621 										(*m).firstMismatch.arg = a;
12622 										unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12623 										goto BeforeRet_;
12624 									}
12625 									LA161_: ;
12626 								}
12627 								goto LA155_;
12628 								LA157_: ;
12629 								{
12630 									NIM_BOOL T164_;
12631 									T164_ = (NIM_BOOL)0;
12632 									T164_ = isLValue__sigmatch_3090(c, (*n)._kind_6.sons->data[a]);
12633 									if (!!(T164_)) goto LA165_;
12634 									(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4);
12635 									mergeShadowScope__lookups_907(c);
12636 									(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12637 									(*m).firstMismatch.arg = a;
12638 									unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12639 									goto BeforeRet_;
12640 								}
12641 								goto LA155_;
12642 								LA165_: ;
12643 								LA155_: ;
12644 							}
12645 							LA148_: ;
12646 						}
12647 						goto LA128_;
12648 						LA134_: ;
12649 						{
12650 							mergeShadowScope__lookups_907(c);
12651 							(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12652 							(*m).firstMismatch.arg = a;
12653 							unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12654 							goto BeforeRet_;
12655 						}
12656 						LA128_: ;
12657 					}
12658 					goto LA109_;
12659 					LA126_: ;
12660 					{
12661 						(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 6);
12662 						mergeShadowScope__lookups_907(c);
12663 						(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12664 						(*m).firstMismatch.arg = a;
12665 						unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12666 						goto BeforeRet_;
12667 					}
12668 					LA109_: ;
12669 				}
12670 				goto LA105_;
12671 				LA107_: ;
12672 				{
12673 					{
12674 						if (!!(((*(*(*(*m).callee).n)._kind_6.sons->data[f]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA172_;
12675 						internalErrorImpl__msgs_1431((*(*c).graph).config, (*(*n)._kind_6.sons->data[a]).info, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_83), TM__EV5hHJmjIY9cla9b9be7fSVJQ_84);
12676 						mergeShadowScope__lookups_907(c);
12677 						(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12678 						(*m).firstMismatch.arg = a;
12679 						unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12680 						goto BeforeRet_;
12681 					}
12682 					LA172_: ;
12683 					{
12684 						NIM_BOOL T176_;
12685 						NI T180_;
12686 						NI T181_;
12687 						T176_ = (NIM_BOOL)0;
12688 						T176_ = (((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 18))&31U)))!=0);
12689 						if (!(T176_)) goto LA177_;
12690 						T176_ = (firstArgBlock <= a);
12691 						LA177_: ;
12692 						if (!T176_) goto LA178_;
12693 						T180_ = (NI)0;
12694 						T180_ = len__ast_3198((*(*m).callee).n);
12695 						T181_ = (NI)0;
12696 						T181_ = len__ast_3198(n);
12697 						f = ((f >= (NI)(T180_ - (NI)(T181_ - a))) ? f : (NI)(T180_ - (NI)(T181_ - a)));
12698 					}
12699 					LA178_: ;
12700 					formal = (*(*(*(*m).callee).n)._kind_6.sons->data[f])._kind_4.sym;
12701 					(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 3);
12702 					{
12703 						NIM_BOOL T184_;
12704 						T184_ = (NIM_BOOL)0;
12705 						T184_ = containsOrIncl__astalgo_402(marker, (*formal).position);
12706 						if (!(T184_)) goto LA185_;
12707 						T184_ = (container == 0);
12708 						LA185_: ;
12709 						if (!T184_) goto LA186_;
12710 						(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 7);
12711 						mergeShadowScope__lookups_907(c);
12712 						(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12713 						(*m).firstMismatch.arg = a;
12714 						unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12715 						goto BeforeRet_;
12716 					}
12717 					LA186_: ;
12718 					{
12719 						NIM_BOOL T190_;
12720 						T190_ = (NIM_BOOL)0;
12721 						T190_ = ((*(*formal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48));
12722 						if (!(T190_)) goto LA191_;
12723 						T190_ = ((*(*(*formal).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
12724 						LA191_: ;
12725 						if (!T190_) goto LA192_;
12726 						{
12727 							tyObject_TType__facALICuu8zUj0hjvbTLFg* T198_;
12728 							if (!(container == 0)) goto LA196_;
12729 							T198_ = NIM_NIL;
12730 							T198_ = arrayConstr__sigmatch_3725(c, (*n).info);
12731 							container = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), (*(*n)._kind_6.sons->data[a]).info, T198_);
12732 							setSon__sigmatch_3650((*m).call, (NI)((*formal).position + ((NI) 1)), container);
12733 						}
12734 						goto LA194_;
12735 						LA196_: ;
12736 						{
12737 							incrIndexType__sigmatch_3729((*container).typ);
12738 						}
12739 						LA194_: ;
12740 						add__ast_4797(container, (*n)._kind_6.sons->data[a]);
12741 					}
12742 					goto LA188_;
12743 					LA192_: ;
12744 					{
12745 						(*m).baseTypeMatch = NIM_FALSE;
12746 						(*m).typedescMatched = NIM_FALSE;
12747 						asgnRef((void**) (&(*n)._kind_6.sons->data[a]), prepareOperand__sigmatch_3663(c, (*formal).typ, (*n)._kind_6.sons->data[a]));
12748 						arg = paramTypesMatch__sigmatch_3583(m, (*formal).typ, (*(*n)._kind_6.sons->data[a]).typ, (*n)._kind_6.sons->data[a], (*nOrig)._kind_6.sons->data[a]);
12749 						{
12750 							if (!(arg == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA203_;
12751 							mergeShadowScope__lookups_907(c);
12752 							(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12753 							(*m).firstMismatch.arg = a;
12754 							unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12755 							goto BeforeRet_;
12756 						}
12757 						LA203_: ;
12758 						{
12759 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T215_;
12760 							NI T216_;
12761 							if (!(*m).baseTypeMatch) goto LA207_;
12762 							{
12763 								tyObject_TType__facALICuu8zUj0hjvbTLFg* T213_;
12764 								if (!(container == 0)) goto LA211_;
12765 								T213_ = NIM_NIL;
12766 								T213_ = arrayConstr__sigmatch_3721(c, arg);
12767 								container = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), (*(*n)._kind_6.sons->data[a]).info, T213_);
12768 								(*(*container).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 0)) & 63);
12769 							}
12770 							goto LA209_;
12771 							LA211_: ;
12772 							{
12773 								incrIndexType__sigmatch_3729((*container).typ);
12774 							}
12775 							LA209_: ;
12776 							add__ast_4797(container, arg);
12777 							T215_ = NIM_NIL;
12778 							T215_ = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), (*formal).typ, container, (&(*m)), c);
12779 							setSon__sigmatch_3650((*m).call, (NI)((*formal).position + ((NI) 1)), T215_);
12780 							T216_ = (NI)0;
12781 							T216_ = len__ast_3198(n);
12782 							f = ((f >= (NI)((NI)((NI)(formalLen - T216_) + a) + ((NI) 1))) ? f : (NI)((NI)((NI)(formalLen - T216_) + a) + ((NI) 1)));
12783 						}
12784 						goto LA205_;
12785 						LA207_: ;
12786 						{
12787 							NIM_BOOL T218_;
12788 							T218_ = (NIM_BOOL)0;
12789 							T218_ = !(((*(*formal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48)));
12790 							if (T218_) goto LA219_;
12791 							T218_ = (container == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
12792 							LA219_: ;
12793 							if (!T218_) goto LA220_;
12794 							setSon__sigmatch_3650((*m).call, (NI)((*formal).position + ((NI) 1)), arg);
12795 							f += ((NI) 1);
12796 							container = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
12797 						}
12798 						goto LA205_;
12799 						LA220_: ;
12800 						{
12801 							tyArray__Re75IspeoxXy2oCZHwcRrA T223_;
12802 							NimStringDesc* T224_;
12803 							nimZeroMem((void*)T223_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
12804 							T223_[0] = typeToString__types_50((*(*n)._kind_6.sons->data[a]).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
12805 							T223_[1] = typeToString__types_50((*formal).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
12806 							T224_ = NIM_NIL;
12807 							T224_ = nsuFormatOpenArray(((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_85), T223_, 2);
12808 							liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[a]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T224_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_86, NIM_FALSE);
12809 							mergeShadowScope__lookups_907(c);
12810 							(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12811 							(*m).firstMismatch.arg = a;
12812 							unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12813 							goto BeforeRet_;
12814 						}
12815 						LA205_: ;
12816 					}
12817 					LA188_: ;
12818 					{
12819 						if (!!(((*formal).constraint == 0))) goto LA227_;
12820 						{
12821 							NIM_BOOL T231_;
12822 							T231_ = (NIM_BOOL)0;
12823 							T231_ = matchNodeKinds__parampatterns_505((*formal).constraint, (*n)._kind_6.sons->data[a]);
12824 							if (!T231_) goto LA232_;
12825 							(*m).genericMatches += ((NI) 100);
12826 						}
12827 						goto LA229_;
12828 						LA232_: ;
12829 						{
12830 							mergeShadowScope__lookups_907(c);
12831 							(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12832 							(*m).firstMismatch.arg = a;
12833 							unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12834 							goto BeforeRet_;
12835 						}
12836 						LA229_: ;
12837 					}
12838 					LA227_: ;
12839 					{
12840 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* argConverter_3;
12841 						if (!((*(*formal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA237_;
12842 						{
12843 							if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA241_;
12844 							argConverter_3 = (*arg)._kind_6.sons->data[((NI) 0)];
12845 						}
12846 						goto LA239_;
12847 						LA241_: ;
12848 						{
12849 							argConverter_3 = arg;
12850 						}
12851 						LA239_: ;
12852 						{
12853 							if (!((*argConverter_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA246_;
12854 							{
12855 								if (!!(((*(*argConverter_3).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23)))) goto LA250_;
12856 								(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4);
12857 								mergeShadowScope__lookups_907(c);
12858 								(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12859 								(*m).firstMismatch.arg = a;
12860 								unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12861 								goto BeforeRet_;
12862 							}
12863 							LA250_: ;
12864 						}
12865 						goto LA244_;
12866 						LA246_: ;
12867 						{
12868 							NIM_BOOL T253_;
12869 							T253_ = (NIM_BOOL)0;
12870 							T253_ = isLValue__sigmatch_3090(c, (*n)._kind_6.sons->data[a]);
12871 							if (!!(T253_)) goto LA254_;
12872 							(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4);
12873 							mergeShadowScope__lookups_907(c);
12874 							(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
12875 							(*m).firstMismatch.arg = a;
12876 							unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12877 							goto BeforeRet_;
12878 						}
12879 						goto LA244_;
12880 						LA254_: ;
12881 						LA244_: ;
12882 					}
12883 					LA237_: ;
12884 				}
12885 				LA105_: ;
12886 			}
12887 			LA16_: ;
12888 			{
12889 				NIM_BOOL T258_;
12890 				NIM_BOOL T260_;
12891 				T258_ = (NIM_BOOL)0;
12892 				T258_ = ((*m).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1));
12893 				if (!(T258_)) goto LA259_;
12894 				T260_ = (NIM_BOOL)0;
12895 				T260_ = !(((*m).calleeSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
12896 				if (!(T260_)) goto LA261_;
12897 				T260_ = ((393216 &((NU32)1<<((NU)((*(*m).calleeSym).kind)&31U)))!=0);
12898 				LA261_: ;
12899 				T258_ = !(T260_);
12900 				LA259_: ;
12901 				if (!T258_) goto LA262_;
12902 				mergeShadowScope__lookups_907(c);
12903 			}
12904 			goto LA256_;
12905 			LA262_: ;
12906 			{
12907 				closeShadowScope__lookups_905(c);
12908 			}
12909 			LA256_: ;
12910 			a += ((NI) 1);
12911 		} LA14: ;
12912 	}
12913 	(*m).firstMismatch.arg = a;
12914 	unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
12915 	}BeforeRet_: ;
12916 }
N_NIMCALL(void,partialMatch__sigmatch_4175)12917 N_LIB_PRIVATE N_NIMCALL(void, partialMatch__sigmatch_4175)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m) {
12918 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
12919 	nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
12920 	initIntSet__pureZcollectionsZintsets_238((&marker));
12921 	matchesAux__sigmatch_3784(c, n, nOrig, m, (&marker));
12922 }
N_NIMCALL(NIM_BOOL,argsFit__sigmatch_5113)12923 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, argsFit__sigmatch_5113)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* candidate, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig) {
12924 	NIM_BOOL result;
12925 	result = (NIM_BOOL)0;
12926 	switch ((*candidate).kind) {
12927 	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6):
12928 	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12) ... ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
12929 	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20):
12930 	{
12931 		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
12932 		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
12933 		newCandidate__sigmatch_189(c, candidate, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((NI) -1), (&m));
12934 		partialMatch__sigmatch_4175(c, n, nOrig, (&m));
12935 		result = !((m.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2)));
12936 	}
12937 	break;
12938 	default:
12939 	{
12940 		result = NIM_FALSE;
12941 	}
12942 	break;
12943 	}
12944 	return result;
12945 }
N_NIMCALL(void,suggestCall__sigmatch_5124)12946 N_LIB_PRIVATE N_NIMCALL(void, suggestCall__sigmatch_5124)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs) {
12947 	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
12948 	info = (*n).info;
12949 	{
12950 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item;
12951 		NI scopeN;
12952 		NIM_BOOL isLocal;
12953 		NIM_BOOL isLocal_2;
12954 		NI scopeN_2;
12955 		item = NIM_NIL;
12956 		scopeN = (NI)0;
12957 		isLocal = (NIM_BOOL)0;
12958 		isLocal_2 = NIM_TRUE;
12959 		scopeN_2 = ((NI) 0);
12960 		{
12961 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
12962 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
12963 			scope = NIM_NIL;
12964 			current = (*c).currentScope;
12965 			{
12966 				while (1) {
12967 					if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA4;
12968 					scope = current;
12969 					{
12970 						if (!(scope == (*c).topLevelScope)) goto LA7_;
12971 						isLocal_2 = NIM_FALSE;
12972 					}
12973 					LA7_: ;
12974 					scopeN_2 -= ((NI) 1);
12975 					{
12976 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item_2;
12977 						tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg it;
12978 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
12979 						item_2 = NIM_NIL;
12980 						nimZeroMem((void*)(&it), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
12981 						s = initTabIter__astalgo_3777((&it), (*scope).symbols);
12982 						{
12983 							while (1) {
12984 								tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp_;
12985 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_2;
12986 								tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm;
12987 								if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA11;
12988 								item_2 = s;
12989 								nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
12990 								colontmp_.Field0 = item_2;
12991 								colontmp_.Field1 = scopeN_2;
12992 								colontmp_.Field2 = isLocal_2;
12993 								item = colontmp_.Field0;
12994 								scopeN = colontmp_.Field1;
12995 								isLocal = colontmp_.Field2;
12996 								it_2 = item;
12997 								pm = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
12998 								{
12999 									NIM_BOOL T14_;
13000 									NIM_BOOL T15_;
13001 									NI T20_;
13002 									tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T21_;
13003 									NI T22_;
13004 									T14_ = (NIM_BOOL)0;
13005 									T15_ = (NIM_BOOL)0;
13006 									T15_ = filterSym__sigmatch_4909(it_2, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), (&pm));
13007 									if (!(T15_)) goto LA16_;
13008 									T15_ = nameFits__sigmatch_5091(c, it_2, n);
13009 									LA16_: ;
13010 									T14_ = T15_;
13011 									if (!(T14_)) goto LA17_;
13012 									T14_ = argsFit__sigmatch_5113(c, it_2, n, nOrig);
13013 									LA17_: ;
13014 									if (!T14_) goto LA18_;
13015 									T20_ = (NI)0;
13016 									T20_ = getQuality__sigmatch_5002(it_2);
13017 									T21_ = NIM_NIL;
13018 									T21_ = symToSuggest__sigmatch_4528((*c).graph, it_2, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 2), info, T20_, pm, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
13019 									unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
13020 									T22_ = (*outputs)->Sup.len++;
13021 									asgnRef((void**) (&(*outputs)->data[T22_]), T21_);
13022 								}
13023 								LA18_: ;
13024 								s = nextIter__astalgo_3762((&it), (*scope).symbols);
13025 							} LA11: ;
13026 						}
13027 					}
13028 					current = (*current).parent;
13029 				} LA4: ;
13030 			}
13031 		}
13032 		scopeN_2 -= ((NI) 1);
13033 		isLocal_2 = NIM_FALSE;
13034 		{
13035 			tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ* im;
13036 			NI i;
13037 			NI L;
13038 			NI T24_;
13039 			im = (tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ*)0;
13040 			i = ((NI) 0);
13041 			T24_ = ((*c).imports ? (*c).imports->Sup.len : 0);
13042 			L = T24_;
13043 			{
13044 				while (1) {
13045 					if (!(i < L)) goto LA26;
13046 					im = (&(*c).imports->data[i]);
13047 					{
13048 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
13049 						NIM_BOOL importHidden;
13050 						s_2 = NIM_NIL;
13051 						importHidden = (((*(*im).m).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0);
13052 						{
13053 							NIM_BOOL T30_;
13054 							tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
13055 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* r;
13056 							T30_ = (NIM_BOOL)0;
13057 							T30_ = isCachedModule__modulegraphs_2709((*c).graph, (*im).m);
13058 							if (!T30_) goto LA31_;
13059 							nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg));
13060 							r = initRodIterAllSyms__icZic_8667((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*(*im).m).position)), importHidden);
13061 							{
13062 								while (1) {
13063 									tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__2;
13064 									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_3;
13065 									tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_2;
13066 									if (!!((r == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA34;
13067 									s_2 = r;
13068 									nimZeroMem((void*)(&colontmp__2), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
13069 									colontmp__2.Field0 = s_2;
13070 									colontmp__2.Field1 = scopeN_2;
13071 									colontmp__2.Field2 = isLocal_2;
13072 									item = colontmp__2.Field0;
13073 									scopeN = colontmp__2.Field1;
13074 									isLocal = colontmp__2.Field2;
13075 									it_3 = item;
13076 									pm_2 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
13077 									{
13078 										NIM_BOOL T37_;
13079 										NIM_BOOL T38_;
13080 										NI T43_;
13081 										tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T44_;
13082 										NI T45_;
13083 										T37_ = (NIM_BOOL)0;
13084 										T38_ = (NIM_BOOL)0;
13085 										T38_ = filterSym__sigmatch_4909(it_3, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), (&pm_2));
13086 										if (!(T38_)) goto LA39_;
13087 										T38_ = nameFits__sigmatch_5091(c, it_3, n);
13088 										LA39_: ;
13089 										T37_ = T38_;
13090 										if (!(T37_)) goto LA40_;
13091 										T37_ = argsFit__sigmatch_5113(c, it_3, n, nOrig);
13092 										LA40_: ;
13093 										if (!T37_) goto LA41_;
13094 										T43_ = (NI)0;
13095 										T43_ = getQuality__sigmatch_5002(it_3);
13096 										T44_ = NIM_NIL;
13097 										T44_ = symToSuggest__sigmatch_4528((*c).graph, it_3, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 2), info, T43_, pm_2, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
13098 										unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
13099 										T45_ = (*outputs)->Sup.len++;
13100 										asgnRef((void**) (&(*outputs)->data[T45_]), T44_);
13101 									}
13102 									LA41_: ;
13103 									r = nextRodIter__icZic_8962((&rodIt), (&(*(*c).graph).packed_0));
13104 								} LA34: ;
13105 							}
13106 						}
13107 						goto LA28_;
13108 						LA31_: ;
13109 						{
13110 							{
13111 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** s_3;
13112 								tySequence__eHqUwlHGGaPw0TDPDeL79cQ* colontmp__3;
13113 								tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* retX60gensym17_;
13114 								NI i_2;
13115 								NI L_2;
13116 								NI T52_;
13117 								s_3 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
13118 								colontmp__3 = NIM_NIL;
13119 								retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interf);
13120 								{
13121 									if (!importHidden) goto LA50_;
13122 									retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interfHidden);
13123 								}
13124 								LA50_: ;
13125 								colontmp__3 = (*retX60gensym17_).data;
13126 								i_2 = ((NI) 0);
13127 								T52_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
13128 								L_2 = T52_;
13129 								{
13130 									while (1) {
13131 										if (!(i_2 < L_2)) goto LA54;
13132 										s_3 = &colontmp__3->data[i_2];
13133 										{
13134 											tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__4;
13135 											tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_4;
13136 											tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_3;
13137 											if (!!(((*s_3) == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA57_;
13138 											s_2 = (*s_3);
13139 											nimZeroMem((void*)(&colontmp__4), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
13140 											colontmp__4.Field0 = s_2;
13141 											colontmp__4.Field1 = scopeN_2;
13142 											colontmp__4.Field2 = isLocal_2;
13143 											item = colontmp__4.Field0;
13144 											scopeN = colontmp__4.Field1;
13145 											isLocal = colontmp__4.Field2;
13146 											it_4 = item;
13147 											pm_3 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
13148 											{
13149 												NIM_BOOL T61_;
13150 												NIM_BOOL T62_;
13151 												NI T67_;
13152 												tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T68_;
13153 												NI T69_;
13154 												T61_ = (NIM_BOOL)0;
13155 												T62_ = (NIM_BOOL)0;
13156 												T62_ = filterSym__sigmatch_4909(it_4, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), (&pm_3));
13157 												if (!(T62_)) goto LA63_;
13158 												T62_ = nameFits__sigmatch_5091(c, it_4, n);
13159 												LA63_: ;
13160 												T61_ = T62_;
13161 												if (!(T61_)) goto LA64_;
13162 												T61_ = argsFit__sigmatch_5113(c, it_4, n, nOrig);
13163 												LA64_: ;
13164 												if (!T61_) goto LA65_;
13165 												T67_ = (NI)0;
13166 												T67_ = getQuality__sigmatch_5002(it_4);
13167 												T68_ = NIM_NIL;
13168 												T68_ = symToSuggest__sigmatch_4528((*c).graph, it_4, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 2), info, T67_, pm_3, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
13169 												unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
13170 												T69_ = (*outputs)->Sup.len++;
13171 												asgnRef((void**) (&(*outputs)->data[T69_]), T68_);
13172 											}
13173 											LA65_: ;
13174 										}
13175 										LA57_: ;
13176 										i_2 += ((NI) 1);
13177 									} LA54: ;
13178 								}
13179 							}
13180 						}
13181 						LA28_: ;
13182 					}
13183 					i += ((NI) 1);
13184 				} LA26: ;
13185 			}
13186 		}
13187 	}
13188 }
N_NIMCALL(void,suggestVar__sigmatch_5139)13189 N_LIB_PRIVATE N_NIMCALL(void, suggestVar__sigmatch_5139)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** outputs) {
13190 	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
13191 	info = (*n).info;
13192 	{
13193 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item;
13194 		NI scopeN;
13195 		NIM_BOOL isLocal;
13196 		NIM_BOOL isLocal_2;
13197 		NI scopeN_2;
13198 		item = NIM_NIL;
13199 		scopeN = (NI)0;
13200 		isLocal = (NIM_BOOL)0;
13201 		isLocal_2 = NIM_TRUE;
13202 		scopeN_2 = ((NI) 0);
13203 		{
13204 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
13205 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
13206 			scope = NIM_NIL;
13207 			current = (*c).currentScope;
13208 			{
13209 				while (1) {
13210 					if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA4;
13211 					scope = current;
13212 					{
13213 						if (!(scope == (*c).topLevelScope)) goto LA7_;
13214 						isLocal_2 = NIM_FALSE;
13215 					}
13216 					LA7_: ;
13217 					scopeN_2 -= ((NI) 1);
13218 					{
13219 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item_2;
13220 						tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg it;
13221 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
13222 						item_2 = NIM_NIL;
13223 						nimZeroMem((void*)(&it), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
13224 						s = initTabIter__astalgo_3777((&it), (*scope).symbols);
13225 						{
13226 							while (1) {
13227 								tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp_;
13228 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_2;
13229 								tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm;
13230 								if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA11;
13231 								item_2 = s;
13232 								nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
13233 								colontmp_.Field0 = item_2;
13234 								colontmp_.Field1 = scopeN_2;
13235 								colontmp_.Field2 = isLocal_2;
13236 								item = colontmp_.Field0;
13237 								scopeN = colontmp_.Field1;
13238 								isLocal = colontmp_.Field2;
13239 								it_2 = item;
13240 								pm = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
13241 								{
13242 									NIM_BOOL T14_;
13243 									NI T17_;
13244 									tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T18_;
13245 									NI T19_;
13246 									T14_ = (NIM_BOOL)0;
13247 									T14_ = nameFits__sigmatch_5091(c, it_2, n);
13248 									if (!T14_) goto LA15_;
13249 									T17_ = (NI)0;
13250 									T17_ = getQuality__sigmatch_5002(it_2);
13251 									T18_ = NIM_NIL;
13252 									T18_ = symToSuggest__sigmatch_4528((*c).graph, it_2, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 2), info, T17_, pm, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
13253 									unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
13254 									T19_ = (*outputs)->Sup.len++;
13255 									asgnRef((void**) (&(*outputs)->data[T19_]), T18_);
13256 								}
13257 								LA15_: ;
13258 								s = nextIter__astalgo_3762((&it), (*scope).symbols);
13259 							} LA11: ;
13260 						}
13261 					}
13262 					current = (*current).parent;
13263 				} LA4: ;
13264 			}
13265 		}
13266 		scopeN_2 -= ((NI) 1);
13267 		isLocal_2 = NIM_FALSE;
13268 		{
13269 			tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ* im;
13270 			NI i;
13271 			NI L;
13272 			NI T21_;
13273 			im = (tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ*)0;
13274 			i = ((NI) 0);
13275 			T21_ = ((*c).imports ? (*c).imports->Sup.len : 0);
13276 			L = T21_;
13277 			{
13278 				while (1) {
13279 					if (!(i < L)) goto LA23;
13280 					im = (&(*c).imports->data[i]);
13281 					{
13282 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
13283 						NIM_BOOL importHidden;
13284 						s_2 = NIM_NIL;
13285 						importHidden = (((*(*im).m).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0);
13286 						{
13287 							NIM_BOOL T27_;
13288 							tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
13289 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* r;
13290 							T27_ = (NIM_BOOL)0;
13291 							T27_ = isCachedModule__modulegraphs_2709((*c).graph, (*im).m);
13292 							if (!T27_) goto LA28_;
13293 							nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg));
13294 							r = initRodIterAllSyms__icZic_8667((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*(*im).m).position)), importHidden);
13295 							{
13296 								while (1) {
13297 									tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__2;
13298 									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_3;
13299 									tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_2;
13300 									if (!!((r == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA31;
13301 									s_2 = r;
13302 									nimZeroMem((void*)(&colontmp__2), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
13303 									colontmp__2.Field0 = s_2;
13304 									colontmp__2.Field1 = scopeN_2;
13305 									colontmp__2.Field2 = isLocal_2;
13306 									item = colontmp__2.Field0;
13307 									scopeN = colontmp__2.Field1;
13308 									isLocal = colontmp__2.Field2;
13309 									it_3 = item;
13310 									pm_2 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
13311 									{
13312 										NIM_BOOL T34_;
13313 										NI T37_;
13314 										tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T38_;
13315 										NI T39_;
13316 										T34_ = (NIM_BOOL)0;
13317 										T34_ = nameFits__sigmatch_5091(c, it_3, n);
13318 										if (!T34_) goto LA35_;
13319 										T37_ = (NI)0;
13320 										T37_ = getQuality__sigmatch_5002(it_3);
13321 										T38_ = NIM_NIL;
13322 										T38_ = symToSuggest__sigmatch_4528((*c).graph, it_3, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 2), info, T37_, pm_2, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
13323 										unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
13324 										T39_ = (*outputs)->Sup.len++;
13325 										asgnRef((void**) (&(*outputs)->data[T39_]), T38_);
13326 									}
13327 									LA35_: ;
13328 									r = nextRodIter__icZic_8962((&rodIt), (&(*(*c).graph).packed_0));
13329 								} LA31: ;
13330 							}
13331 						}
13332 						goto LA25_;
13333 						LA28_: ;
13334 						{
13335 							{
13336 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** s_3;
13337 								tySequence__eHqUwlHGGaPw0TDPDeL79cQ* colontmp__3;
13338 								tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* retX60gensym17_;
13339 								NI i_2;
13340 								NI L_2;
13341 								NI T46_;
13342 								s_3 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
13343 								colontmp__3 = NIM_NIL;
13344 								retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interf);
13345 								{
13346 									if (!importHidden) goto LA44_;
13347 									retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interfHidden);
13348 								}
13349 								LA44_: ;
13350 								colontmp__3 = (*retX60gensym17_).data;
13351 								i_2 = ((NI) 0);
13352 								T46_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
13353 								L_2 = T46_;
13354 								{
13355 									while (1) {
13356 										if (!(i_2 < L_2)) goto LA48;
13357 										s_3 = &colontmp__3->data[i_2];
13358 										{
13359 											tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__4;
13360 											tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it_4;
13361 											tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_3;
13362 											if (!!(((*s_3) == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA51_;
13363 											s_2 = (*s_3);
13364 											nimZeroMem((void*)(&colontmp__4), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
13365 											colontmp__4.Field0 = s_2;
13366 											colontmp__4.Field1 = scopeN_2;
13367 											colontmp__4.Field2 = isLocal_2;
13368 											item = colontmp__4.Field0;
13369 											scopeN = colontmp__4.Field1;
13370 											isLocal = colontmp__4.Field2;
13371 											it_4 = item;
13372 											pm_3 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
13373 											{
13374 												NIM_BOOL T55_;
13375 												NI T58_;
13376 												tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T59_;
13377 												NI T60_;
13378 												T55_ = (NIM_BOOL)0;
13379 												T55_ = nameFits__sigmatch_5091(c, it_4, n);
13380 												if (!T55_) goto LA56_;
13381 												T58_ = (NI)0;
13382 												T58_ = getQuality__sigmatch_5002(it_4);
13383 												T59_ = NIM_NIL;
13384 												T59_ = symToSuggest__sigmatch_4528((*c).graph, it_4, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 2), info, T58_, pm_3, (((NI) 0) < (*c).inTypeContext), scopeN, NIM_FALSE);
13385 												unsureAsgnRef((void**) (&(*outputs)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)((*outputs)), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_)));
13386 												T60_ = (*outputs)->Sup.len++;
13387 												asgnRef((void**) (&(*outputs)->data[T60_]), T59_);
13388 											}
13389 											LA56_: ;
13390 										}
13391 										LA51_: ;
13392 										i_2 += ((NI) 1);
13393 									} LA48: ;
13394 								}
13395 							}
13396 						}
13397 						LA25_: ;
13398 					}
13399 					i += ((NI) 1);
13400 				} LA23: ;
13401 			}
13402 		}
13403 	}
13404 }
N_NIMCALL(tySequence__i7xpiUsxyv6cQ1xK3JbcGQ *,newSeq__sigmatch_4767)13405 N_LIB_PRIVATE N_NIMCALL(tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*, newSeq__sigmatch_4767)(NI len) {
13406 	tySequence__i7xpiUsxyv6cQ1xK3JbcGQ* result;
13407 	result = NIM_NIL;
13408 	result = (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) newSeq((&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_), len);
13409 	return result;
13410 }
N_INLINE(NI,star___pureZalgorithm_8)13411 static N_INLINE(NI, star___pureZalgorithm_8)(NI x, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order) {
13412 	NI result;
13413 	NI y;
13414 	result = (NI)0;
13415 	y = (NI)(order - ((NI) 1));
13416 	result = (NI)((NI)(x ^ y) - y);
13417 	return result;
13418 }
N_NIMCALL(void,mergeAlt__sigmatch_4787)13419 N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__sigmatch_4787)(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ** a, NI aLen_0, tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ** b, NI bLen_0, NI lo, NI m, NI hi, tyProc__pNH4eLNN9aK2oskAhILvUcw cmp, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order) {
13420 	NI j;
13421 	NI bb;
13422 	NI i;
13423 	NI k;
13424 {	{
13425 		NI T3_;
13426 		NI T4_;
13427 		T3_ = (NI)0;
13428 		T3_ = cmp.ClE_0? cmp.ClP_0(a[m], a[(NI)(m + ((NI) 1))], cmp.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_87)(cmp.ClP_0))(a[m], a[(NI)(m + ((NI) 1))]);
13429 		T4_ = (NI)0;
13430 		T4_ = star___pureZalgorithm_8(T3_, order);
13431 		if (!(T4_ <= ((NI) 0))) goto LA5_;
13432 		goto BeforeRet_;
13433 	}
13434 	LA5_: ;
13435 	j = lo;
13436 	bb = ((NI) 0);
13437 	{
13438 		while (1) {
13439 			if (!(j <= m)) goto LA8;
13440 			unsureAsgnRef((void**) (&b[bb]), a[j]);
13441 			bb += ((NI) 1);
13442 			j += ((NI) 1);
13443 		} LA8: ;
13444 	}
13445 	i = ((NI) 0);
13446 	k = lo;
13447 	{
13448 		while (1) {
13449 			NIM_BOOL T11_;
13450 			T11_ = (NIM_BOOL)0;
13451 			T11_ = (k < j);
13452 			if (!(T11_)) goto LA12_;
13453 			T11_ = (j <= hi);
13454 			LA12_: ;
13455 			if (!T11_) goto LA10;
13456 			{
13457 				NI T15_;
13458 				NI T16_;
13459 				T15_ = (NI)0;
13460 				T15_ = cmp.ClE_0? cmp.ClP_0(b[i], a[j], cmp.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_88)(cmp.ClP_0))(b[i], a[j]);
13461 				T16_ = (NI)0;
13462 				T16_ = star___pureZalgorithm_8(T15_, order);
13463 				if (!(T16_ <= ((NI) 0))) goto LA17_;
13464 				unsureAsgnRef((void**) (&a[k]), b[i]);
13465 				i += ((NI) 1);
13466 			}
13467 			goto LA13_;
13468 			LA17_: ;
13469 			{
13470 				unsureAsgnRef((void**) (&a[k]), a[j]);
13471 				j += ((NI) 1);
13472 			}
13473 			LA13_: ;
13474 			k += ((NI) 1);
13475 		} LA10: ;
13476 	}
13477 	{
13478 		while (1) {
13479 			if (!(k < j)) goto LA21;
13480 			unsureAsgnRef((void**) (&a[k]), b[i]);
13481 			k += ((NI) 1);
13482 			i += ((NI) 1);
13483 		} LA21: ;
13484 	}
13485 	}BeforeRet_: ;
13486 }
N_NIMCALL(void,sort__sigmatch_4755)13487 N_LIB_PRIVATE N_NIMCALL(void, sort__sigmatch_4755)(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ** a, NI aLen_0, tyProc__pNH4eLNN9aK2oskAhILvUcw cmp, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order) {
13488 	NI n;
13489 	tySequence__i7xpiUsxyv6cQ1xK3JbcGQ* b;
13490 	NI s;
13491 	n = aLen_0;
13492 	b = newSeq__sigmatch_4767(((NI) ((NI)(n / ((NI) 2)))));
13493 	s = ((NI) 1);
13494 	{
13495 		while (1) {
13496 			NI m;
13497 			if (!(s < n)) goto LA2;
13498 			m = (NI)((NI)(n - ((NI) 1)) - s);
13499 			{
13500 				while (1) {
13501 					if (!(((NI) 0) <= m)) goto LA4;
13502 					mergeAlt__sigmatch_4787(a, aLen_0, b->data, (b ? b->Sup.len : 0), (((NI)((NI)(m - s) + ((NI) 1)) >= ((NI) 0)) ? (NI)((NI)(m - s) + ((NI) 1)) : ((NI) 0)), m, (NI)(m + s), cmp, order);
13503 					m -= (NI)(s * ((NI) 2));
13504 				} LA4: ;
13505 			}
13506 			s = (NI)(s * ((NI) 2));
13507 		} LA2: ;
13508 	}
13509 }
N_NIMCALL(NI,cmpSuggestions__sigmatch_4436)13510 N_LIB_PRIVATE N_NIMCALL(NI, cmpSuggestions__sigmatch_4436)(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* a, tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* b) {
13511 	NI result;
13512 {	result = (NI)0;
13513 	result = (NI)(((NI) ((*b).prefix)) - ((NI) ((*a).prefix)));
13514 	{
13515 		if (!!((result == ((NI) 0)))) goto LA3_;
13516 		goto BeforeRet_;
13517 	}
13518 	LA3_: ;
13519 	result = (NI)(((NI) ((*b).contextFits)) - ((NI) ((*a).contextFits)));
13520 	{
13521 		if (!!((result == ((NI) 0)))) goto LA7_;
13522 		goto BeforeRet_;
13523 	}
13524 	LA7_: ;
13525 	result = (NI)((*b).scope - (*a).scope);
13526 	{
13527 		if (!!((result == ((NI) 0)))) goto LA11_;
13528 		goto BeforeRet_;
13529 	}
13530 	LA11_: ;
13531 	result = (NI)(((NI) ((*b).quality)) - ((NI) ((*a).quality)));
13532 	{
13533 		if (!!((result == ((NI) 0)))) goto LA15_;
13534 		goto BeforeRet_;
13535 	}
13536 	LA15_: ;
13537 	result = (NI)((*b).localUsages - (*a).localUsages);
13538 	{
13539 		if (!!((result == ((NI) 0)))) goto LA19_;
13540 		goto BeforeRet_;
13541 	}
13542 	LA19_: ;
13543 	result = (NI)((*b).globalUsages - (*a).globalUsages);
13544 	{
13545 		if (!!((result == ((NI) 0)))) goto LA23_;
13546 		goto BeforeRet_;
13547 	}
13548 	LA23_: ;
13549 	result = cmp__system_1549((*(*a).name), (*(*b).name));
13550 	}BeforeRet_: ;
13551 	return result;
13552 }
N_NIMCALL(NimStringDesc *,dollar___sigmatch_4707)13553 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___sigmatch_4707)(tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* suggest) {
13554 	NimStringDesc* result;
13555 	result = NIM_NIL;
13556 	result = dollar___options_4697((*suggest).section);
13557 	result = addChar(result, 9);
13558 	{
13559 		NimStringDesc* T17_;
13560 		NimStringDesc* T18_;
13561 		NimStringDesc* T19_;
13562 		if (!((*suggest).section == ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 8))) goto LA3_;
13563 		{
13564 			NIM_BOOL T7_;
13565 			T7_ = (NIM_BOOL)0;
13566 			T7_ = (((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) ((*suggest).symkind)) == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8));
13567 			if (!(T7_)) goto LA8_;
13568 			T7_ = (*suggest).isGlobal;
13569 			LA8_: ;
13570 			if (!T7_) goto LA9_;
13571 			result = resizeString(result, 11);
13572 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_91));
13573 		}
13574 		goto LA5_;
13575 		LA9_: ;
13576 		{
13577 			NIM_BOOL T12_;
13578 			T12_ = (NIM_BOOL)0;
13579 			T12_ = (((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) ((*suggest).symkind)) == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
13580 			if (!(T12_)) goto LA13_;
13581 			T12_ = (*suggest).isGlobal;
13582 			LA13_: ;
13583 			if (!T12_) goto LA14_;
13584 			result = resizeString(result, 11);
13585 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_92));
13586 		}
13587 		goto LA5_;
13588 		LA14_: ;
13589 		{
13590 			result = resizeString(result, (reprEnum((NI)((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) ((*suggest).symkind)), (&NTItsymkind__cNCW9acsSznmEccl1fgQwkw_)) ? reprEnum((NI)((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) ((*suggest).symkind)), (&NTItsymkind__cNCW9acsSznmEccl1fgQwkw_))->Sup.len : 0) + 0);
13591 appendString(result, reprEnum((NI)((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) ((*suggest).symkind)), (&NTItsymkind__cNCW9acsSznmEccl1fgQwkw_)));
13592 		}
13593 		LA5_: ;
13594 		result = addChar(result, 9);
13595 		T17_ = NIM_NIL;
13596 		T17_ = dollar___systemZdollars_3((*suggest).line);
13597 		result = resizeString(result, (T17_ ? T17_->Sup.len : 0) + 0);
13598 appendString(result, T17_);
13599 		result = addChar(result, 9);
13600 		T18_ = NIM_NIL;
13601 		T18_ = dollar___systemZdollars_3((*suggest).column);
13602 		result = resizeString(result, (T18_ ? T18_->Sup.len : 0) + 0);
13603 appendString(result, T18_);
13604 		result = addChar(result, 9);
13605 		T19_ = NIM_NIL;
13606 		T19_ = dollar___systemZdollars_3((*suggest).tokenLen);
13607 		result = resizeString(result, (T19_ ? T19_->Sup.len : 0) + 0);
13608 appendString(result, T19_);
13609 	}
13610 	goto LA1_;
13611 	LA3_: ;
13612 	{
13613 		NimStringDesc* T27_;
13614 		NimStringDesc* T28_;
13615 		result = resizeString(result, (reprEnum((NI)((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) ((*suggest).symkind)), (&NTItsymkind__cNCW9acsSznmEccl1fgQwkw_)) ? reprEnum((NI)((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) ((*suggest).symkind)), (&NTItsymkind__cNCW9acsSznmEccl1fgQwkw_))->Sup.len : 0) + 0);
13616 appendString(result, reprEnum((NI)((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) ((*suggest).symkind)), (&NTItsymkind__cNCW9acsSznmEccl1fgQwkw_)));
13617 		result = addChar(result, 9);
13618 		{
13619 			NI T23_;
13620 			NimStringDesc* T26_;
13621 			T23_ = ((*suggest).qualifiedPath ? (*suggest).qualifiedPath->Sup.len : 0);
13622 			if (!!((T23_ == ((NI) 0)))) goto LA24_;
13623 			T26_ = NIM_NIL;
13624 			T26_ = nsuJoinSep((*suggest).qualifiedPath->data, ((*suggest).qualifiedPath ? (*suggest).qualifiedPath->Sup.len : 0), ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_93));
13625 			result = resizeString(result, (T26_ ? T26_->Sup.len : 0) + 0);
13626 appendString(result, T26_);
13627 		}
13628 		LA24_: ;
13629 		result = addChar(result, 9);
13630 		result = resizeString(result, ((*suggest).forth ? (*suggest).forth->Sup.len : 0) + 0);
13631 appendString(result, (*suggest).forth);
13632 		result = addChar(result, 9);
13633 		result = resizeString(result, ((*suggest).filePath ? (*suggest).filePath->Sup.len : 0) + 0);
13634 appendString(result, (*suggest).filePath);
13635 		result = addChar(result, 9);
13636 		T27_ = NIM_NIL;
13637 		T27_ = dollar___systemZdollars_3((*suggest).line);
13638 		result = resizeString(result, (T27_ ? T27_->Sup.len : 0) + 0);
13639 appendString(result, T27_);
13640 		result = addChar(result, 9);
13641 		T28_ = NIM_NIL;
13642 		T28_ = dollar___systemZdollars_3((*suggest).column);
13643 		result = resizeString(result, (T28_ ? T28_->Sup.len : 0) + 0);
13644 appendString(result, T28_);
13645 		result = addChar(result, 9);
13646 		{
13647 			NimStringDesc* T33_;
13648 			if (!((*suggest).version == ((NI) 0))) goto LA31_;
13649 			result = addChar(result, 9);
13650 			T33_ = NIM_NIL;
13651 			T33_ = dollar___systemZdollars_3(((NI) ((*suggest).quality)));
13652 			result = resizeString(result, (T33_ ? T33_->Sup.len : 0) + 0);
13653 appendString(result, T33_);
13654 			{
13655 				if (!((*suggest).section == ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1))) goto LA36_;
13656 				result = addChar(result, 9);
13657 				result = resizeString(result, (reprEnum((NI)(*suggest).prefix, (&NTIprefixmatch__Dkww2nY9cxJVLF9cfoQS5U6Q_)) ? reprEnum((NI)(*suggest).prefix, (&NTIprefixmatch__Dkww2nY9cxJVLF9cfoQS5U6Q_))->Sup.len : 0) + 0);
13658 appendString(result, reprEnum((NI)(*suggest).prefix, (&NTIprefixmatch__Dkww2nY9cxJVLF9cfoQS5U6Q_)));
13659 			}
13660 			LA36_: ;
13661 		}
13662 		LA31_: ;
13663 	}
13664 	LA1_: ;
13665 	return result;
13666 }
N_NIMCALL(void,produceOutput__sigmatch_4746)13667 N_LIB_PRIVATE N_NIMCALL(void, produceOutput__sigmatch_4746)(tySequence__i7xpiUsxyv6cQ1xK3JbcGQ** a, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
13668 	{
13669 		tyProc__pNH4eLNN9aK2oskAhILvUcw T5_;
13670 		if (!((6 &((NU16)1<<((NU)((*conf).ideCmd)&15U)))!=0)) goto LA3_;
13671 		nimZeroMem((void*)(&T5_), sizeof(tyProc__pNH4eLNN9aK2oskAhILvUcw));
13672 		T5_.ClP_0 = ((TM__EV5hHJmjIY9cla9b9be7fSVJQ_89) (cmpSuggestions__sigmatch_4436)); T5_.ClE_0 = NIM_NIL;
13673 		sort__sigmatch_4755((*a)->data, ((*a) ? (*a)->Sup.len : 0), T5_, ((tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA) 1));
13674 	}
13675 	LA3_: ;
13676 	{
13677 		NI T8_;
13678 		T8_ = ((*a) ? (*a)->Sup.len : 0);
13679 		if (!((*conf).suggestMaxResults < T8_)) goto LA9_;
13680 		unsureAsgnRef((void**) (&(*a)), (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) setLengthSeqV2(&((*a))->Sup, (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_), ((NI) ((*conf).suggestMaxResults))));
13681 	}
13682 	LA9_: ;
13683 	{
13684 		if (!!(((*conf).suggestionResultHook.ClP_0 == 0))) goto LA13_;
13685 		{
13686 			tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ** s;
13687 			NI i;
13688 			NI L;
13689 			NI T16_;
13690 			s = (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ**)0;
13691 			i = ((NI) 0);
13692 			T16_ = ((*a) ? (*a)->Sup.len : 0);
13693 			L = T16_;
13694 			{
13695 				while (1) {
13696 					if (!(i < L)) goto LA18;
13697 					s = &(*a)->data[i];
13698 					(*conf).suggestionResultHook.ClE_0? (*conf).suggestionResultHook.ClP_0((*s), (*conf).suggestionResultHook.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_90)((*conf).suggestionResultHook.ClP_0))((*s));
13699 					i += ((NI) 1);
13700 				} LA18: ;
13701 			}
13702 		}
13703 	}
13704 	goto LA11_;
13705 	LA13_: ;
13706 	{
13707 		{
13708 			tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ** s_2;
13709 			NI i_2;
13710 			NI L_2;
13711 			NI T21_;
13712 			s_2 = (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ**)0;
13713 			i_2 = ((NI) 0);
13714 			T21_ = ((*a) ? (*a)->Sup.len : 0);
13715 			L_2 = T21_;
13716 			{
13717 				while (1) {
13718 					NimStringDesc* T24_;
13719 					if (!(i_2 < L_2)) goto LA23;
13720 					s_2 = &(*a)->data[i_2];
13721 					T24_ = NIM_NIL;
13722 					T24_ = dollar___sigmatch_4707((*s_2));
13723 					suggestWriteln__msgs_421(conf, T24_);
13724 					i_2 += ((NI) 1);
13725 				} LA23: ;
13726 			}
13727 		}
13728 	}
13729 	LA11_: ;
13730 }
N_NIMCALL(void,suggestExprNoCheck__sigmatch_6450)13731 N_LIB_PRIVATE N_NIMCALL(void, suggestExprNoCheck__sigmatch_6450)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
13732 	tySequence__i7xpiUsxyv6cQ1xK3JbcGQ* outputs;
13733 {	{
13734 		if (!(((NI) 0) < (*c).compilesContextId)) goto LA3_;
13735 		goto BeforeRet_;
13736 	}
13737 	LA3_: ;
13738 	(*c).compilesContextId += ((NI) 1);
13739 	outputs = NIM_NIL;
13740 	{
13741 		if (!((*(*(*c).graph).config).ideCmd == ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1))) goto LA7_;
13742 		sugExpr__sigmatch_6417(c, n, (&outputs));
13743 	}
13744 	goto LA5_;
13745 	LA7_: ;
13746 	{
13747 		if (!((*(*(*c).graph).config).ideCmd == ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 2))) goto LA10_;
13748 		{
13749 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
13750 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
13751 			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA14_;
13752 			a = copyNode__ast_4336(n);
13753 			x = safeSemExpr__sigmatch_6411(c, (*n)._kind_6.sons->data[((NI) 0)]);
13754 			{
13755 				NIM_BOOL T18_;
13756 				T18_ = (NIM_BOOL)0;
13757 				T18_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
13758 				if (T18_) goto LA19_;
13759 				T18_ = ((*x).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
13760 				LA19_: ;
13761 				if (!T18_) goto LA20_;
13762 				x = (*n)._kind_6.sons->data[((NI) 0)];
13763 			}
13764 			LA20_: ;
13765 			add__ast_4797(a, x);
13766 			{
13767 				NI i;
13768 				NI colontmp_;
13769 				NI i_2;
13770 				i = (NI)0;
13771 				colontmp_ = (NI)0;
13772 				colontmp_ = len__ast_3198(n);
13773 				i_2 = ((NI) 1);
13774 				{
13775 					while (1) {
13776 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x_2;
13777 						if (!(i_2 < colontmp_)) goto LA24;
13778 						i = i_2;
13779 						x_2 = safeSemExpr__sigmatch_6411(c, (*n)._kind_6.sons->data[i]);
13780 						{
13781 							NIM_BOOL T27_;
13782 							T27_ = (NIM_BOOL)0;
13783 							T27_ = ((*x_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
13784 							if (T27_) goto LA28_;
13785 							T27_ = ((*x_2).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
13786 							LA28_: ;
13787 							if (!T27_) goto LA29_;
13788 							goto LA22;
13789 						}
13790 						LA29_: ;
13791 						add__ast_4797(a, x_2);
13792 						i_2 += ((NI) 1);
13793 					} LA24: ;
13794 				}
13795 			} LA22: ;
13796 			suggestCall__sigmatch_5124(c, a, n, (&outputs));
13797 		}
13798 		goto LA12_;
13799 		LA14_: ;
13800 		{
13801 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x_3;
13802 			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56))) goto LA32_;
13803 			x_3 = safeSemExpr__sigmatch_6411(c, n);
13804 			{
13805 				NIM_BOOL T36_;
13806 				T36_ = (NIM_BOOL)0;
13807 				T36_ = ((*x_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
13808 				if (T36_) goto LA37_;
13809 				T36_ = ((*x_3).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
13810 				LA37_: ;
13811 				if (!T36_) goto LA38_;
13812 				x_3 = n;
13813 			}
13814 			LA38_: ;
13815 			suggestVar__sigmatch_5139(c, x_3, (&outputs));
13816 		}
13817 		goto LA12_;
13818 		LA32_: ;
13819 		LA12_: ;
13820 	}
13821 	goto LA5_;
13822 	LA10_: ;
13823 	LA5_: ;
13824 	(*c).compilesContextId -= ((NI) 1);
13825 	{
13826 		NIM_BOOL T42_;
13827 		NI T43_;
13828 		T42_ = (NIM_BOOL)0;
13829 		T43_ = (outputs ? outputs->Sup.len : 0);
13830 		T42_ = (((NI) 0) < T43_);
13831 		if (!(T42_)) goto LA44_;
13832 		T42_ = ((14 &((NU16)1<<((NU)((*(*(*c).graph).config).ideCmd)&15U)))!=0);
13833 		LA44_: ;
13834 		if (!T42_) goto LA45_;
13835 		produceOutput__sigmatch_4746((&outputs), (*(*c).graph).config);
13836 		suggestQuit__msgs_446();
13837 	}
13838 	LA45_: ;
13839 	}BeforeRet_: ;
13840 }
N_NIMCALL(void,suggestExpr__sigmatch_6536)13841 N_LIB_PRIVATE N_NIMCALL(void, suggestExpr__sigmatch_6536)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
13842 	{
13843 		NIM_BOOL T3_;
13844 		T3_ = (NIM_BOOL)0;
13845 		T3_ = exactEquals__msgs_997((*(*(*c).graph).config).m.trackPos, (*n).info);
13846 		if (!T3_) goto LA4_;
13847 		suggestExprNoCheck__sigmatch_6450(c, n);
13848 	}
13849 	LA4_: ;
13850 }
N_NIMCALL(tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg,inCheckpoint__sigmatch_5312)13851 N_LIB_PRIVATE N_NIMCALL(tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg, inCheckpoint__sigmatch_5312)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q current, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos) {
13852 	tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg result;
13853 {	result = (tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg)0;
13854 	{
13855 		if (!(current.fileIndex == trackPos.fileIndex)) goto LA3_;
13856 		{
13857 			NIM_BOOL T7_;
13858 			T7_ = (NIM_BOOL)0;
13859 			T7_ = (current.line == trackPos.line);
13860 			if (!(T7_)) goto LA8_;
13861 			T7_ = (((NI16)(current.col - trackPos.col) > 0? ((NI16)(current.col - trackPos.col)) : -((NI16)(current.col - trackPos.col))) < ((NI16) 4));
13862 			LA8_: ;
13863 			if (!T7_) goto LA9_;
13864 			result = ((tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg) 2);
13865 			goto BeforeRet_;
13866 		}
13867 		LA9_: ;
13868 		{
13869 			if (!((NU16)(trackPos.line) <= (NU16)(current.line))) goto LA13_;
13870 			result = ((tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg) 1);
13871 			goto BeforeRet_;
13872 		}
13873 		LA13_: ;
13874 	}
13875 	LA3_: ;
13876 	}BeforeRet_: ;
13877 	return result;
13878 }
N_NIMCALL(void,semFinishOperands__sigmatch_4162)13879 N_LIB_PRIVATE N_NIMCALL(void, semFinishOperands__sigmatch_4162)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
13880 	{
13881 		NI i;
13882 		NI colontmp_;
13883 		NI i_2;
13884 		i = (NI)0;
13885 		colontmp_ = (NI)0;
13886 		colontmp_ = len__ast_3198(n);
13887 		i_2 = ((NI) 1);
13888 		{
13889 			while (1) {
13890 				if (!(i_2 < colontmp_)) goto LA3;
13891 				i = i_2;
13892 				asgnRef((void**) (&(*n)._kind_6.sons->data[i]), prepareOperand__sigmatch_3700(c, (*n)._kind_6.sons->data[i]));
13893 				i_2 += ((NI) 1);
13894 			} LA3: ;
13895 		}
13896 	}
13897 }
N_NIMCALL(void,Marker_tySequence__0dpGN6F4ocevqUQGsaf41w)13898 static N_NIMCALL(void, Marker_tySequence__0dpGN6F4ocevqUQGsaf41w)(void* p, NI op) {
13899 	tySequence__0dpGN6F4ocevqUQGsaf41w* a;
13900 	NI T1_;
13901 	a = (tySequence__0dpGN6F4ocevqUQGsaf41w*)p;
13902 	T1_ = (NI)0;
13903 	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
13904 	nimGCvisit((void*)a->data[T1_].sym, op);
13905 	nimGCvisit((void*)a->data[T1_].firstMismatch.formal, op);
13906 	nimGCvisit((void*)a->data[T1_].diagnostics, op);
13907 	}
13908 }
N_NIMCALL(NimStringDesc *,argTypeToString__sigmatch_362)13909 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, argTypeToString__sigmatch_362)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer) {
13910 	NimStringDesc* result;
13911 	result = NIM_NIL;
13912 	{
13913 		if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA3_;
13914 		result = typeToString__types_50((*(*arg)._kind_6.sons->data[((NI) 0)]).typ, prefer);
13915 		{
13916 			NI i;
13917 			NI colontmp_;
13918 			NI i_2;
13919 			i = (NI)0;
13920 			colontmp_ = (NI)0;
13921 			colontmp_ = len__ast_3198(arg);
13922 			i_2 = ((NI) 1);
13923 			{
13924 				while (1) {
13925 					NimStringDesc* T8_;
13926 					if (!(i_2 < colontmp_)) goto LA7;
13927 					i = i_2;
13928 					result = resizeString(result, 3);
13929 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_96));
13930 					T8_ = NIM_NIL;
13931 					T8_ = typeToString__types_50((*(*arg)._kind_6.sons->data[i]).typ, prefer);
13932 					result = resizeString(result, (T8_ ? T8_->Sup.len : 0) + 0);
13933 appendString(result, T8_);
13934 					i_2 += ((NI) 1);
13935 				} LA7: ;
13936 			}
13937 		}
13938 	}
13939 	goto LA1_;
13940 	LA3_: ;
13941 	{
13942 		if (!((*arg).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA10_;
13943 		result = copyString(((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_97));
13944 	}
13945 	goto LA1_;
13946 	LA10_: ;
13947 	{
13948 		result = typeToString__types_50((*arg).typ, prefer);
13949 	}
13950 	LA1_: ;
13951 	return result;
13952 }
N_NIMCALL(NimStringDesc *,describeArgs__sigmatch_384)13953 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, describeArgs__sigmatch_384)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI startIdx, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer) {
13954 	NimStringDesc* result;
13955 {	result = NIM_NIL;
13956 	result = ((NimStringDesc*) NIM_NIL);
13957 	{
13958 		NI i;
13959 		NI colontmp_;
13960 		NI i_2;
13961 		i = (NI)0;
13962 		colontmp_ = (NI)0;
13963 		colontmp_ = len__ast_3198(n);
13964 		i_2 = startIdx;
13965 		{
13966 			while (1) {
13967 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
13968 				NimStringDesc* T28_;
13969 				if (!(i_2 < colontmp_)) goto LA3;
13970 				i = i_2;
13971 				arg = (*n)._kind_6.sons->data[i];
13972 				{
13973 					NimStringDesc* T8_;
13974 					if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33))) goto LA6_;
13975 					T8_ = NIM_NIL;
13976 					T8_ = renderTree__renderer_46((*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], 0);
13977 					result = resizeString(result, (T8_ ? T8_->Sup.len : 0) + 0);
13978 appendString(result, T8_);
13979 					result = resizeString(result, 2);
13980 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_95));
13981 					{
13982 						NIM_BOOL T11_;
13983 						T11_ = (NIM_BOOL)0;
13984 						T11_ = ((*arg).typ == 0);
13985 						if (!(T11_)) goto LA12_;
13986 						T11_ = !(((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52)));
13987 						LA12_: ;
13988 						if (!T11_) goto LA13_;
13989 						arg = (*c).semOperand(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], 0);
13990 						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i]).typ), (*arg).typ);
13991 						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]), arg);
13992 					}
13993 					LA13_: ;
13994 				}
13995 				goto LA4_;
13996 				LA6_: ;
13997 				{
13998 					{
13999 						NIM_BOOL T18_;
14000 						T18_ = (NIM_BOOL)0;
14001 						T18_ = ((*arg).typ == 0);
14002 						if (!(T18_)) goto LA19_;
14003 						T18_ = !(((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87)));
14004 						LA19_: ;
14005 						if (!T18_) goto LA20_;
14006 						arg = (*c).semOperand(c, (*n)._kind_6.sons->data[i], 0);
14007 						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), arg);
14008 					}
14009 					LA20_: ;
14010 				}
14011 				LA4_: ;
14012 				{
14013 					NIM_BOOL T24_;
14014 					T24_ = (NIM_BOOL)0;
14015 					T24_ = !(((*arg).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
14016 					if (!(T24_)) goto LA25_;
14017 					T24_ = ((*(*arg).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50));
14018 					LA25_: ;
14019 					if (!T24_) goto LA26_;
14020 					goto BeforeRet_;
14021 				}
14022 				LA26_: ;
14023 				T28_ = NIM_NIL;
14024 				T28_ = argTypeToString__sigmatch_362(arg, prefer);
14025 				result = resizeString(result, (T28_ ? T28_->Sup.len : 0) + 0);
14026 appendString(result, T28_);
14027 				{
14028 					NI T31_;
14029 					T31_ = (NI)0;
14030 					T31_ = len__ast_3198(n);
14031 					if (!!((i == (NI)(T31_ - ((NI) 1))))) goto LA32_;
14032 					result = resizeString(result, 2);
14033 appendString(result, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_42));
14034 				}
14035 				LA32_: ;
14036 				i_2 += ((NI) 1);
14037 			} LA3: ;
14038 		}
14039 	}
14040 	}BeforeRet_: ;
14041 	return result;
14042 }
N_NIMCALL(void,matches__sigmatch_4181)14043 N_LIB_PRIVATE N_NIMCALL(void, matches__sigmatch_4181)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* m) {
14044 	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marker;
14045 {	{
14046 		if (!((*m).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5) || (*m).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 6))) goto LA3_;
14047 		(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1);
14048 		unsureAsgnRef((void**) (&(*m).call), n);
14049 		goto BeforeRet_;
14050 	}
14051 	LA3_: ;
14052 	nimZeroMem((void*)(&marker), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
14053 	initIntSet__pureZcollectionsZintsets_238((&marker));
14054 	matchesAux__sigmatch_3784(c, n, nOrig, m, (&marker));
14055 	{
14056 		if (!((*m).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2))) goto LA7_;
14057 		goto BeforeRet_;
14058 	}
14059 	LA7_: ;
14060 	{
14061 		NI f;
14062 		NI colontmp_;
14063 		NI i;
14064 		f = (NI)0;
14065 		colontmp_ = (NI)0;
14066 		colontmp_ = len__ast_3198((*(*m).callee).n);
14067 		i = ((NI) 1);
14068 		{
14069 			while (1) {
14070 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* formal;
14071 				if (!(i < colontmp_)) goto LA11;
14072 				f = i;
14073 				formal = (*(*(*(*m).callee).n)._kind_6.sons->data[f])._kind_4.sym;
14074 				{
14075 					NIM_BOOL T14_;
14076 					T14_ = (NIM_BOOL)0;
14077 					T14_ = containsOrIncl__astalgo_402((&marker), (*formal).position);
14078 					if (!!(T14_)) goto LA15_;
14079 					{
14080 						if (!((*formal).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA19_;
14081 						{
14082 							tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw cnKind;
14083 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* container;
14084 							tyObject_TType__facALICuu8zUj0hjvbTLFg* T32_;
14085 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
14086 							if (!((*(*formal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA23_;
14087 							{
14088 								NIM_BOOL T27_;
14089 								T27_ = (NIM_BOOL)0;
14090 								T27_ = ((*(*formal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48));
14091 								if (!(T27_)) goto LA28_;
14092 								T27_ = ((*(*(*formal).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
14093 								LA28_: ;
14094 								if (!T27_) goto LA29_;
14095 								cnKind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152);
14096 							}
14097 							goto LA25_;
14098 							LA29_: ;
14099 							{
14100 								cnKind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41);
14101 							}
14102 							LA25_: ;
14103 							T32_ = NIM_NIL;
14104 							T32_ = arrayConstr__sigmatch_3725(c, (*n).info);
14105 							container = newNodeIT__ast_3378(cnKind, (*n).info, T32_);
14106 							T33_ = NIM_NIL;
14107 							T33_ = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), (*formal).typ, container, (&(*m)), c);
14108 							setSon__sigmatch_3650((*m).call, (NI)((*formal).position + ((NI) 1)), T33_);
14109 						}
14110 						goto LA21_;
14111 						LA23_: ;
14112 						{
14113 							(*m).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
14114 							(*m).firstMismatch.kind = ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 5);
14115 							unsureAsgnRef((void**) (&(*m).firstMismatch.formal), formal);
14116 							goto LA9;
14117 						}
14118 						LA21_: ;
14119 					}
14120 					goto LA17_;
14121 					LA19_: ;
14122 					{
14123 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* defaultValue;
14124 						{
14125 							NimStringDesc* T40_;
14126 							if (!((*(*formal).ast).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA38_;
14127 							T40_ = NIM_NIL;
14128 							T40_ = nsuFormatSingleElem(((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_98), (*(*formal).name).s);
14129 							liMessage__msgs_1118((*(*c).graph).config, (*(*m).call).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T40_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_99, NIM_FALSE);
14130 						}
14131 						LA38_: ;
14132 						{
14133 							if (!(((*(*formal).ast).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19))&31U)))!=0)) goto LA43_;
14134 							(*(*m).call).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19)) & 31);
14135 						}
14136 						LA43_: ;
14137 						defaultValue = copyTree__ast_4431((*formal).ast);
14138 						{
14139 							if (!((*defaultValue).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA47_;
14140 							defaultValue = implicitConv__sigmatch_3067(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58), (*formal).typ, defaultValue, (&(*m)), c);
14141 						}
14142 						LA47_: ;
14143 						{
14144 							tyObject_TType__facALICuu8zUj0hjvbTLFg* existing;
14145 							RootObj* T53_;
14146 							if (!!(((100663296 & (*(*formal).typ).flags) == 0))) goto LA51_;
14147 							T53_ = NIM_NIL;
14148 							T53_ = idTableGet__astalgo_64((*m).bindings, (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&((*formal).typ)))));
14149 							existing = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T53_));
14150 							{
14151 								NIM_BOOL T56_;
14152 								T56_ = (NIM_BOOL)0;
14153 								T56_ = (existing == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
14154 								if (T56_) goto LA57_;
14155 								T56_ = ((*existing).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
14156 								LA57_: ;
14157 								if (!T56_) goto LA58_;
14158 								put__sigmatch_120(m, (*formal).typ, (*defaultValue).typ);
14159 							}
14160 							LA58_: ;
14161 						}
14162 						LA51_: ;
14163 						(*defaultValue).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 18)) & 31);
14164 						setSon__sigmatch_3650((*m).call, (NI)((*formal).position + ((NI) 1)), defaultValue);
14165 					}
14166 					LA17_: ;
14167 				}
14168 				LA15_: ;
14169 				i += ((NI) 1);
14170 			} LA11: ;
14171 		}
14172 	} LA9: ;
14173 	{
14174 		if (!((*m).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2))) goto LA62_;
14175 		{
14176 			tyObject_TType__facALICuu8zUj0hjvbTLFg** t;
14177 			NI i_2;
14178 			NI L;
14179 			NI T65_;
14180 			t = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
14181 			i_2 = ((NI) 0);
14182 			T65_ = ((*m).inferredTypes ? (*m).inferredTypes->Sup.len : 0);
14183 			L = T65_;
14184 			{
14185 				while (1) {
14186 					if (!(i_2 < L)) goto LA67;
14187 					t = &(*m).inferredTypes->data[i_2];
14188 					{
14189 						NI T70_;
14190 						T70_ = (NI)0;
14191 						T70_ = len__ast_4002((*t));
14192 						if (!(((NI) 1) < T70_)) goto LA71_;
14193 						asgnRef((void**) (&(*(*t)).sons), (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) setLengthSeqV2(&((*(*t)).sons)->Sup, (&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), ((NI) 1)));
14194 					}
14195 					LA71_: ;
14196 					i_2 += ((NI) 1);
14197 				} LA67: ;
14198 			}
14199 		}
14200 	}
14201 	LA62_: ;
14202 	}BeforeRet_: ;
14203 }
N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw,cmpTypes__sigmatch_3047)14204 N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, cmpTypes__sigmatch_3047)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a) {
14205 	tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw result;
14206 	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
14207 	result = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
14208 	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
14209 	newCandidate__sigmatch_195(c, f, (&m));
14210 	result = typeRel__sigmatch_202((&m), f, a, 0);
14211 	return result;
14212 }
N_NIMCALL(void,suggestStmt__sigmatch_6552)14213 N_LIB_PRIVATE N_NIMCALL(void, suggestStmt__sigmatch_6552)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
14214 	suggestExpr__sigmatch_6536(c, n);
14215 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,instTypeBoundOp__sigmatch_4327)14216 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, instTypeBoundOp__sigmatch_4327)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dc, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, NI col) {
14217 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
14218 	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
14219 	tyObject_TType__facALICuu8zUj0hjvbTLFg* f;
14220 {	result = NIM_NIL;
14221 	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
14222 	newCandidate__sigmatch_195(c, (*dc).typ, (&m));
14223 	{
14224 		NI T3_;
14225 		NimStringDesc* T6_;
14226 		T3_ = (NI)0;
14227 		T3_ = len__ast_4002((*dc).typ);
14228 		if (!(T3_ <= col)) goto LA4_;
14229 		T6_ = NIM_NIL;
14230 		T6_ = rawNewString(((*(*dc).name).s ? (*(*dc).name).s->Sup.len : 0) + 22);
14231 appendString(T6_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_100));
14232 appendString(T6_, (*(*dc).name).s);
14233 appendString(T6_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_19));
14234 		liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_101, NIM_FALSE);
14235 		result = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
14236 		goto BeforeRet_;
14237 	}
14238 	LA4_: ;
14239 	f = (*(*dc).typ).sons->data[col];
14240 	{
14241 		if (!(op == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4))) goto LA9_;
14242 		{
14243 			if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA13_;
14244 			f = lastSon__ast_3743(f);
14245 		}
14246 		LA13_: ;
14247 	}
14248 	goto LA7_;
14249 	LA9_: ;
14250 	{
14251 		{
14252 			if (!((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA18_;
14253 			f = lastSon__ast_3743(f);
14254 		}
14255 		LA18_: ;
14256 	}
14257 	LA7_: ;
14258 	{
14259 		tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T22_;
14260 		NimStringDesc* T25_;
14261 		T22_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
14262 		T22_ = typeRel__sigmatch_202((&m), f, t, 0);
14263 		if (!(T22_ == ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0))) goto LA23_;
14264 		T25_ = NIM_NIL;
14265 		T25_ = rawNewString(((*(*dc).name).s ? (*(*dc).name).s->Sup.len : 0) + 22);
14266 appendString(T25_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_100));
14267 appendString(T25_, (*(*dc).name).s);
14268 appendString(T25_, ((NimStringDesc*) &TM__EV5hHJmjIY9cla9b9be7fSVJQ_19));
14269 		liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T25_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__EV5hHJmjIY9cla9b9be7fSVJQ_102, NIM_FALSE);
14270 	}
14271 	goto LA20_;
14272 	LA23_: ;
14273 	{
14274 		result = (*c).semGenerateInstance.ClE_0? (*c).semGenerateInstance.ClP_0(c, dc, m.bindings, info, (*c).semGenerateInstance.ClE_0):((TM__EV5hHJmjIY9cla9b9be7fSVJQ_103)((*c).semGenerateInstance.ClP_0))(c, dc, m.bindings, info);
14275 		{
14276 			if (!(op == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4))) goto LA29_;
14277 		}
14278 		LA29_: ;
14279 	}
14280 	LA20_: ;
14281 	}BeforeRet_: ;
14282 	return result;
14283 }
N_NIMCALL(void,suggestSentinel__sigmatch_6567)14284 N_LIB_PRIVATE N_NIMCALL(void, suggestSentinel__sigmatch_6567)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
14285 	tySequence__i7xpiUsxyv6cQ1xK3JbcGQ* outputs;
14286 {	{
14287 		NIM_BOOL T3_;
14288 		T3_ = (NIM_BOOL)0;
14289 		T3_ = !(((*(*(*c).graph).config).ideCmd == ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1)));
14290 		if (T3_) goto LA4_;
14291 		T3_ = !(((*(*c).module).position == ((NI) ((*(*(*c).graph).config).m.trackPos.fileIndex))));
14292 		LA4_: ;
14293 		if (!T3_) goto LA5_;
14294 		goto BeforeRet_;
14295 	}
14296 	LA5_: ;
14297 	{
14298 		if (!(((NI) 0) < (*c).compilesContextId)) goto LA9_;
14299 		goto BeforeRet_;
14300 	}
14301 	LA9_: ;
14302 	(*c).compilesContextId += ((NI) 1);
14303 	outputs = NIM_NIL;
14304 	{
14305 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it;
14306 		NI scopeN;
14307 		NIM_BOOL isLocal;
14308 		NIM_BOOL isLocal_2;
14309 		NI scopeN_2;
14310 		it = NIM_NIL;
14311 		scopeN = (NI)0;
14312 		isLocal = (NIM_BOOL)0;
14313 		isLocal_2 = NIM_TRUE;
14314 		scopeN_2 = ((NI) 0);
14315 		{
14316 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
14317 			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
14318 			scope = NIM_NIL;
14319 			current = (*c).currentScope;
14320 			{
14321 				while (1) {
14322 					if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA14;
14323 					scope = current;
14324 					{
14325 						if (!(scope == (*c).topLevelScope)) goto LA17_;
14326 						isLocal_2 = NIM_FALSE;
14327 					}
14328 					LA17_: ;
14329 					scopeN_2 -= ((NI) 1);
14330 					{
14331 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* item;
14332 						tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg it_2;
14333 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
14334 						item = NIM_NIL;
14335 						nimZeroMem((void*)(&it_2), sizeof(tyObject_TTabIter__VYF5VQsIYEVaBL0fKZJkbg));
14336 						s = initTabIter__astalgo_3777((&it_2), (*scope).symbols);
14337 						{
14338 							while (1) {
14339 								tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp_;
14340 								tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm;
14341 								if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA21;
14342 								item = s;
14343 								nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
14344 								colontmp_.Field0 = item;
14345 								colontmp_.Field1 = scopeN_2;
14346 								colontmp_.Field2 = isLocal_2;
14347 								it = colontmp_.Field0;
14348 								scopeN = colontmp_.Field1;
14349 								isLocal = colontmp_.Field2;
14350 								pm = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
14351 								{
14352 									NIM_BOOL T24_;
14353 									tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T27_;
14354 									NI T28_;
14355 									tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T29_;
14356 									NI T30_;
14357 									T24_ = (NIM_BOOL)0;
14358 									T24_ = filterSymNoOpr__sigmatch_4935(it, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), (&pm));
14359 									if (!T24_) goto LA25_;
14360 									T27_ = newLineInfo__msgs_381((*(*(*c).graph).config).m.trackPos.fileIndex, ((NI) 0), ((NI) -1));
14361 									T28_ = (NI)0;
14362 									T28_ = getQuality__sigmatch_5002(it);
14363 									T29_ = NIM_NIL;
14364 									T29_ = symToSuggest__sigmatch_4528((*c).graph, it, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), T27_, T28_, ((tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q) 0), NIM_FALSE, scopeN, NIM_FALSE);
14365 									outputs = (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)(outputs), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_));
14366 									T30_ = outputs->Sup.len++;
14367 									asgnRef((void**) (&outputs->data[T30_]), T29_);
14368 								}
14369 								LA25_: ;
14370 								s = nextIter__astalgo_3762((&it_2), (*scope).symbols);
14371 							} LA21: ;
14372 						}
14373 					}
14374 					current = (*current).parent;
14375 				} LA14: ;
14376 			}
14377 		}
14378 		scopeN_2 -= ((NI) 1);
14379 		isLocal_2 = NIM_FALSE;
14380 		{
14381 			tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ* im;
14382 			NI i;
14383 			NI L;
14384 			NI T32_;
14385 			im = (tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ*)0;
14386 			i = ((NI) 0);
14387 			T32_ = ((*c).imports ? (*c).imports->Sup.len : 0);
14388 			L = T32_;
14389 			{
14390 				while (1) {
14391 					if (!(i < L)) goto LA34;
14392 					im = (&(*c).imports->data[i]);
14393 					{
14394 						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
14395 						NIM_BOOL importHidden;
14396 						s_2 = NIM_NIL;
14397 						importHidden = (((*(*im).m).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0);
14398 						{
14399 							NIM_BOOL T38_;
14400 							tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
14401 							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* r;
14402 							T38_ = (NIM_BOOL)0;
14403 							T38_ = isCachedModule__modulegraphs_2709((*c).graph, (*im).m);
14404 							if (!T38_) goto LA39_;
14405 							nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg));
14406 							r = initRodIterAllSyms__icZic_8667((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*(*im).m).position)), importHidden);
14407 							{
14408 								while (1) {
14409 									tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__2;
14410 									tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_2;
14411 									if (!!((r == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA42;
14412 									s_2 = r;
14413 									nimZeroMem((void*)(&colontmp__2), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
14414 									colontmp__2.Field0 = s_2;
14415 									colontmp__2.Field1 = scopeN_2;
14416 									colontmp__2.Field2 = isLocal_2;
14417 									it = colontmp__2.Field0;
14418 									scopeN = colontmp__2.Field1;
14419 									isLocal = colontmp__2.Field2;
14420 									pm_2 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
14421 									{
14422 										NIM_BOOL T45_;
14423 										tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T48_;
14424 										NI T49_;
14425 										tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T50_;
14426 										NI T51_;
14427 										T45_ = (NIM_BOOL)0;
14428 										T45_ = filterSymNoOpr__sigmatch_4935(it, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), (&pm_2));
14429 										if (!T45_) goto LA46_;
14430 										T48_ = newLineInfo__msgs_381((*(*(*c).graph).config).m.trackPos.fileIndex, ((NI) 0), ((NI) -1));
14431 										T49_ = (NI)0;
14432 										T49_ = getQuality__sigmatch_5002(it);
14433 										T50_ = NIM_NIL;
14434 										T50_ = symToSuggest__sigmatch_4528((*c).graph, it, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), T48_, T49_, ((tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q) 0), NIM_FALSE, scopeN, NIM_FALSE);
14435 										outputs = (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)(outputs), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_));
14436 										T51_ = outputs->Sup.len++;
14437 										asgnRef((void**) (&outputs->data[T51_]), T50_);
14438 									}
14439 									LA46_: ;
14440 									r = nextRodIter__icZic_8962((&rodIt), (&(*(*c).graph).packed_0));
14441 								} LA42: ;
14442 							}
14443 						}
14444 						goto LA36_;
14445 						LA39_: ;
14446 						{
14447 							{
14448 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** s_3;
14449 								tySequence__eHqUwlHGGaPw0TDPDeL79cQ* colontmp__3;
14450 								tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* retX60gensym17_;
14451 								NI i_2;
14452 								NI L_2;
14453 								NI T58_;
14454 								s_3 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
14455 								colontmp__3 = NIM_NIL;
14456 								retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interf);
14457 								{
14458 									if (!importHidden) goto LA56_;
14459 									retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*(*im).m).position].interfHidden);
14460 								}
14461 								LA56_: ;
14462 								colontmp__3 = (*retX60gensym17_).data;
14463 								i_2 = ((NI) 0);
14464 								T58_ = (colontmp__3 ? colontmp__3->Sup.len : 0);
14465 								L_2 = T58_;
14466 								{
14467 									while (1) {
14468 										if (!(i_2 < L_2)) goto LA60;
14469 										s_3 = &colontmp__3->data[i_2];
14470 										{
14471 											tyTuple__8bH5UHA9aimOFoSY4U42gzw colontmp__4;
14472 											tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q pm_3;
14473 											if (!!(((*s_3) == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA63_;
14474 											s_2 = (*s_3);
14475 											nimZeroMem((void*)(&colontmp__4), sizeof(tyTuple__8bH5UHA9aimOFoSY4U42gzw));
14476 											colontmp__4.Field0 = s_2;
14477 											colontmp__4.Field1 = scopeN_2;
14478 											colontmp__4.Field2 = isLocal_2;
14479 											it = colontmp__4.Field0;
14480 											scopeN = colontmp__4.Field1;
14481 											isLocal = colontmp__4.Field2;
14482 											pm_3 = (tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q)0;
14483 											{
14484 												NIM_BOOL T67_;
14485 												tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T70_;
14486 												NI T71_;
14487 												tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* T72_;
14488 												NI T73_;
14489 												T67_ = (NIM_BOOL)0;
14490 												T67_ = filterSymNoOpr__sigmatch_4935(it, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), (&pm_3));
14491 												if (!T67_) goto LA68_;
14492 												T70_ = newLineInfo__msgs_381((*(*(*c).graph).config).m.trackPos.fileIndex, ((NI) 0), ((NI) -1));
14493 												T71_ = (NI)0;
14494 												T71_ = getQuality__sigmatch_5002(it);
14495 												T72_ = NIM_NIL;
14496 												T72_ = symToSuggest__sigmatch_4528((*c).graph, it, isLocal, ((tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ) 1), T70_, T71_, ((tyEnum_PrefixMatch__Dkww2nY9cxJVLF9cfoQS5U6Q) 0), NIM_FALSE, scopeN, NIM_FALSE);
14497 												outputs = (tySequence__i7xpiUsxyv6cQ1xK3JbcGQ*) incrSeqV3((TGenericSeq*)(outputs), (&NTIsuggestions__i7xpiUsxyv6cQ1xK3JbcGQ_));
14498 												T73_ = outputs->Sup.len++;
14499 												asgnRef((void**) (&outputs->data[T73_]), T72_);
14500 											}
14501 											LA68_: ;
14502 										}
14503 										LA63_: ;
14504 										i_2 += ((NI) 1);
14505 									} LA60: ;
14506 								}
14507 							}
14508 						}
14509 						LA36_: ;
14510 					}
14511 					i += ((NI) 1);
14512 				} LA34: ;
14513 			}
14514 		}
14515 	}
14516 	(*c).compilesContextId -= ((NI) 1);
14517 	produceOutput__sigmatch_4746((&outputs), (*(*c).graph).config);
14518 	}BeforeRet_: ;
14519 }
N_NIMCALL(void,compiler_sigmatchDatInit000)14520 N_LIB_PRIVATE N_NIMCALL(void, compiler_sigmatchDatInit000)(void) {
14521 static TNimNode* TM__EV5hHJmjIY9cla9b9be7fSVJQ_4_2[2];
14522 static TNimNode* TM__EV5hHJmjIY9cla9b9be7fSVJQ_31_5[5];
14523 static TNimNode* TM__EV5hHJmjIY9cla9b9be7fSVJQ_36_2[2];
14524 static TNimNode* TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[24];
14525 static TNimNode* TM__EV5hHJmjIY9cla9b9be7fSVJQ_69_3[3];
14526 NI TM__EV5hHJmjIY9cla9b9be7fSVJQ_71;
14527 static char* NIM_CONST TM__EV5hHJmjIY9cla9b9be7fSVJQ_70[3] = {
14528 "csEmpty",
14529 "csMatch",
14530 "csNoMatch"};
14531 static TNimNode* TM__EV5hHJmjIY9cla9b9be7fSVJQ_72_3[3];
14532 static TNimNode* TM__EV5hHJmjIY9cla9b9be7fSVJQ_73_8[8];
14533 NI TM__EV5hHJmjIY9cla9b9be7fSVJQ_75;
14534 static char* NIM_CONST TM__EV5hHJmjIY9cla9b9be7fSVJQ_74[8] = {
14535 "kUnknown",
14536 "kAlreadyGiven",
14537 "kUnknownNamedParam",
14538 "kTypeMismatch",
14539 "kVarNeeded",
14540 "kMissingParam",
14541 "kExtraArg",
14542 "kPositionalAlreadyGiven"};
14543 static TNimNode* TM__EV5hHJmjIY9cla9b9be7fSVJQ_94_4[4];
14544 static TNimNode TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[59];
14545 NTIobject__OOiDxDXQlxWHlb9aU1AkbWQ_.size = sizeof(tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ);
14546 NTIobject__OOiDxDXQlxWHlb9aU1AkbWQ_.align = NIM_ALIGNOF(tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ);
14547 NTIobject__OOiDxDXQlxWHlb9aU1AkbWQ_.kind = 17;
14548 NTIobject__OOiDxDXQlxWHlb9aU1AkbWQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
14549 TM__EV5hHJmjIY9cla9b9be7fSVJQ_4_2[0] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[1];
14550 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[1].kind = 1;
14551 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[1].offset = offsetof(tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ, colonstate_);
14552 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[1].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
14553 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[1].name = ":state";
14554 TM__EV5hHJmjIY9cla9b9be7fSVJQ_4_2[1] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[2];
14555 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[2].kind = 1;
14556 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[2].offset = offsetof(tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ, line1);
14557 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[2].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
14558 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[2].name = "line1";
14559 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[0].len = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[0].kind = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[0].sons = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_4_2[0];
14560 NTIobject__OOiDxDXQlxWHlb9aU1AkbWQ_.node = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[0];
14561 NTIrefobject__AQEmz0epsPFaQWAZOZKqTA_.size = sizeof(tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ*);
14562 NTIrefobject__AQEmz0epsPFaQWAZOZKqTA_.align = NIM_ALIGNOF(tyObject_Env_suggestdotnim_getTokenLenFromSource___OOiDxDXQlxWHlb9aU1AkbWQ*);
14563 NTIrefobject__AQEmz0epsPFaQWAZOZKqTA_.kind = 22;
14564 NTIrefobject__AQEmz0epsPFaQWAZOZKqTA_.base = (&NTIobject__OOiDxDXQlxWHlb9aU1AkbWQ_);
14565 NTIrefobject__AQEmz0epsPFaQWAZOZKqTA_.marker = Marker_tyRef__AQEmz0epsPFaQWAZOZKqTA;
14566 NTIobject__ABsKQG07Jg0nSKN9cZsdHNA_.size = sizeof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA);
14567 NTIobject__ABsKQG07Jg0nSKN9cZsdHNA_.align = NIM_ALIGNOF(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA);
14568 NTIobject__ABsKQG07Jg0nSKN9cZsdHNA_.kind = 17;
14569 NTIobject__ABsKQG07Jg0nSKN9cZsdHNA_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
14570 TM__EV5hHJmjIY9cla9b9be7fSVJQ_31_5[0] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[4];
14571 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[4].kind = 1;
14572 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[4].offset = offsetof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA, colonstate_);
14573 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[4].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
14574 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[4].name = ":state";
14575 TM__EV5hHJmjIY9cla9b9be7fSVJQ_31_5[1] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[5];
14576 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[5].kind = 1;
14577 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[5].offset = offsetof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA, errorPrefix1);
14578 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[5].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
14579 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[5].name = "errorPrefix1";
14580 TM__EV5hHJmjIY9cla9b9be7fSVJQ_31_5[2] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[6];
14581 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[6].kind = 1;
14582 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[6].offset = offsetof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA, typeClass2);
14583 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[6].typ = (&NTIptype__qt2Wh0elFEz5fH0l7yusLw_);
14584 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[6].name = "typeClass2";
14585 TM__EV5hHJmjIY9cla9b9be7fSVJQ_31_5[3] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[7];
14586 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[7].kind = 1;
14587 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[7].offset = offsetof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA, oldWriteHook3);
14588 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[7].typ = (&NTIprocLoutput58stringTLOclosureOT__k2HFjxisIgDALbEUFojxaQ_);
14589 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[7].name = "oldWriteHook3";
14590 TM__EV5hHJmjIY9cla9b9be7fSVJQ_31_5[4] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[8];
14591 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[8].kind = 1;
14592 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[8].offset = offsetof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA, diagnostics4);
14593 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[8].typ = (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_);
14594 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[8].name = "diagnostics4";
14595 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[3].len = 5; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[3].kind = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[3].sons = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_31_5[0];
14596 NTIobject__ABsKQG07Jg0nSKN9cZsdHNA_.node = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[3];
14597 NTIrefobject__45NYJqjr6v2fbd4yf89cTdg_.size = sizeof(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA*);
14598 NTIrefobject__45NYJqjr6v2fbd4yf89cTdg_.align = NIM_ALIGNOF(tyObject_Env_sigmatchdotnim_matchUserTypeClass___ABsKQG07Jg0nSKN9cZsdHNA*);
14599 NTIrefobject__45NYJqjr6v2fbd4yf89cTdg_.kind = 22;
14600 NTIrefobject__45NYJqjr6v2fbd4yf89cTdg_.base = (&NTIobject__ABsKQG07Jg0nSKN9cZsdHNA_);
14601 NTIrefobject__45NYJqjr6v2fbd4yf89cTdg_.marker = Marker_tyRef__45NYJqjr6v2fbd4yf89cTdg;
14602 NTILpsym_ptypeT__Qqa8F49azZNOOP4FK3LKbhw_.size = sizeof(tyTuple__Qqa8F49azZNOOP4FK3LKbhw);
14603 NTILpsym_ptypeT__Qqa8F49azZNOOP4FK3LKbhw_.align = NIM_ALIGNOF(tyTuple__Qqa8F49azZNOOP4FK3LKbhw);
14604 NTILpsym_ptypeT__Qqa8F49azZNOOP4FK3LKbhw_.kind = 18;
14605 NTILpsym_ptypeT__Qqa8F49azZNOOP4FK3LKbhw_.base = 0;
14606 TM__EV5hHJmjIY9cla9b9be7fSVJQ_36_2[0] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[10];
14607 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[10].kind = 1;
14608 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[10].offset = offsetof(tyTuple__Qqa8F49azZNOOP4FK3LKbhw, Field0);
14609 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[10].typ = (&NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_);
14610 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[10].name = "Field0";
14611 TM__EV5hHJmjIY9cla9b9be7fSVJQ_36_2[1] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[11];
14612 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[11].kind = 1;
14613 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[11].offset = offsetof(tyTuple__Qqa8F49azZNOOP4FK3LKbhw, Field1);
14614 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[11].typ = (&NTIptype__qt2Wh0elFEz5fH0l7yusLw_);
14615 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[11].name = "Field1";
14616 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[9].len = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[9].kind = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[9].sons = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_36_2[0];
14617 NTILpsym_ptypeT__Qqa8F49azZNOOP4FK3LKbhw_.node = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[9];
14618 NTIseqLLpsym_ptypeTT__bGUffHlsVXt0g6ZKEF4OfQ_.size = sizeof(tySequence__bGUffHlsVXt0g6ZKEF4OfQ*);
14619 NTIseqLLpsym_ptypeTT__bGUffHlsVXt0g6ZKEF4OfQ_.align = NIM_ALIGNOF(tySequence__bGUffHlsVXt0g6ZKEF4OfQ*);
14620 NTIseqLLpsym_ptypeTT__bGUffHlsVXt0g6ZKEF4OfQ_.kind = 24;
14621 NTIseqLLpsym_ptypeTT__bGUffHlsVXt0g6ZKEF4OfQ_.base = (&NTILpsym_ptypeT__Qqa8F49azZNOOP4FK3LKbhw_);
14622 NTIseqLLpsym_ptypeTT__bGUffHlsVXt0g6ZKEF4OfQ_.marker = Marker_tySequence__bGUffHlsVXt0g6ZKEF4OfQ;
14623 NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_.size = sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA);
14624 NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_.align = NIM_ALIGNOF(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA);
14625 NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_.kind = 18;
14626 NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_.base = 0;
14627 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[0] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[13];
14628 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[13].kind = 1;
14629 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[13].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, c);
14630 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[13].typ = (&NTIpcontext__EjEifkTC8tg9afiUW4StSSA_);
14631 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[13].name = "c";
14632 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[1] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[14];
14633 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[14].kind = 1;
14634 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[14].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, exactMatches);
14635 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[14].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
14636 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[14].name = "exactMatches";
14637 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[2] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[15];
14638 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[15].kind = 1;
14639 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[15].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, genericMatches);
14640 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[15].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
14641 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[15].name = "genericMatches";
14642 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[3] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[16];
14643 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[16].kind = 1;
14644 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[16].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, subtypeMatches);
14645 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[16].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
14646 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[16].name = "subtypeMatches";
14647 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[4] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[17];
14648 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[17].kind = 1;
14649 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[17].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, intConvMatches);
14650 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[17].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
14651 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[17].name = "intConvMatches";
14652 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[5] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[18];
14653 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[18].kind = 1;
14654 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[18].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, convMatches);
14655 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[18].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
14656 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[18].name = "convMatches";
14657 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[6] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[19];
14658 NTItcandidatestate__C8RXb59bvbxaTzDOqx49aVVg_.size = sizeof(tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg);
14659 NTItcandidatestate__C8RXb59bvbxaTzDOqx49aVVg_.align = NIM_ALIGNOF(tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg);
14660 NTItcandidatestate__C8RXb59bvbxaTzDOqx49aVVg_.kind = 14;
14661 NTItcandidatestate__C8RXb59bvbxaTzDOqx49aVVg_.base = 0;
14662 NTItcandidatestate__C8RXb59bvbxaTzDOqx49aVVg_.flags = 3;
14663 for (TM__EV5hHJmjIY9cla9b9be7fSVJQ_71 = 0; TM__EV5hHJmjIY9cla9b9be7fSVJQ_71 < 3; TM__EV5hHJmjIY9cla9b9be7fSVJQ_71++) {
14664 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[TM__EV5hHJmjIY9cla9b9be7fSVJQ_71+20].kind = 1;
14665 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[TM__EV5hHJmjIY9cla9b9be7fSVJQ_71+20].offset = TM__EV5hHJmjIY9cla9b9be7fSVJQ_71;
14666 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[TM__EV5hHJmjIY9cla9b9be7fSVJQ_71+20].name = TM__EV5hHJmjIY9cla9b9be7fSVJQ_70[TM__EV5hHJmjIY9cla9b9be7fSVJQ_71];
14667 TM__EV5hHJmjIY9cla9b9be7fSVJQ_69_3[TM__EV5hHJmjIY9cla9b9be7fSVJQ_71] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[TM__EV5hHJmjIY9cla9b9be7fSVJQ_71+20];
14668 }
14669 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[23].len = 3; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[23].kind = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[23].sons = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_69_3[0];
14670 NTItcandidatestate__C8RXb59bvbxaTzDOqx49aVVg_.node = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[23];
14671 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[19].kind = 1;
14672 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[19].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, state);
14673 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[19].typ = (&NTItcandidatestate__C8RXb59bvbxaTzDOqx49aVVg_);
14674 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[19].name = "state";
14675 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[7] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[24];
14676 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[24].kind = 1;
14677 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[24].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, callee);
14678 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[24].typ = (&NTIptype__qt2Wh0elFEz5fH0l7yusLw_);
14679 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[24].name = "callee";
14680 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[8] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[25];
14681 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[25].kind = 1;
14682 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[25].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, calleeSym);
14683 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[25].typ = (&NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_);
14684 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[25].name = "calleeSym";
14685 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[9] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[26];
14686 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[26].kind = 1;
14687 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[26].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, calleeScope);
14688 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[26].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
14689 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[26].name = "calleeScope";
14690 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[10] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[27];
14691 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[27].kind = 1;
14692 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[27].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, call);
14693 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[27].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
14694 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[27].name = "call";
14695 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[11] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[28];
14696 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[28].kind = 1;
14697 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[28].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, bindings);
14698 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[28].typ = (&NTItidtable__9aiv9bp2t5icFNINcg9c4xi1Q_);
14699 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[28].name = "bindings";
14700 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[12] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[29];
14701 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[29].kind = 1;
14702 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[29].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, magic);
14703 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[29].typ = (&NTItmagic__shZhZOdbVC5nnFvcXQAImg_);
14704 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[29].name = "magic";
14705 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[13] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[30];
14706 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[30].kind = 1;
14707 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[30].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, baseTypeMatch);
14708 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[30].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
14709 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[30].name = "baseTypeMatch";
14710 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[14] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[31];
14711 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[31].kind = 1;
14712 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[31].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, fauxMatch);
14713 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[31].typ = (&NTIttypekind__9a3YiReNVD0IJHWFKgXRe9ag_);
14714 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[31].name = "fauxMatch";
14715 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[15] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[32];
14716 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[32].kind = 1;
14717 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[32].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, genericConverter);
14718 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[32].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
14719 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[32].name = "genericConverter";
14720 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[16] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[33];
14721 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[33].kind = 1;
14722 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[33].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, coerceDistincts);
14723 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[33].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
14724 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[33].name = "coerceDistincts";
14725 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[17] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[34];
14726 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[34].kind = 1;
14727 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[34].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, typedescMatched);
14728 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[34].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
14729 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[34].name = "typedescMatched";
14730 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[18] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[35];
14731 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[35].kind = 1;
14732 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[35].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, isNoCall);
14733 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[35].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
14734 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[35].name = "isNoCall";
14735 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[19] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[36];
14736 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[36].kind = 1;
14737 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[36].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, inferredTypes);
14738 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[36].typ = (&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_);
14739 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[36].name = "inferredTypes";
14740 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[20] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[37];
14741 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[37].kind = 1;
14742 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[37].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, diagnostics);
14743 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[37].typ = (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_);
14744 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[37].name = "diagnostics";
14745 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[21] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[38];
14746 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[38].kind = 1;
14747 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[38].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, inheritancePenalty);
14748 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[38].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
14749 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[38].name = "inheritancePenalty";
14750 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[22] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[39];
14751 NTImismatchinfo__Bde9a0sl26Y9b6iLNg1iH8LQ_.size = sizeof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ);
14752 NTImismatchinfo__Bde9a0sl26Y9b6iLNg1iH8LQ_.align = NIM_ALIGNOF(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ);
14753 NTImismatchinfo__Bde9a0sl26Y9b6iLNg1iH8LQ_.kind = 18;
14754 NTImismatchinfo__Bde9a0sl26Y9b6iLNg1iH8LQ_.base = 0;
14755 TM__EV5hHJmjIY9cla9b9be7fSVJQ_72_3[0] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[41];
14756 NTImismatchkind__9a6KkG9auuBdYowCMkBNpD6w_.size = sizeof(tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w);
14757 NTImismatchkind__9a6KkG9auuBdYowCMkBNpD6w_.align = NIM_ALIGNOF(tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w);
14758 NTImismatchkind__9a6KkG9auuBdYowCMkBNpD6w_.kind = 14;
14759 NTImismatchkind__9a6KkG9auuBdYowCMkBNpD6w_.base = 0;
14760 NTImismatchkind__9a6KkG9auuBdYowCMkBNpD6w_.flags = 3;
14761 for (TM__EV5hHJmjIY9cla9b9be7fSVJQ_75 = 0; TM__EV5hHJmjIY9cla9b9be7fSVJQ_75 < 8; TM__EV5hHJmjIY9cla9b9be7fSVJQ_75++) {
14762 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[TM__EV5hHJmjIY9cla9b9be7fSVJQ_75+42].kind = 1;
14763 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[TM__EV5hHJmjIY9cla9b9be7fSVJQ_75+42].offset = TM__EV5hHJmjIY9cla9b9be7fSVJQ_75;
14764 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[TM__EV5hHJmjIY9cla9b9be7fSVJQ_75+42].name = TM__EV5hHJmjIY9cla9b9be7fSVJQ_74[TM__EV5hHJmjIY9cla9b9be7fSVJQ_75];
14765 TM__EV5hHJmjIY9cla9b9be7fSVJQ_73_8[TM__EV5hHJmjIY9cla9b9be7fSVJQ_75] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[TM__EV5hHJmjIY9cla9b9be7fSVJQ_75+42];
14766 }
14767 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[50].len = 8; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[50].kind = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[50].sons = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_73_8[0];
14768 NTImismatchkind__9a6KkG9auuBdYowCMkBNpD6w_.node = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[50];
14769 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[41].kind = 1;
14770 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[41].offset = offsetof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ, kind);
14771 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[41].typ = (&NTImismatchkind__9a6KkG9auuBdYowCMkBNpD6w_);
14772 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[41].name = "kind";
14773 TM__EV5hHJmjIY9cla9b9be7fSVJQ_72_3[1] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[51];
14774 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[51].kind = 1;
14775 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[51].offset = offsetof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ, arg);
14776 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[51].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
14777 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[51].name = "arg";
14778 TM__EV5hHJmjIY9cla9b9be7fSVJQ_72_3[2] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[52];
14779 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[52].kind = 1;
14780 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[52].offset = offsetof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ, formal);
14781 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[52].typ = (&NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_);
14782 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[52].name = "formal";
14783 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[40].len = 3; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[40].kind = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[40].sons = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_72_3[0];
14784 NTImismatchinfo__Bde9a0sl26Y9b6iLNg1iH8LQ_.node = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[40];
14785 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[39].kind = 1;
14786 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[39].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, firstMismatch);
14787 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[39].typ = (&NTImismatchinfo__Bde9a0sl26Y9b6iLNg1iH8LQ_);
14788 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[39].name = "firstMismatch";
14789 TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[23] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[53];
14790 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[53].kind = 1;
14791 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[53].offset = offsetof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA, diagnosticsEnabled);
14792 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[53].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
14793 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[53].name = "diagnosticsEnabled";
14794 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[12].len = 24; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[12].kind = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[12].sons = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_68_24[0];
14795 NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_.node = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[12];
14796 NTIcandidateerror__5fLnqPfj0Ty9cmak1Q1pBFQ_.size = sizeof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ);
14797 NTIcandidateerror__5fLnqPfj0Ty9cmak1Q1pBFQ_.align = NIM_ALIGNOF(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ);
14798 NTIcandidateerror__5fLnqPfj0Ty9cmak1Q1pBFQ_.kind = 18;
14799 NTIcandidateerror__5fLnqPfj0Ty9cmak1Q1pBFQ_.base = 0;
14800 TM__EV5hHJmjIY9cla9b9be7fSVJQ_94_4[0] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[55];
14801 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[55].kind = 1;
14802 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[55].offset = offsetof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ, sym);
14803 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[55].typ = (&NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_);
14804 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[55].name = "sym";
14805 TM__EV5hHJmjIY9cla9b9be7fSVJQ_94_4[1] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[56];
14806 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[56].kind = 1;
14807 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[56].offset = offsetof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ, firstMismatch);
14808 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[56].typ = (&NTImismatchinfo__Bde9a0sl26Y9b6iLNg1iH8LQ_);
14809 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[56].name = "firstMismatch";
14810 TM__EV5hHJmjIY9cla9b9be7fSVJQ_94_4[2] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[57];
14811 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[57].kind = 1;
14812 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[57].offset = offsetof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ, diagnostics);
14813 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[57].typ = (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_);
14814 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[57].name = "diagnostics";
14815 TM__EV5hHJmjIY9cla9b9be7fSVJQ_94_4[3] = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[58];
14816 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[58].kind = 1;
14817 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[58].offset = offsetof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ, enabled);
14818 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[58].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
14819 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[58].name = "enabled";
14820 TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[54].len = 4; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[54].kind = 2; TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[54].sons = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_94_4[0];
14821 NTIcandidateerror__5fLnqPfj0Ty9cmak1Q1pBFQ_.node = &TM__EV5hHJmjIY9cla9b9be7fSVJQ_0[54];
14822 NTIcandidateerrors__0dpGN6F4ocevqUQGsaf41w_.size = sizeof(tySequence__0dpGN6F4ocevqUQGsaf41w*);
14823 NTIcandidateerrors__0dpGN6F4ocevqUQGsaf41w_.align = NIM_ALIGNOF(tySequence__0dpGN6F4ocevqUQGsaf41w*);
14824 NTIcandidateerrors__0dpGN6F4ocevqUQGsaf41w_.kind = 24;
14825 NTIcandidateerrors__0dpGN6F4ocevqUQGsaf41w_.base = (&NTIcandidateerror__5fLnqPfj0Ty9cmak1Q1pBFQ_);
14826 NTIcandidateerrors__0dpGN6F4ocevqUQGsaf41w_.marker = Marker_tySequence__0dpGN6F4ocevqUQGsaf41w;
14827 }
14828 
14829