/* Generated by Nim Compiler v1.6.6 */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#include <math.h>
#include <setjmp.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
typedef struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
typedef struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw;
typedef struct tySequence__eiMlYcU7NrAOGD2H36QOOQ tySequence__eiMlYcU7NrAOGD2H36QOOQ;
typedef struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ;
typedef struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg;
typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
typedef struct tySequence__oYkV9aFZe0MXcEAprJaOUsA tySequence__oYkV9aFZe0MXcEAprJaOUsA;
typedef struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q;
typedef struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA tySequence__Mh9agqM29bm9aP5AUL1x7dZGA;
typedef struct tySequence__arD7Tw6eD6lvOczWZl9buNg tySequence__arD7Tw6eD6lvOczWZl9buNg;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
typedef struct tySequence__jWKvSdankQPoT5bw9cBU9aiw tySequence__jWKvSdankQPoT5bw9cBU9aiw;
typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__xSqu3cxq5WeFlOO3YgE6yA tySequence__xSqu3cxq5WeFlOO3YgE6yA;
typedef struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w;
typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
typedef struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w;
typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
typedef struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ;
typedef struct tySequence__Hkw5zrAn53wlKDHdJF1GFA tySequence__Hkw5zrAn53wlKDHdJF1GFA;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ tySequence__4mZLwkxT8rbt9bf3wXrXYNQ;
typedef struct tySequence__rQHmYk1HzcwNxKBymIFHpA tySequence__rQHmYk1HzcwNxKBymIFHpA;
typedef struct tySequence__XMM60DtBsc6xYsIpNANkrA tySequence__XMM60DtBsc6xYsIpNANkrA;
typedef struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw;
typedef struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg;
typedef struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg;
typedef struct tySequence__mWRMiYLthG9coLjkbElCxkw tySequence__mWRMiYLthG9coLjkbElCxkw;
typedef struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyObject_Table__iowAVDkco3qpbEH0z8OmkQ;
typedef struct tySequence__bTDCDwD2P7TodzbAefLcSw tySequence__bTDCDwD2P7TodzbAefLcSw;
typedef struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w;
typedef struct tySequence__3MPVXAHA08SszBrU4ffqEg tySequence__3MPVXAHA08SszBrU4ffqEg;
typedef struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw tyObject_Table__KcymdZjUsmGSK8BxmvoJgw;
typedef struct tySequence__YCf5zJHm4JI06qpmKwPUWg tySequence__YCf5zJHm4JI06qpmKwPUWg;
typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ;
typedef struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA;
typedef struct tySequence__61s9cbAniKuBrdHwBhMDfQg tySequence__61s9cbAniKuBrdHwBhMDfQg;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tySequence__s9byh6WFJ16lPMcmqdaMTHA tySequence__s9byh6WFJ16lPMcmqdaMTHA;
typedef struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw tyObject_Table__Ue6w4c82v7gc7t2qntTbAw;
typedef struct tySequence__1U9bG8RcAedEeYkQLZjVFKA tySequence__1U9bG8RcAedEeYkQLZjVFKA;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence__MAQKEADohlpnXTModtugbQ tySequence__MAQKEADohlpnXTModtugbQ;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
typedef struct tySequence__1I3cxybVrOXM64KW2dfERQ tySequence__1I3cxybVrOXM64KW2dfERQ;
typedef struct tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ;
typedef struct tyObject_TIdentIter__Oi4goG2ACEsy9cyTe6OCPrA tyObject_TIdentIter__Oi4goG2ACEsy9cyTe6OCPrA;
typedef struct tyObject_ModuleIter__AFia9bW3IpMpX9c1vt0AhLlA tyObject_ModuleIter__AFia9bW3IpMpX9c1vt0AhLlA;
typedef struct tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg;
typedef struct tyObject_PackedDecoder__mJy59aKs7COuW5kZ9cw8pGKw tyObject_PackedDecoder__mJy59aKs7COuW5kZ9cw8pGKw;
typedef struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw tySequence__vC9cvg0R8tfBaOXXi3sfMzw;
typedef struct tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA;
typedef struct tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ;
typedef struct tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg;
typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
typedef struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA;
typedef struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg;
typedef struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ;
typedef struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ;
typedef struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA tySequence__ipEvhpHAmm8ZCn9bZAOdNYA;
typedef struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ;
typedef struct tySequence__0dpGN6F4ocevqUQGsaf41w tySequence__0dpGN6F4ocevqUQGsaf41w;
typedef struct tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ;
typedef struct tySequence__u9c10b19cqoKPxYSuh3ZKtIw tySequence__u9c10b19cqoKPxYSuh3ZKtIw;
typedef struct tyTuple__TZXo9ct5DP9bCdCGHY4IfZPQ tyTuple__TZXo9ct5DP9bCdCGHY4IfZPQ;
typedef struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w;
typedef struct tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w;
typedef struct tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw;
typedef struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA;
typedef struct tyTuple__7rlNEhvBksZh9a9asniQIl9aQ tyTuple__7rlNEhvBksZh9a9asniQIl9aQ;
typedef struct tyTuple__ZtAk5YtH0VW1iPowvxePrg tyTuple__ZtAk5YtH0VW1iPowvxePrg;
typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
typedef struct tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg;
typedef struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA;
typedef struct tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
typedef struct tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw;
typedef struct Exception Exception;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct TSafePoint TSafePoint;
typedef struct tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw;
typedef struct tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ;
typedef struct tyObject_HSlice__fqLtJsaN5foHLgxLTScotw tyObject_HSlice__fqLtJsaN5foHLgxLTScotw;
typedef struct tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA;
typedef struct tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ;
typedef struct tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA;
typedef struct tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw;
typedef struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w;
typedef struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw;
typedef struct tySequence__29bS0n2QNyO1R7e0qMMOvLA tySequence__29bS0n2QNyO1R7e0qMMOvLA;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg tySequence__REuPuHuSlOkZ0Q5oqzDrQg;
typedef struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA tySequence__I9aQmO9asXXWJ58UI9c8BCSzA;
typedef struct tySequence__NyaOkf8ZwxP6rkRF5TOkew tySequence__NyaOkf8ZwxP6rkRF5TOkew;
typedef struct tySequence__L9bOt8CaTEmIjgtuZvp6syg tySequence__L9bOt8CaTEmIjgtuZvp6syg;
typedef struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ tySequence__im8UB2GsZvUaQ4a1wKGWhQ;
typedef struct tySequence__xxnXDLpoqBo8zJzP9b1073g tySequence__xxnXDLpoqBo8zJzP9b1073g;
typedef struct tySequence__DfmUmNgVGnYaiV1I6227tw tySequence__DfmUmNgVGnYaiV1I6227tw;
typedef struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA tySequence__t8Uv4lEJ4lkuECvP9c6JMhA;
typedef struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg;
typedef struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g tyObject_Table__CE4eiu6FavV1vmUiTXQ70g;
typedef struct tySequence__9bT7o0CflHuiE4VhmtqBPCw tySequence__9bT7o0CflHuiE4VhmtqBPCw;
typedef struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA;
typedef struct tySequence__vv5mGmK03BCr5e3LTZA5Hw tySequence__vv5mGmK03BCr5e3LTZA5Hw;
typedef struct tyTuple__KNXySARiHvEh2wA9asnyYmw tyTuple__KNXySARiHvEh2wA9asnyYmw;
typedef struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ;
typedef struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg;
typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag tyTuple__Y6Ewh3MCxsjd1bsriN6Gag;
typedef struct tySequence__vGU8AyGT6KxtLJwEg0BpNw tySequence__vGU8AyGT6KxtLJwEg0BpNw;
typedef struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw tyTuple__KvKIqRIx9anKcDMu8DPSkHw;
typedef struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw;
typedef struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q tyObject_Table__TRm6MPqklA8EYBmBMY117Q;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ;
typedef struct tySequence__O5RcspOP32YJ4YtU5ppxxA tySequence__O5RcspOP32YJ4YtU5ppxxA;
typedef struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg;
typedef struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg tyTuple__o67sDX0wYbEuhI9cJYAbDtg;
typedef struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q tyTuple__9aNnDWBFMF44sfFinBpMT4Q;
typedef struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg;
typedef struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g tySequence__159bHWBGAOOs6U7OZ9cQlO0g;
typedef struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ tyTuple__VrD6plbUKJjYKM0lCr3hGQ;
typedef struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA tyTuple__1ZbjBgxAbnye0IFMZ6w4OA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__rplX06U9bjhu9asm5pWdgqsA tyTuple__rplX06U9bjhu9asm5pWdgqsA;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A;
typedef struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ tyTuple__3i6hlQmqrn6m7tuVN8FHjQ;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ;
typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow;
typedef struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA tyTuple__Q7r9caOmeWqQGZCIBHhGRUA;
typedef struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg;
typedef struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw tyTuple__XyJ8LOAZzVVXSsmt09b8uWw;
typedef struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA;
typedef struct tyTuple__9aoobCDZB4x41HJSOmh0mwA tyTuple__9aoobCDZB4x41HJSOmh0mwA;
typedef struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA tyTuple__g0Q6Qx15nK53ce9aLo7YyrA;
typedef struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw;
typedef struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw;
typedef struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA;
typedef struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q {
NI32 module;
NI32 symId;
NI32 typeId_0;
NIM_BOOL sealed;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
};
typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__d88NmFOoQ1OEoX9af4f9aptg[38];
struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q {
NI counter;
tySequence__Mh9agqM29bm9aP5AUL1x7dZGA* data;
};
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__RcJNn9bSvWdJgUmA1O6sbHA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
typedef NU32 tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ;
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__39auogS0nN05zO6JrT7za9cQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__DZXD9cPwIfL76eNszoUR9aVA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
void* ClE_0;
} tyProc__7JwrY3AhkVNlleAJXClX9cw;
typedef NU32 tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
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);
typedef N_NIMCALL_PTR(tyObject_TType__facALICuu8zUj0hjvbTLFg*, tyProc__IDzB9bjws1yntQXPpMRrBvA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
typedef struct {
N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
void* ClE_0;
} tyProc__3cacbJ4la9bDJNibHybQSnA;
typedef struct {
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);
void* ClE_0;
} tyProc__fMj9boIZZOt9cLWRnD3rtKhA;
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
NI elems;
NI counter;
NI max;
tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
};
typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
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);
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w {
tySequence__Bis5AbpONWcIRrPyPJS8Yw* data;
NI counter;
};
struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w {
tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
NI counter;
};
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ {
tySequence__Hkw5zrAn53wlKDHdJF1GFA* data;
NI counter;
};
struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug {
  tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
tyObject_TType__facALICuu8zUj0hjvbTLFg* enforceVoidContext;
tyObject_TType__facALICuu8zUj0hjvbTLFg* voidType;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* currentScope;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* moduleScope;
tySequence__eiMlYcU7NrAOGD2H36QOOQ* imports;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* topLevelScope;
tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
tyArray__d88NmFOoQ1OEoX9af4f9aptg intTypeCache;
tyObject_TType__facALICuu8zUj0hjvbTLFg* nilTypeCache;
tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* matchedConcept;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* friendModules;
NI instCounter;
NI* templInstCounter;
NI inGenericContext;
NI inStaticContext;
NI inUnrolledContext;
NI compilesContextId;
NI compilesContextIdGenerator;
NI inGenericInst;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* converters;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* patterns;
tySequence__oYkV9aFZe0MXcEAprJaOUsA* optionStack;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMapping;
tySequence__arD7Tw6eD6lvOczWZl9buNg* libs;
tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstExpr;
tyProc__39auogS0nN05zO6JrT7za9cQ semExpr;
tyProc__39auogS0nN05zO6JrT7za9cQ semTryExpr;
tyProc__RcJNn9bSvWdJgUmA1O6sbHA semTryConstExpr;
tyProc__DZXD9cPwIfL76eNszoUR9aVA computeRequiresInit;
tyProc__7JwrY3AhkVNlleAJXClX9cw hasUnresolvedArgs;
tyProc__39auogS0nN05zO6JrT7za9cQ semOperand;
tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstBoolExpr;
tyProc__qlV9aWvA5wrWVg9bI5PqwJyA semOverloadedCall;
tyProc__IDzB9bjws1yntQXPpMRrBvA semTypeNode;
tyProc__3cacbJ4la9bDJNibHybQSnA semInferredLambda;
tyProc__fMj9boIZZOt9cLWRnD3rtKhA semGenerateInstance;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA includedFiles;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA pureEnumFields;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA userPragmas;
tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* evalContext;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA unknownIdents;
tySequence__jWKvSdankQPoT5bw9cBU9aiw* generics;
NI topStmts;
NI lastGenericIdx;
NI hloLoopDetector;
NI inParallelStmt;
tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ instTypeBoundOp;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* selfName;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA signatures;
NimStringDesc* recursiveDep;
NIM_BOOL suggestionsMade;
NIM_BOOL isAmbiguous;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
NI inTypeContext;
NI inConceptDecl;
tySequence__xSqu3cxq5WeFlOO3YgE6yA* unusedImports;
tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w exportIndirections;
tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w importModuleMap;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastTLineInfo;
tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ sideEffects;
NI inUncheckedAssignSection;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
NI32 module;
NI32 item;
};
struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
  RootObj Sup;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
};
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
};
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw {
tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* data;
NI counter;
};
struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg {
tySequence__mWRMiYLthG9coLjkbElCxkw* data;
NI counter;
};
struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ {
tySequence__bTDCDwD2P7TodzbAefLcSw* data;
NI counter;
};
typedef tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ[5];
struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w {
tySequence__3MPVXAHA08SszBrU4ffqEg* data;
NI counter;
};
struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw {
tySequence__YCf5zJHm4JI06qpmKwPUWg* data;
NI counter;
};
struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
};
struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA {
tySequence__61s9cbAniKuBrdHwBhMDfQg* data;
NI counter;
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__9bjuenwQUcqO3lbmS2wX7uA[65];
struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw {
tySequence__1U9bG8RcAedEeYkQLZjVFKA* data;
NI counter;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__VHDwJFdIqpwtpUGuxiXUwg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__mjUN9alLJ31lnSKkUsuyWMw) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__TjycsqkDBjsxd4da6KYTng) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef N_NIMCALL_PTR(void, tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__J7Jq15ZScfKLqcLx8sEz9cA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opNot;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opContains;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLe;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLt;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAnd;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opOr;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opIsNil;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opEq;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAdd;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opSub;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opMul;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opDiv;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLen;
};
struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
tySequence__4mZLwkxT8rbt9bf3wXrXYNQ* ifaces;
tySequence__rQHmYk1HzcwNxKBymIFHpA* packed_0;
tySequence__XMM60DtBsc6xYsIpNANkrA* encoders;
tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw typeInstCache;
tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg procInstCache;
tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ attachedOps;
tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w methodsPerType;
tyObject_Table__KcymdZjUsmGSK8BxmvoJgw enumToStringProcs;
tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA emittedTypeInfo;
tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ startupPackedConfig;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA modulesPerPackage;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA deps;
tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* usageSym;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* owners;
tySequence__s9byh6WFJ16lPMcmqdaMTHA* methods;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* systemModule;
tyArray__9bjuenwQUcqO3lbmS2wX7uA sysTypes;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageTypes;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
tyObject_Table__Ue6w4c82v7gc7t2qntTbAw canonTypes;
tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
tyProc__VHDwJFdIqpwtpUGuxiXUwg importModuleCallback;
tyProc__mjUN9alLJ31lnSKkUsuyWMw includeFileCallback;
tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence__MAQKEADohlpnXTModtugbQ* passes;
tyProc__TjycsqkDBjsxd4da6KYTng onDefinition;
tyProc__TjycsqkDBjsxd4da6KYTng onDefinitionResolveForward;
tyProc__TjycsqkDBjsxd4da6KYTng onUsage;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ strongSemCheck;
tyProc__J7Jq15ZScfKLqcLx8sEz9cA compatibleProps;
tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA operators;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_1;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
} _kind_4;
struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
};
typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tySet_tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA[11];
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc__oL9coyIA2VDTGdUcur9aL9bew;
struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
NimStringDesc* unitSep;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
NimStringDesc* cmdInput;
NIM_BOOL projectIsCmd;
NIM_BOOL implicitCmd;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
NIM_BOOL hintProcessingDots;
NI verbosity;
NI numberOfProcessors;
NF lastCmdTime;
tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
NI spellSuggestMax;
tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA modifiedyNotes;
tySet_tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA cmdlineNotes;
tySet_tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA foreignPackageNotes;
tySet_tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA notes;
tySet_tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA warningAsErrors;
tySet_tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
NIM_BOOL isVmTrace;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug lastMsgWasDot;
NI32 projectMainIdx;
NI32 projectMainIdx2;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
NimStringDesc* docRoot;
NimStringDesc* docCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* cCompilerPath;
tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
NimStringDesc* cppCustomNamespace;
NimStringDesc* nimMainPrefix;
tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
};
typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ;
typedef NU8 tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ;
struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* resultSym;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* selfSym;
NI nestedLoopCounter;
NI nestedBlockCounter;
tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* next;
NIM_BOOL mappingExists;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q mapping;
tySequence__1I3cxybVrOXM64KW2dfERQ* caseContext;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* localBindStmts;
};
typedef NU8 tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA;
struct tyObject_TIdentIter__Oi4goG2ACEsy9cyTe6OCPrA {
NI h;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
};
struct tyObject_PackedDecoder__mJy59aKs7COuW5kZ9cw8pGKw {
NI lastModule;
NU32 lastLit;
NI32 lastFile;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
};
struct tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg {
tyObject_PackedDecoder__mJy59aKs7COuW5kZ9cw8pGKw decoder;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* values;
NI i;
NI module;
};
struct tyObject_ModuleIter__AFia9bW3IpMpX9c1vt0AhLlA {
NIM_BOOL fromRod;
NI modIndex;
tyObject_TIdentIter__Oi4goG2ACEsy9cyTe6OCPrA ti;
tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
NIM_BOOL importHidden;
};
typedef NU8 tyEnum_TOverloadIterMode__xCku9a0wtzKQQBbzX1t6btg;
struct tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ {
tyObject_TIdentIter__Oi4goG2ACEsy9cyTe6OCPrA it;
tyObject_ModuleIter__AFia9bW3IpMpX9c1vt0AhLlA mit;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
tyEnum_TOverloadIterMode__xCku9a0wtzKQQBbzX1t6btg mode;
NI symChoiceIndex;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* currentScope;
NI importIdx;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA marked;
};
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
NI id;
NimStringDesc* s;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
NI h;
};
typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA;
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef NU8 tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__D9ckBqsoLaohN9chYb6MLT6w[2];
typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
typedef NU8 tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
typedef NU8 tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg;
typedef NU8 tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w;
struct tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ {
tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w kind;
NI arg;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* formal;
};
struct tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA {
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
NI exactMatches;
NI genericMatches;
NI subtypeMatches;
NI intConvMatches;
NI convMatches;
tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg state;
tyObject_TType__facALICuu8zUj0hjvbTLFg* callee;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* calleeSym;
NI calleeScope;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q bindings;
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
NIM_BOOL baseTypeMatch;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag fauxMatch;
NIM_BOOL genericConverter;
NIM_BOOL coerceDistincts;
NIM_BOOL typedescMatched;
NIM_BOOL isNoCall;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* inferredTypes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* diagnostics;
NI inheritancePenalty;
tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ firstMismatch;
NIM_BOOL diagnosticsEnabled;
};
struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg {
tyObject_TType__facALICuu8zUj0hjvbTLFg* candidateType;
tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* prev;
NI depth;
};
struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw {
NI depthLevel;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA symbols;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* parent;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* allowPrivateAccess;
};
struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* concreteTypes;
NI compilesId;
};
struct tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg {
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* typeMap;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMap;
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q localCache;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
NIM_BOOL allowMetaTypes;
NIM_BOOL skipTypedesc;
NIM_BOOL isReturnType;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
NI recursionLimit;
};
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ {
NU32 module;
NI32 item;
};
struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ {
NI module;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ packed_0;
};
struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg {
NI module;
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ sym;
tySequence__ipEvhpHAmm8ZCn9bZAOdNYA* concreteTypes;
tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
};
typedef NU8 tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg;
struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericSym;
tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
};
typedef NU8 tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw[37];
typedef NU8 tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__T6RKPw8xfAeNaoei9aZGzXg[3];
struct tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ firstMismatch;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* diagnostics;
NIM_BOOL enabled;
};
struct tyTuple__TZXo9ct5DP9bCdCGHY4IfZPQ {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
NI Field1;
};
typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
typedef tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* tyArray__O7BaHX6ctEz6BpjFNHWCFQ[8192];
struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw {
tyArray__O7BaHX6ctEz6BpjFNHWCFQ buckets;
NI wordCounter;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* idAnon;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* idDelegator;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* emptyIdent;
};
struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w {
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA defaultCC;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* dynlib;
tySet_tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA notes;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* otherPragmas;
tySet_tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA warningAsErrors;
};
struct tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w {
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA toMixin;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA toBind;
NIM_BOOL cursorInBody;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bracketExpr;
};
typedef NU8 tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA;
typedef NU8 tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA;
struct tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ {
tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q topLayer;
tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* nextLayer;
};
struct tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw {
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA toBind;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA toMixin;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA toInject;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
NIM_BOOL cursorInBody;
NI scopeN;
NI noGenSym;
NI inTemplateHeader;
};
struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA {
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
};
struct tyTuple__7rlNEhvBksZh9a9asniQIl9aQ {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
NIM_BOOL Field1;
};
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
typedef NU8 tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg;
typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg[35];
typedef NU8 tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag;
typedef NU8 tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw;
typedef NU8 tySet_tyEnum_TTypeRelFlag__oebzuK0gHqNtaStfyppjAg;
typedef NU8 tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ;
typedef NU8 tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA;
struct tyTuple__ZtAk5YtH0VW1iPowvxePrg {
tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw Field0;
NimStringDesc* Field1;
};
typedef NU8 tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w;
struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
typedef NimStringDesc* tyArray__nr38yHugp0nuiB6VarJGiw[2];
struct tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg {
  RootObj Sup;
NI colonstate_;
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c1;
tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* args, void* ClE_0);
void* ClE_0;
} tyProc__5QC9cKfPJmKuW0XbCTd8ylA;
struct tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw {
  RootObj Sup;
NI colonstate_;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* orig1;
};
typedef struct {
N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* old, tyObject_TType__facALICuu8zUj0hjvbTLFg* fresh, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldParam, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newParam, void* ClE_0);
void* ClE_0;
} tyProc__9aCo26f5IRYbBmS07lBztwA;
typedef N_CLOSURE_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, TM__rF9caJawfOjYTjsgLVUSGFA_364) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* old, tyObject_TType__facALICuu8zUj0hjvbTLFg* fresh, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldParam, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newParam);
typedef N_CLOSURE_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, TM__rF9caJawfOjYTjsgLVUSGFA_365) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* old, tyObject_TType__facALICuu8zUj0hjvbTLFg* fresh, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldParam, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newParam);
typedef NU8 tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg;
typedef NU8 tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg;
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
typedef NU8 tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog;
typedef NU tyArray__VqSA39cBDWnwnJySTumCdjw[8];
struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA {
tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* next;
NI key;
tyArray__VqSA39cBDWnwnJySTumCdjw bits;
};
struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA {
  RootObj Sup;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* left;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* right;
NI L;
NimStringDesc* data;
};
struct tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw {
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr;
NIM_BOOL needsFullInit;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* missingFields;
};
typedef NU8 tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ;
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
Exception* up;
};
struct TSafePoint {
TSafePoint* prev;
NI status;
jmp_buf context;
};
struct tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
NI Field1;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__voNMFnIDThVNu9afe2zfZWA[5];
typedef NU8 tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw;
struct tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ {
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw a;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw b;
};
struct tyObject_HSlice__fqLtJsaN5foHLgxLTScotw {
tyObject_Int128__9a9axPfb75jdWY25AamJewkA a;
tyObject_Int128__9a9axPfb75jdWY25AamJewkA b;
};
typedef NU8 tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA;
struct tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA {
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag a;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag b;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__cypz0nHJsd9cnKgpO7fP5hQ[1];
typedef NimStringDesc* tyArray__Q6RksR9bl1dCf8jl3HeN9bXg[8];
typedef NU8 tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw;
typedef NU8 tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw;
typedef N_CLOSURE_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, TM__rF9caJawfOjYTjsgLVUSGFA_684) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef NU8 tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg;
struct tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ {
  RootObj Sup;
NI colonstate_;
tyObject_TType__facALICuu8zUj0hjvbTLFg* genericType1;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, void* ClE_0);
void* ClE_0;
} tyProc__u9aP1I541s9an9cuSAzDOz9bTg;
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_786) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_787) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_788) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_791) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_798) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_803) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_804) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_805) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_807) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
struct tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA {
tyObject_TType__facALICuu8zUj0hjvbTLFg* tupleType;
NI tupleIndex;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field;
NIM_BOOL replaceByFieldName;
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
};
struct tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw {
tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m;
};
typedef NU8 tyEnum_TSymKind__uwRDzlpaGW5WJzgBn4R8Eg;
typedef NU8 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q;
struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw {
tySequence__29bS0n2QNyO1R7e0qMMOvLA* nodes;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g;
struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ {
tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ {
NimStringDesc* definedSymbols;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw moduleFlags;
tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw toReplay;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw topLevel;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw bodies;
tySequence__b89aLriiJnVTD186H6zNIgg* exports;
tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
tySequence__REuPuHuSlOkZ0Q5oqzDrQg* reexports;
tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
tySequence__48JTohSgTy339bRxHzUD8KA* converters;
tySequence__48JTohSgTy339bRxHzUD8KA* methods;
tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
tySequence__I9aQmO9asXXWJ58UI9c8BCSzA* macroUsages;
tySequence__NyaOkf8ZwxP6rkRF5TOkew* typeInstCache;
tySequence__L9bOt8CaTEmIjgtuZvp6syg* procInstCache;
tySequence__im8UB2GsZvUaQ4a1wKGWhQ* attachedOps;
tySequence__xxnXDLpoqBo8zJzP9b1073g* methodsPerType;
tySequence__NyaOkf8ZwxP6rkRF5TOkew* enumToStringProcs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g backendFlags;
tySequence__DfmUmNgVGnYaiV1I6227tw* syms;
tySequence__t8Uv4lEJ4lkuECvP9c6JMhA* types;
tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg strings;
tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ numbers;
tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ cfg;
};
struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g {
tySequence__9bT7o0CflHuiE4VhmtqBPCw* data;
NI counter;
};
struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w {
tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q status;
NIM_BOOL symsInit;
NIM_BOOL typesInit;
NIM_BOOL loadedButAliveSetChanged;
tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ fromDisk;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* syms;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* types;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
tyObject_Table__CE4eiu6FavV1vmUiTXQ70g iface;
tyObject_Table__CE4eiu6FavV1vmUiTXQ70g ifaceHidden;
};
struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* converters;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* patterns;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* pureEnums;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interf;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interfHidden;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* uniqueName;
};
typedef N_CLOSURE_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, TM__rF9caJawfOjYTjsgLVUSGFA_952) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
typedef N_CLOSURE_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, TM__rF9caJawfOjYTjsgLVUSGFA_953) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, void* ClE_0);
typedef N_CLOSURE_PTR(NIM_BOOL, TM__rF9caJawfOjYTjsgLVUSGFA_954) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
struct tyTuple__KNXySARiHvEh2wA9asnyYmw {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field1;
};
typedef NU8 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ;
struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ mode;
union{
struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA imported;
} _mode_2;
struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA exceptSet;
} _mode_3;
};
};
struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg {
tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key;
RootObj* val;
};
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
NI Field0;
tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
};
struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
};
struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag {
NI Field0;
NI Field1;
tySequence__vGU8AyGT6KxtLJwEg0BpNw* Field2;
};
struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw {
NI32 thisModule;
NI32 lastFile;
NU32 lastLit;
tyObject_Table__TRm6MPqklA8EYBmBMY117Q filenames;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* pendingTypes;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* pendingSyms;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA typeMarker;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA symMarker;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
};
struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg {
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
};
struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__O5RcspOP32YJ4YtU5ppxxA* Field2;
};
struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* Field2;
};
struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
};
struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ {
NI Field0;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field1;
};
struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__159bHWBGAOOs6U7OZ9cQlO0g* Field2;
};
struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field2;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple__rplX06U9bjhu9asm5pWdgqsA {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA Field2;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A {
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* Field0;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__facALICuu8zUj0hjvbTLFg* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__jkSFMhvPZ1AdGcvT2dK9a2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ {
tyProc__jkSFMhvPZ1AdGcvT2dK9a2w Field0;
tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
NIM_BOOL Field3;
};
struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
NimStringDesc* customArgs;
};
struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA {
NI ra;
NI rb;
NI rc;
tyObject_TFullReg__GJRDbRqzZnSsmt2gZMzKBA* slots;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentException;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q currentLineInfo;
};
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
NU32 Field0;
NimStringDesc* Field1;
};
struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg {
NU16 line;
NI16 col;
NU32 file;
};
struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow {
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
NI32 operand;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeId_0;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
};
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
NU32 Field0;
NI32 Field1;
};
struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA {
NU32 Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
};
struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg Field1;
};
struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
};
struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ key;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* concreteTypes;
};
struct tyTuple__9aoobCDZB4x41HJSOmh0mwA {
tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
};
struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
NI Field1;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
};
typedef NU8 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ;
struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw {
tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
NU32 name;
NI32 path;
};
struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw {
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
NU32 name;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typ;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
NI32 ast;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ guard;
NI bitsize;
NI alignment;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
NU32 externalName;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA locFlags;
tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw annex;
NI32 constraint;
};
struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA {
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* types;
NI32 n;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeInst;
NI32 nonUniqueId;
};
struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ {
NI Field0;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* Field1;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* Field2;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
  TGenericSeq Sup;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
};
struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
  TGenericSeq Sup;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
};
struct tySequence__jWKvSdankQPoT5bw9cBU9aiw {
  TGenericSeq Sup;
  tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ data[SEQ_DECL_SIZE];
};
struct tySequence__0dpGN6F4ocevqUQGsaf41w {
  TGenericSeq Sup;
  tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ data[SEQ_DECL_SIZE];
};
struct tySequence__u9c10b19cqoKPxYSuh3ZKtIw {
  TGenericSeq Sup;
  tyTuple__TZXo9ct5DP9bCdCGHY4IfZPQ data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__eiMlYcU7NrAOGD2H36QOOQ {
  TGenericSeq Sup;
  tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ data[SEQ_DECL_SIZE];
};
struct tySequence__oYkV9aFZe0MXcEAprJaOUsA {
  TGenericSeq Sup;
  tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* data[SEQ_DECL_SIZE];
};
struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA {
  TGenericSeq Sup;
  tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE];
};
struct tySequence__arD7Tw6eD6lvOczWZl9buNg {
  TGenericSeq Sup;
  tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* data[SEQ_DECL_SIZE];
};
struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
};
struct tySequence__xSqu3cxq5WeFlOO3YgE6yA {
  TGenericSeq Sup;
  tyTuple__KNXySARiHvEh2wA9asnyYmw data[SEQ_DECL_SIZE];
};
struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
  TGenericSeq Sup;
  tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE];
};
struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
  TGenericSeq Sup;
  tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
};
struct tySequence__vGU8AyGT6KxtLJwEg0BpNw {
  TGenericSeq Sup;
  tyTuple__KvKIqRIx9anKcDMu8DPSkHw data[SEQ_DECL_SIZE];
};
struct tySequence__Hkw5zrAn53wlKDHdJF1GFA {
  TGenericSeq Sup;
  tyTuple__Y6Ewh3MCxsjd1bsriN6Gag data[SEQ_DECL_SIZE];
};
struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ {
  TGenericSeq Sup;
  tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA data[SEQ_DECL_SIZE];
};
struct tySequence__rQHmYk1HzcwNxKBymIFHpA {
  TGenericSeq Sup;
  tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w data[SEQ_DECL_SIZE];
};
struct tySequence__XMM60DtBsc6xYsIpNANkrA {
  TGenericSeq Sup;
  tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw data[SEQ_DECL_SIZE];
};
struct tySequence__O5RcspOP32YJ4YtU5ppxxA {
  TGenericSeq Sup;
  tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg data[SEQ_DECL_SIZE];
};
struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg {
  TGenericSeq Sup;
  tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ data[SEQ_DECL_SIZE];
};
struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA {
  TGenericSeq Sup;
  tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg data[SEQ_DECL_SIZE];
};
struct tySequence__mWRMiYLthG9coLjkbElCxkw {
  TGenericSeq Sup;
  tyTuple__o67sDX0wYbEuhI9cJYAbDtg data[SEQ_DECL_SIZE];
};
struct tySequence__bTDCDwD2P7TodzbAefLcSw {
  TGenericSeq Sup;
  tyTuple__9aNnDWBFMF44sfFinBpMT4Q data[SEQ_DECL_SIZE];
};
struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g {
  TGenericSeq Sup;
  tyTuple__VrD6plbUKJjYKM0lCr3hGQ data[SEQ_DECL_SIZE];
};
struct tySequence__3MPVXAHA08SszBrU4ffqEg {
  TGenericSeq Sup;
  tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg data[SEQ_DECL_SIZE];
};
struct tySequence__YCf5zJHm4JI06qpmKwPUWg {
  TGenericSeq Sup;
  tyTuple__1ZbjBgxAbnye0IFMZ6w4OA data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__61s9cbAniKuBrdHwBhMDfQg {
  TGenericSeq Sup;
  tyTuple__rplX06U9bjhu9asm5pWdgqsA data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence__s9byh6WFJ16lPMcmqdaMTHA {
  TGenericSeq Sup;
  tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A data[SEQ_DECL_SIZE];
};
struct tySequence__1U9bG8RcAedEeYkQLZjVFKA {
  TGenericSeq Sup;
  tyTuple__3i6hlQmqrn6m7tuVN8FHjQ data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence__MAQKEADohlpnXTModtugbQ {
  TGenericSeq Sup;
  tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ data[SEQ_DECL_SIZE];
};
struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
};
struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
struct tySequence__1I3cxybVrOXM64KW2dfERQ {
  TGenericSeq Sup;
  tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw data[SEQ_DECL_SIZE];
};
struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw {
  TGenericSeq Sup;
  tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ data[SEQ_DECL_SIZE];
};
struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA {
  TGenericSeq Sup;
  tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ data[SEQ_DECL_SIZE];
};
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
struct tySequence__PXIzfWocnrafGz5p3CP5LA {
  TGenericSeq Sup;
  tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE];
};
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct tySequence__29bS0n2QNyO1R7e0qMMOvLA {
  TGenericSeq Sup;
  tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow data[SEQ_DECL_SIZE];
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  TGenericSeq Sup;
  tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
};
struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg {
  TGenericSeq Sup;
  tyTuple__Q7r9caOmeWqQGZCIBHhGRUA data[SEQ_DECL_SIZE];
};
struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA {
  TGenericSeq Sup;
  tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg data[SEQ_DECL_SIZE];
};
struct tySequence__NyaOkf8ZwxP6rkRF5TOkew {
  TGenericSeq Sup;
  tyTuple__XyJ8LOAZzVVXSsmt09b8uWw data[SEQ_DECL_SIZE];
};
struct tySequence__L9bOt8CaTEmIjgtuZvp6syg {
  TGenericSeq Sup;
  tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA data[SEQ_DECL_SIZE];
};
struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ {
  TGenericSeq Sup;
  tyTuple__9aoobCDZB4x41HJSOmh0mwA data[SEQ_DECL_SIZE];
};
struct tySequence__xxnXDLpoqBo8zJzP9b1073g {
  TGenericSeq Sup;
  tyTuple__g0Q6Qx15nK53ce9aLo7YyrA data[SEQ_DECL_SIZE];
};
struct tySequence__DfmUmNgVGnYaiV1I6227tw {
  TGenericSeq Sup;
  tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw data[SEQ_DECL_SIZE];
};
struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA {
  TGenericSeq Sup;
  tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA data[SEQ_DECL_SIZE];
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  TGenericSeq Sup;
  NI64 data[SEQ_DECL_SIZE];
};
struct tySequence__9bT7o0CflHuiE4VhmtqBPCw {
  TGenericSeq Sup;
  tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ data[SEQ_DECL_SIZE];
};
struct tySequence__vv5mGmK03BCr5e3LTZA5Hw {
  TGenericSeq Sup;
  tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA data[SEQ_DECL_SIZE];
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  TGenericSeq Sup;
  tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*, newContext__semdata_503)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5317)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5279)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5324)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5322)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5273)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newType__ast_3896)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1431)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstExpr__sem_611)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprWithType__sem_56)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprCheck__sem_13934)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, illFormedAst__semdata_1071)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpr__sem_52)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, suggestExpr__sigmatch_6536)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, qualifiedLookUp__lookups_1233)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ flags);
N_LIB_PRIVATE N_NIMCALL(void, semCaptureSym__lambdalifting_4991)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, symChoice__sem_6586)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA r, NIM_BOOL isField);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, initOverloadIter__lookups_1374)(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, nextOverloadIter__lookups_1528)(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getCallLineInfo__sem_2390)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3719)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, markUsed__sigmatch_85)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__ast_3378)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newTypeS__semdata_733)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, markOwnerModuleAsUsed__sigmatch_89)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
static N_INLINE(void, markIndirect__semdata_1060)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeVarType__semdata_766)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, enumFieldSymChoice__sem_20215)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSym__sem_16971)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getGenSym__semdata_408)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, inlineConst__sem_14004)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4431)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
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);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__types_50)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3716)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, base__types_63)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NI, requiredParams__ast_4714)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMacroExpr__sem_524)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, rememberExpansion__semdata_3656)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* expandedSym);
N_LIB_PRIVATE N_NIMCALL(void, pushInfoContext__msgs_490)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* detail);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__renderer_46)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalMacroCall__vm_13857)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI* templInstCounter, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAfterMacroCall__sem_2787)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* macroResult, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getModule__astalgo_216)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, resetSemFlag__sem_2771)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmt__sem_84)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprNoType__sem_60)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasHint__options_517)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA note);
N_LIB_PRIVATE N_NIMCALL(void, discardCheck__sem_9323)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, implicitlyDiscardable__sem_9282)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCallExpr__ast_3176)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3360)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___renderer_2106)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___msgs_624)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, popInfoContext__msgs_507)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__ast_4359)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeNode__sem_80)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(void, checkSonsLen__semdata_1077)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI length, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeOf__sem_5872)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*, openScope__lookups_69)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, closeScope__lookups_101)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, fixupTypeOf__sem_5584)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typExpr);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__ast_4288)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son, NIM_BOOL propagateHasAsgn);
N_LIB_PRIVATE N_NIMCALL(void, assignType__ast_3976)(tyObject_TType__facALICuu8zUj0hjvbTLFg* dest, tyObject_TType__facALICuu8zUj0hjvbTLFg* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semAnonTuple__sem_3569)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newOrPrevType__sem_2916)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__magicsys_136)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id);
static N_INLINE(NIM_BOOL, eqeq___idents_220)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* a, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semRangeAux__sem_3219)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, errorType__semdata_1002)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
static N_INLINE(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipIntLit__magicsys_124)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, copyType__ast_4046)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_1824)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(void, typeMismatch__types_3870)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__types_299)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, NIM_BOOL allowEnumWithHoles);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles__types_287)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasUnresolvedArgs__sem_142)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnresolvedSym__sem_15011)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMetaType__ast_3495)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, considerQuotedIdent__lookups_28)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* origin);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, searchInScopes__lookups_423)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* s, NIM_BOOL* ambiguous);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeStaticExpr__semdata_826)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isNaN__sem_3286)(NF x);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, weakLeValue__astalgo_151)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
static N_INLINE(tyObject_TType__facALICuu8zUj0hjvbTLFg*, freshType__sem_5619)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* res, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(void, copyTypeProps__modulegraphs_8872)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module, tyObject_TType__facALICuu8zUj0hjvbTLFg* dest, tyObject_TType__facALICuu8zUj0hjvbTLFg* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeExpr__sem_5593)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, maybeAliasType__sem_5571)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typeExpr, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeAndType__semdata_855)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t1, tyObject_TType__facALICuu8zUj0hjvbTLFg* t2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeOrType__semdata_890)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t1, tyObject_TType__facALICuu8zUj0hjvbTLFg* t2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeTypeFromExpr__semdata_804)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__ast_3392)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeNotType__semdata_945)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semAnyRef__sem_4568)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newConstraint__sem_2929)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k);
N_LIB_PRIVATE N_NIMCALL(void, checkMinSonsLen__semdata_1084)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI length, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semObjectNode__sem_4464)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags);
static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_16)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypesOrNil__ast_4185)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
static N_INLINE(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipGenericInvocation__sem_4428)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, lastSon__ast_3743)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFields__sem_4443)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* check, NI* pos, tyObject_TType__facALICuu8zUj0hjvbTLFg* obj);
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFieldsAux__sem_4383)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_55)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, semRecordNodeAux__sem_3922)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* rectype, NIM_BOOL hasCaseFields);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstBoolExpr__sem_2877)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, forceBool__sem_2869)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNode__sem_70)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getConstExpr__semfold_81)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, indexTypesMatch__sem_120)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
N_LIB_PRIVATE N_NIMCALL(void, newCandidate__sigmatch_195)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TType__facALICuu8zUj0hjvbTLFg* callee, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result);
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);
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersArg__sem_2292)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x);
static N_INLINE(NIM_BOOL, isGenericRoutineStrict__ast_4639)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4627)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isGenericParams__ast_4616)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, generateInstance__sem_1295)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NimStringDesc*, toFileLineCol__msgs_615)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info);
static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x);
N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_167)(NimStringDesc** result, NI64 x);
static N_INLINE(NIM_BOOL, isTopLevel__semdata_1091)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, copySym__ast_4054)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id);
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
N_LIB_PRIVATE N_NIMCALL(void, pushOwner__semdata_322)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(void, fillMixinScope__sem_1283)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, strTableAdd__astalgo_3325)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* t, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA*, new__sem_1335)(void);
static N_INLINE(void, nimGCunrefRC1)(void* p);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
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);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getCurrOwner__semdata_315)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(RootObj*, idTableGet__astalgo_64)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q t, tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key);
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);
static N_INLINE(void, addDecl__lookups_845)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
static N_INLINE(void, addDeclAt__lookups_837)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
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);
N_LIB_PRIVATE N_NIMCALL(void, rawPushProcCon__sem_849)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(void, instantiateProcType__sem_1187)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* prc, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ*, initLayeredTypeMap__semtypinst_134)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt);
N_LIB_PRIVATE N_NIMCALL(void, initTypeVars__semtypinst_982)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* p, tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* typeMap, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, instCopyType__semtypinst_480)(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg* cl, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, shallowCopy__ast_4413)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, resetIdTable__ast_4104)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, replaceTypeVarsT__semtypinst_178)(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg* cl, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, replaceTypeVarsN__semtypinst_130)(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg* cl, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI start);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, referencesAnotherParam__sem_1165)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, errorNode__semdata_1009)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNodePostMatch__sem_164)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__types_3597)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, changeType__sem_75)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* newType, NIM_BOOL check);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, elemType__types_263)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getSymFromList__astalgo_245)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* list, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident, NI start);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_738)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__types_1353)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_721)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__types_1470)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, floatRangeCheck__types_1613)(NF x, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_3118)(NF x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHiddenSubConv__types_3674)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
N_LIB_PRIVATE N_NIMCALL(void, propagateToOwner__ast_4219)(tyObject_TType__facALICuu8zUj0hjvbTLFg* owner, tyObject_TType__facALICuu8zUj0hjvbTLFg* elem, NIM_BOOL propagateHasAsgn);
N_LIB_PRIVATE N_NIMCALL(void, eraseVoidParams__semtypinst_682)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(void, skipIntLiteralParams__semtypinst_738)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, genericCacheGet__sem_983)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericSym, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA entry, NI id);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_3568)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key);
N_LIB_PRIVATE N_NIMCALL(tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA**, X5BX5D___modulegraphs_3884)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA*, resolveInst__modulegraphs_2881)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameInstantiation__sem_965)(tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA a, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, compareTypes__types_2668)(tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y, tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg cmp, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(void, rawHandleSelf__sem_865)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(void, addObjFieldsToLocalScope__sem_805)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, fieldVisible__sigmatch_4944)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, strTableIncl__astalgo_3374)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* t, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* n, NIM_BOOL onConflictKeepOld);
N_LIB_PRIVATE N_NIMCALL(void, addToGenericProcCache__semdata_1185)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst);
N_LIB_PRIVATE N_NIMCALL(void, makeInstPair__semdata_297)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst, tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ* Result);
N_LIB_PRIVATE N_NIMCALL(void, pragma__pragmas_123)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas, NIM_BOOL isStatement);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getBody__modulegraphs_11241)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, loadProcBody__icZic_8390)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tySequence__rQHmYk1HzcwNxKBymIFHpA** g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, instantiateBody__sem_1028)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* orig);
N_LIB_PRIVATE N_NIMCALL(void, maybeAddResult__sem_100)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, sysTypeFromName__magicsys_55)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, addResult__sem_12396)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(void, swapResult__sem_12375)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sRes, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dNode);
N_LIB_PRIVATE N_NIMCALL(void, addParamOrResult__sem_1024)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, findEnforcedStaticType__sem_4687)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getSysSym__magicsys_16)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name);
static N_INLINE(NIM_BOOL, isInlineIterator__ast_4989)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(void, initIdTable__ast_4096)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* x);
N_LIB_PRIVATE N_NIMCALL(void, idTablePut__astalgo_70)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* t, tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key, RootObj* val);
N_LIB_PRIVATE N_NIMCALL(void, freshGenSyms__sem_990)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* orig, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* symMap);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcBody__sem_67)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isEmptyType__ast_4779)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(void, fixNilType__sem_9307)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isAtom__ast_4768)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsgn__sem_15312)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ mode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, builtinFieldAccess__sem_17195)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryReadingTypeField__sem_17155)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* i, tyObject_TType__facALICuu8zUj0hjvbTLFg* ty);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupInRecord__astalgo_84)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeTypeDesc__concepts_49)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryReadingGenericParam__sem_17141)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* i, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, readTypeParameter__sem_16919)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* paramName, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, linkTo__ast_3532)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipGenericAlias__types_2219)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTypeExpr__sem_16755)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupInRecordAndBuildCheck__sem_16773)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** check);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, createSetType__sem_16762)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getSysType__magicsys_60)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getSysMagic__magicsys_29)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeDeref__sem_9873)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, propertyWriteAccess__sem_17558)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIdentNode__ast_3712)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTreeI__ast_3420)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOverloadedCallAnalyseEffects__sem_16425)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOverloadedCall__sem_2498)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, resolveOverloads__sem_1997)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tySequence__0dpGN6F4ocevqUQGsaf41w** errors, NIM_BOOL errorsEnabled, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result);
N_LIB_PRIVATE N_NIMCALL(void, semOpAux__sem_88)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, pickBestCandidate__sem_1496)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* best, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* alt, tySequence__0dpGN6F4ocevqUQGsaf41w** errors, NIM_BOOL diagnosticsFlag, NIM_BOOL errorsEnabled, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NI, lastOverloadScope__lookups_1472)(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o);
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);
N_LIB_PRIVATE N_NIMCALL(void, determineType__sem_1460)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcAux__sem_13030)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcAnnotation__sem_12465)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prc, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichPragma__trees_244)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, strTableGet__astalgo_3383)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA t, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyExcept__sem_12448)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__ast_4336)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplateExpr__sem_519)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalTemplate__evaltempl_275)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* tmpl, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genSymOwner, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NI* instID, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, NIM_BOOL fromHlo);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, semIdentDef__sem_9679)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, NIM_BOOL reportToNimsuggest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, semIdentWithPragma__sem_476)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw allowed);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, semIdentVis__sem_471)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw allowed);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSymG__sem_458)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toHumanStr__ast_5158)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__sem_9697)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(void, suggestSym__sigmatch_5375)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** usageSym, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(void, setGenericParamsMisc__sem_6510)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericParamList__sem_6334)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* father);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newTypeWithSons__semdata_821)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semGenericConstraints__sem_6326)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGenericType__types_3360)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(void, semParamList__sem_91)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semProcTypeNode__sem_5067)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, NIM_BOOL isType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newProcType__sem_5053)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w*, lastOptionEntry__semdata_341)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semParamType__sem_5032)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** constraint);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semNodeKindConstraints__parampatterns_186)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI start);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMagic__sem_5062)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasPragma__pragmas_2498)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw pragma);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmt__sem_2885)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmt__sem_8113)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lookup__sem_8193)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, skipAlias__lookups_118)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__astalgo_3489)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, errorUndeclaredIdentifier__lookups_1199)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name, NimStringDesc* extra);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmtSymbol__sem_8131)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, NIM_BOOL fromDotExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNodeTypeDesc__semfold_835)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fuzzyLookup__sem_8272)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx, NIM_BOOL* isMacro);
N_LIB_PRIVATE N_NIMCALL(tySequence__eHqUwlHGGaPw0TDPDeL79cQ*, searchInScopesFilterBy__lookups_464)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* s, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDot__sem_8259)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMixinStmt__sem_6701)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* toMixin);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBindStmt__sem_6647)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* toBind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmtScope__sem_8118)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx);
N_LIB_PRIVATE N_NIMCALL(void, addTempDecl__sem_8354)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSymS__sem_453)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getIdentNode__sem_8093)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addPrelimDecl__lookups_848)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(void, nep1CheckDefImpl__linter_110)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInfixAs__ast_4935)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_3626)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, liftParamType__sem_4789)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw procKind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TType__facALICuu8zUj0hjvbTLFg* paramType, NimStringDesc* paramName, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL anon);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, addImplicitGeneric__sem_4737)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typeClass, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* typId, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, NimStringDesc* paramName);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, exactReplica__ast_4051)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, instGenericContainer__sem_1125)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* header, NIM_BOOL allowMetaTypes);
N_LIB_PRIVATE N_NIMCALL(void, transitionGenericParamToType__ast_4390)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__astalgo_402)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPattern__sem_7129)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, flattenStmts__trees_355)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPatternBody__sem_7835)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleSym__sem_7855)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newParam__sem_7841)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, expectParam__sem_7897)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stupidStmtListExpr__trees_404)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addPattern__semdata_692)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA p);
N_LIB_PRIVATE N_NIMCALL(void, searchForProc__procfind_73)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyTuple__7rlNEhvBksZh9a9asniQIl9aQ* Result);
N_LIB_PRIVATE N_NIMCALL(void, addInterfaceOverloadableSymAt__lookups_899)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(void, addInterfaceDeclAt__lookups_875)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(void, pragmaCallable__pragmas_2552)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas, NIM_BOOL isStatement);
N_LIB_PRIVATE N_NIMCALL(void, implicitPragmas__pragmas_2394)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas);
N_LIB_PRIVATE N_NIMCALL(void, setEffectsForProcType__sempass50_4545)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, wrongRedefinition__lookups_805)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q conflictsWith, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w note);
N_LIB_PRIVATE N_NIMCALL(void, addGenericParamListToScope__sem_11586)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addParams__sem_96)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
static N_INLINE(NIM_BOOL, importantComments__options_3989)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, comment__ast_993)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, commenteq___ast_1361)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(void, popOwner__semdata_329)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, semOverride__sem_12811)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, bindTypeHook__sem_12702)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, canonType__sem_12664)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getAttachedOp__modulegraphs_4011)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op);
N_LIB_PRIVATE N_NIMCALL(void, setAttachedOp__modulegraphs_4407)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* value);
N_LIB_PRIVATE N_NIMCALL(void, prevDestructor__sem_12672)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* prevOp, tyObject_TType__facALICuu8zUj0hjvbTLFg* obj, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NIM_BOOL, contains__stdZenumutils_43)(NimStringDesc** a, NI aLen_0, NimStringDesc* item);
static N_INLINE(NI, find__stdZenumutils_48)(NimStringDesc** a, NI aLen_0, NimStringDesc* item);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProc__sem_12969)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProcAux__sem_12954)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg, inCheckpoint__sigmatch_5312)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q current, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos);
N_LIB_PRIVATE N_NIMCALL(void, semMethodPrototype__sem_12993)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4646)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, addMethodToGeneric__modulegraphs_7689)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, NI col, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasObjParam__sem_12973)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, methodDef__cgmeth_263)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, pushProcCon__sem_898)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hloBody__sem_783)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hlo__sem_668)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyPatterns__sem_692)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyRule__patterns_548)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalPattern__sem_671)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDirectOp__sem_511)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, afterCallActions__sem_16525)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, semFinishOperands__sigmatch_4162)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, activate__sem_108)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, fixAbstractType__sem_14967)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isArrayConstr__sem_145)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, analyseIfAddressTakenInCall__sem_15147)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag, isAssignable__sem_15006)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag, isAssignable__parampatterns_334)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, analyseIfAddressTaken__sem_15089)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newHiddenAddrTaken__sem_15059)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderNotLValue__sem_1612)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, magicsAfterOverloadResolution__sem_16031)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAddrArg__sem_15267)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makePtrType__semdata_742)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeOf__sem_132)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, computeSizeAlign__types_2924)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__ast_3723)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrGet__sem_15320)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSubscript__sem_15316)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDeref__sem_17376)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semStaticType__sem_128)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* childNode, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getOrdValue__types_161)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Int128__9a9axPfb75jdWY25AamJewkA onError);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_752)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(NI, toInt__int495056_170)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSymGenericInstantiation__sem_13999)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, maybeInstantiateGeneric__sem_17398)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericInstantiation__sem_2621)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericSym__sem_2571)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
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);
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);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericInstError__sem_2567)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, symNodeFromType__sem_543)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, symFromType__sem_530)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, bracketNotFoundError__sem_1937)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, notFoundError__sem_1922)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__0dpGN6F4ocevqUQGsaf41w* errors);
N_LIB_PRIVATE N_NIMCALL(void, presentFailedCandidates__sem_1636)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__0dpGN6F4ocevqUQGsaf41w* errors, tyTuple__ZtAk5YtH0VW1iPowvxePrg* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, describeArgs__sigmatch_384)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI startIdx, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getProcHeader__types_222)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, NIM_BOOL getDeclarationPath);
N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLocMaybe__astmsgs_21)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(void, addTypeDeclVerboseMaybe__types_53)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(void, addPragmaAndCallConvMismatch__types_3795)(NimStringDesc** message, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, effectProblem__sem_1583)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, NimStringDesc** result, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ, compatibleEffects__types_3425)(tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, sort__sem_1792)(NimStringDesc** a, NI aLen_0, tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA order);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrPut__sem_15343)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipAddr__ast_5218)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsgnOpr__sem_15372)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semShallowCopy__sem_15758)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIsPartOf__sem_15380)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w, isPartOf__aliases_129)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNodeT__semfold_57)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA intVal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__types_1378)(NI arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeTraits__sem_15636)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalTypeTrait__sem_15459)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* traitCall, tyObject_TType__facALICuu8zUj0hjvbTLFg* operand, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* context);
N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, toNode__sem_15433)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newTypeWithSons__semdata_815)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw, parseEnum__sem_15514)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNode__ast_3813)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTypeDescNode__sem_15452)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toHumanStr__ast_5188)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, uninstantiate__sem_15448)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef__types_612)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStrNodeT__semfold_76)(NimStringDesc* strVal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semInstantiationInfo__sem_15402)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, expectIntLit__sem_15395)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getInfoContext__msgs_516)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI index);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath__msgs_538)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
static N_INLINE(NI, toLinenumber__msgs_609)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NI, toColumn__msgs_612)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOrd__sem_15657)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOf__sem_15762)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff__types_2685)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, commonSuperclass__types_2747)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLowHigh__sem_14550)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, emptyRange__nimsets_273)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBindSym__sem_15663)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isCompileTimeProc__ast_4683)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDynamicBindSym__sem_15732)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__IqGNbqKVyQ9b9an5n9bN8QJsQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, setupGlobalCtx__vm_13671)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
N_LIB_PRIVATE N_NIMCALL(NI, registerCallback__vmdef_433)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NimStringDesc* name, tyProc__5QC9cKfPJmKuW0XbCTd8ylA callback);
N_LIB_PRIVATE N_CLOSURE(void, bindSymWrapper__sem_15741)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, setResult__vm_246)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opBindSym__sem_15702)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI isMixin, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getNode__vm_330)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, NI i);
N_LIB_PRIVATE N_NIMCALL(NI64, getInt__vm_273)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntTypeNode__ast_3783)(NI64 intVal, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyProc__RcJNn9bSvWdJgUmA1O6sbHA, getPlugin__pluginsZactive_25)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvCastAndClosure__astalgo_114)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, whereToBindTypeHook__sem_12682)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, turnFinalizerIntoDestructor__sem_15878)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* orig, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_NIMCALL(void, Marker_tyRef__s6znTCfmZMSZG9absJgsa1w)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeVarType__semdata_775)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_CLOSURE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transform__sem_15883)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* old, tyObject_TType__facALICuu8zUj0hjvbTLFg* fresh, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldParam, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newParam, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTypeOrNil__types_1848)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newProcType__ast_5056)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(void, addParam__ast_5065)(tyObject_TType__facALICuu8zUj0hjvbTLFg* procType, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semUnown__sem_15814)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, unownedType__sem_15818)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*, newSeq__modulegraphs_2893)(NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semQuantifier__sem_15921)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOld__sem_15990)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, requiresInit__typeallowed_582)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, checkIsolate__isolation95check_112)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPrivateAccess__sem_16020)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, toObjectFromRefPtrGeneric__ast_4890)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalAtCompileTime__sem_117)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, typeAllowed__typeallowed_476)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalStaticExpr__vm_13752)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fixupTypeAfterEval__sem_570)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eOrig);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCycle__sem_548)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, annotateType__semmacrosanity_69)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalConstExpr__vm_13746)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, commonOptimizations__transf_1490)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, trackProc__sempass50_4697)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
static N_INLINE(void, popProcCon__semdata_389)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
static N_INLINE(void, paramsTypeCheck__sem_505)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(void, typeAllowedCheck__sem_481)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg flags);
N_LIB_PRIVATE N_NIMCALL(void, fixupInstantiatedSymbols__sem_1095)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, semBorrow__sem_12356)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, searchForBorrowProc__sem_2711)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* startScope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, baseOfDistinct__types_3363)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
N_LIB_PRIVATE N_NIMCALL(void, sideEffectsCheck__sem_1122)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
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);
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NI, cmpCandidates__sigmatch_358)(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* b);
N_LIB_PRIVATE N_NIMCALL(tySequence__u9c10b19cqoKPxYSuh3ZKtIw*, initCandidateSymbols__sem_1463)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* best, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* alt, tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o, NIM_BOOL diagnostics);
N_LIB_PRIVATE N_NIMCALL(void, insert__liftdestructors_1579)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* item, NI i);
N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1709)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, NI i);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___pragmas_1672)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** b, NI bLen_0);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___pureZunicode_840)(NI a, NI b);
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_3215)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___stdZenumutils_80)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getMsgDiagnostic__sem_1968)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSymRepr__lookups_548)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, NIM_BOOL getDeclarationPath);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, typSym__astmsgs_5)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameMethodDispatcher__sem_1428)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semResolvedCall__sem_2401)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersSons__sem_2316)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x);
N_LIB_PRIVATE N_NIMCALL(void, updateDefaultParams__sem_2362)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call);
static N_INLINE(NIM_BOOL, canDeref__sem_2474)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryDeref__sem_2490)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, errorSym__lookups_506)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotTransformation__sem_17323)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isSymChoice__sem_14367)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOverloadedSubscripts__sem_17363)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpackingForAsgn__lowerings_211)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw, cmpTypes__sigmatch_3047)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a);
N_LIB_PRIVATE N_NIMCALL(void, borrowCheck__sem_17676)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
static N_INLINE(NIM_BOOL, scopedLifetime__sem_17690)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getRoot__sem_17683)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL followDeref);
static N_INLINE(NIM_BOOL, escapes__sem_17715)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, goodLineInfo__sem_17759)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
static N_INLINE(void, asgnToResultVar__sem_17631)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog, classifyViewType__typeallowed_568)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, takeImplicitAddr__sem_17582)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isLent);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, exprRoot__parampatterns_300)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, createDocLink__lineinfos_6)(NimStringDesc* urlSuffix);
static N_INLINE(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, pop__icZic_2460)(tySequence__eHqUwlHGGaPw0TDPDeL79cQ** s);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, finishMethod__sem_114)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, assign__types_3929)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* dest, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* src);
N_LIB_PRIVATE N_NIMCALL(void, semRecordCase__sem_4067)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* rectype);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_759)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__types_1661)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(void, semCaseBranch__sem_3791)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch, NI branchIndex, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered);
static N_INLINE(NIM_BOOL, isRange__trees_213)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCaseBranchRange__sem_3768)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBranchRange__sem_3747)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvTakeType__types_3623)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_474)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_794)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_448)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(void, delSon__ast_4313)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, NI idx);
N_LIB_PRIVATE N_NIMCALL(void, inc__int495056_251)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, NU32 y);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, deduplicate__nimsets_236)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCaseBranchSetElem__sem_3776)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered);
N_LIB_PRIVATE N_NIMCALL(void, checkForOverlap__sem_3723)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, NI currentEx, NI branchIndex);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, overlap__nimsets_40)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_313)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toCover__sem_3884)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shl__int495056_379)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, formatMissingEnums__sem_4020)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderAsType__sem_3988)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* vals, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(void, addQuoted__sem_4005)(NimStringDesc** s, NIM_CHAR x);
static N_INLINE(NI, len__nilcheck_1772)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s);
static N_INLINE(void, minus___sem_4040)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, difference__sem_4045)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, getIntSetOfType__sem_3930)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int495056_88)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__ropes_109)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, computeRequiresInit__sem_135)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(void, initConstrContext__sem_19672)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__ast_3332)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ, semConstructTypeAux__sem_19647)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ, semConstructFields__sem_19342)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, mergeInitStatus__sem_19091)(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ* existing, tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ newStatus);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, fieldsPresentInInitExpr__sem_19314)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsRecList, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, locateFieldInInitExpr__sem_19138)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr);
N_LIB_PRIVATE N_NIMCALL(void, invalidObjConstr__sem_19125)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstrField__sem_19159)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprFlagDispatched__sem_641)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryConstExpr__sem_582)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
static N_INLINE(void, popSafePoint)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNodeConsiderViewType__sem_212)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipHidden__types_3613)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, findUsefulCaseContext__sem_19238)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discrimator, tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* Result);
N_LIB_PRIVATE N_NIMCALL(void, branchVals__sem_19206)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseNode, NI caseIdx, NIM_BOOL isStmtBranch, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, excl__reorder_264)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, caseBranchMatchesExpr__sem_19187)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matched);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_56)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality);
N_LIB_PRIVATE N_NIMCALL(void, collectMissingFields__sem_19324)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsRecList, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntLit__lowerings_701)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI64 value);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pickCaseBranch__sem_19263)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseExpr, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matched);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSonNoPropagationOfTypeFlags__ast_4299)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeOf2__sem_5878)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semWhen__sem_515)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL semCheck);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookUp__lookups_1211)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, commonType__sem_237)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, semTypeIdent__sem_3474)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, pickSym__lookups_1646)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kinds, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags);
N_LIB_PRIVATE N_NIMCALL(void, reset__sem_3561)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj);
N_LIB_PRIVATE N_NIMCALL(void, transitionNoneToSym__ast_4385)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, symFromExpectedTypeNode__sem_5854)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semArray__sem_3419)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semArrayIndex__sem_3367)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeRangeWithStaticExpr__semdata_979)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
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);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semContainer__sem_3160)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NimStringDesc* kindStr, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(void, semContainerArg__sem_3146)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* kindStr, tyObject_TType__facALICuu8zUj0hjvbTLFg* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semRange__sem_3307)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semSet__sem_3120)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semOrdinal__sem_3459)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semIterableType__sem_3449)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semVarargs__sem_3167)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTuple__sem_3578)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTupleRecursive__types_3996)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semGeneric__sem_5453)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semGenericParamInInvocation__sem_5423)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addTypeHeader__types_216)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer, NIM_BOOL getDeclarationPath);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_4168)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds, NI maxIters);
N_LIB_PRIVATE N_NIMCALL(void, semObjectTypeForInheritedGenericInst__sem_5427)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(void, recomputeFieldPositions__semtypinst_1006)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, NI* currPosition);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeClass__sem_5629)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
static N_INLINE(NIM_BOOL, isNewStyleConcept__ast_5226)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConceptDeclaration__concepts_97)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, add__concepts_23)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeTypeWithModifier__semdata_746)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag modifier, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConceptBody__sem_2888)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semVarOutType__sem_3185)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
static N_INLINE(NIM_BOOL, isSelf__concepts_38)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semDistinct__sem_3206)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semProcTypeWithScope__sem_5803)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyTypeSectionPragmas__sem_5714)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* operand);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTreeWithoutNode__ast_4459)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* skippedNode);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semEnum__sem_2937)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(void, initStrTable__ast_4088)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* x);
static N_INLINE(void, addInterfaceDecl__lookups_879)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(void, declarePureEnumField__importer_61)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, strTableInclReportConflict__astalgo_3335)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* t, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* n, NIM_BOOL onConflictKeepOld);
N_LIB_PRIVATE N_NIMCALL(void, addPureEnum__semdata_674)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA e);
N_LIB_PRIVATE N_NIMCALL(void, setToStringProc__modulegraphs_6035)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* value);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, genEnumToStrProc__enumtostr_6)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semStmtListType__sem_5374)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semBlockType__sem_5402)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
N_LIB_PRIVATE N_NIMCALL(void, newIdTable__ast_4102)(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* Result);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsthasKey)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapInComesFrom__evaltempl_260)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res);
static N_INLINE(NIM_BOOL, hasWarn__options_557)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA note);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getNilType__sem_20208)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, setIntLitType__semdata_245)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFieldAccess__sem_13895)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConv__sem_14396)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStaticExpr__sem_125)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, findUnresolvedStatic__ast_4956)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, maybeLiftType__sem_14374)(tyObject_TType__facALICuu8zUj0hjvbTLFg** t, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedSym__sem_14383)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, inferWithMetatype__sem_231)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NIM_BOOL coerceDistincts);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw, checkConvertible__sem_14040)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* targetTyp, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw, checkConversionBetweenObjects__sem_14020)(tyObject_TType__facALICuu8zUj0hjvbTLFg* castDest, tyObject_TType__facALICuu8zUj0hjvbTLFg* src, NI pointers);
static N_INLINE(NIM_BOOL, contains__sem_14179)(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ s, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw value);
static N_INLINE(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ, dotdot___sem_14158)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw a, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw b);
static N_INLINE(NIM_BOOL, contains__semfold_120)(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* s, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_309)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
static N_INLINE(void, dotdot___semfold_99)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b, tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getInt__ast_4592)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA, classify__pureZmath_147)(NF x);
static N_INLINE(NIM_BOOL, contains__sem_14232)(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* s, NI64 value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_745)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
static N_INLINE(NIM_BOOL, contains__semfold_938)(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA s, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag value);
static N_INLINE(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA, dotdot___semfold_916)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag a, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag b);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___int495056_53)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a);
N_LIB_PRIVATE N_NIMCALL(NF, getFloat__ast_4607)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, errorUseQualifier__lookups_1180)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semObjConstr__sem_16476)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLoc__astmsgs_33)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, listSymbolNames__astalgo_4303)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** symbols, NI symbolsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMagic__sem_18585)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDefined__sem_18124)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined__options_2279)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setMs__sem_18559)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDeclared__sem_18156)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL onlyCurrentScope);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookUpForDeclared__sem_18132)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL onlyCurrentScope);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, localSearchInScope__lookups_142)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, someSym__modulegraphs_2817)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCompiles__sem_18496)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryExpr__sem_104)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NI, getInfoContextLen__msgs_476)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, trackStmt__sempass50_4920)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isTopLevel);
N_LIB_PRIVATE N_NIMCALL(void, setInfoContextLen__msgs_483)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI L);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIs__sem_14687)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, fixupStaticType__sem_14593)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeTypeSymNode__semdata_785)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, isOpImpl__sem_14604)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpandToAst__sem_18263)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* magicSym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpandToAst__sem_18200)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semQuoteAst__sem_111)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, expectString__sem_18186)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*, newSeq__sem_18394)(NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newAnonSym__sem_18195)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, processQuotations__sem_18273)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, NimStringDesc* op, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** quotes, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** ids);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7766)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(void, newSons__semtypinst_404)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, NI length);
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);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplateDef__sem_7666)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodyDirty__sem_7597)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBody__sem_6788)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplSymbol__sem_6931)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, NIM_BOOL isField);
N_LIB_PRIVATE N_NIMCALL(void, styleCheckUse__linter_192)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodySons__sem_7133)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, openScope__sem_6791)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c);
N_LIB_PRIVATE N_NIMCALL(void, closeScope__sem_6793)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodyScope__sem_6795)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addLocalDecl__sem_6844)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw, symBinding__sem_6547)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichKeyword__idents_214)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, onlyReplaceParams__sem_6799)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getIdentNode__sem_6749)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isTemplParam__sem_6768)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, replaceIdentBySym__sem_6733)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newGenSym__sem_6831)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c);
N_LIB_PRIVATE N_NIMCALL(void, semTemplSomeDecl__sem_7085)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRoutineInTemplBody__sem_7009)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRoutineInTemplName__sem_6973)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isRunnableExamples__ast_4698)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, symTabReplace__astalgo_3295)(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* t, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* prevSym, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newSym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getCompilerProc__magicsys_145)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, createMagic__modulegraphs_9008)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw, spawnResult__spawn_34)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, NIM_BOOL inParallel);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, createFlowVar__sem_18530)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, instantiateCreateFlowVarCall__sem_18535)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSizeof__sem_18565)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIndirectOp__sem_16553)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__lowerings_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, bracketedMacro__sem_16496)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, setGenericParams__sem_16512)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, resolveIndirectCall__sem_16480)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result);
N_LIB_PRIVATE N_NIMCALL(void, initCandidate__sigmatch_116)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* ctx, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* callee);
N_LIB_PRIVATE N_NIMCALL(void, addDeclaredLocMaybe__astmsgs_51)(NimStringDesc** result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, overloadedCallOpr__sem_14775)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldBeBracketExpr__sem_20049)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, asBracketExpr__sem_20104)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGeneric__sem_20108)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, hoistParamsUsedInDefault__sem_20169)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** call, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** letSection, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** defExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTreeIT__ast_3431)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrayAccess__sem_17549)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, invalidPragma__pragmas_148)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg, checkPar__sem_18936)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTupleConstr__sem_20019)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTuplePositionsConstr__sem_19059)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTupleFieldsConstr__sem_19000)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSetConstr__sem_18776)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrayConstr__sem_14894)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCast__sem_14525)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCastable__sem_14278)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* dst, tyObject_TType__facALICuu8zUj0hjvbTLFg* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFinal__types_750)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NI64, computeSize__types_3317)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIf__sem_9366)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprBranch__sem_9264)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, commonType__sem_448)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endsInNoReturn__sem_416)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprBranchScope__sem_9277)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, considerGenSyms__semdata_425)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTableConstr__sem_18868)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBlock__sem_19822)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmtList__sem_13732)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnresolvedStatic__ast_3517)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(void, inferConceptStaticParam__sem_13726)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inferred, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRaise__sem_11563)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedException__ast_4904)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isException__types_4000)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semVarOrLet__sem_10067)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symkind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLowerLetVarCustomPragma__sem_9950)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, suggestStmt__sigmatch_6552)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, errorSymChoiceUseQualifier__sem_10048)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasEmpty__sem_9843)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(void, addToVarSection__sem_9734)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* identDefs);
N_LIB_PRIVATE N_NIMCALL(void, fillPartialObject__sem_9911)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscardUnderscore__sem_9762)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, findShadowedVar__sem_9651)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v);
N_LIB_PRIVATE N_NIMCALL(void, setVarType__sem_9942)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(void, defaultConstructionError__sem_138)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, checkNilable__sem_9709)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__ast_3483)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, setupCompileTimeVar__vm_13765)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConst__sem_10430)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitRemoveHiddenConv__sem_9629)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newFloatNode__ast_3809)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NF floatVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeSection__sem_12313)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, typeSectionLeftSidePass__sem_11723)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, typeDefLeftSidePass__sem_11623)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeSection, NI i);
N_LIB_PRIVATE N_NIMCALL(void, typeSectionRightSidePass__sem_11844)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, typeSectionTypeName__sem_11607)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, processMagicType__sem_6284)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m);
N_LIB_PRIVATE N_NIMCALL(void, setMagicIntegral__sem_6275)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NI size);
N_LIB_PRIVATE N_NIMCALL(void, setMagicType__sem_6266)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NI size);
N_LIB_PRIVATE N_NIMCALL(NI16, floatInt64Align__options_4704)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, checkCovariantParamsUsages__sem_11744)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* genericType);
static N_NIMCALL(void, Marker_tyRef__XNJoeAba9c9cA3kTvTEsgqEQ)(void* p, NI op);
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, traverseSubTypes__sem_11753)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(void, typeSectionFinalPass__sem_12119)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, safeSkipTypes__types_3552)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(void, checkConstructedType__semtypinst_26)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(void, checkForMetaFields__sem_12063)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, checkMeta__sem_12066)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDiscard__sem_9153)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semWhile__sem_9234)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTry__sem_9422)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, toObject__ast_4879)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, toRef__ast_4871)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBreakOrContinue__sem_9185)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFor__sem_11338)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleForLoopMacro__sem_11302)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleStmtMacro__sem_11248)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* selector, NimStringDesc* magicType, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprNoDeref__sem_63)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrivalStmtExpr__sem_11232)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semForVars__sem_10973)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, symForVar__sem_10946)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semForFields__sem_10814)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, systemModuleSym__modulegraphs_2829)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, instFieldLoopBody__sem_10640)(tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* forLoop);
N_LIB_PRIVATE N_NIMCALL(void, semForObjectFields__sem_10726)(tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* forLoop, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father);
N_LIB_PRIVATE N_NIMCALL(void, illFormedAstLocal__semdata_1074)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsNode__ast_4545)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kinds);
static N_INLINE(NIM_BOOL, isClosureIterator__ast_5004)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, implicitIterator__sem_11207)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, NimStringDesc* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCase__sem_11454)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, pushCaseContext__semdata_1105)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseNode);
N_LIB_PRIVATE N_NIMCALL(void, popCaseContext__semdata_1121)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleCaseStmtMacro__sem_11312)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(void, setCaseContextIdx__semdata_1136)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, NI idx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semReturn__sem_17891)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semUsing__sem_9769)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsm__sem_9228)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, pragmaAsm__pragmas_201)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsmOrEmit__pragmas_1133)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* con, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_CHAR marker);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semYield__sem_18071)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, semYieldVarResult__sem_17997)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* restype);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIterator__sem_13401)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, transitionRoutineSymKind__ast_4393)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyEnum_TSymKind__uwRDzlpaGW5WJzgBn4R8Eg kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProc__sem_9261)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFunc__sem_13457)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMethod__sem_13467)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getDispatcher__cgmeth_42)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConverterDef__sem_13502)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addConverterDef__semdata_667)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA conv);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMacroDef__sem_13521)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalImport__importer_3830)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalImportExcept__importer_3911)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalFrom__importer_3885)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalInclude__sem_13576)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, incMod__sem_13556)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* includeStmtResult);
N_LIB_PRIVATE N_NIMCALL(NI32, checkModuleName__modulepaths_21)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL doLocalError);
N_LIB_PRIVATE N_NIMCALL(void, addIncludeFileDep__semdata_604)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, NI32 f);
N_LIB_PRIVATE N_NIMCALL(void, onProcessing__modulegraphs_11274)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, NI32 fileIdx, NimStringDesc* moduleStatus, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fromModule);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toMsgFilename__msgs_602)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExport__sem_19908)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, reexportSym__semdata_717)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2709)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m);
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2697)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module);
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);
static N_INLINE(void, specialSyms__sem_19912)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE N_NIMCALL(void, addConverter__semdata_653)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA conv);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, nextRodIter__icZic_8962)(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg* it, tySequence__rQHmYk1HzcwNxKBymIFHpA** g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExportExcept__sem_19869)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, readExceptSet__importer_17)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPragmaBlock__sem_13648)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, setLine__sem_13635)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStaticStmt__sem_13686)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, evalStaticStmt__vm_13759)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* prc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___msgs_993)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q a, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOperand__sem_13901)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasUnresolvedParams__sem_9865)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semInferredLambda__sem_12602)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
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);
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);
N_LIB_PRIVATE N_NIMCALL(NI*, new__sem_20588)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmtAndGenerateGenerics__sem_20725)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportSystemStmt__sem_20700)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyTree__sem_20721)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, importAllSymbols__importer_2054)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fromMod);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAllTypeSections__sem_12230)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, gatherStmts__sem_12234)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hloStmt__sem_794)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildEchoStmt__sem_16723)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, appendToModule__ast_3540)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, recoverContext__sem_20760)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
static N_INLINE(Exception*, getCurrentException)(void);
static N_INLINE(NIM_BOOL, isObjWithCache)(TNimType* obj, TNimType* subclass, TNimType** cache);
N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isObjSlowPath__system_3313)(TNimType* obj, TNimType* subclass, TNimType** cache);
N_LIB_PRIVATE N_NIMCALL(void, storeRodNode__semdata_1178)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, suggestSentinel__sigmatch_6567)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, rawCloseScope__lookups_99)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, reportUnusedModules__sem_20788)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
N_LIB_PRIVATE N_NIMCALL(void, addCodeForGenerics__sem_20542)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, sealRodFile__semdata_3603)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_2, "sem.myOpen", 10);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_4, "/home/runner/work/nightlies/nightlies/nim/compiler/sem.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_3 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 556),
((NI) 30)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_5 = {
0x10, 0xa8, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_6, "constant of type \'", 18);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_7, "\' has no value", 14);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_9, "/home/runner/work/nightlies/nightlies/nim/compiler/semexprs.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_8 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 112),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_10, "recursive dependency: \'$1\'", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_11 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 487),
((NI) 15)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_12, "\'$1\' has unspecified generic parameters", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_13 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 493),
((NI) 15)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_14, "template instantiation too nested", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_15 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 425),
((NI) 15)}
;
extern TNimType NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__rF9caJawfOjYTjsgLVUSGFA_16 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04,
0x02, 0x00, 0xe0, 0x11, 0x02, 0x0c, 0x01, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_17, "expression \'", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_18, "\' is of type \'", 14);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_19, "\' and has to be used (or discarded)", 35);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_20, "; start of expression here: ", 28);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_21, "; for a function call use ()", 28);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_23, "/home/runner/work/nightlies/nightlies/nim/compiler/semstmts.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_22 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 151),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_24, "type expected", 13);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_26, "/home/runner/work/nightlies/nightlies/nim/compiler/semtypes.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_25 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 447),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_27, "[]", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_28, "range is empty", 14);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_29 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 231),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_30 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_31 = {
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_32, "ordinal or float type expected", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_33 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 250),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_34, "enum \'$1\' has holes", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_35 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 252),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_36, "NaN is not a valid start or end for a range", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_37 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 263),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_38 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 266),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_39 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_40, "invalid type", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_41 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1759),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_42, "expected type, but got: ", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_43 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1547),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_44, "|", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_45 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1770),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_46 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1773),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_47, "Invalid syntax. When used with a type, \'not\' can be followed only by \'nil\'", 74);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_48 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1785),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_49, "enable the \'not nil\' annotation with {.experimental: \"notnil\".} or   the `strict not nil` annotation with {.experimental: \"strictNotNil\".}   the \"notnil\" one is going to be deprecated, so please use \"strictNotNil\"", 213);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_50 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1788),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_51 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1822),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_52 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1827),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_53 = {
0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_54, "cannot inherit from a type that is not an object type", 53);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_55 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 871),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_56 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 883),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_57, "addInheritedFieldsAux", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_58 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 830),
((NI) 42)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_59, "addInheritedFieldsAux(record case branch)", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_60 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 836),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_61, "addInheritedFieldsAux()", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_62 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 843),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_63, "inheritance only works with non-final objects; for ", 51);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_64, " to be inheritable it must be \'object of RootObj\' instead of \'object\'", 69);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_65 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 887),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_66, "semObjectNode", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_67 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 892),
((NI) 40)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_68, "expression has no type: ", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_69 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 89),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_70 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_71, "(", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_72, ", ", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_73, ")", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_75, "/home/runner/work/nightlies/nightlies/nim/compiler/seminst.nim", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_74 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_75),
((NI) 336),
((NI) 17)}
;
extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__lineinfos_281;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_76, "generic instantiation too nested", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_77 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_75),
((NI) 339),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_78 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_75),
((NI) 362),
((NI) 17)}
;
extern TNimType NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_79 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_75),
((NI) 61),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_80 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_75),
((NI) 63),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_81, "cannot instantiate: \'$1\'", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_82 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_75),
((NI) 76),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_83 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_75),
((NI) 79),
((NI) 18)}
;
extern TNimType NTIpproccon__GJ8qR6LTU9bYLzfOArsHTSg_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_84 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_75),
((NI) 271),
((NI) 19)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_85 = {
0x10, 0x28, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_86, "no tuple type for constructor", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_87 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 536),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_88, "invalid tuple constructor", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_89 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 542),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_90, "unknown identifier: ", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_91 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 547),
((NI) 23)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_92, "cannot convert ", 15);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_93, " to ", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_94 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 565),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_95, "cannot convert \'$1\' to \'$2\'", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_96 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 569),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_97 = {
0x10, 0xa9, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
extern TNimType NTIseqLtinstantiationpairT__jWKvSdankQPoT5bw9cBU9aiw_;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_98 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0c, 0x20, 0xd5, 0x1f, 0xfa, 0xfb, 0x05,
0x60, 0xcc, 0xff, 0x01, 0x20, 0x40, 0x38, 0x80,
0xc6, 0x00, 0x86, 0x24, 0x03, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_99, "NimNode", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_100, "incorrect result proc symbol", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_101 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1503),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_102, "result", 6);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_103, "value of type \'$1\' has to be used (or discarded)", 48);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_104 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 128),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_105 = {
0x10, 0x00, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_106 = {
0x10, 0x08, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x10,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_107 = {
0x10, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_108, "contains", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_109, "not", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_110, "semstmts.nim(1570, 14) `r[0].kind == nkSym` ", 44);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_111, "semstmts.nim(1579, 14) `result != nil` ", 39);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_112, "cannot use symbol of kind \'$1\' as a \'$2\'", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_113 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 229),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_114, "\'$1\' is only allowed at top level", 33);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_115, "export", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_116 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 498),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_117, "invalid visibility: \'$1\'", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_118 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 500),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_119 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x18, 0x50, 0x8f, 0x01, 0x00, 0x05,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_120 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x18, 0x50, 0x1f, 0x13, 0x38, 0x05,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x06, 0x00, 0x26, 0x16, 0x00, 0x40, 0x04, 0x10,
0x00, 0x00, 0x02, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_121 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x07, 0x50, 0x1f, 0x12, 0x30, 0x05,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_122, "sem.nim(524, 12) `orig.kind in {nkEmpty, nkGenericParams}` ", 59);
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_123 = {
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_124, "in", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_125, "the \'$1\' modifier can be used only with imported types", 54);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_126 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 2172),
((NI) 24)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_127, "{}", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_128, "\'", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_129, "\' is only allowed in templates and macros or magic procs", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_130 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1245),
((NI) 20)}
;
extern NIM_CONST tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw OverloadableSyms__ast_3007;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_131, "{}=", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_132, "[]=", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_133, "cannot infer the type of parameter \'", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_134 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1264),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_135, "\':\' expected", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_136 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1288),
((NI) 27)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_137 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_138 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_139, "parameter \'$1\' requires a type", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_140 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1302),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_141, ":type", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_142, "the macro body cannot be compiled, because the parameter \'$1\' has a generic type", 80);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_143 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1056),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_144, "typedesc", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_145, "type", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_146, "illegal recursion in type \'$1\'", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_147 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1103),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_148 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_75),
((NI) 178),
((NI) 17)}
;
extern TNimType NTIlayeredidtable__zSq8dodcWpSdfE0WaiBU9cw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_149 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1146),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_150, "attempt to redefine: \'", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_151 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1314),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_152, "`typed` will change its meaning in future versions of Nim. `void` or no return type declaration at all has the same meaning as the current meaning of `typed` as return type declaration.", 185);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_153 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1336),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_154, "return type \'", 13);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_155, "\' is only valid for macros and templates", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_156 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1344),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_157, "invalid expression", 18);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_159, "/home/runner/work/nightlies/nightlies/nim/compiler/semtempl.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_158 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_159),
((NI) 742),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_160 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_159),
((NI) 727),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_161 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_159),
((NI) 752),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_162 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_159),
((NI) 754),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_163, "*", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_164, "**", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_165, "~", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_166, "a pattern cannot be empty", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_167 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_159),
((NI) 824),
((NI) 16)}
;
static NIM_CONST tyTuple__7rlNEhvBksZh9a9asniQIl9aQ TM__rF9caJawfOjYTjsgLVUSGFA_168 = {((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL),
NIM_FALSE}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_169, "pragmas are only allowed in the header of a proc; redefinition of $1", 68);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_170, "\' from ", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_171, " \'", 2);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_172 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1978),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_173, "semProcAux", 10);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_174 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2006),
((NI) 46)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_175, "=destroy", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_176, "deepcopy", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_177, "=deepcopy", 9);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_178, "=", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_179, "=copy", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_180, "=sink", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_181, "=trace", 6);
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_182 = {
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_183, "cannot bind another \'", 21);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_184, "\' to: ", 6);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_185, "; previous declaration was constructed here implicitly: ", 56);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_186, "; previous declaration was here: ", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_187 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1662),
((NI) 12)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_188, "type bound operation `", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_189, "` can be defined only in the same module with its type (", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_190 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1701),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_191, "signature for \'=trace\' must be proc[T: object](x: var T; env: pointer)", 70);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_192 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1705),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_193, "signature for \'", 15);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_194, "\' must be proc[T: object](x: var T)", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_195 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1708),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_196, "cannot bind another \'deepCopy\' to: ", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_197 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1733),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_198, "cannot bind \'deepCopy\' to: ", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_199 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1736),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_200 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1740),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_201, "signature for \'deepCopy\' must be proc[T: ptr|ref](x: T): T", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_202 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1744),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_203 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1779),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_204, "\' must be proc[T: object](x: var T; y: T)", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_205 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1784),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_206, "\'destroy\' or \'deepCopy\' expected for \'override\'", 47);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_207 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1791),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_209, ".", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_210, ".()", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_211, ".=", 2);
static NIM_CONST tyArray__24KAM9afIUgUaqBaEBB6r9bg TM__rF9caJawfOjYTjsgLVUSGFA_208 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_209),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_210),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_211)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_212, "the overloaded ", 15);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_213, " operator has to be enabled with {.experimental: \"dotOperators\".}", 65);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_214 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2018),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_215, "()", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_216, " operator has to be enabled with {.experimental: \"callOperator\".}", 65);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_217 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2021),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_218, "implementation of \'$1\' is not allowed", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_219 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2027),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_220 = {
0x10, 0x0e, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_221, "generic methods are deprecated", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_222 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1828),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_223, "\'method\' needs a parameter that has an object type", 50);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_224 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1838),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_226, "/home/runner/work/nightlies/nightlies/nim/compiler/hlo.nim", 58);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_225 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_226),
((NI) 48),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_227 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_226),
((NI) 15),
((NI) 17)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_228 = {
0x10, 0xa9, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_229 = {
0x10, 0xa9, 0x80, 0x00, 0x00, 0xe0, 0xb0, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__rF9caJawfOjYTjsgLVUSGFA_230 = {
0x00, 0x00, 0x20, 0x60, 0x07, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x38, 0x46, 0x30, 0x40, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_231, "for a \'var\' type a variable needs to be passed; but \'$1\' is immutable", 69);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_232 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 753),
((NI) 24)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_233, "address of \'$1\' may not escape its stack frame", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_234 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 760),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_235 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 701),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_236, "analyseIfAddressTaken", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_237 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 715),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_238, "expression has no address", 25);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_240, "/home/runner/work/nightlies/nightlies/nim/compiler/semmagic.nim", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_239 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 21),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_241, "expression has no address; maybe use \'unsafeAddr\'", 49);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_242 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 23),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_243, "unsafeAddr", 10);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_244, "typeof: cannot evaluate \'mode\' parameter at compile-time", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_245 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 31),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_246, "can\'t compute offsetof on this ast", 34);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_248, "/home/runner/work/nightlies/nightlies/nim/compiler/sizealignoffsetimpl.nim", 74);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_247 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_248),
((NI) 506),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_249, "nil dereference is not allowed", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_250 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1495),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_251 = {
0x10, 0x08, 0x80, 0x00, 0x00, 0xe0, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_252 = {
0x10, 0x08, 0xe0, 0x00, 0x00, 0xe0, 0x20, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_253 = {
0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_254 = {
0x10, 0x89, 0x10, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_255 = {
0x10, 0x88, 0x10, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
extern NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Max__int495056_27;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_256, "invalid index value for tuple subscript", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_257 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1588),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_258, "cannot instantiate: \'", 21);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_259, "\'; got ", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_260, " typeof(s) but expected ", 24);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_262, "/home/runner/work/nightlies/nightlies/nim/compiler/semcall.nim", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_261 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 669),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_263 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 627),
((NI) 12)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_264, "AnonType", 8);
extern TNimType NTIcandidateerrors__0dpGN6F4ocevqUQGsaf41w_;
extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_265, "could not resolve: ", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_266 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 316),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_267, "type mismatch", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_268 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 289),
((NI) 15)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_269, "expression \'$1\' cannot be called", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_270 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 292),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_271, "\012", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_272, "  first type mismatch at position: ", 35);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_273, "\012  unknown named parameter", 26);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_274, "\012  unknown named parameter: ", 28);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_275, "\012  named param already provided: ", 33);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_276, "\012  positional param was already given as named param", 52);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_277, "\012  extra argument given", 23);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_278, "\012  missing parameter: ", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_279, "semcall.nim(235, 18) `nArg != nil` ", 35);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_280, "semcall.nim(237, 18) `err.firstMismatch.formal != nil` ", 55);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_281, "\012  required type for ", 21);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_282, ": ", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_283, "\012  but expression \'", 19);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_284, "\' is immutable, not \'var\'", 25);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_285, "\' is of type: ", 14);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_286, "semcall.nim(249, 20) `wanted != nil` ", 37);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_287, "\012  This expression is not GC-safe. Annotate the proc with {.gcsafe.} to get extended error information.", 103);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_288, "\012  This expression can have side effects. Annotate the proc with {.noSideEffect.} to get extended error information.", 116);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_289, "\012  The `.raises` requirements differ.", 37);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_290, "\012  The `.raises` requirements differ. Annotate the proc with {.raises: [].} to get extended error information.", 110);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_291, "\012  The `.tags` requirements differ.", 35);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_292, "\012  The `.tags` requirements differ. Annotate the proc with {.tags: [].} to get extended error information.", 106);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_293, "\012  The `.locks` requirements differ. Annotate the proc with {.locks: 0.} to get extended error information.", 107);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_294, "\012  The `.effectsOf` annotations differ.", 39);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_295, " other mismatching symbols have been suppressed; compile with --showAllMismatches:on to see them\012", 97);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_296, "maybe misplaced space between ", 30);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_297, " and \'(\' \012", 10);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_298, "type mismatch: got <", 20);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_299, "\012but expected one of:\012", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_300, "\012expression: ", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_301 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 301),
((NI) 12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_302 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 205),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_303 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 129),
((NI) 17)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_304 = {
0x10, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_305, "or", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_306, "and", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_307, "typeToString", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_308, "name", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_309, "$", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_310, "arity", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_311, "genericHead", 11);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_312, "stripGenericParams", 18);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_313, "supportsCopyMem", 15);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_314, "isNamedTuple", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_315, "tupleLen", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_316, "distinctBase", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_317, "expected generic type, got: type $2 of kind $1", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_318 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 174),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_319 = {
0x10, 0x08, 0x80, 0x00, 0x00, 0xc0, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_320 = {
0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_321 = {
0x10, 0x09, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_322, "unknown trait: ", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_323 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 199),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_324, "integer literal expected", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_325 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 80),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_326, "command line", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_327, "\?\?\?", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_328, "ordinal type expected", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_329 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 220),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_330 = {
0x10, 0xa8, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_331, "\'of\' takes object types", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_332 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 322),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_333 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 324),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_334 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 333),
((NI) 15)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_335, "\'$1\' cannot be of this subtype", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_336 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 340),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_337 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 342),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_338, "\'of\' takes 2 arguments", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_339 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 347),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_340, "\'$1\' expects a type or value", 28);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_341, "low", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_342, "high", 4);
N_LIB_PRIVATE NIM_CONST tyArray__nr38yHugp0nuiB6VarJGiw opToStr__sem_14555 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_341),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_342)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_343 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 376),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_344 = {
0x10, 0xa9, 0x90, 0x00, 0x00, 0x60, 0xa0, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_345, "invalid argument for: ", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_346 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 395),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_347, "string literal expected", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_348 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 229),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_349, "constant expression expected", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_350 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 234),
((NI) 25)}
;
extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTIobject__LF0eKAnygFo4etNDdpTetg_;
extern TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
extern TNimType NTIpcontext__EjEifkTC8tg9afiUW4StSSA_;
extern TNimType NTIpscope__N89ckikRqMir57209a3tEeqw_;
N_LIB_PRIVATE TNimType NTIrefobject__IqGNbqKVyQ9b9an5n9bN8QJsQ_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_352, "bindSymImpl", 11);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_353, "string or ident node expected", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_354 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 251),
((NI) 25)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_355 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 254),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_356, "cannot find plugin ", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_357 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 516),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_358, "finalizer must be a direct reference to a proc", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_359 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 523),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_360 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 530),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_361 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 535),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_362 = {
0x10, 0xa9, 0x40, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
N_LIB_PRIVATE TNimType NTIobject__irrxU9bX4WBQP9bu3Q627FYw_;
extern TNimType NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_;
N_LIB_PRIVATE TNimType NTIrefobject__s6znTCfmZMSZG9absJgsa1w_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_366, "<quantifier> \'in\' <range> expected", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_367 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 444),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_368, "\'old\' takes a parameter name", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_369 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 452),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_370, " does not belong to ", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_371 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 454),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_372 = {
0x10, 0x08, 0xe0, 0x00, 0x00, 0x60, 0x20, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_373 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 569),
((NI) 13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_374 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 572),
((NI) 12)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_375 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 575),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_376, "expression cannot be isolated: ", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_377 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_240),
((NI) 578),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__rF9caJawfOjYTjsgLVUSGFA_378 = {
0xe1, 0x00, 0x00, 0xe0, 0xf0, 0xcf, 0xff, 0xf7,
0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x3f,
0xf8, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_379, "cannot evaluate \'$1\'", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_380 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 843),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_381, "the resulting AST is cyclic and cannot be processed further", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_382 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 322),
((NI) 31)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_383, " --> \'", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_384 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_226),
((NI) 31),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_385, "A nested proc can have generic parameters only when it is used as an operand to another routine and the types of the generic paramers can be inferred from the expected signature.", 178);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_386 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2043),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_387, "invalid type: \'$1\' for $2", 25);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_388, ". Did you mean to call the $1 with \'()\'\?", 40);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_389, "invalid type: \'$1\' in this context: \'$2\' for $3", 47);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_390 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 266),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_391, "implementation of \'$1\' expected", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_392 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2070),
((NI) 27)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_393, "return type \'auto\' cannot be used in forward declarations", 57);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_394 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2075),
((NI) 18)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_395 = {
0x10, 0x88, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_396, "no symbol to borrow from found", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_397 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1484),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_398, "\'.closure\' calling convention for top level routines is invalid", 63);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_399 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2093),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_400 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
extern TNimType NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_;
extern TNimType NTIseqLLpsym_intTT__u9c10b19cqoKPxYSuh3ZKtIw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_401 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 392),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_402, "\012  found $1", 11);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_403, " for type ", 10);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_404, " ", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_405, "undeclared field: \'$1\'", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_406, "attempting to call undeclared routine: \'$1\'", 43);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_407, "attempting to call routine: \'$1\'$2", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_408 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 427),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_409 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 431),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_410 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 433),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_411 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 437),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_412 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 447),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_413, "ambiguous call", 14);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_414 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 452),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_415, "ambiguous call; both $1 and $2 match for: $3", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_416 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 461),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_417, "Non-matching candidates for ", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_418 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 593),
((NI) 13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_419 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_262),
((NI) 568),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_420, "semOverloadedCallAnalyseEffects", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_421 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 883),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_422, "recursion is not supported in iterators: \'$1\'", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_423 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 890),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_424, "expression has no type", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_425 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1790),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_426, "\'$1\' cannot be assigned to", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_427 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1795),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_428 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1807),
((NI) 25)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_429 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_430, "cannot return an owned pointer as an unowned pointer; use \'owned(", 65);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_431, ")\' as the return type", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_432 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1724),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_433, "assignment produces a dangling ref: the unowned ref lives longer than the owned ref", 83);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_434 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1727),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_435, "\'$1\' escapes its stack frame; context: \'$2\'; see $3", 51);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_436, "var_t_return.html", 17);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_437 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1651),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_438, "\'$1\' is not the first parameter; context: \'$2\'; see $3", 54);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_439 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1654),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_440 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1669),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_441 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1671),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_442, "cannot infer the return type of \'$1\'", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_443 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1877),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_444 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1881),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_445 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 512),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_446, "semRecordCase: discriminant is no symbol", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_447 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 679),
((NI) 17)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_448 = {
0x10, 0xa8, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_449, "selector must be of an ordinal type, float", 42);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_450 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 697),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_451, "low(", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_452, ") must be 0 for discriminant", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_453 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 699),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_454, "len($1) must be less than 32768", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_455 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 702),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_456 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 541),
((NI) 35)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_457, "duplicate case label", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_458 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 529),
((NI) 18)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_459 = {
0x10, 0xa8, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_460 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 714),
((NI) 15)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_461 = {
0x10, 0xa9, 0x10, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_462, "not all cases are covered; missing: $1", 38);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_463, "{", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_464, "omitted $1 values...", 20);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_465, "}", 1);
extern TNimType NTIpackedset__IhxwDBRi51nGrosBGFKcsA_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_466 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 721),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_467, "not all cases are covered", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_468 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 724),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_469, "initialization not allowed here", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_470 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 781),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_471 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 784),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_472 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 808),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_473 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 819),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_474, "dummy", 5);
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_475 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x14, 0x00, 0x70, 0xff, 0x56, 0x30, 0x05,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08,
0x40, 0x0c, 0x16, 0xc8, 0x00, 0x40, 0x00, 0x00,
0x00, 0x30, 0x00, 0x00, 0x06}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_477, "/home/runner/work/nightlies/nightlies/nim/compiler/semobjconstr.nim", 67);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_476 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 182),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_478, "incorrect object construction syntax; use a space after the colon", 65);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_479 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 54),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_480, "incorrect object construction syntax", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_481 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 56),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_482, "semobjconstr.nim(134, 14) `recList.kind == nkRecList` ", 54);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_483, "The fields \'$1\' and \'$2\' cannot be initialized together, because they are from conflicting branches in the case object.", 119);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_484 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 193),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_485, "the field \'$1\' is not accessible.", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_486 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 76),
((NI) 16)}
;
extern TNimType NTIerecoverableerror__IxbcvonC7TQkv166Uvdu1g_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_488, "branch initialization with a runtime discriminator only supports ordinal types with 2^16 elements or less.", 106);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_489 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 237),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_490, "cannot prove that it\'s safe to initialize $1 with the runtime value for the discriminator \'$2\' ", 95);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_491 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 205),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_492, "possible values $2 are in conflict with discriminator values for selected object branch $1.", 91);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_493 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 251),
((NI) 35)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_494, "runtime discriminator must be immutable if branch fields are initialized, a \'let\' binding is required.", 102);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_495 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 257),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_496, "branch initialization with a runtime discriminator is not supported inside of an `elif` branch.", 95);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_497 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 261),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_498 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 270),
((NI) 33)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_499 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 288),
((NI) 35)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_500, "a case selecting discriminator \'$1\' with value \'$2\' appears in the object construction, but the field(s) $3 are in conflict with this value.", 140);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_501 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 214),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_502 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 328),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_503, "type \'$1 void\' is not allowed", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_504 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 929),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_505, "region needs to be an object type", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_506 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 945),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_507, "region for pointer types is deprecated", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_508 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 948),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_509, "typeof", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_510 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1714),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_511, "owned", 5);
extern TNimType NTIptype__qt2Wh0elFEz5fH0l7yusLw_;
extern TNimType NTIttype__facALICuu8zUj0hjvbTLFg_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_512 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 403),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_513 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 417),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_514 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 427),
((NI) 47)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_515, "identifier expected", 19);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_516 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 442),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_517 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1692),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_518, "Array length can\'t be negative, but was ", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_519 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 305),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_520 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 313),
((NI) 18)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_521 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_522 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 318),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_523 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 347),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_524 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 349),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_525, "array expects two type parameters", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_526 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 359),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_527, "\'$1\' is not a concrete type", 27);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_528 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 180),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_529, "\'$1\' expects one type parameter", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_530 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 183),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_531, "openarray", 9);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_532, "UncheckedArray", 14);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_533, "..<", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_534, "range types need to be constructed with \'..\', \'..<\' is not supported", 68);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_535 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 288),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_536, "expected range", 14);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_537 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 290),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_538, "range", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_539 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 293),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_540 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 169),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_541, "set is too large", 16);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_542 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 171),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_543, "set", 3);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_544 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 173),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_545 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 377),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_546, "ordinal", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_547 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 380),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_548, "iterable", 8);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_549 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 368),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_550, "seq", 3);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_551, "varargs", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_552 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 199),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_553, "type \'var var\' is not allowed", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_554 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1886),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_555 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 465),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_556 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 468),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_557 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 475),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_558 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 483),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_559, "cannot instantiate the \'$1\' $2", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_560 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1436),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_561 = {
0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_562 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1449),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_563, "no generic parameters allowed for $1", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_564 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1461),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_565, "cannot instantiate ", 19);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_566, "\012got: <$1>\012but expected: <$2>", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_567 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1472),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_568 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1493),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_569 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1503),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_570, "object", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_571 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1423),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_572, "inheritance only works with non-final objects", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_573 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1430),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_574, "object constructor needs an object type; for named arguments use \'=\' instead of \':\'", 83);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_575 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1896),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_576 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1902),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_577 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1918),
((NI) 38)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_578 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1921),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_579 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1943),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_580, "type expected, but symbol \'$1\' has no type.", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_581 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1958),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_582, "type expected, but got symbol \'$1\' of kind \'$2\'", 47);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_583 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1960),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_584 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1614),
((NI) 19)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_585 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 209),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_586, "semtypes.nim(1654, 22) `r[0].kind == nkSym` ", 44);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_587, "semtypes.nim(1659, 27) `false` cannot happen", 44);
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_588 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x20, 0x00, 0x00, 0x60, 0x00, 0x00,
0x00, 0xc8, 0xff, 0x01, 0x00, 0x40, 0x38, 0x00,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_589 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x08, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_590, "inheritance only works with an enum", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_591 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 72),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_592 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_593, "ordinal type expected; given: ", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_594 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 98),
((NI) 24)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_595 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 102),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_596, "wrong number of variables", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_597 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 104),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_598 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 110),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_599, "invalid order in enum \'$1\'", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_600 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 116),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_601, "type expected, but got: ", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_602 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 1996),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_603 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 449),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_604 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 501),
((NI) 11)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_605 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1247),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_606, "illegal context for \'nimvm\' magic", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_607 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1251),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_608 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1262),
((NI) 13)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_609 = {
0x10, 0x08, 0xe0, 0x00, 0x00, 0xe0, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_610, "semexprs.nim(1297, 22) `f == s` ", 32);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_611, "bind is deprecated", 18);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_612 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2862),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_613, "a type conversion takes exactly one argument", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_614 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 264),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_615 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 272),
((NI) 19)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_616 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 863),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_617, ":anon", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_618, "object construction uses \':\', not \'=\'", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_619 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 306),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_620 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_621 = {
0x10, 0xa8, 0x80, 0x00, 0x00, 0xc0, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_622 = {
0x10, 0xa9, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_623, "suspicious code: enum to enum conversion", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_624 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 171),
((NI) 13)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_625 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_626 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 333),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_627, "illegal conversion from \'$1\' to \'$2\'", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_628 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 337),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_629, " can\'t be converted to ", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_630 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 342),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_631, "object constructor needs an object type", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_632 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 384),
((NI) 25)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_633 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 395),
((NI) 25)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_634, "The $1 type requires the following fields to be initialized: $2.", 64);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_635 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 409),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_636, "field initialized twice: \'$1\'", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_637 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 429),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_638 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 434),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_639, "identifier expected, but got: ", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_640 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1971),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_642, "\'is\' operator takes 2 arguments", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_643 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 462),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_644 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 414),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_645, "closure", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_646, "iterator", 8);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_647, "expected a template that takes ", 31);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_648, " arguments", 10);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_649 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2037),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_650, "ambiguous symbol in \'getAst\' context: ", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_651 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2039),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_652, "getAst takes a call, but got ", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_653 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2049),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_654 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2051),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_655, "\'quote\' expects 1 or 2 arguments", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_656 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2104),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_657 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2005),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_658, "``", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_659, "block", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_660 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2119),
((NI) 14)}
;
extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_661, "untyped", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_662, "!=", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_663, ">=", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_664, ">", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_665, "incl", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_666, "excl", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_667, "notin", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_668, "isnot", 5);
N_LIB_PRIVATE NIM_CONST tyArray__Q6RksR9bl1dCf8jl3HeN9bXg names__sem_7688 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_662),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_663),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_664),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_665),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_666),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_124),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_667),
((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_668)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_669, "vm", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_670, "stackTrace", 10);
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_671 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x05,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
extern TNimType NTItspecialword__ycbpMCRV6Cd2eBh3X9biEiw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_672 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_159),
((NI) 682),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_673 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_159),
((NI) 684),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_674, "newIdentNode", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_675, "getAst", 6);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_676, "use the {.experimental.} pragma to enable \'parallel\'", 52);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_677 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2312),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_678, "\'spawn\' takes a call expression; got: ", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_679 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2329),
((NI) 29)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_680, "FlowVar", 7);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_681, "nimCreateFlowVar", 16);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_682, "system needs: nimCreateFlowVar", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_683 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2242),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_685, "sizeof", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_686 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2260),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_687 = {
0x10, 0x88, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_688 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 985),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_689, ">\012but expected one of:\012", 23);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_690, " = ", 3);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_691 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1010),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_692, ":tmp", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_693, "named expression expected", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_694 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2530),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_695, "named expression not allowed here", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_696 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2534),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_697, "Mixing types and values in tuples is not allowed.", 49);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_698 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2663),
((NI) 29)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_699 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2547),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_700, "typedesc not allowed as tuple field.", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_701 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2551),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_702 = {
0x10, 0x88, 0x80, 0x00, 0x00, 0xc0, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_703 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2471),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_704, "expected ordinal value for array ", 33);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_705, "index, got \'$1\'", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_706 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 600),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_707, "size of array exceeds range of index ", 37);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_708, "type \'$1\' by $2 elements", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_709 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 617),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_710, "invalid order in array constructor", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_711 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 625),
((NI) 20)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_712 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x20, 0x00, 0x00, 0xf8, 0x09, 0x00,
0x00, 0xc0, 0xff, 0x01, 0x00, 0x40, 0x38, 0x00,
0x06, 0x00, 0x80, 0x24, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_713, "cannot cast to a non concrete type: \'$1\'", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_714 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 361),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_715 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_716 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_717, "expression cannot be cast to ", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_718 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 366),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_719, "==", 2);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_720, "cannot infer the concept parameter \'%s\', due to a type mismatch. ", 65);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_721, "attempt to equate \'%s\' and \'%s\'.", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_722 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2291),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_723, "concept predicate failed", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_724 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2327),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_725 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2347),
((NI) 21)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_726 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_727, "only a \'ref object\' can be raised", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_728 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1063),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_729, "raised object of type $1 does not inherit from Exception", 56);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_730 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1065),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_731, "ambiguous identifier: \'", 23);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_732, " -- use one of the following:\012", 30);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_733, "  ", 2);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_734 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 509),
((NI) 12)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_735 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_736, "cannot infer the type of the $1", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_737 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 556),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_738, "\'$1\' doesn\'t have a concrete type, due to unspecified generic parameters.", 73);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_739 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 559),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_740, "tuple", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_741 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 579),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_742 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 581),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_743 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 591),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_744, "implicit object field construction requires a .partial object, but got ", 71);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_745 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 437),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_746, "nkDotNode requires 2 children", 29);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_747 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 440),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_748, "_", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_749 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 613),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_750, "a thread var cannot be initialized explicitly; this would only run for the main thread", 86);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_751 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 616),
((NI) 44)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_752, "inconsistent typing for reintroduced symbol \'", 45);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_753, "\': previous type was: ", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_754, "; new type is: ", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_755 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 444),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_756 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_757, "The $1 type doesn\'t have a default value. The following fields must be initialized: $2.", 87);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_758 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 370),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_759, "The $1 distinct type doesn\'t have a default value.", 50);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_760 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_477),
((NI) 373),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_761 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 339),
((NI) 13)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_762 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 341),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_763, "\'let\' symbol requires an initialization", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_764 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 656),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_765 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 662),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_766 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 291),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_767 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 703),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_768 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 713),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_769 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 715),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_770, "unknown package name: ", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_771 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1092),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_772, " is not a type that can be forwarded", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_773 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1108),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_774, "only top level types in a package can be \'package\'", 50);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_775 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1126),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_776, "cannot complete type \'", 22);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_777, "\' twice; previous type completion was here: ", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_778 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1134),
((NI) 22)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_779 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1235),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_780, "auto", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_781, "lent", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_782, "sink", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_783 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 2101),
((NI) 20)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_784 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_26),
((NI) 2102),
((NI) 18)}
;
N_LIB_PRIVATE TNimType NTIobject__pOSGedHS6i9aexCYZEItHgQ_;
N_LIB_PRIVATE TNimType NTIrefobject__XNJoeAba9c9cA3kTvTEsgqEQ_;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_789, "non-invariant type param used in a proc type: ", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_790 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1184),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_792, "covariant param \'", 17);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_793, "\' used in a non-covariant position", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_794 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1195),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_795, "contravariant param \'", 21);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_796, "\' used in a non-contravariant position", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_797 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1203),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_799, "non-invariant type parameters cannot be used with types such \'", 62);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_800 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1209),
((NI) 11)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_801, "non-invariant type parameters are not supported in concepts", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_802 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1211),
((NI) 11)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_806 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1221),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_808, "{.exportc.} not allowed for type aliases", 40);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_809 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1301),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_810 = {
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_811, "only a \'distinct\' type can borrow `.`", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_812 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1305),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_813 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1312),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_814 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1313),
((NI) 21)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_815, ":ObjectType", 11);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_816, "\'$1\' is not a concrete type; for a callback without parameters use \'proc()\'", 75);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_817 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1337),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_818 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1340),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_819 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1359),
((NI) 19)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_820, "statement returns no value that can be discarded", 48);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_821 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 48),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_822, "illegal discard proc, did you mean: ", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_823 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 51),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_824 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 193),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_825, "exception already handled", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_826 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 196),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_827, "Mix of imported and native exception types is not allowed in one except branch", 78);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_828 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 247),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_829, "Only one finally is allowed after all other branches", 52);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_830 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 251),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_831, "Only one general except clause is allowed after more specific exceptions", 72);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_832 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 259),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_833, "invalid control flow: $1", 24);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_834 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 72),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_835, "\'continue\' cannot have a label", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_836 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 74),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_837 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 76),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_838 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 884),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_839, "ForLoopStmt", 11);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_840, "expression \'$1\' has no type (or is ambiguous)", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_841 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 102),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_842 = {
0x10, 0x08, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_843 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 766),
((NI) 31)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_844 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_845 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 793),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_846 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 795),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_847 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_848 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 811),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_849, "true", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_850, "system needs: \'true\'", 20);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_852, "/home/runner/work/nightlies/nightlies/nim/compiler/semfields.nim", 64);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_851 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_852),
((NI) 111),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_853 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_852),
((NI) 121),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rF9caJawfOjYTjsgLVUSGFA_854 = {
0x10, 0xa8, 0x80, 0x00, 0x00, 0xe0, 0xb0, 0x00,
0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_855, "no object or tuple type", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_856 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_852),
((NI) 127),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_857, "Field", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_858, "\'continue\' not supported in a \'fields\' loop", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_859 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_852),
((NI) 53),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_860, "parallel \'fields\' iterator does not work for \'case\' objects", 59);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_861 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_852),
((NI) 81),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__rF9caJawfOjYTjsgLVUSGFA_862 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_863, "items", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_864, "pairs", 5);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_865, "iterator within for loop context expected", 41);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_866 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 959),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_867, "case", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_868, "selector must be of an ordinal type, float or string", 52);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_869 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 997),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_870 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1025),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_871 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1034),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_872 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1037),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_873, "no return type declared", 23);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_874 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1839),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_875, "\'return\' not allowed here", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_876 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1846),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_877, "using", 5);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_878 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 361),
((NI) 34)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_879, "\'using\' section must have a type", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_880 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 377),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_881, "\'using\' sections cannot contain assignments", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_882 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 380),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_883, "\'yield\' only allowed in an iterator", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_884 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1916),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_885, "semYield", 8);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_886 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1924),
((NI) 39)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_887, "tuple constructor", 17);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_888 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1905),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_889, "current routine cannot return an expression", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_890 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1934),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_891, "yield statement must yield a value", 34);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_892 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1936),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_893 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1f,
0xff, 0x07, 0x00, 0xf8, 0x9f, 0x3b, 0xc4, 0x33,
0x39, 0xf1, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_894 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x20, 0x50, 0x1f, 0x6a, 0x00, 0x05,
0x00, 0xc4, 0xff, 0x01, 0x00, 0x40, 0x38, 0x00,
0xc0, 0x00, 0x06, 0x20, 0x00, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_895, "iterator needs a return type", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_896 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2115),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_897 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2124),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_898 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0c, 0x20, 0xd5, 0x1f, 0xfa, 0x7b, 0x05,
0x60, 0xcc, 0xff, 0x01, 0x20, 0x40, 0x38, 0x80,
0xc6, 0x00, 0x86, 0x24, 0x03, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_899 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x08, 0x20, 0x00, 0x00, 0xf8, 0x09, 0x00,
0x00, 0xc0, 0xff, 0x01, 0x00, 0x40, 0x38, 0x00,
0x06, 0x00, 0x80, 0x24, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_900, "method", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_901 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2138),
((NI) 34)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_902 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x0c, 0x20, 0xc5, 0x1f, 0xfa, 0xfb, 0x05,
0x60, 0xcc, 0xff, 0x01, 0x20, 0x40, 0x38, 0x80,
0xc6, 0x00, 0x86, 0x24, 0x03, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_903, "converter", 9);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_904 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2159),
((NI) 34)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_905, "$1 needs a return type", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_906 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2170),
((NI) 28)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_907, "a converter takes exactly one argument", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_908 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2171),
((NI) 27)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_909 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x54, 0x1f, 0x22, 0x30, 0x05,
0x00, 0xc4, 0xff, 0x01, 0x20, 0x00, 0x00, 0x00,
0x80, 0x00, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_910 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2191),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_911, "import", 6);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_912 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 3039),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_913 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 3042),
((NI) 36)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_914, "from", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_915 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 3045),
((NI) 36)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_916, "/", 1);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_917, "Cannot use \'", 12);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_918, "\' in \'include\'.", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_919 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2211),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_920, "include", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_921 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2199),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_922 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 3051),
((NI) 36)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_923, "cannot export: ", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_924 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2624),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_925, "; enum field cannot be exported individually", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_926 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2637),
((NI) 20)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_927, "rawImportSymbol", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_928 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2650),
((NI) 31)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_929 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 3054),
((NI) 36)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_930, "The export/except syntax expects a module name", 46);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_931 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 2599),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw TM__rF9caJawfOjYTjsgLVUSGFA_932 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_933, "invalid pragma block: ", 22);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_934 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 2244),
((NI) 18)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_935, "defer statement not supported at top level", 42);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_936 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 3062),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_937, "\'defer\' takes a \'void\' expression", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_938 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 3065),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_939, "invalid context for \'bind\' statement: ", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_940 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 3078),
((NI) 16)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_941, "invalid expression: ", 20);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_942 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 3081),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_943 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 78),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_944 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 90),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_945 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 371),
((NI) 14)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_946 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 382),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_947 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 385),
((NI) 18)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_948 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 59),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_949 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 64),
((NI) 14)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_950, "cannot infer type of parameter: ", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_951 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1609),
((NI) 16)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_955 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_23),
((NI) 1411),
((NI) 22)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_956, "echo", 4);
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_957, "system needs: echo", 18);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_958 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_9),
((NI) 1058),
((NI) 29)}
;
extern TNimType NTIesuggestdone__cDtWY9cE7zf8BAC5QcEZZkQ_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_961 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 674),
((NI) 13)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_962, "n is not nil", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_963 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 685),
((NI) 17)}
;
STRING_LITERAL(TM__rF9caJawfOjYTjsgLVUSGFA_964, "no code for ", 12);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__rF9caJawfOjYTjsgLVUSGFA_965 = {((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_4),
((NI) 545),
((NI) 21)}
;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5226;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern TSafePoint* excHandler__system_2565;
extern Exception* currException__system_2566;
extern Exception* currException__system_2566;
extern Exception* currException__system_2566;
extern Exception* currException__system_2566;
static TNimType* Nim_OfCheck_CACHE961[2];
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5317)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5279)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5322)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__system_5273((&gch__system_5226.zct), c);
}
static N_INLINE(void, decRef__system_5324)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5322(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__system_5279(src);
		incRef__system_5317(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__system_5279((*dest));
		decRef__system_5324(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	(*x).typeId_0 += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	result.module = (*x).module;
	result.item = (*x).typeId_0;
	return result;
}
static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getCallLineInfo__sem_2390)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
{	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
	{
		{
			NI T4_;
			T4_ = (NI)0;
			T4_ = len__ast_3198(n);
			if (!(((NI) 0) < T4_)) goto LA5_;
			result = getCallLineInfo__sem_2390((*n)._kind_6.sons->data[((NI) 0)]);
			goto BeforeRet_;
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = len__ast_3198(n);
			if (!(((NI) 1) < T10_)) goto LA11_;
			result = getCallLineInfo__sem_2390((*n)._kind_6.sons->data[((NI) 1)]);
			goto BeforeRet_;
		}
		LA11_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	result = (*n).info;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, symChoice__sem_6586)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA r, NIM_BOOL isField) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a;
	tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
	NI i;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	result = NIM_NIL;
	a = NIM_NIL;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
	i = ((NI) 0);
	a = initOverloadIter__lookups_1374((&o), c, n);
	{
		while (1) {
			if (!!((a == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA2;
			{
				if (!!(((*a).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)))) goto LA5_;
				i += ((NI) 1);
				{
					if (!(((NI) 1) < i)) goto LA9_;
					goto LA1;
				}
				LA9_: ;
			}
			LA5_: ;
			a = nextOverloadIter__lookups_1528((&o), c, n);
		} LA2: ;
	} LA1: ;
	info = getCallLineInfo__sem_2390(n);
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = (i <= ((NI) 1));
		if (!(T13_)) goto LA14_;
		T13_ = !((r == ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2)));
		LA14_: ;
		if (!T13_) goto LA15_;
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = !(isField);
			if (T19_) goto LA20_;
			T19_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0));
			LA20_: ;
			if (!T19_) goto LA21_;
			result = newSymNode__ast_3719(s, info);
			markUsed__sigmatch_85(c, info, s);
		}
		goto LA17_;
		LA21_: ;
		{
			result = n;
		}
		LA17_: ;
	}
	goto LA11_;
	LA15_: ;
	{
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T32_;
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = (r == ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0));
			if (T27_) goto LA28_;
			T27_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45));
			LA28_: ;
			if (!T27_) goto LA29_;
			kind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56);
		}
		goto LA25_;
		LA29_: ;
		{
			kind = ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57);
		}
		LA25_: ;
		T32_ = NIM_NIL;
		T32_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		result = newNodeIT__ast_3378(kind, info, T32_);
		a = initOverloadIter__lookups_1374((&o), c, n);
		{
			while (1) {
				if (!!((a == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA34;
				{
					NIM_BOOL T37_;
					NIM_BOOL T39_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
					T37_ = (NIM_BOOL)0;
					T37_ = !(((*a).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
					if (!(T37_)) goto LA38_;
					T39_ = (NIM_BOOL)0;
					T39_ = !(isField);
					if (T39_) goto LA40_;
					T39_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0));
					LA40_: ;
					T37_ = T39_;
					LA38_: ;
					if (!T37_) goto LA41_;
					(*a).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
					markOwnerModuleAsUsed__sigmatch_89(c, a);
					T43_ = NIM_NIL;
					T43_ = newSymNode__ast_3719(a, info);
					add__ast_4797(result, T43_);
				}
				LA41_: ;
				a = nextOverloadIter__lookups_1528((&o), c, n);
			} LA34: ;
		}
	}
	LA11_: ;
	return result;
}
static N_INLINE(void, markIndirect__semdata_1060)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	{
		if (!((126976 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA3_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, enumFieldSymChoice__sem_20215)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
	NI i;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	result = NIM_NIL;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
	i = ((NI) 0);
	a = initOverloadIter__lookups_1374((&o), c, n);
	{
		while (1) {
			if (!!((a == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA2;
			{
				if (!((1568768 &((NU32)1<<((NU)((*a).kind)&31U)))!=0)) goto LA5_;
				i += ((NI) 1);
				{
					if (!(((NI) 1) < i)) goto LA9_;
					goto LA1;
				}
				LA9_: ;
			}
			LA5_: ;
			a = nextOverloadIter__lookups_1528((&o), c, n);
		} LA2: ;
	} LA1: ;
	info = getCallLineInfo__sem_2390(n);
	{
		if (!(i <= ((NI) 1))) goto LA13_;
		{
			if (!!((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0))) goto LA17_;
			result = newSymNode__ast_3719(s, info);
			markUsed__sigmatch_85(c, info, s);
		}
		goto LA15_;
		LA17_: ;
		{
			result = n;
		}
		LA15_: ;
	}
	goto LA11_;
	LA13_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T21_;
		T21_ = NIM_NIL;
		T21_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56), info, T21_);
		a = initOverloadIter__lookups_1374((&o), c, n);
		{
			while (1) {
				if (!!((a == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA23;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
					if (!((1568768 &((NU32)1<<((NU)((*a).kind)&31U)))!=0)) goto LA26_;
					(*a).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
					markOwnerModuleAsUsed__sigmatch_89(c, a);
					T28_ = NIM_NIL;
					T28_ = newSymNode__ast_3719(a, info);
					add__ast_4797(result, T28_);
				}
				LA26_: ;
				a = nextOverloadIter__lookups_1528((&o), c, n);
			} LA23: ;
		}
	}
	LA11_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, inlineConst__sem_14004)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = copyTree__ast_4431((*s).ast);
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!(result == 0)) goto LA3_;
		T5_ = NIM_NIL;
		T6_ = NIM_NIL;
		T6_ = typeToString__types_50((*s).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T5_ = rawNewString((T6_ ? T6_->Sup.len : 0) + 32);
appendString(T5_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_6));
appendString(T5_, T6_);
appendString(T5_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_7));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T5_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_8, NIM_FALSE);
		result = newSymNode__ast_3716(s);
	}
	goto LA1_;
	LA3_: ;
	{
		asgnRef((void**) (&(*result).typ), (*s).typ);
		(*result).info = (*n).info;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__ast_3198(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, resetSemFlag__sem_2771)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		if (!!((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
		(*n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					resetSemFlag__sem_2771((*n)._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, implicitlyDiscardable__sem_9282)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	NIM_BOOL T3_;
	NIM_BOOL T5_;
	NIM_BOOL T6_;
	result = (NIM_BOOL)0;
	n_2 = n;
	{
		while (1) {
			if (!((TM__rF9caJawfOjYTjsgLVUSGFA_16[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)) goto LA2;
			n_2 = lastSon__ast_4832(n_2);
		} LA2: ;
	}
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108) || (*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109) || (*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110) || (*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
	if (T3_) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T6_ = (NIM_BOOL)0;
	T6_ = isCallExpr__ast_3176(n_2);
	if (!(T6_)) goto LA7_;
	T6_ = ((*(*n_2)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	LA7_: ;
	T5_ = T6_;
	if (!(T5_)) goto LA8_;
	T5_ = (((*(*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0);
	LA8_: ;
	T3_ = T5_;
	LA4_: ;
	result = T3_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, discardCheck__sem_9323)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)));
		if (T3_) goto LA4_;
		T3_ = ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 3))&31U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = !(((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T9_)) goto LA10_;
		T9_ = !(((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7) || (*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63)));
		LA10_: ;
		if (!T9_) goto LA11_;
		{
			NIM_BOOL T15_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
			T15_ = (NIM_BOOL)0;
			T15_ = implicitlyDiscardable__sem_9282(result);
			if (!T15_) goto LA16_;
			n = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114), (*result).info, ((NI) 1));
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), result);
		}
		goto LA13_;
		LA16_: ;
		{
			NIM_BOOL T19_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
			NimStringDesc* s;
			NimStringDesc* T25_;
			NimStringDesc* T26_;
			NimStringDesc* T27_;
			T19_ = (NIM_BOOL)0;
			T19_ = !(((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)));
			if (!(T19_)) goto LA20_;
			T19_ = !(((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 24)));
			LA20_: ;
			if (!T19_) goto LA21_;
			n_2 = result;
			{
				while (1) {
					if (!((TM__rF9caJawfOjYTjsgLVUSGFA_16[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)) goto LA24;
					n_2 = lastSon__ast_4832(n_2);
				} LA24: ;
			}
			T25_ = NIM_NIL;
			T26_ = NIM_NIL;
			T26_ = dollar___renderer_2106(n_2);
			T27_ = NIM_NIL;
			T27_ = typeToString__types_50((*result).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + (T27_ ? T27_->Sup.len : 0) + 61);
appendString(T25_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_17));
appendString(T25_, T26_);
appendString(T25_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_18));
appendString(T25_, T27_);
appendString(T25_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_19));
			s = T25_;
			{
				NIM_BOOL T30_;
				NimStringDesc* T34_;
				NimStringDesc* T35_;
				T30_ = (NIM_BOOL)0;
				T30_ = !(((*result).info.line == (*n_2).info.line));
				if (T30_) goto LA31_;
				T30_ = !(((*result).info.fileIndex == (*n_2).info.fileIndex));
				LA31_: ;
				if (!T30_) goto LA32_;
				T34_ = NIM_NIL;
				T35_ = NIM_NIL;
				T35_ = dollar___msgs_624((*(*c).graph).config, (*result).info);
				T34_ = rawNewString((T35_ ? T35_->Sup.len : 0) + 28);
appendString(T34_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_20));
appendString(T34_, T35_);
				s = resizeString(s, (T34_ ? T34_->Sup.len : 0) + 0);
appendString(s, T34_);
			}
			LA32_: ;
			{
				if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25))) goto LA38_;
				s = resizeString(s, 28);
appendString(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_21));
			}
			LA38_: ;
			liMessage__msgs_1118((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), s, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_22, NIM_FALSE);
		}
		goto LA13_;
		LA21_: ;
		LA13_: ;
	}
	LA11_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprNoType__sem_60)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL isPush;
	result = NIM_NIL;
	isPush = hasHint__options_517((*(*c).graph).config, ((tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA) 101));
	{
		if (!isPush) goto LA3_;
		pushInfoContext__msgs_490((*(*c).graph).config, (*n).info, ((NimStringDesc*) NIM_NIL));
	}
	LA3_: ;
	result = semExpr__sem_52(c, n, 128);
	discardCheck__sem_9323(c, result, 0);
	{
		if (!isPush) goto LA7_;
		popInfoContext__msgs_507((*(*c).graph).config);
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmt__sem_84)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 3))&31U)))!=0))) goto LA3_;
		result = semExprNoType__sem_60(c, n);
	}
	goto LA1_;
	LA3_: ;
	{
		result = semExpr__sem_52(c, n, flags);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixupTypeOf__sem_5584)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typExpr) {
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
		if (!!((prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA3_;
		result = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4), c);
		rawAddSon__ast_4288(result, (*typExpr).typ, NIM_TRUE);
		asgnRef((void**) (&(*result).sym), (*prev).sym);
		assignType__ast_3976(prev, result);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeOf__sem_5872)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	t = semExprWithType__sem_56(c, n, 8);
	closeScope__lookups_101(c);
	fixupTypeOf__sem_5584(c, prev, t);
	result = (*t).typ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newOrPrevType__sem_2916)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	{
		if (!(prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
		result = newTypeS__semdata_733(kind, c);
	}
	goto LA1_;
	LA3_: ;
	{
		result = prev;
		{
			if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30))) goto LA8_;
			(*result).kind = kind;
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semAnonTuple__sem_3569)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_25, NIM_FALSE);
	}
	LA4_: ;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), prev, c);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
		it = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
					if (!(i_2 < colontmp_)) goto LA9;
					i = i_2;
					it = (*n)._kind_6.sons->data[i];
					T10_ = NIM_NIL;
					T10_ = semTypeNode__sem_80(c, it, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
					addSonSkipIntLit__magicsys_136(result, T10_, (*c).Sup.idgen);
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
	}
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___idents_220)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* a, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a == 0);
		if (T3_) goto LA4_;
		T3_ = (b == 0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (a == b);
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((*a).id == (*b).id);
	}
	LA1_: ;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipIntLit__magicsys_124)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*t).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = nextTypeId__ast_3151(id);
		result = copyType__ast_4046(t, T7_, (*t).owner);
		asgnRef((void**) (&(*result).n), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	}
	goto LA1_;
	LA5_: ;
	{
		result = t;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isUnresolvedSym__sem_15011)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4));
	{
		NIM_BOOL T3_;
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T10_;
		NIM_BOOL T13_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(result);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 27))&63U)))!=0);
		if (T8_) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
		if (!(T10_)) goto LA11_;
		T10_ = isMetaType__ast_3495((*s).typ);
		LA11_: ;
		T8_ = T10_;
		LA9_: ;
		T7_ = T8_;
		if (T7_) goto LA12_;
		T13_ = (NIM_BOOL)0;
		T13_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
		if (!(T13_)) goto LA14_;
		T13_ = !((((*(*s).typ).flags & 100663296) == 0));
		LA14_: ;
		T7_ = T13_;
		LA12_: ;
		result = T7_;
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasUnresolvedArgs__sem_142)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = isUnresolvedSym__sem_15011((*n)._kind_4.sym);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
		NIM_BOOL amb;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
		ident = considerQuotedIdent__lookups_28(c, n, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		amb = NIM_FALSE;
		sym = searchInScopes__lookups_423(c, ident, (&amb));
		{
			if (!!((sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA5_;
			result = isUnresolvedSym__sem_15011(sym);
			goto BeforeRet_;
		}
		goto LA3_;
		LA5_: ;
		{
			result = NIM_FALSE;
			goto BeforeRet_;
		}
		LA3_: ;
	}
	break;
	default:
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA11;
					i = i_2;
					{
						NIM_BOOL T14_;
						T14_ = (NIM_BOOL)0;
						T14_ = hasUnresolvedArgs__sem_142(c, (*n)._kind_6.sons->data[i]);
						if (!T14_) goto LA15_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA15_: ;
					i_2 += ((NI) 1);
				} LA11: ;
			}
		}
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isNaN__sem_3286)(NF x) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = isnan(x);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semRangeAux__sem_3219)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw range;
	tyArray__D9ckBqsoLaohN9chYb6MLT6w rangeT;
	NIM_BOOL hasUnknownTypes;
	NIM_BOOL T12_;
	NIM_BOOL T13_;
	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 3), (*(*c).graph).config);
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20), prev, c);
	asgnRef((void**) (&(*result).n), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44), (*n).info));
	T1_ = NIM_NIL;
	T1_ = errorType__semdata_1002(c);
	addSonSkipIntLit__magicsys_136(result, T1_, (*c).Sup.idgen);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (T4_) goto LA5_;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA5_: ;
		if (!T4_) goto LA6_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_28), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_29, NIM_FALSE);
	}
	LA6_: ;
	nimZeroMem((void*)range, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	range[(((NI) 0))- 0] = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], 512);
	range[(((NI) 1))- 0] = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 2)], 512);
	nimZeroMem((void*)rangeT, sizeof(tyArray__D9ckBqsoLaohN9chYb6MLT6w));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T11_;
				if (!(res <= ((NI) 1))) goto LA10;
				i = res;
				T11_ = NIM_NIL;
				T11_ = skipTypes__ast_3735((*range[(i)- 0]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_30);
				rangeT[(i)- 0] = skipIntLit__magicsys_124(T11_, (*c).Sup.idgen);
				res += ((NI) 1);
			} LA10: ;
		}
	}
	T12_ = (NIM_BOOL)0;
	T13_ = (NIM_BOOL)0;
	T13_ = (((NI) 0) < (*c).inGenericContext);
	if (!(T13_)) goto LA14_;
	T13_ = ((*rangeT[(((NI) 0))- 0]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61));
	LA14_: ;
	T12_ = T13_;
	if (T12_) goto LA15_;
	T12_ = ((*rangeT[(((NI) 1))- 0]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61));
	LA15_: ;
	hasUnknownTypes = T12_;
	{
		if (!!(hasUnknownTypes)) goto LA18_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T22_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T23_;
			NIM_BOOL T24_;
			T22_ = NIM_NIL;
			T22_ = skipTypes__ast_3735(rangeT[(((NI) 0))- 0], TM__rF9caJawfOjYTjsgLVUSGFA_31);
			T23_ = NIM_NIL;
			T23_ = skipTypes__ast_3735(rangeT[(((NI) 1))- 0], TM__rF9caJawfOjYTjsgLVUSGFA_31);
			T24_ = (NIM_BOOL)0;
			T24_ = sameType__types_1824(T22_, T23_, 0);
			if (!!(T24_)) goto LA25_;
			typeMismatch__types_3870((*(*c).graph).config, (*n).info, rangeT[(((NI) 0))- 0], rangeT[(((NI) 1))- 0], n);
		}
		goto LA20_;
		LA25_: ;
		{
			NIM_BOOL T28_;
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			T28_ = (NIM_BOOL)0;
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T30_ = isOrdinalType__types_299(rangeT[(((NI) 0))- 0], NIM_FALSE);
			T29_ = !(T30_);
			if (!(T29_)) goto LA31_;
			T29_ = !(((*rangeT[(((NI) 0))- 0]).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*rangeT[(((NI) 0))- 0]).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39)));
			LA31_: ;
			T28_ = T29_;
			if (T28_) goto LA32_;
			T28_ = ((*rangeT[(((NI) 0))- 0]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
			LA32_: ;
			if (!T28_) goto LA33_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_32), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_33, NIM_FALSE);
		}
		goto LA20_;
		LA33_: ;
		{
			NIM_BOOL T36_;
			NimStringDesc* T39_;
			NimStringDesc* T40_;
			T36_ = (NIM_BOOL)0;
			T36_ = enumHasHoles__types_287(rangeT[(((NI) 0))- 0]);
			if (!T36_) goto LA37_;
			T39_ = NIM_NIL;
			T39_ = typeToString__types_50(rangeT[(((NI) 0))- 0], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T40_ = NIM_NIL;
			T40_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_34), T39_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T40_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_35, NIM_FALSE);
		}
		goto LA20_;
		LA37_: ;
		LA20_: ;
	}
	LA18_: ;
	{
		NI i_2;
		NI res_2;
		i_2 = (NI)0;
		res_2 = ((NI) 0);
		{
			while (1) {
				if (!(res_2 <= ((NI) 1))) goto LA43;
				i_2 = res_2;
				{
					NIM_BOOL T46_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T49_;
					T46_ = (NIM_BOOL)0;
					T46_ = hasUnresolvedArgs__sem_142(c, range[(i_2)- 0]);
					if (!T46_) goto LA47_;
					T49_ = NIM_NIL;
					T49_ = makeStaticExpr__semdata_826(c, range[(i_2)- 0]);
					add__ast_4797((*result).n, T49_);
					(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
				}
				goto LA44_;
				LA47_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T51_;
					T51_ = NIM_NIL;
					T51_ = semConstExpr__sem_611(c, range[(i_2)- 0]);
					add__ast_4797((*result).n, T51_);
				}
				LA44_: ;
				res_2 += ((NI) 1);
			} LA43: ;
		}
	}
	{
		NIM_BOOL T54_;
		NIM_BOOL T55_;
		NIM_BOOL T58_;
		T54_ = (NIM_BOOL)0;
		T55_ = (NIM_BOOL)0;
		T55_ = ((*(*(*result).n)._kind_6.sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*(*(*result).n)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
		if (!(T55_)) goto LA56_;
		T55_ = isNaN__sem_3286((*(*(*result).n)._kind_6.sons->data[((NI) 0)])._kind_2.floatVal);
		LA56_: ;
		T54_ = T55_;
		if (T54_) goto LA57_;
		T58_ = (NIM_BOOL)0;
		T58_ = ((*(*(*result).n)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*(*(*result).n)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
		if (!(T58_)) goto LA59_;
		T58_ = isNaN__sem_3286((*(*(*result).n)._kind_6.sons->data[((NI) 1)])._kind_2.floatVal);
		LA59_: ;
		T54_ = T58_;
		LA57_: ;
		if (!T54_) goto LA60_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_36), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_37, NIM_FALSE);
	}
	LA60_: ;
	{
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T64_;
		T64_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T64_ = weakLeValue__astalgo_151((*(*result).n)._kind_6.sons->data[((NI) 0)], (*(*result).n)._kind_6.sons->data[((NI) 1)]);
		if (!(T64_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1))) goto LA65_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_28), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_38, NIM_FALSE);
	}
	LA65_: ;
	asgnRef((void**) (&(*result).sons->data[((NI) 0)]), rangeT[(((NI) 0))- 0]);
	return result;
}
static N_INLINE(tyObject_TType__facALICuu8zUj0hjvbTLFg*, freshType__sem_5619)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* res, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	{
		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T5_;
		if (!(prev == 0)) goto LA3_;
		T5_ = nextTypeId__ast_3151((*c).Sup.idgen);
		result = copyType__ast_4046(res, T5_, (*res).owner);
		copyTypeProps__modulegraphs_8872((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), result, res);
	}
	goto LA1_;
	LA3_: ;
	{
		result = res;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, maybeAliasType__sem_5571)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typeExpr, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*typeExpr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*typeExpr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*typeExpr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13) || (*typeExpr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30) || (*typeExpr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10));
		if (!(T3_)) goto LA4_;
		T3_ = !((prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4), c);
		rawAddSon__ast_4288(result, typeExpr, NIM_TRUE);
		asgnRef((void**) (&(*result).sym), (*prev).sym);
		assignType__ast_3976(prev, result);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeExpr__sem_5593)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	result = NIM_NIL;
	n_2 = semExprWithType__sem_56(c, n, 512);
	{
		if (!((*(*n_2).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA3_;
		result = base__types_63((*n_2).typ);
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = !((prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T7_)) goto LA8_;
			T7_ = !(((*prev).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
			LA8_: ;
			if (!T7_) goto LA9_;
			{
				if (!((*result).sym == 0)) goto LA13_;
				asgnRef((void**) (&(*result).sym), (*prev).sym);
				asgnRef((void**) (&(*(*result).sym).typ), result);
			}
			goto LA11_;
			LA13_: ;
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* alias;
				alias = maybeAliasType__sem_5571(c, result, prev);
				{
					if (!!((alias == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA18_;
					result = alias;
				}
				LA18_: ;
			}
			LA11_: ;
		}
		LA9_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T21_;
		NimStringDesc* T22_;
		T21_ = NIM_NIL;
		T22_ = NIM_NIL;
		T22_ = renderTree__renderer_46(n_2, 0);
		T21_ = rawNewString((T22_ ? T22_->Sup.len : 0) + 24);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_42));
appendString(T21_, T22_);
		liMessage__msgs_1118((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_43, NIM_FALSE);
		result = errorType__semdata_1002(c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newConstraint__sem_2929)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	result = NIM_NIL;
	result = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51), c);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
	T1_ = NIM_NIL;
	T1_ = newTypeS__semdata_733(k, c);
	addSonSkipIntLit__magicsys_136(result, T1_, (*c).Sup.idgen);
	return result;
}
static N_INLINE(void, initIntSet__pureZcollectionsZintsets_238)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
	initPackedSet__pureZcollectionsZintsets_16(Result);
}
static N_INLINE(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipGenericInvocation__sem_4428)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = t;
	{
		if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA3_;
		result = (*result).sons->data[((NI) 0)];
	}
	LA3_: ;
	{
		while (1) {
			if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA6;
			result = lastSon__ast_3743(result);
		} LA6: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFieldsAux__sem_4383)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA4_;
			internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_57), TM__rF9caJawfOjYTjsgLVUSGFA_58);
		}
		LA4_: ;
		addInheritedFieldsAux__sem_4383(c, check, pos, (*n)._kind_6.sons->data[((NI) 0)]);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					switch ((*(*n)._kind_6.sons->data[i]).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
						T10_ = NIM_NIL;
						T10_ = lastSon__ast_4832((*n)._kind_6.sons->data[i]);
						addInheritedFieldsAux__sem_4383(c, check, pos, T10_);
					}
					break;
					default:
					{
						internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_59), TM__rF9caJawfOjYTjsgLVUSGFA_60);
					}
					break;
					}
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 140):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	{
		{
			NI i_3;
			NI colontmp__2;
			NI colontmp__3;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__2 = ((NI) (((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86))));
			colontmp__3 = len__ast_3198(n);
			i_4 = colontmp__2;
			{
				while (1) {
					if (!(i_4 < colontmp__3)) goto LA15;
					i_3 = i_4;
					addInheritedFieldsAux__sem_4383(c, check, pos, (*n)._kind_6.sons->data[i_3]);
					i_4 += ((NI) 1);
				} LA15: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		incl__pureZcollectionsZintsets_55(check, (*(*(*n)._kind_4.sym).name).id);
		(*pos) += ((NI) 1);
	}
	break;
	default:
	{
		internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_61), TM__rF9caJawfOjYTjsgLVUSGFA_62);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addInheritedFields__sem_4443)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* check, NI* pos, tyObject_TType__facALICuu8zUj0hjvbTLFg* obj) {
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T8_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_4002(obj);
		T3_ = (((NI) 0) < T4_);
		if (!(T3_)) goto LA5_;
		T3_ = !(((*obj).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA5_: ;
		if (!T3_) goto LA6_;
		T8_ = NIM_NIL;
		T8_ = skipGenericInvocation__sem_4428((*obj).sons->data[((NI) 0)]);
		addInheritedFields__sem_4443(c, check, pos, T8_);
	}
	LA6_: ;
	addInheritedFieldsAux__sem_4383(c, check, pos, (*obj).n);
}
static N_INLINE(NIM_BOOL, isGenericParams__ast_4616)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = !((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4627)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
	if (!(T2_)) goto LA3_;
	T2_ = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = isGenericParams__ast_4616((*n)._kind_6.sons->data[((NI) 2)]);
	LA4_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutineStrict__ast_4639)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((520192 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
	if (!(T1_)) goto LA2_;
	T1_ = isGenericRoutine__ast_4627((*s).ast);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x) {
	addInt__stdZprivateZdigitsutils_167(result, ((NI64) (x)));
}
static N_INLINE(NimStringDesc*, toFileLineCol__msgs_615)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = resizeString(result, (info.Field0 ? info.Field0->Sup.len : 0) + 0);
appendString(result, info.Field0);
	{
		if (!(((NI) 0) < info.Field1)) goto LA3_;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71));
		addInt__stdZprivateZdigitsutils_189((&result), info.Field1);
		{
			if (!(((NI) 0) < (NI)(info.Field2 + ((NI) 1)))) goto LA7_;
			result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_72));
			addInt__stdZprivateZdigitsutils_189((&result), (NI)(info.Field2 + ((NI) 1)));
		}
		LA7_: ;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_73));
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isTopLevel__semdata_1091)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*(*c).currentScope).depthLevel <= ((NI) 2));
	return result;
}
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	(*x).symId += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	result.module = (*x).module;
	result.item = (*x).symId;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fillMixinScope__sem_1283)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
	p = (*c).p;
	{
		while (1) {
			if (!!((p == ((tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*) NIM_NIL)))) goto LA2;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** bnd;
				NI i;
				NI L;
				NI T4_;
				bnd = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
				i = ((NI) 0);
				T4_ = ((*p).localBindStmts ? (*p).localBindStmts->Sup.len : 0);
				L = T4_;
				{
					while (1) {
						if (!(i < L)) goto LA6;
						bnd = &(*p).localBindStmts->data[i];
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
							n = NIM_NIL;
							{
								NI i_2;
								NI colontmp_;
								NI i_3;
								i_2 = (NI)0;
								colontmp_ = (NI)0;
								colontmp_ = safeLen__ast_3191((*bnd));
								i_3 = ((NI) 0);
								{
									while (1) {
										if (!(i_3 < colontmp_)) goto LA10;
										i_2 = i_3;
										n = (*(*bnd))._kind_6.sons->data[i_2];
										strTableAdd__astalgo_3325((&(*(*c).currentScope).symbols), (*n)._kind_4.sym);
										i_3 += ((NI) 1);
									} LA10: ;
								}
							}
						}
						i += ((NI) 1);
					} LA6: ;
				}
			}
			p = (*p).next;
		} LA2: ;
	}
}
static N_INLINE(void, nimGCunrefRC1)(void* p) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__system_5279(p);
	decRef__system_5324(T1_);
}
static N_INLINE(void, addDeclAt__lookups_837)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym) {
	addDeclAt__lookups_815(c, scope, sym, (*sym).info);
}
static N_INLINE(void, addDecl__lookups_845)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym) {
	addDeclAt__lookups_837(c, (*c).currentScope, sym);
}
N_LIB_PRIVATE N_NIMCALL(void, rawPushProcCon__sem_849)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner) {
	tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* x;
	x = NIM_NIL;
	x = (tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*) newObj((&NTIpproccon__GJ8qR6LTU9bYLzfOArsHTSg_), sizeof(tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ));
	asgnRef((void**) (&(*x).owner), owner);
	asgnRef((void**) (&(*x).next), (*c).p);
	asgnRef((void**) (&(*c).p), x);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, referencesAnotherParam__sem_1165)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* p) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
		if (!(T5_)) goto LA6_;
		T5_ = ((*(*n)._kind_4.sym).owner == p);
		LA6_: ;
		result = T5_;
		goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					{
						NIM_BOOL T13_;
						T13_ = (NIM_BOOL)0;
						T13_ = referencesAnotherParam__sem_1165((*n)._kind_6.sons->data[i], p);
						if (!T13_) goto LA14_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA14_: ;
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, changeType__sem_75)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* newType, NIM_BOOL check) {
{	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					T5_ = NIM_NIL;
					T5_ = elemType__types_263(newType);
					changeType__sem_75(c, (*n)._kind_6.sons->data[i], T5_, check);
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* tup;
		tup = skipTypes__ast_3735(newType, TM__rF9caJawfOjYTjsgLVUSGFA_85);
		{
			if (!!(((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA9_;
			{
				if (!((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA13_;
				goto BeforeRet_;
			}
			LA13_: ;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_86), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_87, NIM_FALSE);
		}
		goto LA7_;
		LA9_: ;
		{
			NIM_BOOL T16_;
			NI T17_;
			T16_ = (NIM_BOOL)0;
			T17_ = (NI)0;
			T17_ = len__ast_3198(n);
			T16_ = (((NI) 0) < T17_);
			if (!(T16_)) goto LA18_;
			T16_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
			LA18_: ;
			if (!T16_) goto LA19_;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_3198(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
						if (!(i_4 < colontmp__2)) goto LA23;
						i_3 = i_4;
						m = (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 0)];
						{
							if (!!(((*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA26_;
							liMessage__msgs_1118((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_88), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_89, NIM_FALSE);
							goto BeforeRet_;
						}
						LA26_: ;
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f;
							if (!!(((*tup).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA30_;
							f = getSymFromList__astalgo_245((*tup).n, (*(*m)._kind_4.sym).name, ((NI) 0));
							{
								NimStringDesc* T36_;
								if (!(f == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA34_;
								T36_ = NIM_NIL;
								T36_ = rawNewString(((*(*(*m)._kind_4.sym).name).s ? (*(*(*m)._kind_4.sym).name).s->Sup.len : 0) + 20);
appendString(T36_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_90));
appendString(T36_, (*(*(*m)._kind_4.sym).name).s);
								liMessage__msgs_1118((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T36_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_91, NIM_FALSE);
								goto BeforeRet_;
							}
							LA34_: ;
							changeType__sem_75(c, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)], (*f).typ, check);
						}
						goto LA28_;
						LA30_: ;
						{
							changeType__sem_75(c, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)], (*tup).sons->data[i_3], check);
						}
						LA28_: ;
						i_4 += ((NI) 1);
					} LA23: ;
				}
			}
		}
		goto LA7_;
		LA19_: ;
		{
			{
				NI i_5;
				NI colontmp__3;
				NI i_6;
				i_5 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = len__ast_3198(n);
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__3)) goto LA41;
						i_5 = i_6;
						changeType__sem_75(c, (*n)._kind_6.sons->data[i_5], (*tup).sons->data[i_5], check);
						i_6 += ((NI) 1);
					} LA41: ;
				}
			}
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		{
			NIM_BOOL T45_;
			NIM_BOOL T46_;
			NIM_BOOL T49_;
			NI64 value;
			T45_ = (NIM_BOOL)0;
			T46_ = (NIM_BOOL)0;
			T46_ = check;
			if (!(T46_)) goto LA47_;
			T46_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15)));
			LA47_: ;
			T45_ = T46_;
			if (!(T45_)) goto LA48_;
			T49_ = (NIM_BOOL)0;
			T49_ = sameType__types_1824((*n).typ, newType, 0);
			T45_ = !(T49_);
			LA48_: ;
			if (!T45_) goto LA50_;
			value = (*n)._kind_1.intVal;
			{
				NIM_BOOL T54_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T55_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T57_;
				NimStringDesc* T60_;
				NimStringDesc* T61_;
				NimStringDesc* T62_;
				T54_ = (NIM_BOOL)0;
				T55_ = firstOrd__types_1353((*(*c).graph).config, newType);
				T54_ = lt___int495056_738(value, T55_);
				if (T54_) goto LA56_;
				T57_ = lastOrd__types_1470((*(*c).graph).config, newType);
				T54_ = lt___int495056_721(T57_, value);
				LA56_: ;
				if (!T54_) goto LA58_;
				T60_ = NIM_NIL;
				T61_ = NIM_NIL;
				T61_ = dollar___systemZdollars_6(value);
				T62_ = NIM_NIL;
				T62_ = typeToString__types_50(newType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T60_ = rawNewString((T61_ ? T61_->Sup.len : 0) + (T62_ ? T62_->Sup.len : 0) + 19);
appendString(T60_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_92));
appendString(T60_, T61_);
appendString(T60_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_93));
appendString(T60_, T62_);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T60_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_94, NIM_FALSE);
			}
			LA58_: ;
		}
		LA50_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
	{
		{
			NIM_BOOL T66_;
			NIM_BOOL T68_;
			tyArray__Re75IspeoxXy2oCZHwcRrA T71_;
			NimStringDesc* T72_;
			T66_ = (NIM_BOOL)0;
			T66_ = check;
			if (!(T66_)) goto LA67_;
			T68_ = (NIM_BOOL)0;
			T68_ = floatRangeCheck__types_1613((*n)._kind_2.floatVal, newType);
			T66_ = !(T68_);
			LA67_: ;
			if (!T66_) goto LA69_;
			nimZeroMem((void*)T71_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T71_[0] = dollar___system_3118((*n)._kind_2.floatVal);
			T71_[1] = typeToString__types_50(newType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T72_ = NIM_NIL;
			T72_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_95), T71_, 2);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T72_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_96, NIM_FALSE);
		}
		LA69_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	asgnRef((void**) (&(*n).typ), newType);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNodePostMatch__sem_164)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	result = NIM_NIL;
	x = skipConv__types_3597(arg);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T8_;
		NIM_BOOL T10_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39));
		if (!(T5_)) goto LA6_;
		T5_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19));
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T8_ = NIM_NIL;
		T8_ = base__types_63(formal);
		T4_ = !(((*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
		LA7_: ;
		T3_ = T4_;
		if (T3_) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160));
		if (!(T10_)) goto LA11_;
		T10_ = !(((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6) || (*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51)));
		LA11_: ;
		T3_ = T10_;
		LA9_: ;
		if (!T3_) goto LA12_;
		changeType__sem_75(c, x, formal, NIM_TRUE);
	}
	LA12_: ;
	result = arg;
	result = skipHiddenSubConv__types_3674(result, (*c).graph, (*c).Sup.idgen);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, instantiateProcType__sem_1187)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* prc, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* typeMap;
	tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg cl;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* originalParams;
	pushInfoContext__msgs_490((*(*c).graph).config, info, ((NimStringDesc*) NIM_NIL));
	typeMap = initLayeredTypeMap__semtypinst_134(pt);
	nimZeroMem((void*)(&cl), sizeof(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg));
	initTypeVars__semtypinst_982(c, typeMap, info, ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), (&cl));
	result = instCopyType__semtypinst_480((&cl), (*prc).typ);
	originalParams = (*result).n;
	asgnRef((void**) (&(*result).n), shallowCopy__ast_4413(originalParams));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_4002(result);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TType__facALICuu8zUj0hjvbTLFg* typeToFit;
				NIM_BOOL needsStaticSkipping;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldParam;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
				tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T25_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					if (!(((NI) 1) < i)) goto LA6_;
					resetIdTable__ast_4104((&cl.symMap));
					resetIdTable__ast_4104((&cl.localCache));
				}
				LA6_: ;
				typeToFit = (*result).sons->data[i];
				needsStaticSkipping = ((*(*result).sons->data[i]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61));
				asgnRef((void**) (&(*result).sons->data[i]), replaceTypeVarsT__semtypinst_178((&cl), (*result).sons->data[i]));
				{
					if (!needsStaticSkipping) goto LA10_;
					asgnRef((void**) (&(*result).sons->data[i]), skipTypes__ast_3735((*result).sons->data[i], TM__rF9caJawfOjYTjsgLVUSGFA_30));
				}
				LA10_: ;
				{
					NIM_BOOL T14_;
					NIM_BOOL T15_;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T17_;
					T14_ = (NIM_BOOL)0;
					T15_ = (NIM_BOOL)0;
					T15_ = !(((*typeToFit).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
					if (T15_) goto LA16_;
					T17_ = NIM_NIL;
					T17_ = base__types_63(typeToFit);
					T15_ = !(((*T17_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
					LA16_: ;
					T14_ = T15_;
					if (!(T14_)) goto LA18_;
					T14_ = !(((*typeToFit).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)));
					LA18_: ;
					if (!T14_) goto LA19_;
					typeToFit = (*result).sons->data[i];
				}
				LA19_: ;
				{
					NimStringDesc* argX60gensym191_;
					if (!!(((*(*originalParams)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA23_;
					argX60gensym191_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_84);
					internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym191_, TM__rF9caJawfOjYTjsgLVUSGFA_84);
				}
				LA23_: ;
				oldParam = (*(*originalParams)._kind_6.sons->data[i])._kind_4.sym;
				T25_ = nextSymId__ast_3132((*c).Sup.idgen);
				param = copySym__ast_4054(oldParam, T25_);
				asgnRef((void**) (&(*param).owner), prc);
				asgnRef((void**) (&(*param).typ), (*result).sons->data[i]);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* converted;
					if (!!(((*oldParam).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA28_;
					def = copyTree__ast_4431((*oldParam).ast);
					{
						if (!((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27))) goto LA32_;
						{
							NI i_3;
							NI colontmp__2;
							NI i_4;
							i_3 = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__2 = len__ast_3198(def);
							i_4 = ((NI) 1);
							{
								while (1) {
									if (!(i_4 < colontmp__2)) goto LA36;
									i_3 = i_4;
									asgnRef((void**) (&(*def)._kind_6.sons->data[i_3]), replaceTypeVarsN__semtypinst_130((&cl), (*def)._kind_6.sons->data[i_3], ((NI) 0)));
									i_4 += ((NI) 1);
								} LA36: ;
							}
						}
					}
					LA32_: ;
					def = semExprWithType__sem_56(c, def, 0);
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T39_;
						NIM_BOOL T40_;
						T39_ = NIM_NIL;
						T39_ = getCurrOwner__semdata_315(c);
						T40_ = (NIM_BOOL)0;
						T40_ = referencesAnotherParam__sem_1165(def, T39_);
						if (!T40_) goto LA41_;
						(*def).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19)) & 31);
					}
					LA41_: ;
					converted = indexTypesMatch__sem_120(c, typeToFit, (*def).typ, def);
					{
						if (!(converted == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA45_;
						asgnRef((void**) (&(*param).ast), errorNode__semdata_1009(c, def));
					}
					goto LA43_;
					LA45_: ;
					{
						asgnRef((void**) (&(*param).ast), fitNodePostMatch__sem_164(c, typeToFit, converted));
					}
					LA43_: ;
					asgnRef((void**) (&(*param).typ), (*result).sons->data[i]);
				}
				LA28_: ;
				asgnRef((void**) (&(*(*result).n)._kind_6.sons->data[i]), newSymNode__ast_3716(param));
				propagateToOwner__ast_4219(result, (*result).sons->data[i], NIM_TRUE);
				addDecl__lookups_845(c, param);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	resetIdTable__ast_4104((&cl.symMap));
	resetIdTable__ast_4104((&cl.localCache));
	cl.isReturnType = NIM_TRUE;
	asgnRef((void**) (&(*result).sons->data[((NI) 0)]), replaceTypeVarsT__semtypinst_178((&cl), (*result).sons->data[((NI) 0)]));
	cl.isReturnType = NIM_FALSE;
	asgnRef((void**) (&(*(*result).n)._kind_6.sons->data[((NI) 0)]), copyTree__ast_4431((*originalParams)._kind_6.sons->data[((NI) 0)]));
	{
		if (!!(((*result).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA50_;
		propagateToOwner__ast_4219(result, (*result).sons->data[((NI) 0)], NIM_TRUE);
	}
	LA50_: ;
	eraseVoidParams__semtypinst_682(result);
	skipIntLiteralParams__semtypinst_738(result, (*c).Sup.idgen);
	asgnRef((void**) (&(*prc).typ), result);
	popInfoContext__msgs_507((*(*c).graph).config);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameInstantiation__sem_965)(tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA a, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI T4_;
		T3_ = (a.concreteTypes ? a.concreteTypes->Sup.len : 0);
		T4_ = (b.concreteTypes ? b.concreteTypes->Sup.len : 0);
		if (!(T3_ == T4_)) goto LA5_;
		{
			NI i;
			NI colontmp_;
			NI T8_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T8_ = ((a.concreteTypes ? a.concreteTypes->Sup.len : 0)-1);
			colontmp_ = T8_;
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA10;
					i = res;
					{
						NIM_BOOL T13_;
						T13_ = (NIM_BOOL)0;
						T13_ = compareTypes__types_2668(a.concreteTypes->data[i], b.concreteTypes->data[i], ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 0), 164);
						if (!!(T13_)) goto LA14_;
						goto BeforeRet_;
					}
					LA14_: ;
					res += ((NI) 1);
				} LA10: ;
			}
		}
		result = NIM_TRUE;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, genericCacheGet__sem_983)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericSym, tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA entry, NI id) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
{	result = NIM_NIL;
	{
		tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
		inst = NIM_NIL;
		{
			NIM_BOOL T4_;
			tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA** x;
			T4_ = (NIM_BOOL)0;
			T4_ = contains__modulegraphs_3568((*g).procInstCache, (*genericSym).Sup.itemId);
			if (!T4_) goto LA5_;
			x = X5BX5D___modulegraphs_3884((&(*g).procInstCache), (*genericSym).Sup.itemId);
			{
				tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg* t;
				NI i;
				NI L;
				NI T8_;
				t = (tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg*)0;
				i = ((NI) 0);
				T8_ = ((*x) ? (*x)->Sup.len : 0);
				L = T8_;
				{
					while (1) {
						if (!(i < L)) goto LA10;
						t = (&(*x)->data[i]);
						inst = resolveInst__modulegraphs_2881(g, t);
						{
							NIM_BOOL T13_;
							NIM_BOOL T14_;
							T13_ = (NIM_BOOL)0;
							T14_ = (NIM_BOOL)0;
							T14_ = ((*inst).compilesId == ((NI) 0));
							if (T14_) goto LA15_;
							T14_ = ((*inst).compilesId == id);
							LA15_: ;
							T13_ = T14_;
							if (!(T13_)) goto LA16_;
							T13_ = sameInstantiation__sem_965(entry, (*inst));
							LA16_: ;
							if (!T13_) goto LA17_;
							result = (*inst).sym;
							goto BeforeRet_;
						}
						LA17_: ;
						i += ((NI) 1);
					} LA10: ;
				}
			}
		}
		LA5_: ;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, fieldVisible__sigmatch_4944)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f) {
	NIM_BOOL result;
	NI fmoduleId;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym794_;
	NIM_BOOL T1_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym796_;
{	result = (NIM_BOOL)0;
	xX60gensym794_ = getModule__astalgo_216(f);
	fmoduleId = (NI)((NI)((NU64)(((NI) ((*xX60gensym794_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym794_).Sup.itemId.item)));
	T1_ = (NIM_BOOL)0;
	T1_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0);
	if (T1_) goto LA2_;
	xX60gensym796_ = (*c).module;
	T1_ = (fmoduleId == (NI)((NI)((NU64)(((NI) ((*xX60gensym796_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym796_).Sup.itemId.item))));
	LA2_: ;
	result = T1_;
	{
		if (!!(result)) goto LA5_;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** module;
			NI i;
			NI L;
			NI T8_;
			module = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
			i = ((NI) 0);
			T8_ = ((*c).friendModules ? (*c).friendModules->Sup.len : 0);
			L = T8_;
			{
				while (1) {
					if (!(i < L)) goto LA10;
					module = &(*c).friendModules->data[i];
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym797_;
						xX60gensym797_ = (*module);
						if (!(fmoduleId == (NI)((NI)((NU64)(((NI) ((*xX60gensym797_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym797_).Sup.itemId.item))))) goto LA13_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA13_: ;
					i += ((NI) 1);
				} LA10: ;
			}
		}
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* symObj;
			if (!((*f).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19))) goto LA17_;
			symObj = (*f).owner;
			{
				if (!((*(*symObj).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*(*symObj).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA21_;
				symObj = (*(*(*symObj).typ).sons->data[((NI) 0)]).sym;
			}
			LA21_: ;
			{
				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
				scope = NIM_NIL;
				current = (*c).currentScope;
				{
					while (1) {
						if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA25;
						scope = current;
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** sym;
							NI i_2;
							NI L_2;
							NI T27_;
							sym = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
							i_2 = ((NI) 0);
							T27_ = ((*scope).allowPrivateAccess ? (*scope).allowPrivateAccess->Sup.len : 0);
							L_2 = T27_;
							{
								while (1) {
									if (!(i_2 < L_2)) goto LA29;
									sym = &(*scope).allowPrivateAccess->data[i_2];
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym800_;
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym801_;
										xX60gensym800_ = symObj;
										xX60gensym801_ = (*sym);
										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_;
										result = NIM_TRUE;
										goto BeforeRet_;
									}
									LA32_: ;
									i_2 += ((NI) 1);
								} LA29: ;
							}
						}
						current = (*current).parent;
					} LA25: ;
				}
			}
		}
		LA17_: ;
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addObjFieldsToLocalScope__sem_805)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					addObjFieldsToLocalScope__sem_805(c, (*n)._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		{
			NI T8_;
			T8_ = (NI)0;
			T8_ = len__ast_3198(n);
			if (!(((NI) 0) < T8_)) goto LA9_;
			addObjFieldsToLocalScope__sem_805(c, (*n)._kind_6.sons->data[((NI) 0)]);
		}
		LA9_: ;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA13;
					i_3 = i_4;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
						if (!((*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85) || (*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88))) goto LA16_;
						T18_ = NIM_NIL;
						T18_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_3]);
						addObjFieldsToLocalScope__sem_805(c, T18_);
					}
					LA16_: ;
					i_4 += ((NI) 1);
				} LA13: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f;
		f = (*n)._kind_4.sym;
		{
			NIM_BOOL T22_;
			NIM_BOOL T26_;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*f).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19));
			if (!(T22_)) goto LA23_;
			T22_ = fieldVisible__sigmatch_4944(c, f);
			LA23_: ;
			if (!T22_) goto LA24_;
			T26_ = (NIM_BOOL)0;
			T26_ = strTableIncl__astalgo_3374((&(*(*c).currentScope).symbols), f, NIM_TRUE);
			(*f).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
		}
		LA24_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, rawHandleSelf__sem_865)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = eqeq___idents_220((*c).selfName, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
		T4_ = !(T5_);
		if (!(T4_)) goto LA6_;
		T4_ = ((258048 &((NU32)1<<((NU)((*owner).kind)&31U)))!=0);
		LA6_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = !(((*owner).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA7_: ;
		if (!T3_) goto LA8_;
		params = (*(*owner).typ).n;
		{
			NI T12_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* arg;
			T12_ = (NI)0;
			T12_ = len__ast_3198(params);
			if (!(((NI) 1) < T12_)) goto LA13_;
			arg = (*(*params)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
				if (!((*(*arg).name).id == (*(*c).selfName).id)) goto LA17_;
				asgnRef((void**) (&(*(*c).p).selfSym), arg);
				(*arg).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35)) & 63);
				t = skipTypes__ast_3735((*(*(*c).p).selfSym).typ, TM__rF9caJawfOjYTjsgLVUSGFA_97);
				{
					while (1) {
						if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA20;
						addObjFieldsToLocalScope__sem_805(c, (*t).n);
						{
							if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA23_;
							goto LA19;
						}
						LA23_: ;
						t = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_53);
					} LA20: ;
				} LA19: ;
			}
			LA17_: ;
		}
		LA13_: ;
	}
	LA8_: ;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getBody__modulegraphs_11241)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = (*(*s).ast)._kind_6.sons->data[((NI) 6)];
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((28 &((NU8)1<<((NU)((*(*g).config).symbolFiles)&7U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = loadProcBody__icZic_8390((*g).config, (*g).cache, (&(*g).packed_0), s);
		asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 6)]), result);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, swapResult__sem_12375)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sRes, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dNode) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__ast_3191(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T6_)) goto LA7_;
					T6_ = ((*(*n)._kind_6.sons->data[i])._kind_4.sym == sRes);
					LA7_: ;
					if (!T6_) goto LA8_;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), dNode);
				}
				LA8_: ;
				swapResult__sem_12375((*n)._kind_6.sons->data[i], sRes, dNode);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, findEnforcedStaticType__sem_4687)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
{	result = NIM_NIL;
	{
		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
		result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA7_;
		result = t;
		goto BeforeRet_;
	}
	LA7_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56))) goto LA11_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg** s;
			NI i;
			NI L;
			NI T14_;
			s = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
			i = ((NI) 0);
			T14_ = ((*t).sons ? (*t).sons->Sup.len : 0);
			L = T14_;
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
					if (!(i < L)) goto LA16;
					s = &(*t).sons->data[i];
					t_2 = findEnforcedStaticType__sem_4687((*s));
					{
						if (!!((t_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA19_;
						result = t_2;
						goto BeforeRet_;
					}
					LA19_: ;
					i += ((NI) 1);
				} LA16: ;
			}
		}
	}
	LA11_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addParamOrResult__sem_1024)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind) {
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* staticType;
		if (!(kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17))) goto LA3_;
		staticType = findEnforcedStaticType__sem_4687((*param).typ);
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T9_;
			if (!!((staticType == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA7_;
			T9_ = nextSymId__ast_3132((*c).Sup.idgen);
			a = copySym__ast_4054(param, T9_);
			asgnRef((void**) (&(*a).typ), base__types_63(staticType));
			addDecl__lookups_845(c, a);
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* nn;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a_2;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T11_;
			nn = getSysSym__magicsys_16((*c).graph, (*param).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_99));
			T11_ = nextSymId__ast_3132((*c).Sup.idgen);
			a_2 = copySym__ast_4054(param, T11_);
			asgnRef((void**) (&(*a_2).typ), (*nn).typ);
			addDecl__lookups_845(c, a_2);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0)) goto LA15_;
			{
				if (!((*param).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA19_;
				asgnRef((void**) (&(*param).owner), getCurrOwner__semdata_315(c));
			}
			LA19_: ;
		}
		goto LA13_;
		LA15_: ;
		{
			addDecl__lookups_845(c, param);
		}
		LA13_: ;
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addResult__sem_12396)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw owner) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (owner == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
		if (T3_) goto LA4_;
		T3_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			NI T10_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NI)0;
			T10_ = len__ast_3198(n);
			T9_ = (((NI) 7) < T10_);
			if (!(T9_)) goto LA11_;
			T9_ = !(((*n)._kind_6.sons->data[((NI) 7)] == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			LA11_: ;
			if (!T9_) goto LA12_;
			{
				if (!!(((*(*(*n)._kind_6.sons->data[((NI) 7)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11)))) goto LA16_;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_100), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_101, NIM_FALSE);
			}
			LA16_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T20_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sResSym;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T23_;
				tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T24_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T25_;
				T20_ = NIM_NIL;
				T20_ = getCurrOwner__semdata_315(c);
				if (!!(((*(*(*n)._kind_6.sons->data[((NI) 7)])._kind_4.sym).owner == T20_))) goto LA21_;
				sResSym = (*(*n)._kind_6.sons->data[((NI) 7)])._kind_4.sym;
				T23_ = NIM_NIL;
				T23_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102));
				T24_ = nextSymId__ast_3132((*c).Sup.idgen);
				T25_ = NIM_NIL;
				T25_ = getCurrOwner__semdata_315(c);
				s = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11), T23_, T24_, T25_, (*n).info, 0);
				asgnRef((void**) (&(*s).typ), t);
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 7)]), newSymNode__ast_3716(s));
				swapResult__sem_12375(n, sResSym, (*n)._kind_6.sons->data[((NI) 7)]);
			}
			LA21_: ;
			asgnRef((void**) (&(*(*c).p).resultSym), (*(*n)._kind_6.sons->data[((NI) 7)])._kind_4.sym);
		}
		goto LA7_;
		LA12_: ;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T27_;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T28_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T29_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
			T27_ = NIM_NIL;
			T27_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102));
			T28_ = nextSymId__ast_3132((*c).Sup.idgen);
			T29_ = NIM_NIL;
			T29_ = getCurrOwner__semdata_315(c);
			s_2 = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11), T27_, T28_, T29_, (*n).info, 0);
			asgnRef((void**) (&(*s_2).typ), t);
			(*s_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
			asgnRef((void**) (&(*(*c).p).resultSym), s_2);
			T30_ = NIM_NIL;
			T30_ = newSymNode__ast_3716((*(*c).p).resultSym);
			add__ast_4797(n, T30_);
		}
		LA7_: ;
		addParamOrResult__sem_1024(c, (*(*c).p).resultSym, owner);
	}
	LA5_: ;
}
static N_INLINE(NIM_BOOL, isInlineIterator__ast_4989)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = !(((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, maybeAddResult__sem_100)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* resultType;
		if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17))) goto LA3_;
		resultType = sysTypeFromName__magicsys_55((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_99));
		addResult__sem_12396(c, n, resultType, (*s).kind);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T8_;
		T6_ = (NIM_BOOL)0;
		T6_ = !(((*(*s).typ).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T6_)) goto LA7_;
		T8_ = (NIM_BOOL)0;
		T8_ = isInlineIterator__ast_4989((*s).typ);
		T6_ = !(T8_);
		LA7_: ;
		if (!T6_) goto LA9_;
		addResult__sem_12396(c, n, (*(*s).typ).sons->data[((NI) 0)], (*s).kind);
	}
	goto LA1_;
	LA9_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, freshGenSyms__sem_990)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* orig, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q* symMap) {
	{
		NIM_BOOL T3_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* x;
		RootObj* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		s = (*n)._kind_4.sym;
		T7_ = NIM_NIL;
		T7_ = idTableGet__astalgo_64((*symMap), &s->Sup);
		x = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) (T7_));
		{
			if (!!((x == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA10_;
			asgnRef((void**) (&(*n)._kind_4.sym), x);
		}
		goto LA8_;
		LA10_: ;
		{
			NIM_BOOL T13_;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T17_;
			T13_ = (NIM_BOOL)0;
			T13_ = ((*s).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
			if (T13_) goto LA14_;
			T13_ = ((*(*s).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 24));
			LA14_: ;
			if (!T13_) goto LA15_;
			T17_ = nextSymId__ast_3132((*c).Sup.idgen);
			x = copySym__ast_4054(s, T17_);
			asgnRef((void**) (&(*x).owner), owner);
			idTablePut__astalgo_70(symMap, &s->Sup, (*((RootObj**) (&(x)))));
			asgnRef((void**) (&(*n)._kind_4.sym), x);
		}
		goto LA8_;
		LA15_: ;
		LA8_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA21;
					i = i_2;
					freshGenSyms__sem_990(c, (*n)._kind_6.sons->data[i], owner, orig, symMap);
					i_2 += ((NI) 1);
				} LA21: ;
			}
		}
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isEmptyType__ast_4779)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isAtom__ast_4768)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) <= (*n).kind);
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixNilType__sem_9307)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isAtom__ast_4768(n);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			NimStringDesc* T12_;
			NimStringDesc* T13_;
			T8_ = (NIM_BOOL)0;
			T8_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)));
			if (!(T8_)) goto LA9_;
			T8_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			LA9_: ;
			if (!T8_) goto LA10_;
			T12_ = NIM_NIL;
			T12_ = typeToString__types_50((*n).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T13_ = NIM_NIL;
			T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_103), T12_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_104, NIM_FALSE);
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA15_;
		transitionSonsKind__ast_4359(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 115));
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
			it = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA20;
						i = i_2;
						it = (*n)._kind_6.sons->data[i];
						fixNilType__sem_9307(c, it);
						i_2 += ((NI) 1);
					} LA20: ;
				}
			}
		}
	}
	goto LA1_;
	LA15_: ;
	LA1_: ;
	asgnRef((void**) (&(*n).typ), ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, readTypeParameter__sem_16919)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* paramName, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53))) goto LA3_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* statement;
			statement = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191((*typ).n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA8;
						i = i_2;
						statement = (*(*typ).n)._kind_6.sons->data[i];
						switch ((*statement).kind) {
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
						{
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
								def = NIM_NIL;
								{
									NI i_3;
									NI colontmp__2;
									NI i_4;
									i_3 = (NI)0;
									colontmp__2 = (NI)0;
									colontmp__2 = safeLen__ast_3191(statement);
									i_4 = ((NI) 0);
									{
										while (1) {
											if (!(i_4 < colontmp__2)) goto LA13;
											i_3 = i_4;
											def = (*statement)._kind_6.sons->data[i_3];
											{
												tyObject_TType__facALICuu8zUj0hjvbTLFg* foundType;
												tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T18_;
												tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T19_;
												tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T20_;
												if (!((*(*(*(*def)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).id == (*paramName).id)) goto LA16_;
												foundType = makeTypeDesc__concepts_49(c, (*(*def)._kind_6.sons->data[((NI) 2)]).typ);
												T18_ = nextSymId__ast_3132((*c).Sup.idgen);
												T19_ = NIM_NIL;
												T19_ = copySym__ast_4054((*(*def)._kind_6.sons->data[((NI) 0)])._kind_4.sym, T18_);
												T20_ = NIM_NIL;
												T20_ = linkTo__ast_3532(T19_, foundType);
												result = newSymNode__ast_3719(T20_, info);
												goto BeforeRet_;
											}
											LA16_: ;
											i_4 += ((NI) 1);
										} LA13: ;
									}
								}
							}
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
						{
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def_2;
								def_2 = NIM_NIL;
								{
									NI i_5;
									NI colontmp__3;
									NI i_6;
									i_5 = (NI)0;
									colontmp__3 = (NI)0;
									colontmp__3 = safeLen__ast_3191(statement);
									i_6 = ((NI) 0);
									{
										while (1) {
											if (!(i_6 < colontmp__3)) goto LA25;
											i_5 = i_6;
											def_2 = (*statement)._kind_6.sons->data[i_5];
											{
												if (!((*(*(*(*def_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).id == (*paramName).id)) goto LA28_;
												result = (*def_2)._kind_6.sons->data[((NI) 2)];
												goto BeforeRet_;
											}
											LA28_: ;
											i_6 += ((NI) 1);
										} LA25: ;
									}
								}
							}
						}
						break;
						default:
						{
						}
						break;
						}
						i_2 += ((NI) 1);
					} LA8: ;
				}
			}
		}
	}
	LA3_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* ty;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* tbody;
		if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52)))) goto LA33_;
		{
			if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54))) goto LA37_;
			ty = skipGenericAlias__types_2219((*typ).sons->data[((NI) 1)]);
		}
		goto LA35_;
		LA37_: ;
		{
			ty = skipGenericAlias__types_2219(typ);
		}
		LA35_: ;
		tbody = (*ty).sons->data[((NI) 0)];
		{
			NI s;
			NI colontmp__4;
			NI T41_;
			NI i_7;
			s = (NI)0;
			colontmp__4 = (NI)0;
			T41_ = (NI)0;
			T41_ = len__ast_4002(tbody);
			colontmp__4 = (NI)(T41_ - ((NI) 1));
			i_7 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* tParam;
					if (!(i_7 < colontmp__4)) goto LA43;
					s = i_7;
					tParam = (*tbody).sons->data[s];
					{
						tyObject_TType__facALICuu8zUj0hjvbTLFg* rawTyp;
						if (!((*(*(*tParam).sym).name).id == (*paramName).id)) goto LA46_;
						rawTyp = (*ty).sons->data[(NI)(s + ((NI) 1))];
						{
							if (!((*rawTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA50_;
							{
								if (!!(((*rawTyp).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA54_;
								result = (*rawTyp).n;
								goto BeforeRet_;
							}
							goto LA52_;
							LA54_: ;
							{
								result = (*(*c).graph).emptyNode;
								goto BeforeRet_;
							}
							LA52_: ;
						}
						goto LA48_;
						LA50_: ;
						{
							tyObject_TType__facALICuu8zUj0hjvbTLFg* foundTyp;
							tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T58_;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T59_;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T60_;
							foundTyp = makeTypeDesc__concepts_49(c, rawTyp);
							T58_ = nextSymId__ast_3132((*c).Sup.idgen);
							T59_ = NIM_NIL;
							T59_ = copySym__ast_4054((*tParam).sym, T58_);
							T60_ = NIM_NIL;
							T60_ = linkTo__ast_3532(T59_, foundTyp);
							result = newSymNode__ast_3719(T60_, info);
							goto BeforeRet_;
						}
						LA48_: ;
					}
					LA46_: ;
					i_7 += ((NI) 1);
				} LA43: ;
			}
		}
	}
	LA33_: ;
	result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryReadingGenericParam__sem_17141)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* i, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
	{
		result = readTypeParameter__sem_16919(c, t, i, (*n).info);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
			if (!(result == (*(*c).graph).emptyNode)) goto LA4_;
			result = n;
			T6_ = NIM_NIL;
			T6_ = copyTree__ast_4431(n);
			asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_804(c, T6_));
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		{
			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0)) goto LA10_;
			result = readTypeParameter__sem_16919(c, t, i, (*n).info);
		}
		goto LA8_;
		LA10_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
			T13_ = NIM_NIL;
			T13_ = copyTree__ast_4431(n);
			asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_804(c, T13_));
			result = n;
		}
		LA8_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		T15_ = NIM_NIL;
		T15_ = copyTree__ast_4431(n);
		asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_804(c, T15_));
		result = n;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryReadingTypeField__sem_17155)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* i, tyObject_TType__facALICuu8zUj0hjvbTLFg* ty) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* ty_2;
	result = NIM_NIL;
	ty_2 = skipTypes__ast_3735(ty, TM__rF9caJawfOjYTjsgLVUSGFA_105);
	switch ((*ty_2).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f;
		f = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
		{
			while (1) {
				if (!!((ty_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA3;
				f = getSymFromList__astalgo_245((*ty_2).n, i, ((NI) 0));
				{
					if (!!((f == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA6_;
					goto LA2;
				}
				LA6_: ;
				ty_2 = (*ty_2).sons->data[((NI) 0)];
			} LA3: ;
		} LA2: ;
		{
			if (!!((f == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA10_;
			result = newSymNode__ast_3716(f);
			(*result).info = (*n).info;
			asgnRef((void**) (&(*result).typ), ty_2);
			markUsed__sigmatch_85(c, (*n).info, f);
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T15_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field;
			T15_ = (NIM_BOOL)0;
			T15_ = !(((*ty_2).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			if (!(T15_)) goto LA16_;
			T15_ = ((*(*ty_2).n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138));
			LA16_: ;
			if (!T15_) goto LA17_;
			field = lookupInRecord__astalgo_84((*ty_2).n, i);
			{
				if (!!((field == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA21_;
				asgnRef((void**) (&(*n).typ), makeTypeDesc__concepts_49(c, (*field).typ));
				result = n;
			}
			LA21_: ;
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T24_;
		T24_ = NIM_NIL;
		T24_ = lastSon__ast_3743(ty_2);
		result = tryReadingTypeField__sem_17155(c, n, i, T24_);
		{
			if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA27_;
			result = tryReadingGenericParam__sem_17141(c, n, i, ty_2);
		}
		LA27_: ;
	}
	break;
	default:
	{
		result = tryReadingGenericParam__sem_17141(c, n, i, ty_2);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTypeExpr__sem_16755)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, createSetType__sem_16762)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), c);
	rawAddSon__ast_4288(result, baseType, NIM_TRUE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupInRecordAndBuildCheck__sem_16773)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** check) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
{	result = NIM_NIL;
	result = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
	switch ((*r).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(r);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					result = lookupInRecordAndBuildCheck__sem_16773(c, n, (*r)._kind_6.sons->data[i], field, check);
					{
						if (!!((result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA7_;
						goto BeforeRet_;
					}
					LA7_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* setType;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
		checkMinSonsLen__semdata_1084(r, ((NI) 2), (*(*c).graph).config);
		{
			if (!!(((*(*r)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
			illFormedAst__semdata_1071(r, (*(*c).graph).config);
		}
		LA12_: ;
		result = lookupInRecordAndBuildCheck__sem_16773(c, n, (*r)._kind_6.sons->data[((NI) 0)], field, check);
		{
			if (!!((result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA16_;
			goto BeforeRet_;
		}
		LA16_: ;
		setType = createSetType__sem_16762(c, (*(*r)._kind_6.sons->data[((NI) 0)]).typ);
		s = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*r).info, setType);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(r);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					if (!(i_4 < colontmp__2)) goto LA20;
					i_3 = i_4;
					it = (*r)._kind_6.sons->data[i_3];
					switch ((*it).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
						T22_ = NIM_NIL;
						T22_ = lastSon__ast_4832(it);
						result = lookupInRecordAndBuildCheck__sem_16773(c, n, T22_, field, check);
						{
							if (!(result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA25_;
							{
								NI j;
								NI colontmp__3;
								NI T28_;
								NI i_5;
								j = (NI)0;
								colontmp__3 = (NI)0;
								T28_ = (NI)0;
								T28_ = len__ast_3198(it);
								colontmp__3 = (NI)(T28_ - ((NI) 1));
								i_5 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
										if (!(i_5 < colontmp__3)) goto LA30;
										j = i_5;
										T31_ = NIM_NIL;
										T31_ = copyTree__ast_4431((*it)._kind_6.sons->data[j]);
										add__ast_4797(s, T31_);
										i_5 += ((NI) 1);
									} LA30: ;
								}
							}
						}
						goto LA23_;
						LA25_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inExpr;
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T42_;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T43_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T45_;
							{
								if (!((*check) == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA35_;
								unsureAsgnRef((void**) (&(*check)), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46), (*n).info));
								add__ast_4797((*check), (*(*c).graph).emptyNode);
							}
							LA35_: ;
							s = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*n).info, setType);
							{
								NI j_2;
								NI colontmp__4;
								NI T38_;
								NI i_6;
								j_2 = (NI)0;
								colontmp__4 = (NI)0;
								T38_ = (NI)0;
								T38_ = len__ast_3198(it);
								colontmp__4 = (NI)(T38_ - ((NI) 1));
								i_6 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T41_;
										if (!(i_6 < colontmp__4)) goto LA40;
										j_2 = i_6;
										T41_ = NIM_NIL;
										T41_ = copyTree__ast_4431((*it)._kind_6.sons->data[j_2]);
										add__ast_4797(s, T41_);
										i_6 += ((NI) 1);
									} LA40: ;
								}
							}
							T42_ = NIM_NIL;
							T42_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
							inExpr = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, T42_);
							T43_ = NIM_NIL;
							T43_ = getSysMagic__magicsys_29((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_108), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134));
							T44_ = NIM_NIL;
							T44_ = newSymNode__ast_3719(T43_, (*n).info);
							add__ast_4797(inExpr, T44_);
							add__ast_4797(inExpr, s);
							T45_ = NIM_NIL;
							T45_ = copyTree__ast_4431((*r)._kind_6.sons->data[((NI) 0)]);
							add__ast_4797(inExpr, T45_);
							add__ast_4797((*check), inExpr);
							goto BeforeRet_;
						}
						LA23_: ;
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
						T47_ = NIM_NIL;
						T47_ = lastSon__ast_4832(it);
						result = lookupInRecordAndBuildCheck__sem_16773(c, n, T47_, field, check);
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inExpr_2;
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T56_;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T57_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T58_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T59_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* notExpr;
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T60_;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T61_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T62_;
							if (!!((result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA50_;
							{
								if (!((*check) == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA54_;
								unsureAsgnRef((void**) (&(*check)), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46), (*n).info));
								add__ast_4797((*check), (*(*c).graph).emptyNode);
							}
							LA54_: ;
							T56_ = NIM_NIL;
							T56_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
							inExpr_2 = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, T56_);
							T57_ = NIM_NIL;
							T57_ = getSysMagic__magicsys_29((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_108), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134));
							T58_ = NIM_NIL;
							T58_ = newSymNode__ast_3719(T57_, (*n).info);
							add__ast_4797(inExpr_2, T58_);
							add__ast_4797(inExpr_2, s);
							T59_ = NIM_NIL;
							T59_ = copyTree__ast_4431((*r)._kind_6.sons->data[((NI) 0)]);
							add__ast_4797(inExpr_2, T59_);
							T60_ = NIM_NIL;
							T60_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
							notExpr = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, T60_);
							T61_ = NIM_NIL;
							T61_ = getSysMagic__magicsys_29((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_109), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
							T62_ = NIM_NIL;
							T62_ = newSymNode__ast_3719(T61_, (*n).info);
							add__ast_4797(notExpr, T62_);
							add__ast_4797(notExpr, inExpr_2);
							add__ast_4797((*check), notExpr);
							goto BeforeRet_;
						}
						LA50_: ;
					}
					break;
					default:
					{
						illFormedAst__semdata_1071(it, (*(*c).graph).config);
					}
					break;
					}
					i_4 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			if (!((*(*(*r)._kind_4.sym).name).id == (*field).id)) goto LA67_;
			result = (*r)._kind_4.sym;
		}
		LA67_: ;
	}
	break;
	default:
	{
		illFormedAst__semdata_1071(n, (*(*c).graph).config);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, makeDeref__sem_9873)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	result = NIM_NIL;
	t = (*n).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53));
		if (!(T3_)) goto LA4_;
		T3_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		t = lastSon__ast_3743(t);
	}
	LA5_: ;
	t = skipTypes__ast_3735(t, TM__rF9caJawfOjYTjsgLVUSGFA_39);
	result = n;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA9_;
		result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info, (*t).sons->data[((NI) 0)]);
		add__ast_4797(result, n);
		t = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_39);
	}
	LA9_: ;
	{
		while (1) {
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* baseTyp;
			if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA12;
			a = result;
			baseTyp = lastSon__ast_3743(t);
			result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info, baseTyp);
			add__ast_4797(result, a);
			t = skipTypes__ast_3735(baseTyp, TM__rF9caJawfOjYTjsgLVUSGFA_39);
		} LA12: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, builtinFieldAccess__sem_17195)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* i;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* ty;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check;
{	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	s = qualifiedLookUp__lookups_1233(c, n, 7);
	{
		if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA3_;
		{
			if (!((1568832 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA7_;
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA11_;
				result = semSym__sem_16971(c, n, s, flags);
			}
			LA11_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			markUsed__sigmatch_85(c, (*(*n)._kind_6.sons->data[((NI) 1)]).info, s);
			result = semSym__sem_16971(c, n, s, flags);
		}
		LA5_: ;
		goto BeforeRet_;
	}
	LA3_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 516)));
	i = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[((NI) 1)], n);
	ty = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
	f = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
	result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	{
		if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA16_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T20_;
			T20_ = NIM_NIL;
			T20_ = base__types_63(ty);
			if (!((*T20_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA21_;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T25_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
				T25_ = NIM_NIL;
				T25_ = getCurrOwner__semdata_315(c);
				if (!!(((*T25_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17)))) goto LA26_;
				T28_ = NIM_NIL;
				T28_ = copyTree__ast_4431(n);
				asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_804(c, T28_));
				result = n;
				goto BeforeRet_;
			}
			goto LA23_;
			LA26_: ;
			{
				result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
				goto BeforeRet_;
			}
			LA23_: ;
		}
		goto LA18_;
		LA21_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T31_;
			T31_ = NIM_NIL;
			T31_ = base__types_63(ty);
			result = tryReadingTypeField__sem_17155(c, n, i, T31_);
			goto BeforeRet_;
		}
		LA18_: ;
	}
	goto LA14_;
	LA16_: ;
	{
		NIM_BOOL T33_;
		T33_ = (NIM_BOOL)0;
		T33_ = isTypeExpr__sem_16755((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T33_) goto LA34_;
		result = tryReadingTypeField__sem_17155(c, n, i, ty);
		goto BeforeRet_;
	}
	goto LA14_;
	LA34_: ;
	{
		if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50))) goto LA37_;
		result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
		goto BeforeRet_;
	}
	goto LA14_;
	LA37_: ;
	LA14_: ;
	{
		NIM_BOOL T41_;
		T41_ = (NIM_BOOL)0;
		T41_ = ((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) || (*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53));
		if (!(T41_)) goto LA42_;
		T41_ = (((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
		LA42_: ;
		if (!T41_) goto LA43_;
		ty = lastSon__ast_3743(ty);
	}
	LA43_: ;
	ty = skipTypes__ast_3735(ty, TM__rF9caJawfOjYTjsgLVUSGFA_106);
	{
		while (1) {
			if (!(((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 32))&63U)))!=0)) goto LA46;
			ty = skipTypes__ast_3735(ty, TM__rF9caJawfOjYTjsgLVUSGFA_107);
		} LA46: ;
	}
	check = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	{
		if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA49_;
		{
			while (1) {
				check = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
				f = lookupInRecordAndBuildCheck__sem_16773(c, n, (*ty).n, i, &check);
				{
					if (!!((f == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA55_;
					goto LA51;
				}
				LA55_: ;
				{
					if (!((*ty).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA59_;
					goto LA51;
				}
				LA59_: ;
				ty = skipTypes__ast_3735((*ty).sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_53);
			}
		} LA51: ;
		{
			NIM_BOOL visibilityCheckNeeded;
			if (!!((f == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA63_;
			{
				NIM_BOOL T67_;
				T67_ = (NIM_BOOL)0;
				T67_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T67_)) goto LA68_;
				T67_ = ((*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym == f);
				LA68_: ;
				if (!T67_) goto LA69_;
				visibilityCheckNeeded = NIM_FALSE;
			}
			goto LA65_;
			LA69_: ;
			{
				visibilityCheckNeeded = NIM_TRUE;
			}
			LA65_: ;
			{
				NIM_BOOL T74_;
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
				T74_ = (NIM_BOOL)0;
				T74_ = !(visibilityCheckNeeded);
				if (T74_) goto LA75_;
				T74_ = fieldVisible__sigmatch_4944(c, f);
				LA75_: ;
				if (!T74_) goto LA76_;
				markUsed__sigmatch_85(c, (*(*n)._kind_6.sons->data[((NI) 1)]).info, f);
				info = (*(*n)._kind_6.sons->data[((NI) 1)]).info;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), makeDeref__sem_9873((*n)._kind_6.sons->data[((NI) 0)]));
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), newSymNode__ast_3716(f));
				(*(*n)._kind_6.sons->data[((NI) 1)]).info = info;
				asgnRef((void**) (&(*n).typ), (*f).typ);
				{
					if (!(check == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA80_;
					result = n;
				}
				goto LA78_;
				LA80_: ;
				{
					asgnRef((void**) (&(*check)._kind_6.sons->data[((NI) 0)]), n);
					asgnRef((void**) (&(*check).typ), (*n).typ);
					result = check;
				}
				LA78_: ;
			}
			LA76_: ;
		}
		LA63_: ;
	}
	goto LA47_;
	LA49_: ;
	{
		NIM_BOOL T84_;
		T84_ = (NIM_BOOL)0;
		T84_ = ((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		if (!(T84_)) goto LA85_;
		T84_ = !(((*ty).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		LA85_: ;
		if (!T84_) goto LA86_;
		f = getSymFromList__astalgo_245((*ty).n, i, ((NI) 0));
		{
			if (!!((f == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA90_;
			markUsed__sigmatch_85(c, (*(*n)._kind_6.sons->data[((NI) 1)]).info, f);
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), makeDeref__sem_9873((*n)._kind_6.sons->data[((NI) 0)]));
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), newSymNode__ast_3716(f));
			asgnRef((void**) (&(*n).typ), (*f).typ);
			result = n;
		}
		LA90_: ;
	}
	goto LA47_;
	LA86_: ;
	LA47_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA94_;
		t = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_105);
		result = tryReadingGenericParam__sem_17141(c, n, i, t);
	}
	LA94_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[(*dest).Sup.len] = c;
	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
	(*dest).Sup.len += ((NI) 1);
}
N_LIB_PRIVATE N_NIMCALL(void, semOpAux__sem_88)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					NI T8_;
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
					tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T11_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33));
					if (!(T6_)) goto LA7_;
					T8_ = (NI)0;
					T8_ = len__ast_3198(a);
					T6_ = (T8_ == ((NI) 2));
					LA7_: ;
					if (!T6_) goto LA9_;
					info = (*(*a)._kind_6.sons->data[((NI) 0)]).info;
					T11_ = NIM_NIL;
					T11_ = considerQuotedIdent__lookups_28(c, (*a)._kind_6.sons->data[((NI) 0)], a);
					asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3712(T11_, info));
					asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_56(c, (*a)._kind_6.sons->data[((NI) 1)], 512));
					asgnRef((void**) (&(*a).typ), (*(*a)._kind_6.sons->data[((NI) 1)]).typ);
				}
				goto LA4_;
				LA9_: ;
				{
					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semExprWithType__sem_56(c, a, 512));
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyExcept__sem_12448)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = copyNode__ast_4336(n);
	{
		NI j;
		NI colontmp_;
		NI i_2;
		j = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				j = i_2;
				{
					if (!!((j == i))) goto LA6_;
					add__ast_4797(result, (*n)._kind_6.sons->data[j]);
				}
				LA6_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplateExpr__sem_519)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T1_;
	result = NIM_NIL;
	rememberExpansion__semdata_3656(c, (*n).info, s);
	info = getCallLineInfo__sem_2390(n);
	markUsed__sigmatch_85(c, info, s);
	pushInfoContext__msgs_490((*(*c).graph).config, (*n).info, (*(*s).name).s);
	T1_ = NIM_NIL;
	T1_ = getCurrOwner__semdata_315(c);
	result = evalTemplate__evaltempl_275(n, s, T1_, (*(*c).graph).config, (*c).cache, (*c).templInstCounter, (*c).Sup.idgen, ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 16))&31U)))!=0));
	{
		if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 13))&31U)))!=0))) goto LA4_;
		result = semAfterMacroCall__sem_2787(c, n, result, s, flags);
	}
	LA4_: ;
	popInfoContext__msgs_507((*(*c).graph).config);
	(*result).info = info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcAnnotation__sem_12465)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prc, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
{	result = NIM_NIL;
	n = (*prc)._kind_6.sons->data[((NI) 4)];
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
					it = (*n)._kind_6.sons->data[i];
					{
						NIM_BOOL T13_;
						NI T15_;
						T13_ = (NIM_BOOL)0;
						T13_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28));
						if (!(T13_)) goto LA14_;
						T15_ = (NI)0;
						T15_ = len__ast_3198(it);
						T13_ = (((NI) 1) <= T15_);
						LA14_: ;
						if (!T13_) goto LA16_;
						key = (*it)._kind_6.sons->data[((NI) 0)];
					}
					goto LA11_;
					LA16_: ;
					{
						key = it;
					}
					LA11_: ;
					{
						tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T21_;
						T21_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
						T21_ = whichPragma__trees_244(it);
						if (!!((T21_ == ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 0)))) goto LA22_;
						goto LA10;
					}
					goto LA19_;
					LA22_: ;
					{
						tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
						ident = considerQuotedIdent__lookups_28(c, key, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T27_;
							T27_ = NIM_NIL;
							T27_ = strTableGet__astalgo_3383((*c).userPragmas, ident);
							if (!!((T27_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA28_;
							goto LA10;
						}
						goto LA25_;
						LA28_: ;
						{
							NIM_BOOL amb;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
							amb = NIM_FALSE;
							sym = searchInScopes__lookups_423(c, ident, (&amb));
							{
								NIM_BOOL T33_;
								T33_ = (NIM_BOOL)0;
								T33_ = !((sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
								if (!(T33_)) goto LA34_;
								T33_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0);
								LA34_: ;
								if (!T33_) goto LA35_;
								goto LA10;
							}
							LA35_: ;
						}
						LA25_: ;
					}
					LA19_: ;
					x = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*key).info);
					add__ast_4797(x, key);
					{
						NIM_BOOL T39_;
						NI T41_;
						T39_ = (NIM_BOOL)0;
						T39_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28));
						if (!(T39_)) goto LA40_;
						T41_ = (NI)0;
						T41_ = len__ast_3198(it);
						T39_ = (((NI) 1) < T41_);
						LA40_: ;
						if (!T39_) goto LA42_;
						{
							NI i_3;
							NI colontmp__2;
							NI i_4;
							i_3 = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__2 = len__ast_3198(it);
							i_4 = ((NI) 1);
							{
								while (1) {
									if (!(i_4 < colontmp__2)) goto LA46;
									i_3 = i_4;
									add__ast_4797(x, (*it)._kind_6.sons->data[i_3]);
									i_4 += ((NI) 1);
								} LA46: ;
							}
						}
					}
					LA42_: ;
					asgnRef((void**) (&(*prc)._kind_6.sons->data[((NI) 4)]), copyExcept__sem_12448(n, i));
					{
						NIM_BOOL T49_;
						NI T51_;
						T49_ = (NIM_BOOL)0;
						T49_ = !(((*(*prc)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
						if (!(T49_)) goto LA50_;
						T51_ = (NI)0;
						T51_ = len__ast_3198((*prc)._kind_6.sons->data[((NI) 4)]);
						T49_ = (T51_ == ((NI) 0));
						LA50_: ;
						if (!T49_) goto LA52_;
						asgnRef((void**) (&(*prc)._kind_6.sons->data[((NI) 4)]), (*(*c).graph).emptyNode);
					}
					LA52_: ;
					add__ast_4797(x, prc);
					r = semOverloadedCall__sem_2498(c, x, x, 393216, 262144);
					{
						if (!(r == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA56_;
						asgnRef((void**) (&(*prc)._kind_6.sons->data[((NI) 4)]), n);
						goto LA10;
					}
					LA56_: ;
					{
						if (!!(((*(*r)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA60_;
						failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_110));
					}
					LA60_: ;
					m = (*(*r)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
					switch ((*m).kind) {
					case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
					{
						result = semMacroExpr__sem_524(c, r, r, m, 0);
					}
					break;
					case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
					{
						result = semTemplateExpr__sem_519(c, r, m, 0);
					}
					break;
					default:
					{
						asgnRef((void**) (&(*prc)._kind_6.sons->data[((NI) 4)]), n);
						goto LA10;
					}
					break;
					}
					{
						if (!!(!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))))) goto LA67_;
						failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_111));
					}
					LA67_: ;
					{
						NIM_BOOL T71_;
						NIM_BOOL T72_;
						T71_ = (NIM_BOOL)0;
						T72_ = (NIM_BOOL)0;
						T72_ = ((*result).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) && (*result).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*result).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*result).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
						if (!(T72_)) goto LA73_;
						T72_ = ((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
						LA73_: ;
						T71_ = T72_;
						if (!(T71_)) goto LA74_;
						T71_ = !(((*(*result)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
						LA74_: ;
						if (!T71_) goto LA75_;
						pragma__pragmas_123(c, (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym, (*result)._kind_6.sons->data[((NI) 4)], validPragmas, NIM_FALSE);
					}
					LA75_: ;
					goto BeforeRet_;
				} LA10: ;
				i_2 += ((NI) 1);
			} LA9: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSymG__sem_458)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		result = (*n)._kind_4.sym;
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T9_;
			NimStringDesc* T10_;
			if (!!(((*result).kind == kind || (*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5)))) goto LA7_;
			nimZeroMem((void*)T9_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T9_[0] = toHumanStr__ast_5158((*result).kind);
			T9_[1] = toHumanStr__ast_5158(kind);
			T10_ = NIM_NIL;
			T10_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_112), T9_, 2);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T10_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_113, NIM_FALSE);
		}
		LA7_: ;
		asgnRef((void**) (&(*result).owner), getCurrOwner__semdata_315(c));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T12_;
		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T13_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T14_;
		T12_ = NIM_NIL;
		T12_ = considerQuotedIdent__lookups_28(c, n, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		T13_ = nextSymId__ast_3132((*c).Sup.idgen);
		T14_ = NIM_NIL;
		T14_ = getCurrOwner__semdata_315(c);
		result = newSym__ast_3445(kind, T12_, T13_, T14_, (*n).info, 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, semIdentVis__sem_471)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw allowed) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31))) goto LA3_;
		{
			NI T7_;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* v;
			T7_ = (NI)0;
			T7_ = len__ast_3198(n);
			if (!(T7_ == ((NI) 2))) goto LA8_;
			result = newSymG__sem_458(kind, (*n)._kind_6.sons->data[((NI) 1)], c);
			v = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((allowed &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0);
				if (!(T12_)) goto LA13_;
				T12_ = ((*v).id == ((NI) 72));
				LA13_: ;
				if (!T12_) goto LA14_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1)) & 63);
			}
			goto LA10_;
			LA14_: ;
			{
				{
					NimStringDesc* T21_;
					if (!!(((allowed &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0))) goto LA19_;
					T21_ = NIM_NIL;
					T21_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_115));
					liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_116, NIM_FALSE);
				}
				goto LA17_;
				LA19_: ;
				{
					NimStringDesc* T23_;
					NimStringDesc* T24_;
					T23_ = NIM_NIL;
					T23_ = renderTree__renderer_46((*n)._kind_6.sons->data[((NI) 0)], 0);
					T24_ = NIM_NIL;
					T24_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_117), T23_);
					liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T24_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_118, NIM_FALSE);
				}
				LA17_: ;
			}
			LA10_: ;
		}
		goto LA5_;
		LA8_: ;
		{
			illFormedAst__semdata_1071(n, (*(*c).graph).config);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = newSymG__sem_458(kind, n, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, semIdentWithPragma__sem_476)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw allowed) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA3_;
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
		result = semIdentVis__sem_471(c, kind, (*n)._kind_6.sons->data[((NI) 0)], allowed);
		switch (kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
		{
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19):
		{
			pragma__pragmas_123(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_119, NIM_FALSE);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8):
		{
			pragma__pragmas_123(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_120, NIM_FALSE);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9):
		{
			pragma__pragmas_123(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_120, NIM_FALSE);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
		{
			pragma__pragmas_123(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_121, NIM_FALSE);
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		result = semIdentVis__sem_471(c, kind, n, allowed);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, getLineInfo__sem_9697)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
{	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		{
			NI T4_;
			T4_ = (NI)0;
			T4_ = len__ast_3198(n);
			if (!(((NI) 1) < T4_)) goto LA5_;
			result = getLineInfo__sem_9697((*n)._kind_6.sons->data[((NI) 1)]);
			goto BeforeRet_;
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = len__ast_3198(n);
			if (!(((NI) 0) < T10_)) goto LA11_;
			result = getLineInfo__sem_9697((*n)._kind_6.sons->data[((NI) 0)]);
			goto BeforeRet_;
		}
		LA11_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	result = (*n).info;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, suggestSym__sigmatch_5375)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** usageSym, NIM_BOOL isDecl) {
	tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf;
	conf = (*g).config;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, semIdentDef__sem_9679)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, NIM_BOOL reportToNimsuggest) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1091(c);
		if (!T3_) goto LA4_;
		result = semIdentWithPragma__sem_476(c, kind, n, 2);
		(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
	}
	goto LA1_;
	LA4_: ;
	{
		result = semIdentWithPragma__sem_476(c, kind, n, 0);
		{
			if (!((*(*result).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA9_;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
		}
		LA9_: ;
	}
	LA1_: ;
	(*result).options = (*(*(*c).graph).config).options;
	info = getLineInfo__sem_9697(n);
	{
		if (!reportToNimsuggest) goto LA13_;
		suggestSym__sigmatch_5375((*c).graph, info, result, &(*(*c).graph).usageSym, NIM_TRUE);
	}
	LA13_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semGenericConstraints__sem_6326)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* x) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
	asgnRef((void**) (&T1_->data[0]), x);
	result = newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12), T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericParamList__sem_6334)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* father) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = copyNode__ast_4336(n);
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA3_;
		illFormedAst__semdata_1071(n, (*(*c).graph).config);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!(i_2 < colontmp_)) goto LA7;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				switch ((*a).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
					{
						if (!!((father == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA11_;
						addSonSkipIntLit__magicsys_136(father, (*(*a)._kind_4.sym).typ, (*c).Sup.idgen);
					}
					LA11_: ;
					{
						if (!!((((*(*a)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0))) goto LA15_;
						addDecl__lookups_845(c, (*a)._kind_4.sym);
					}
					LA15_: ;
					T17_ = NIM_NIL;
					T17_ = newSymNode__ast_3716((*a)._kind_4.sym);
					add__ast_4797(result, T17_);
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					NI T19_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
					NI T20_;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
					T19_ = (NI)0;
					T19_ = len__ast_3198(a);
					def = (*a)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))];
					T20_ = (NI)0;
					T20_ = len__ast_3198(a);
					constraint = (*a)._kind_6.sons->data[(NI)(T20_ - ((NI) 2))];
					typ = NIM_NIL;
					{
						if (!!(((*constraint).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA23_;
						typ = semTypeNode__sem_80(c, constraint, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
						{
							NIM_BOOL T27_;
							NI T29_;
							T27_ = (NIM_BOOL)0;
							T27_ = !(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)));
							if (T27_) goto LA28_;
							T29_ = (NI)0;
							T29_ = len__ast_4002(typ);
							T27_ = (T29_ == ((NI) 0));
							LA28_: ;
							if (!T27_) goto LA30_;
							{
								if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA34_;
								{
									tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T40_;
									if (!((*(*typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA38_;
									T40_ = NIM_NIL;
									T40_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
									asgnRef((void**) (&T40_->data[0]), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c));
									typ = newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), T40_);
									(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
								}
								LA38_: ;
							}
							goto LA32_;
							LA34_: ;
							{
								typ = semGenericConstraints__sem_6326(c, typ);
							}
							LA32_: ;
						}
						LA30_: ;
					}
					LA23_: ;
					{
						if (!!(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA44_;
						def = semConstExpr__sem_611(c, def);
						{
							if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA48_;
							{
								tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T54_;
								if (!!(((*(*def).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA52_;
								T54_ = NIM_NIL;
								T54_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
								asgnRef((void**) (&T54_->data[0]), (*def).typ);
								typ = newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), T54_);
							}
							LA52_: ;
						}
						goto LA46_;
						LA48_: ;
						{
							asgnRef((void**) (&(*def).typ), skipTypes__ast_3735((*def).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123));
							{
								NIM_BOOL T58_;
								T58_ = (NIM_BOOL)0;
								T58_ = containsGenericType__types_3360((*def).typ);
								if (!!(T58_)) goto LA59_;
								def = fitNode__sem_70(c, typ, def, (*def).info);
							}
							LA59_: ;
						}
						LA46_: ;
					}
					LA44_: ;
					{
						if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA63_;
						typ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12), c);
						{
							if (!(father == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA67_;
							(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30)) & 63);
						}
						LA67_: ;
					}
					LA63_: ;
					(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 25)) & 63);
					{
						NI j;
						NI colontmp__2;
						NI T70_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T70_ = (NI)0;
						T70_ = len__ast_3198(a);
						colontmp__2 = (NI)(T70_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TType__facALICuu8zUj0hjvbTLFg* finalType;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* paramName;
								tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw covarianceFlag;
								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T132_;
								if (!(i_3 < colontmp__2)) goto LA72;
								j = i_3;
								finalType = NIM_NIL;
								{
									if (!(j == ((NI) 0))) goto LA75_;
									finalType = typ;
								}
								goto LA73_;
								LA75_: ;
								{
									tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T78_;
									T78_ = nextTypeId__ast_3151((*c).Sup.idgen);
									finalType = copyType__ast_4046(typ, T78_, (*typ).owner);
									copyTypeProps__modulegraphs_8872((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), finalType, typ);
								}
								LA73_: ;
								paramName = (*a)._kind_6.sons->data[j];
								covarianceFlag = ((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9);
								{
									NI T81_;
									T81_ = (NI)0;
									T81_ = safeLen__ast_3191(paramName);
									if (!(T81_ == ((NI) 2))) goto LA82_;
									{
										NIM_BOOL T86_;
										T86_ = (NIM_BOOL)0;
										T86_ = NIM_TRUE;
										if (T86_) goto LA87_;
										T86_ = eqStrings((*(*(*paramName)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_124));
										LA87_: ;
										if (!T86_) goto LA88_;
										{
											NIM_BOOL T92_;
											NimStringDesc* T96_;
											NimStringDesc* T97_;
											T92_ = (NIM_BOOL)0;
											T92_ = (father == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
											if (T92_) goto LA93_;
											T92_ = !((((*(*father).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0));
											LA93_: ;
											if (!T92_) goto LA94_;
											T96_ = NIM_NIL;
											T96_ = dollar___renderer_2106((*paramName)._kind_6.sons->data[((NI) 0)]);
											T97_ = NIM_NIL;
											T97_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_125), T96_);
											liMessage__msgs_1118((*(*c).graph).config, (*paramName).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T97_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_126, NIM_FALSE);
										}
										LA94_: ;
									}
									LA88_: ;
									{
										if (!eqStrings((*(*(*paramName)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_124))) goto LA100_;
										covarianceFlag = ((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 37);
									}
									goto LA98_;
									LA100_: ;
									{
										covarianceFlag = ((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35);
									}
									LA98_: ;
									{
										if (!!((father == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA105_;
										(*father).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35)) & 63);
									}
									LA105_: ;
									paramName = (*paramName)._kind_6.sons->data[((NI) 1)];
								}
								LA82_: ;
								{
									NIM_BOOL T109_;
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T113_;
									T109_ = (NIM_BOOL)0;
									T109_ = ((*finalType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
									if (T109_) goto LA110_;
									T109_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0);
									LA110_: ;
									if (!T109_) goto LA111_;
									T113_ = NIM_NIL;
									T113_ = newSymG__sem_458(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4), paramName, c);
									s = linkTo__ast_3532(T113_, finalType);
								}
								goto LA107_;
								LA111_: ;
								{
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T115_;
									T115_ = NIM_NIL;
									T115_ = newSymG__sem_458(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), paramName, c);
									s = linkTo__ast_3532(T115_, finalType);
								}
								LA107_: ;
								{
									if (!!((covarianceFlag == ((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)))) goto LA118_;
									(*(*s).typ).flags |= ((NU64)1)<<((covarianceFlag) & 63);
								}
								LA118_: ;
								{
									if (!!(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA122_;
									asgnRef((void**) (&(*s).ast), def);
								}
								LA122_: ;
								(*s).position = len__ast_3198(result);
								{
									if (!!((father == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA126_;
									addSonSkipIntLit__magicsys_136(father, (*s).typ, (*c).Sup.idgen);
								}
								LA126_: ;
								{
									if (!!((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0))) goto LA130_;
									addDecl__lookups_845(c, s);
								}
								LA130_: ;
								T132_ = NIM_NIL;
								T132_ = newSymNode__ast_3716(s);
								add__ast_4797(result, T132_);
								i_3 += ((NI) 1);
							} LA72: ;
						}
					}
				}
				break;
				default:
				{
					illFormedAst__semdata_1071(n, (*(*c).graph).config);
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA7: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setGenericParamsMisc__sem_6510)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig;
	orig = (*n)._kind_6.sons->data[((NI) 2)];
	{
		if (!!(((*orig).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*orig).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA3_;
		failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_122));
	}
	LA3_: ;
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA7_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75), (*n).info));
	}
	goto LA5_;
	LA7_: ;
	{
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), semGenericParamList__sem_6334(c, orig, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
	}
	LA5_: ;
	{
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T14_;
		if (!((*(*n)._kind_6.sons->data[((NI) 5)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA12_;
		nimZeroMem((void*)T14_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T14_[0] = (*(*c).graph).emptyNode;
		T14_[1] = orig;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 5)]), newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), T14_, 2));
	}
	goto LA10_;
	LA12_: ;
	{
		asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 5)])._kind_6.sons->data[((NI) 1)]), orig);
	}
	LA10_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newProcType__sem_5053)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = NIM_NIL;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25), prev, c);
	T1_ = NIM_NIL;
	T1_ = lastOptionEntry__semdata_341(c);
	(*result).callConv = (*T1_).defaultCC;
	asgnRef((void**) (&(*result).n), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), info));
	rawAddSon__ast_4288(result, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL), NIM_TRUE);
	T2_ = NIM_NIL;
	T2_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), info);
	add__ast_4797((*result).n, T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semParamType__sem_5032)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** constraint) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40))) goto LA3_;
		result = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		unsureAsgnRef((void**) (&(*constraint)), semNodeKindConstraints__parampatterns_186(n, (*(*c).graph).config, ((NI) 1)));
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T10_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27));
		if (!(T7_)) goto LA8_;
		T7_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T10_ = NIM_NIL;
		T10_ = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		T6_ = eqStrings((*T10_).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_127));
		LA9_: ;
		if (!T6_) goto LA11_;
		result = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		unsureAsgnRef((void**) (&(*constraint)), semNodeKindConstraints__parampatterns_186(n, (*(*c).graph).config, ((NI) 2)));
	}
	goto LA1_;
	LA11_: ;
	{
		result = semTypeNode__sem_80(c, n, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMagic__sem_5062)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nPragmas;
{	result = (NIM_BOOL)0;
	nPragmas = (*(*sym).ast)._kind_6.sons->data[((NI) 4)];
	result = hasPragma__pragmas_2498(nPragmas, ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 74));
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmtSymbol__sem_8131)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, NIM_BOOL fromDotExpr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6):
	{
		result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), NIM_FALSE);
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		{
			NIM_BOOL T6_;
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			NI T11_;
			T6_ = (NIM_BOOL)0;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0));
			if (!(T8_)) goto LA9_;
			T8_ = ((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
			LA9_: ;
			T7_ = T8_;
			if (!(T7_)) goto LA10_;
			T11_ = (NI)0;
			T11_ = len__ast_4002((*s).typ);
			T7_ = (T11_ == ((NI) 1));
			LA10_: ;
			T6_ = T7_;
			if (!(T6_)) goto LA12_;
			T6_ = !(fromDotExpr);
			LA12_: ;
			if (!T6_) goto LA13_;
			result = semTemplateExpr__sem_519(c, n, s, 8192);
			result = semGenericStmt__sem_8113(c, result, 0, ctx);
		}
		goto LA4_;
		LA13_: ;
		{
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), NIM_FALSE);
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
	{
		{
			NIM_BOOL T19_;
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			NI T24_;
			T19_ = (NIM_BOOL)0;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			T21_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0));
			if (!(T21_)) goto LA22_;
			T21_ = ((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
			LA22_: ;
			T20_ = T21_;
			if (!(T20_)) goto LA23_;
			T24_ = (NI)0;
			T24_ = len__ast_4002((*s).typ);
			T20_ = (T24_ == ((NI) 1));
			LA23_: ;
			T19_ = T20_;
			if (!(T19_)) goto LA25_;
			T19_ = !(fromDotExpr);
			LA25_: ;
			if (!T19_) goto LA26_;
			result = semMacroExpr__sem_524(c, n, n, s, 8192);
			result = semGenericStmt__sem_8113(c, result, 0, ctx);
		}
		goto LA17_;
		LA26_: ;
		{
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), NIM_FALSE);
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
	{
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = !(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T32_)) goto LA33_;
			T32_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
			LA33_: ;
			if (!T32_) goto LA34_;
			{
				if (!!(((*(*s).typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA38_;
				result = (*(*s).typ).n;
			}
			goto LA36_;
			LA38_: ;
			{
				result = n;
			}
			LA36_: ;
		}
		goto LA30_;
		LA34_: ;
		{
			result = newSymNodeTypeDesc__semfold_835(s, (*c).Sup.idgen, (*n).info);
		}
		LA30_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
	{
		{
			NIM_BOOL T46_;
			T46_ = (NIM_BOOL)0;
			T46_ = !(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T46_)) goto LA47_;
			T46_ = (((*(*s).typ).flags & 100663296) == 0);
			LA47_: ;
			if (!T46_) goto LA48_;
			result = newSymNodeTypeDesc__semfold_835(s, (*c).Sup.idgen, (*n).info);
		}
		goto LA44_;
		LA48_: ;
		{
			result = n;
		}
		LA44_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20):
	{
		{
			if (!(((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 15))&31U)))!=0)) goto LA54_;
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), NIM_FALSE);
		}
		goto LA52_;
		LA54_: ;
		{
			result = newSymNode__ast_3719(s, (*n).info);
		}
		LA52_: ;
	}
	break;
	default:
	{
		result = newSymNode__ast_3719(s, (*n).info);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lookup__sem_8193)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
	NIM_BOOL amb;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T1_;
	result = NIM_NIL;
	result = n;
	ident = considerQuotedIdent__lookups_28(c, n, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	amb = NIM_FALSE;
	T1_ = NIM_NIL;
	T1_ = searchInScopes__lookups_423(c, ident, (&amb));
	s = skipAlias__lookups_118(T1_, n, (*(*c).graph).config);
	{
		if (!(s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA4_;
		s = strTableGet__astalgo_3383((*c).pureEnumFields, ident);
	}
	LA4_: ;
	{
		if (!(s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA8_;
		{
			NIM_BOOL T12_;
			NIM_BOOL T13_;
			T12_ = (NIM_BOOL)0;
			T13_ = (NIM_BOOL)0;
			T13_ = contains__astalgo_3489((&(*ctx).toMixin), (*ident).id);
			T12_ = !(T13_);
			if (!(T12_)) goto LA14_;
			T12_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 2))&7U)))!=0));
			LA14_: ;
			if (!T12_) goto LA15_;
			errorUndeclaredIdentifier__lookups_1199(c, (*n).info, (*ident).s, ((NimStringDesc*) NIM_NIL));
		}
		LA15_: ;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NIM_BOOL T20_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym2002_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 0))&7U)))!=0);
			if (T20_) goto LA21_;
			xX60gensym2002_ = s;
			T20_ = contains__astalgo_3489((&(*ctx).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym2002_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2002_).Sup.itemId.item))));
			LA21_: ;
			if (!T20_) goto LA22_;
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
		}
		goto LA18_;
		LA22_: ;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sX60gensym2003_;
			NIM_BOOL T25_;
			NIM_BOOL T27_;
			NIM_BOOL T28_;
			sX60gensym2003_ = s;
			T25_ = (NIM_BOOL)0;
			T25_ = contains__astalgo_3489((&(*ctx).toMixin), (*(*sX60gensym2003_).name).id);
			if (T25_) goto LA26_;
			T27_ = (NIM_BOOL)0;
			T28_ = (NIM_BOOL)0;
			T28_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 3))&7U)))!=0);
			if (!(T28_)) goto LA29_;
			T28_ = ((*sX60gensym2003_).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
			LA29_: ;
			T27_ = T28_;
			if (!(T27_)) goto LA30_;
			T27_ = ((OverloadableSyms__ast_3007 &((NU32)1<<((NU)((*sX60gensym2003_).kind)&31U)))!=0);
			LA30_: ;
			T25_ = T27_;
			LA26_: ;
			if (!T25_) goto LA31_;
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), NIM_FALSE);
		}
		goto LA18_;
		LA31_: ;
		{
			result = semGenericStmtSymbol__sem_8131(c, n, s, ctx, flags, NIM_FALSE);
		}
		LA18_: ;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDot__sem_8259)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*n).info);
	add__ast_4797(result, (*n)._kind_6.sons->data[((NI) 0)]);
	add__ast_4797(result, b);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fuzzyLookup__sem_8272)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx, NIM_BOOL* isMacro) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ luf;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	result = NIM_NIL;
	{
		if (!!(((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 2))&7U)))!=0))) goto LA3_;
		luf = 6;
	}
	goto LA1_;
	LA3_: ;
	{
		luf = 4;
	}
	LA1_: ;
	s = qualifiedLookUp__lookups_1233(c, n, luf);
	{
		if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA8_;
		result = semGenericStmtSymbol__sem_8131(c, n, s, ctx, flags, NIM_FALSE);
	}
	goto LA6_;
	LA8_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
		tySequence__eHqUwlHGGaPw0TDPDeL79cQ* candidates;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 0)], flags, ctx));
		result = n;
		n_2 = (*n)._kind_6.sons->data[((NI) 1)];
		ident = considerQuotedIdent__lookups_28(c, n_2, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		candidates = searchInScopesFilterBy__lookups_464(c, ident, 520192);
		{
			NI T13_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
			T13_ = (candidates ? candidates->Sup.len : 0);
			if (!(((NI) 0) < T13_)) goto LA14_;
			s_2 = candidates->data[((NI) 0)];
			(*isMacro) = ((393216 &((NU32)1<<((NU)((*s_2).kind)&31U)))!=0);
			{
				NIM_BOOL T18_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym2020_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
				T18_ = (NIM_BOOL)0;
				T18_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 0))&7U)))!=0);
				if (T18_) goto LA19_;
				xX60gensym2020_ = s_2;
				T18_ = contains__astalgo_3489((&(*ctx).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym2020_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2020_).Sup.itemId.item))));
				LA19_: ;
				if (!T18_) goto LA20_;
				T22_ = NIM_NIL;
				T22_ = symChoice__sem_6586(c, n_2, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
				result = newDot__sem_8259(result, T22_);
			}
			goto LA16_;
			LA20_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sX60gensym2021_;
				NIM_BOOL T24_;
				NIM_BOOL T26_;
				NIM_BOOL T27_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
				sX60gensym2021_ = s_2;
				T24_ = (NIM_BOOL)0;
				T24_ = contains__astalgo_3489((&(*ctx).toMixin), (*(*sX60gensym2021_).name).id);
				if (T24_) goto LA25_;
				T26_ = (NIM_BOOL)0;
				T27_ = (NIM_BOOL)0;
				T27_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 3))&7U)))!=0);
				if (!(T27_)) goto LA28_;
				T27_ = ((*sX60gensym2021_).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
				LA28_: ;
				T26_ = T27_;
				if (!(T26_)) goto LA29_;
				T26_ = ((OverloadableSyms__ast_3007 &((NU32)1<<((NU)((*sX60gensym2021_).kind)&31U)))!=0);
				LA29_: ;
				T24_ = T26_;
				LA25_: ;
				if (!T24_) goto LA30_;
				T32_ = NIM_NIL;
				T32_ = symChoice__sem_6586(c, n_2, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), NIM_FALSE);
				result = newDot__sem_8259(result, T32_);
			}
			goto LA16_;
			LA30_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* syms;
				syms = semGenericStmtSymbol__sem_8131(c, n_2, s_2, ctx, flags, NIM_TRUE);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* choice;
					if (!((*syms).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA36_;
					choice = symChoice__sem_6586(c, n_2, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), NIM_FALSE);
					transitionSonsKind__ast_4359(choice, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 56));
					result = newDot__sem_8259(result, choice);
				}
				goto LA34_;
				LA36_: ;
				{
					result = newDot__sem_8259(result, syms);
				}
				LA34_: ;
			}
			LA16_: ;
		}
		LA14_: ;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMixinStmt__sem_6701)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* toMixin) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI count;
	result = NIM_NIL;
	result = copyNode__ast_4336(n);
	count = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T4_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
				NI T5_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = NIM_NIL;
				T4_ = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[i], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				incl__pureZcollectionsZintsets_55(toMixin, (*T4_).id);
				x = symChoice__sem_6586(c, (*n)._kind_6.sons->data[i], ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), NIM_FALSE);
				T5_ = (NI)0;
				T5_ = len__ast_3198(x);
				count += T5_;
				add__ast_4797(result, x);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		if (!(count == ((NI) 0))) goto LA8_;
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
	}
	LA8_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBindStmt__sem_6647)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* toBind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = copyNode__ast_4336(n);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				s = qualifiedLookUp__lookups_1233(c, a, 2);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc;
					if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA6_;
					sc = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym1627_;
						if (!((*sc).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA10_;
						xX60gensym1627_ = (*sc)._kind_4.sym;
						incl__pureZcollectionsZintsets_55(toBind, (NI)((NI)((NU64)(((NI) ((*xX60gensym1627_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1627_).Sup.itemId.item))));
						add__ast_4797(result, sc);
					}
					goto LA8_;
					LA10_: ;
					{
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
							x = NIM_NIL;
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = safeLen__ast_3191(sc);
								i_4 = ((NI) 0);
								{
									while (1) {
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym1628_;
										if (!(i_4 < colontmp__2)) goto LA16;
										i_3 = i_4;
										x = (*sc)._kind_6.sons->data[i_3];
										xX60gensym1628_ = (*x)._kind_4.sym;
										incl__pureZcollectionsZintsets_55(toBind, (NI)((NI)((NU64)(((NI) ((*xX60gensym1628_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1628_).Sup.itemId.item))));
										add__ast_4797(result, x);
										i_4 += ((NI) 1);
									} LA16: ;
								}
							}
						}
					}
					LA8_: ;
				}
				goto LA4_;
				LA6_: ;
				{
					illFormedAst__semdata_1071(a, (*(*c).graph).config);
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmtScope__sem_8118)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	result = semGenericStmt__sem_8113(c, n, flags, ctx);
	closeScope__lookups_101(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSymS__sem_453)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T3_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = considerQuotedIdent__lookups_28(c, n, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	T2_ = nextSymId__ast_3132((*c).Sup.idgen);
	T3_ = NIM_NIL;
	T3_ = getCurrOwner__semdata_315(c);
	result = newSym__ast_3445(kind, T1_, T2_, T3_, (*n).info, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getIdentNode__sem_8093)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		result = getIdentNode__sem_8093(c, (*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		result = getIdentNode__sem_8093(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = n;
	}
	break;
	default:
	{
		illFormedAst__semdata_1071(n, (*(*c).graph).config);
		result = n;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addTempDecl__sem_8354)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	T1_ = NIM_NIL;
	T1_ = getIdentNode__sem_8093(c, n);
	s = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T1_, c);
	addPrelimDecl__lookups_848(c, s);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
		if (!(T4_)) goto LA5_;
		T4_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
		LA5_: ;
		if (!T4_) goto LA6_;
		nep1CheckDefImpl__linter_110((*(*c).graph).config, (*n).info, s, kind);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmt__sem_8113)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags, tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		result = lookup__sem_8193(c, n, flags, ctx);
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = !((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			if (!(T4_)) goto LA5_;
			T4_ = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			LA5_: ;
			if (!T4_) goto LA6_;
			markUsed__sigmatch_85(c, (*n).info, (*result)._kind_4.sym);
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NIM_BOOL dummy;
		dummy = (NIM_BOOL)0;
		result = fuzzyLookup__sem_8272(c, n, flags, ctx, (&dummy));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b;
		a = (*n)._kind_4.sym;
		b = getGenSym__semdata_408(c, a);
		{
			if (!!((b == a))) goto LA12_;
			asgnRef((void**) (&(*n)._kind_4.sym), b);
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55):
	{
		result = semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 1), ctx);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
	{
		result = semMixinStmt__sem_6701(c, n, (&(*ctx).toMixin));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
	{
		result = semBindStmt__sem_6647(c, n, (&(*ctx).toBind));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fn;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		NI first;
		NIM_BOOL mixinContext;
		tySet_tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA flags_2;
		checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
		fn = (*n)._kind_6.sons->data[((NI) 0)];
		s = qualifiedLookUp__lookups_1233(c, fn, 0);
		{
			NIM_BOOL T21_;
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T27_;
			NIM_BOOL T28_;
			NimStringDesc* T31_;
			T21_ = (NIM_BOOL)0;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T23_ = (s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
			if (!(T23_)) goto LA24_;
			T23_ = ((12 & flags) == 0);
			LA24_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA25_;
			T22_ = ((*fn).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*fn).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53));
			LA25_: ;
			T21_ = T22_;
			if (!(T21_)) goto LA26_;
			T27_ = NIM_NIL;
			T27_ = considerQuotedIdent__lookups_28(c, fn, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
			T28_ = (NIM_BOOL)0;
			T28_ = contains__astalgo_3489((&(*ctx).toMixin), (*T27_).id);
			T21_ = !(T28_);
			LA26_: ;
			if (!T21_) goto LA29_;
			T31_ = NIM_NIL;
			T31_ = renderTree__renderer_46(fn, 0);
			errorUndeclaredIdentifier__lookups_1199(c, (*n).info, T31_, ((NimStringDesc*) NIM_NIL));
		}
		LA29_: ;
		first = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 3))&7U)))!=0);
		mixinContext = NIM_FALSE;
		{
			tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA whichChoice;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc;
			if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA34_;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
			mixinContext = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 1) || (*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 2) || (*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 3) || (*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 4) || (*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 140));
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym2045_;
				NIM_BOOL T38_;
				xX60gensym2045_ = s;
				T38_ = (NIM_BOOL)0;
				T38_ = contains__astalgo_3489((&(*ctx).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym2045_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2045_).Sup.itemId.item))));
				if (!T38_) goto LA39_;
				whichChoice = ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0);
			}
			goto LA36_;
			LA39_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sX60gensym2046_;
				NIM_BOOL T42_;
				NIM_BOOL T44_;
				NIM_BOOL T45_;
				sX60gensym2046_ = s;
				T42_ = (NIM_BOOL)0;
				T42_ = contains__astalgo_3489((&(*ctx).toMixin), (*(*sX60gensym2046_).name).id);
				if (T42_) goto LA43_;
				T44_ = (NIM_BOOL)0;
				T45_ = (NIM_BOOL)0;
				T45_ = ((flags &((NU8)1<<((NU)(((tyEnum_TSemGenericFlag__awL4DUaf8OhTzyAenbxDoA) 3))&7U)))!=0);
				if (!(T45_)) goto LA46_;
				T45_ = ((*sX60gensym2046_).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
				LA46_: ;
				T44_ = T45_;
				if (!(T44_)) goto LA47_;
				T44_ = ((OverloadableSyms__ast_3007 &((NU32)1<<((NU)((*sX60gensym2046_).kind)&31U)))!=0);
				LA47_: ;
				T42_ = T44_;
				LA43_: ;
				if (!T42_) goto LA48_;
				whichChoice = ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2);
			}
			goto LA36_;
			LA48_: ;
			{
				whichChoice = ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1);
			}
			LA36_: ;
			sc = symChoice__sem_6586(c, fn, s, whichChoice, NIM_FALSE);
			switch ((*s).kind) {
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
			{
				{
					NIM_BOOL T54_;
					NIM_BOOL T55_;
					NIM_BOOL T57_;
					NI T58_;
					NI T61_;
					T54_ = (NIM_BOOL)0;
					T55_ = (NIM_BOOL)0;
					T55_ = ((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
					if (!(T55_)) goto LA56_;
					T57_ = (NIM_BOOL)0;
					T58_ = (NI)0;
					T58_ = len__ast_4002((*s).typ);
					T57_ = (T58_ == ((NI) 1));
					if (T57_) goto LA59_;
					T57_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
					LA59_: ;
					T55_ = T57_;
					LA56_: ;
					T54_ = T55_;
					if (!(T54_)) goto LA60_;
					T61_ = (NI)0;
					T61_ = safeLen__ast_3191(sc);
					T54_ = (T61_ <= ((NI) 1));
					LA60_: ;
					if (!T54_) goto LA62_;
					result = semMacroExpr__sem_524(c, n, n, s, 8192);
					result = semGenericStmt__sem_8113(c, result, flags, ctx);
				}
				goto LA52_;
				LA62_: ;
				{
					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), sc);
					result = n;
				}
				LA52_: ;
				mixinContext = NIM_TRUE;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
			{
				{
					NIM_BOOL T68_;
					NIM_BOOL T69_;
					NIM_BOOL T71_;
					NI T72_;
					NI T75_;
					T68_ = (NIM_BOOL)0;
					T69_ = (NIM_BOOL)0;
					T69_ = ((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
					if (!(T69_)) goto LA70_;
					T71_ = (NIM_BOOL)0;
					T72_ = (NI)0;
					T72_ = len__ast_4002((*s).typ);
					T71_ = (T72_ == ((NI) 1));
					if (T71_) goto LA73_;
					T71_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
					LA73_: ;
					T69_ = T71_;
					LA70_: ;
					T68_ = T69_;
					if (!(T68_)) goto LA74_;
					T75_ = (NI)0;
					T75_ = safeLen__ast_3191(sc);
					T68_ = (T75_ <= ((NI) 1));
					LA74_: ;
					if (!T68_) goto LA76_;
					result = semTemplateExpr__sem_519(c, n, s, 8192);
					result = semGenericStmt__sem_8113(c, result, flags, ctx);
				}
				goto LA66_;
				LA76_: ;
				{
					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), sc);
					result = n;
				}
				LA66_: ;
				mixinContext = NIM_TRUE;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
			{
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6):
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), sc);
				first = ((NI) 1);
				{
					if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 267))) goto LA83_;
					first = safeLen__ast_3191(result);
				}
				LA83_: ;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNodeTypeDesc__semfold_835(s, (*c).Sup.idgen, (*fn).info));
				first = ((NI) 1);
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
			{
				{
					NIM_BOOL T89_;
					T89_ = (NIM_BOOL)0;
					T89_ = !(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
					if (!(T89_)) goto LA90_;
					T89_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
					LA90_: ;
					if (!T89_) goto LA91_;
					asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNodeTypeDesc__semfold_835(s, (*c).Sup.idgen, (*fn).info));
					first = ((NI) 1);
				}
				LA91_: ;
			}
			break;
			default:
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3719(s, (*fn).info));
				first = ((NI) 1);
			}
			break;
			}
		}
		goto LA32_;
		LA34_: ;
		{
			if (!((*fn).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA95_;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), fuzzyLookup__sem_8272(c, fn, flags, ctx, (&mixinContext)));
			first = ((NI) 1);
		}
		goto LA32_;
		LA95_: ;
		LA32_: ;
		{
			if (!mixinContext) goto LA99_;
			flags_2 = (flags | 4);
		}
		goto LA97_;
		LA99_: ;
		{
			flags_2 = flags;
		}
		LA97_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(result);
			i_2 = first;
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA104;
					i = i_2;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), semGenericStmt__sem_8113(c, (*result)._kind_6.sons->data[i], flags_2, ctx));
					i_2 += ((NI) 1);
				} LA104: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T106_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T107_;
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		T106_ = NIM_NIL;
		T106_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_127));
		T107_ = NIM_NIL;
		T107_ = newIdentNode__ast_3712(T106_, (*n).info);
		add__ast_4797(result, T107_);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA110;
					i_3 = i_4;
					add__ast_4797(result, (*n)._kind_6.sons->data[i_3]);
					i_4 += ((NI) 1);
				} LA110: ;
			}
		}
		result = semGenericStmt__sem_8113(c, result, flags, ctx);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T112_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T113_;
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		T112_ = NIM_NIL;
		T112_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_27));
		T113_ = NIM_NIL;
		T113_ = newIdentNode__ast_3712(T112_, (*n).info);
		add__ast_4797(result, T113_);
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3198(n);
			i_6 = ((NI) 0);
			{
				while (1) {
					if (!(i_6 < colontmp__3)) goto LA116;
					i_5 = i_6;
					add__ast_4797(result, (*n)._kind_6.sons->data[i_5]);
					i_6 += ((NI) 1);
				} LA116: ;
			}
		}
		result = semGenericStmt__sem_8113(c, result, flags, ctx);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_2;
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k;
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
		a_2 = (*n)._kind_6.sons->data[((NI) 0)];
		b_2 = (*n)._kind_6.sons->data[((NI) 1)];
		k = (*a_2).kind;
		switch (k) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
		{
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T119_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T120_;
			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
			T119_ = NIM_NIL;
			T119_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_131));
			T120_ = NIM_NIL;
			T120_ = newIdentNode__ast_3712(T119_, (*n).info);
			add__ast_4797(result, T120_);
			{
				NI i_7;
				NI colontmp__4;
				NI i_8;
				i_7 = (NI)0;
				colontmp__4 = (NI)0;
				colontmp__4 = len__ast_3198(a_2);
				i_8 = ((NI) 0);
				{
					while (1) {
						if (!(i_8 < colontmp__4)) goto LA123;
						i_7 = i_8;
						add__ast_4797(result, (*a_2)._kind_6.sons->data[i_7]);
						i_8 += ((NI) 1);
					} LA123: ;
				}
			}
			add__ast_4797(result, b_2);
			result = semGenericStmt__sem_8113(c, result, flags, ctx);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		{
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T125_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T126_;
			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
			T125_ = NIM_NIL;
			T125_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_132));
			T126_ = NIM_NIL;
			T126_ = newIdentNode__ast_3712(T125_, (*n).info);
			add__ast_4797(result, T126_);
			{
				NI i_9;
				NI colontmp__5;
				NI i_10;
				i_9 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = len__ast_3198(a_2);
				i_10 = ((NI) 0);
				{
					while (1) {
						if (!(i_10 < colontmp__5)) goto LA129;
						i_9 = i_10;
						add__ast_4797(result, (*a_2)._kind_6.sons->data[i_9]);
						i_10 += ((NI) 1);
					} LA129: ;
				}
			}
			add__ast_4797(result, b_2);
			result = semGenericStmt__sem_8113(c, result, flags, ctx);
		}
		break;
		default:
		{
			{
				NI i_11;
				NI colontmp__6;
				NI i_12;
				i_11 = (NI)0;
				colontmp__6 = (NI)0;
				colontmp__6 = len__ast_3198(n);
				i_12 = ((NI) 0);
				{
					while (1) {
						if (!(i_12 < colontmp__6)) goto LA133;
						i_11 = i_12;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_11]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[i_11], flags, ctx));
						i_12 += ((NI) 1);
					} LA133: ;
				}
			}
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		{
			NI i_13;
			NI colontmp__7;
			NI i_14;
			i_13 = (NI)0;
			colontmp__7 = (NI)0;
			colontmp__7 = len__ast_3198(n);
			i_14 = ((NI) 0);
			{
				while (1) {
					if (!(i_14 < colontmp__7)) goto LA137;
					i_13 = i_14;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_13]), semGenericStmtScope__sem_8118(c, (*n)._kind_6.sons->data[i_13], flags, ctx));
					i_14 += ((NI) 1);
				} LA137: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		{
			NI i_15;
			NI colontmp__8;
			NI i_16;
			i_15 = (NI)0;
			colontmp__8 = (NI)0;
			colontmp__8 = len__ast_3198(n);
			i_16 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					if (!(i_16 < colontmp__8)) goto LA141;
					i_15 = i_16;
					it = (*n)._kind_6.sons->data[i_15];
					{
						if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86))) goto LA144_;
						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i_15])._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8113(c, (*it)._kind_6.sons->data[((NI) 0)], flags, ctx));
						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i_15])._kind_6.sons->data[((NI) 1)]), semGenericStmt__sem_8113(c, (*it)._kind_6.sons->data[((NI) 1)], (flags | 4), ctx));
					}
					goto LA142_;
					LA144_: ;
					{
						asgnRef((void**) (&(*n)._kind_6.sons->data[i_15]), semGenericStmt__sem_8113(c, it, (flags | 4), ctx));
					}
					LA142_: ;
					i_16 += ((NI) 1);
				} LA141: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T148_;
		T148_ = NIM_NIL;
		T148_ = openScope__lookups_69(c);
		{
			NI i_17;
			NI colontmp__9;
			NI i_18;
			i_17 = (NI)0;
			colontmp__9 = (NI)0;
			colontmp__9 = len__ast_3198(n);
			i_18 = ((NI) 0);
			{
				while (1) {
					if (!(i_18 < colontmp__9)) goto LA151;
					i_17 = i_18;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_17]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[i_17], flags, ctx));
					i_18 += ((NI) 1);
				} LA151: ;
			}
		}
		closeScope__lookups_101(c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T153_;
		T153_ = NIM_NIL;
		T153_ = openScope__lookups_69(c);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 0)], flags, ctx));
		{
			NI i_19;
			NI colontmp__10;
			NI i_20;
			i_19 = (NI)0;
			colontmp__10 = (NI)0;
			colontmp__10 = len__ast_3198(n);
			i_20 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_3;
					NI T161_;
					NI T162_;
					if (!(i_20 < colontmp__10)) goto LA156;
					i_19 = i_20;
					a_3 = (*n)._kind_6.sons->data[i_19];
					checkMinSonsLen__semdata_1084(a_3, ((NI) 1), (*(*c).graph).config);
					{
						NI j;
						NI colontmp__11;
						NI T158_;
						NI i_21;
						j = (NI)0;
						colontmp__11 = (NI)0;
						T158_ = (NI)0;
						T158_ = len__ast_3198(a_3);
						colontmp__11 = (NI)(T158_ - ((NI) 1));
						i_21 = ((NI) 0);
						{
							while (1) {
								if (!(i_21 < colontmp__11)) goto LA160;
								j = i_21;
								asgnRef((void**) (&(*a_3)._kind_6.sons->data[j]), semGenericStmt__sem_8113(c, (*a_3)._kind_6.sons->data[j], flags, ctx));
								i_21 += ((NI) 1);
							} LA160: ;
						}
					}
					T161_ = (NI)0;
					T161_ = len__ast_3198(a_3);
					T162_ = (NI)0;
					T162_ = len__ast_3198(a_3);
					asgnRef((void**) (&(*a_3)._kind_6.sons->data[(NI)(T161_ - ((NI) 1))]), semGenericStmtScope__sem_8118(c, (*a_3)._kind_6.sons->data[(NI)(T162_ - ((NI) 1))], flags, ctx));
					i_20 += ((NI) 1);
				} LA156: ;
			}
		}
		closeScope__lookups_101(c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T164_;
		NI T165_;
		NI T166_;
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T184_;
		NI T185_;
		NI T186_;
		T164_ = NIM_NIL;
		T164_ = openScope__lookups_69(c);
		T165_ = (NI)0;
		T165_ = len__ast_3198(n);
		T166_ = (NI)0;
		T166_ = len__ast_3198(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T165_ - ((NI) 2))]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[(NI)(T166_ - ((NI) 2))], flags, ctx));
		{
			NI i_22;
			NI colontmp__12;
			NI T168_;
			NI i_23;
			i_22 = (NI)0;
			colontmp__12 = (NI)0;
			T168_ = (NI)0;
			T168_ = len__ast_3198(n);
			colontmp__12 = (NI)(T168_ - ((NI) 2));
			i_23 = ((NI) 0);
			{
				while (1) {
					if (!(i_23 < colontmp__12)) goto LA170;
					i_22 = i_23;
					{
						if (!((*(*n)._kind_6.sons->data[i_22]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA173_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s_2;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__13;
							s_2 = NIM_NIL;
							colontmp__13 = NIM_NIL;
							colontmp__13 = (*n)._kind_6.sons->data[i_22];
							{
								NI i_24;
								NI colontmp__14;
								NI i_25;
								i_24 = (NI)0;
								colontmp__14 = (NI)0;
								colontmp__14 = safeLen__ast_3191(colontmp__13);
								i_25 = ((NI) 0);
								{
									while (1) {
										if (!(i_25 < colontmp__14)) goto LA178;
										i_24 = i_25;
										s_2 = (*colontmp__13)._kind_6.sons->data[i_24];
										{
											if (!((*s_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA181_;
											addTempDecl__sem_8354(c, s_2, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
										}
										LA181_: ;
										i_25 += ((NI) 1);
									} LA178: ;
								}
							}
						}
					}
					goto LA171_;
					LA173_: ;
					{
						addTempDecl__sem_8354(c, (*n)._kind_6.sons->data[i_22], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
					}
					LA171_: ;
					i_23 += ((NI) 1);
				} LA170: ;
			}
		}
		T184_ = NIM_NIL;
		T184_ = openScope__lookups_69(c);
		T185_ = (NI)0;
		T185_ = len__ast_3198(n);
		T186_ = (NI)0;
		T186_ = len__ast_3198(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T185_ - ((NI) 1))]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[(NI)(T186_ - ((NI) 1))], flags, ctx));
		closeScope__lookups_101(c);
		closeScope__lookups_101(c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 129):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T188_;
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
		T188_ = NIM_NIL;
		T188_ = openScope__lookups_69(c);
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA191_;
			addTempDecl__sem_8354(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22));
		}
		LA191_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 1)], flags, ctx));
		closeScope__lookups_101(c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*c).graph).config);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmtScope__sem_8118(c, (*n)._kind_6.sons->data[((NI) 0)], flags, ctx));
		{
			NI i_26;
			NI colontmp__15;
			NI i_27;
			i_26 = (NI)0;
			colontmp__15 = (NI)0;
			colontmp__15 = len__ast_3198(n);
			i_27 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_4;
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T197_;
					NI T209_;
					NI T210_;
					if (!(i_27 < colontmp__15)) goto LA196;
					i_26 = i_27;
					a_4 = (*n)._kind_6.sons->data[i_26];
					checkMinSonsLen__semdata_1084(a_4, ((NI) 1), (*(*c).graph).config);
					T197_ = NIM_NIL;
					T197_ = openScope__lookups_69(c);
					{
						NI j_2;
						NI colontmp__16;
						NI T199_;
						NI i_28;
						j_2 = (NI)0;
						colontmp__16 = (NI)0;
						T199_ = (NI)0;
						T199_ = len__ast_3198(a_4);
						colontmp__16 = (NI)(T199_ - ((NI) 1));
						i_28 = ((NI) 0);
						{
							while (1) {
								if (!(i_28 < colontmp__16)) goto LA201;
								j_2 = i_28;
								{
									NIM_BOOL T204_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T207_;
									T204_ = (NIM_BOOL)0;
									T204_ = isInfixAs__ast_4935((*a_4)._kind_6.sons->data[j_2]);
									if (!T204_) goto LA205_;
									T207_ = NIM_NIL;
									T207_ = getIdentNode__sem_8093(c, (*(*a_4)._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 2)]);
									addTempDecl__sem_8354(c, T207_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
									asgnRef((void**) (&(*(*a_4)._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 1)]), semGenericStmt__sem_8113(c, (*(*a_4)._kind_6.sons->data[j_2])._kind_6.sons->data[((NI) 1)], (flags | 2), ctx));
								}
								goto LA202_;
								LA205_: ;
								{
									asgnRef((void**) (&(*a_4)._kind_6.sons->data[j_2]), semGenericStmt__sem_8113(c, (*a_4)._kind_6.sons->data[j_2], (flags | 2), ctx));
								}
								LA202_: ;
								i_28 += ((NI) 1);
							} LA201: ;
						}
					}
					T209_ = (NI)0;
					T209_ = len__ast_3198(a_4);
					T210_ = (NI)0;
					T210_ = len__ast_3198(a_4);
					asgnRef((void**) (&(*a_4)._kind_6.sons->data[(NI)(T209_ - ((NI) 1))]), semGenericStmtScope__sem_8118(c, (*a_4)._kind_6.sons->data[(NI)(T210_ - ((NI) 1))], flags, ctx));
					closeScope__lookups_101(c);
					i_27 += ((NI) 1);
				} LA196: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
		tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw varKind;
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
		{
			varKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
		{
			varKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9);
		}
		break;
		default:
		{
			varKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10);
		}
		break;
		}
		{
			NI i_29;
			NI colontmp__17;
			NI i_30;
			i_29 = (NI)0;
			colontmp__17 = (NI)0;
			colontmp__17 = len__ast_3198(n);
			i_30 = ((NI) 0);
			{
				while (1) {
					if (!(i_30 < colontmp__17)) goto LA217;
					i_29 = i_30;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_5;
						a_5 = (*n)._kind_6.sons->data[i_29];
						switch ((*a_5).kind) {
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
						{
							goto LA218;
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36):
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102):
						{
							NI T221_;
							NI T222_;
							NI T223_;
							NI T224_;
							checkMinSonsLen__semdata_1084(a_5, ((NI) 3), (*(*c).graph).config);
							T221_ = (NI)0;
							T221_ = len__ast_3198(a_5);
							T222_ = (NI)0;
							T222_ = len__ast_3198(a_5);
							asgnRef((void**) (&(*a_5)._kind_6.sons->data[(NI)(T221_ - ((NI) 2))]), semGenericStmt__sem_8113(c, (*a_5)._kind_6.sons->data[(NI)(T222_ - ((NI) 2))], (flags | 2), ctx));
							T223_ = (NI)0;
							T223_ = len__ast_3198(a_5);
							T224_ = (NI)0;
							T224_ = len__ast_3198(a_5);
							asgnRef((void**) (&(*a_5)._kind_6.sons->data[(NI)(T223_ - ((NI) 1))]), semGenericStmt__sem_8113(c, (*a_5)._kind_6.sons->data[(NI)(T224_ - ((NI) 1))], flags, ctx));
							{
								NI j_3;
								NI colontmp__18;
								NI T226_;
								NI i_31;
								j_3 = (NI)0;
								colontmp__18 = (NI)0;
								T226_ = (NI)0;
								T226_ = len__ast_3198(a_5);
								colontmp__18 = (NI)(T226_ - ((NI) 2));
								i_31 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T229_;
										if (!(i_31 < colontmp__18)) goto LA228;
										j_3 = i_31;
										T229_ = NIM_NIL;
										T229_ = getIdentNode__sem_8093(c, (*a_5)._kind_6.sons->data[j_3]);
										addTempDecl__sem_8354(c, T229_, varKind);
										i_31 += ((NI) 1);
									} LA228: ;
								}
							}
						}
						break;
						default:
						{
							illFormedAst__semdata_1071(a_5, (*(*c).graph).config);
						}
						break;
						}
					} LA218: ;
					i_30 += ((NI) 1);
				} LA217: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75):
	{
		{
			NI i_32;
			NI colontmp__19;
			NI i_33;
			i_32 = (NI)0;
			colontmp__19 = (NI)0;
			colontmp__19 = len__ast_3198(n);
			i_33 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_6;
					NI T239_;
					NI T240_;
					if (!(i_33 < colontmp__19)) goto LA234;
					i_32 = i_33;
					a_6 = (*n)._kind_6.sons->data[i_32];
					{
						if (!!(((*a_6).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)))) goto LA237_;
						illFormedAst__semdata_1071(a_6, (*(*c).graph).config);
					}
					LA237_: ;
					checkMinSonsLen__semdata_1084(a_6, ((NI) 3), (*(*c).graph).config);
					T239_ = (NI)0;
					T239_ = len__ast_3198(a_6);
					T240_ = (NI)0;
					T240_ = len__ast_3198(a_6);
					asgnRef((void**) (&(*a_6)._kind_6.sons->data[(NI)(T239_ - ((NI) 2))]), semGenericStmt__sem_8113(c, (*a_6)._kind_6.sons->data[(NI)(T240_ - ((NI) 2))], (flags | 2), ctx));
					{
						NI j_4;
						NI colontmp__20;
						NI T242_;
						NI i_34;
						j_4 = (NI)0;
						colontmp__20 = (NI)0;
						T242_ = (NI)0;
						T242_ = len__ast_3198(a_6);
						colontmp__20 = (NI)(T242_ - ((NI) 2));
						i_34 = ((NI) 0);
						{
							while (1) {
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T245_;
								if (!(i_34 < colontmp__20)) goto LA244;
								j_4 = i_34;
								T245_ = NIM_NIL;
								T245_ = getIdentNode__sem_8093(c, (*a_6)._kind_6.sons->data[j_4]);
								addTempDecl__sem_8354(c, T245_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
								i_34 += ((NI) 1);
							} LA244: ;
						}
					}
					i_33 += ((NI) 1);
				} LA234: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		{
			NI i_35;
			NI colontmp__21;
			NI i_36;
			i_35 = (NI)0;
			colontmp__21 = (NI)0;
			colontmp__21 = len__ast_3198(n);
			i_36 = ((NI) 0);
			{
				while (1) {
					if (!(i_36 < colontmp__21)) goto LA249;
					i_35 = i_36;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_7;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T259_;
						a_7 = (*n)._kind_6.sons->data[i_35];
						{
							if (!((*a_7).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA253_;
							goto LA250;
						}
						LA253_: ;
						{
							if (!!(((*a_7).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA257_;
							illFormedAst__semdata_1071(a_7, (*(*c).graph).config);
						}
						LA257_: ;
						checkSonsLen__semdata_1077(a_7, ((NI) 3), (*(*c).graph).config);
						T259_ = NIM_NIL;
						T259_ = getIdentNode__sem_8093(c, (*a_7)._kind_6.sons->data[((NI) 0)]);
						addTempDecl__sem_8354(c, T259_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
					} LA250: ;
					i_36 += ((NI) 1);
				} LA249: ;
			}
		}
		{
			NI i_37;
			NI colontmp__22;
			NI i_38;
			i_37 = (NI)0;
			colontmp__22 = (NI)0;
			colontmp__22 = len__ast_3198(n);
			i_38 = ((NI) 0);
			{
				while (1) {
					if (!(i_38 < colontmp__22)) goto LA262;
					i_37 = i_38;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_8;
						a_8 = (*n)._kind_6.sons->data[i_37];
						{
							if (!((*a_8).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA266_;
							goto LA263;
						}
						LA266_: ;
						{
							if (!!(((*a_8).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA270_;
							illFormedAst__semdata_1071(a_8, (*(*c).graph).config);
						}
						LA270_: ;
						checkSonsLen__semdata_1077(a_8, ((NI) 3), (*(*c).graph).config);
						{
							tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T276_;
							if (!!(((*(*a_8)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA274_;
							T276_ = NIM_NIL;
							T276_ = openScope__lookups_69(c);
							asgnRef((void**) (&(*a_8)._kind_6.sons->data[((NI) 1)]), semGenericStmt__sem_8113(c, (*a_8)._kind_6.sons->data[((NI) 1)], flags, ctx));
							asgnRef((void**) (&(*a_8)._kind_6.sons->data[((NI) 2)]), semGenericStmt__sem_8113(c, (*a_8)._kind_6.sons->data[((NI) 2)], (flags | 2), ctx));
							closeScope__lookups_101(c);
						}
						goto LA272_;
						LA274_: ;
						{
							asgnRef((void**) (&(*a_8)._kind_6.sons->data[((NI) 2)]), semGenericStmt__sem_8113(c, (*a_8)._kind_6.sons->data[((NI) 2)], (flags | 2), ctx));
						}
						LA272_: ;
					} LA263: ;
					i_38 += ((NI) 1);
				} LA262: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150):
	{
		{
			NI T281_;
			T281_ = (NI)0;
			T281_ = len__ast_3198(n);
			if (!(((NI) 0) < T281_)) goto LA282_;
			{
				if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA286_;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 2), ctx));
			}
			LA286_: ;
			{
				NI i_39;
				NI colontmp__23;
				NI i_40;
				i_39 = (NI)0;
				colontmp__23 = (NI)0;
				colontmp__23 = len__ast_3198(n);
				i_40 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_9;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T294_;
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T295_;
						if (!(i_40 < colontmp__23)) goto LA290;
						i_39 = i_40;
						a_9 = NIM_NIL;
						switch ((*(*n)._kind_6.sons->data[i_39]).kind) {
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 151):
						{
							a_9 = (*(*n)._kind_6.sons->data[i_39])._kind_6.sons->data[((NI) 0)];
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
						{
							a_9 = (*n)._kind_6.sons->data[i_39];
						}
						break;
						default:
						{
							illFormedAst__semdata_1071(n, (*(*c).graph).config);
						}
						break;
						}
						T294_ = NIM_NIL;
						T294_ = getIdentNode__sem_8093(c, a_9);
						T295_ = NIM_NIL;
						T295_ = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T294_, c);
						addDecl__lookups_845(c, T295_);
						i_40 += ((NI) 1);
					} LA290: ;
				}
			}
		}
		LA282_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 135):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76):
	{
		checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
		{
			NI i_41;
			NI colontmp__24;
			NI i_42;
			i_41 = (NI)0;
			colontmp__24 = (NI)0;
			colontmp__24 = len__ast_3198(n);
			i_42 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_10;
					NI T305_;
					NI T306_;
					NI T307_;
					NI T308_;
					if (!(i_42 < colontmp__24)) goto LA300;
					i_41 = i_42;
					a_10 = (*n)._kind_6.sons->data[i_41];
					{
						if (!!(((*a_10).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)))) goto LA303_;
						illFormedAst__semdata_1071(a_10, (*(*c).graph).config);
					}
					LA303_: ;
					checkMinSonsLen__semdata_1084(a_10, ((NI) 3), (*(*c).graph).config);
					T305_ = (NI)0;
					T305_ = len__ast_3198(a_10);
					T306_ = (NI)0;
					T306_ = len__ast_3198(a_10);
					asgnRef((void**) (&(*a_10)._kind_6.sons->data[(NI)(T305_ - ((NI) 2))]), semGenericStmt__sem_8113(c, (*a_10)._kind_6.sons->data[(NI)(T306_ - ((NI) 2))], (flags | 2), ctx));
					T307_ = (NI)0;
					T307_ = len__ast_3198(a_10);
					T308_ = (NI)0;
					T308_ = len__ast_3198(a_10);
					asgnRef((void**) (&(*a_10)._kind_6.sons->data[(NI)(T307_ - ((NI) 1))]), semGenericStmt__sem_8113(c, (*a_10)._kind_6.sons->data[(NI)(T308_ - ((NI) 1))], flags, ctx));
					{
						NI j_5;
						NI colontmp__25;
						NI T310_;
						NI i_43;
						j_5 = (NI)0;
						colontmp__25 = (NI)0;
						T310_ = (NI)0;
						T310_ = len__ast_3198(a_10);
						colontmp__25 = (NI)(T310_ - ((NI) 2));
						i_43 = ((NI) 0);
						{
							while (1) {
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T313_;
								if (!(i_43 < colontmp__25)) goto LA312;
								j_5 = i_43;
								T313_ = NIM_NIL;
								T313_ = getIdentNode__sem_8093(c, (*a_10)._kind_6.sons->data[j_5]);
								addTempDecl__sem_8354(c, T313_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
								i_43 += ((NI) 1);
							} LA312: ;
						}
					}
					i_42 += ((NI) 1);
				} LA300: ;
			}
		}
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA316_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 0)], (flags | 2), ctx));
		}
		LA316_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T324_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		checkSonsLen__semdata_1077(n, ((NI) 7), (*(*c).graph).config);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T323_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA321_;
			T323_ = NIM_NIL;
			T323_ = getIdentNode__sem_8093(c, (*n)._kind_6.sons->data[((NI) 0)]);
			addTempDecl__sem_8354(c, T323_, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
		}
		LA321_: ;
		T324_ = NIM_NIL;
		T324_ = openScope__lookups_69(c);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 2)], flags, ctx));
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA327_;
			{
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T333_;
				tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T334_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T335_;
				if (!!(((*(*(*n)._kind_6.sons->data[((NI) 3)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA331_;
				T333_ = NIM_NIL;
				T333_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102));
				T334_ = nextSymId__ast_3132((*c).Sup.idgen);
				T335_ = NIM_NIL;
				T335_ = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T333_, T334_, ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), (*n).info, 0);
				addPrelimDecl__lookups_848(c, T335_);
			}
			LA331_: ;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 3)]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 3)], flags, ctx));
		}
		LA327_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 4)]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 4)], flags, ctx));
		body = NIM_NIL;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_3;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA338_;
			s_3 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				NIM_BOOL T342_;
				T342_ = (NIM_BOOL)0;
				T342_ = (((*s_3).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0);
				if (!(T342_)) goto LA343_;
				T342_ = ((*s_3).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				LA343_: ;
				if (!T342_) goto LA344_;
				body = (*n)._kind_6.sons->data[((NI) 6)];
			}
			goto LA340_;
			LA344_: ;
			{
				body = getBody__modulegraphs_11241((*c).graph, s_3);
			}
			LA340_: ;
		}
		goto LA336_;
		LA338_: ;
		{
			body = (*n)._kind_6.sons->data[((NI) 6)];
		}
		LA336_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semGenericStmtScope__sem_8118(c, body, flags, ctx));
		closeScope__lookups_101(c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	{
		checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*c).graph).config);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[((NI) 1)], flags, ctx));
	}
	break;
	default:
	{
		{
			NI i_44;
			NI colontmp__26;
			NI i_45;
			i_44 = (NI)0;
			colontmp__26 = (NI)0;
			colontmp__26 = len__ast_3198(n);
			i_45 = ((NI) 0);
			{
				while (1) {
					if (!(i_45 < colontmp__26)) goto LA353;
					i_44 = i_45;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_44]), semGenericStmt__sem_8113(c, (*n)._kind_6.sons->data[i_44], flags, ctx));
					i_45 += ((NI) 1);
				} LA353: ;
			}
		}
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semGenericStmt__sem_2885)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w ctx;
	result = NIM_NIL;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toMixin));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toBind));
	result = semGenericStmt__sem_8113(c, n, 0, (&ctx));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, addImplicitGeneric__sem_4737)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typeClass, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* typId, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, NimStringDesc* paramName) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* finalTypId;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T24_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T34_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
{	result = NIM_NIL;
	{
		if (!(genericParams == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = eqeq___idents_220(typId, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
		if (!!(T7_)) goto LA8_;
		finalTypId = typId;
	}
	goto LA5_;
	LA8_: ;
	{
		NimStringDesc* T11_;
		T11_ = NIM_NIL;
		T11_ = rawNewString((paramName ? paramName->Sup.len : 0) + 5);
appendString(T11_, paramName);
appendString(T11_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_141));
		finalTypId = getIdent__idents_143((*c).cache, T11_);
	}
	LA5_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(genericParams);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA14;
				i = i_2;
				{
					if (!((*(*(*(*genericParams)._kind_6.sons->data[i])._kind_4.sym).name).id == (*finalTypId).id)) goto LA17_;
					result = (*(*genericParams)._kind_6.sons->data[i]).typ;
					goto BeforeRet_;
				}
				LA17_: ;
				i_2 += ((NI) 1);
			} LA14: ;
		}
	}
	{
		if (!!(((*typeClass).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA21_;
		owner = (*typeClass).sym;
	}
	goto LA19_;
	LA21_: ;
	{
		owner = getCurrOwner__semdata_315(c);
	}
	LA19_: ;
	T24_ = nextSymId__ast_3132((*c).Sup.idgen);
	s = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), finalTypId, T24_, owner, info, 0);
	{
		if (!(((*owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA27_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 23)) & 63);
	}
	LA27_: ;
	{
		NIM_BOOL T31_;
		T31_ = (NIM_BOOL)0;
		T31_ = eqeq___idents_220(typId, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
		if (!T31_) goto LA32_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34)) & 63);
	}
	LA32_: ;
	T34_ = NIM_NIL;
	T34_ = linkTo__ast_3532(s, typeClass);
	(*typeClass).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 26)) & 63);
	(*s).position = len__ast_3198(genericParams);
	T35_ = NIM_NIL;
	T35_ = newSymNode__ast_3716(s);
	add__ast_4797(genericParams, T35_);
	result = typeClass;
	addDecl__lookups_845(c, s);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, instGenericContainer__sem_1125)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* header, NIM_BOOL allowMetaTypes) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg cl;
	tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ* T5_;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T6_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* genericTyp;
	result = NIM_NIL;
	{
		NimStringDesc* argX60gensym168_;
		if (!!(((*header).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9)))) goto LA3_;
		argX60gensym168_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_148);
		internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym168_, TM__rF9caJawfOjYTjsgLVUSGFA_148);
	}
	LA3_: ;
	nimZeroMem((void*)(&cl), sizeof(tyObject_TReplTypeVars__gMP9b9b8d4Uze3mE5G9aP9afmg));
	initIdTable__ast_4096((&cl.symMap));
	initIdTable__ast_4096((&cl.localCache));
	T5_ = NIM_NIL;
	T5_ = (tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ*) newObj((&NTIlayeredidtable__zSq8dodcWpSdfE0WaiBU9cw_), sizeof(tyObject_LayeredIdTablecolonObjectType___VAXPousy5FCnCEYMcHN9bDQ));
	cl.typeMap = T5_;
	initIdTable__ast_4096((&(*cl.typeMap).topLayer));
	cl.info = info;
	cl.c = c;
	cl.allowMetaTypes = allowMetaTypes;
	T6_ = NIM_NIL;
	T6_ = openScope__lookups_69(c);
	genericTyp = base__types_63(header);
	{
		NI i;
		NI colontmp_;
		NI T8_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T8_ = (NI)0;
		T8_ = len__ast_4002(genericTyp);
		colontmp_ = (NI)(T8_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TType__facALICuu8zUj0hjvbTLFg* genParam;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
				if (!(i_2 < colontmp_)) goto LA10;
				i = i_2;
				genParam = (*genericTyp).sons->data[i];
				param = NIM_NIL;
				{
					tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T15_;
					if (!((*genParam).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA13_;
					T15_ = nextSymId__ast_3132((*c).Sup.idgen);
					param = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10), (*(*genParam).sym).name, T15_, (*genericTyp).sym, (*(*genParam).sym).info, 0);
					asgnRef((void**) (&(*param).ast), (*(*header).sons->data[(NI)(i + ((NI) 1))]).n);
					asgnRef((void**) (&(*param).typ), (*header).sons->data[(NI)(i + ((NI) 1))]);
				}
				goto LA11_;
				LA13_: ;
				{
					tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T17_;
					T17_ = nextSymId__ast_3132((*c).Sup.idgen);
					param = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), (*(*genParam).sym).name, T17_, (*genericTyp).sym, (*(*genParam).sym).info, 0);
					asgnRef((void**) (&(*param).typ), makeTypeDesc__concepts_49(c, (*header).sons->data[(NI)(i + ((NI) 1))]));
				}
				LA11_: ;
				(*param).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				addDecl__lookups_845(c, param);
				i_2 += ((NI) 1);
			} LA10: ;
		}
	}
	result = replaceTypeVarsT__semtypinst_178((&cl), header);
	closeScope__lookups_101(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, liftParamType__sem_4789)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw procKind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TType__facALICuu8zUj0hjvbTLFg* paramType, NimStringDesc* paramName, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL anon) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* paramTypId;
{	result = NIM_NIL;
	{
		if (!(paramType == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = !(anon);
		if (!(T7_)) goto LA8_;
		T7_ = !(((*paramType).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		LA8_: ;
		if (!T7_) goto LA9_;
		paramTypId = (*(*paramType).sym).name;
	}
	goto LA5_;
	LA9_: ;
	{
		paramTypId = ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL);
	}
	LA5_: ;
	switch ((*paramType).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T13_;
		T13_ = NIM_NIL;
		T13_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12), c);
		result = addImplicitGeneric__sem_4737(c, T13_, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL), info, genericParams, paramName);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* lifted;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T26_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
		tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T39_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
		{
			NIM_BOOL T17_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T18_;
			T17_ = (NIM_BOOL)0;
			T18_ = NIM_NIL;
			T18_ = base__types_63(paramType);
			T17_ = !(((*T18_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
			if (!(T17_)) goto LA19_;
			T17_ = !(((*paramType).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			LA19_: ;
			if (!T17_) goto LA20_;
			goto BeforeRet_;
		}
		LA20_: ;
		{
			if (!(((*paramType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0)) goto LA24_;
			goto BeforeRet_;
		}
		LA24_: ;
		T26_ = NIM_NIL;
		T26_ = base__types_63(paramType);
		lifted = liftParamType__sem_4789(c, procKind, genericParams, T26_, paramName, info, NIM_FALSE);
		{
			if (!!((lifted == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA29_;
			base = lifted;
		}
		goto LA27_;
		LA29_: ;
		{
			base = base__types_63(paramType);
		}
		LA27_: ;
		{
			NIM_BOOL T34_;
			NimStringDesc* T38_;
			T34_ = (NIM_BOOL)0;
			T34_ = isMetaType__ast_3495(base);
			if (!(T34_)) goto LA35_;
			T34_ = (procKind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
			LA35_: ;
			if (!T34_) goto LA36_;
			T38_ = NIM_NIL;
			T38_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_142), paramName);
			liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T38_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_143, NIM_FALSE);
		}
		LA36_: ;
		T39_ = NIM_NIL;
		T39_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
		asgnRef((void**) (&T39_->data[0]), base);
		T40_ = NIM_NIL;
		T40_ = newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), T39_);
		result = addImplicitGeneric__sem_4737(c, T40_, paramTypId, info, genericParams, paramName);
		{
			if (!!((result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA43_;
			(*result).flags = ((*result).flags | 16777728);
		}
		LA43_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	{
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
			tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T64_;
			if (!!((((*paramType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0))) goto LA48_;
			{
				NIM_BOOL T52_;
				NIM_BOOL T53_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T54_;
				NIM_BOOL T56_;
				NIM_BOOL T58_;
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T59_;
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T61_;
				T52_ = (NIM_BOOL)0;
				T53_ = (NIM_BOOL)0;
				T54_ = NIM_NIL;
				T54_ = base__types_63(paramType);
				T53_ = ((*T54_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0));
				if (!(T53_)) goto LA55_;
				T56_ = (NIM_BOOL)0;
				T56_ = eqeq___idents_220(paramTypId, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
				T53_ = !(T56_);
				LA55_: ;
				T52_ = T53_;
				if (!(T52_)) goto LA57_;
				T58_ = (NIM_BOOL)0;
				T59_ = NIM_NIL;
				T59_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_144));
				T58_ = ((*paramTypId).id == (*T59_).id);
				if (T58_) goto LA60_;
				T61_ = NIM_NIL;
				T61_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_145));
				T58_ = ((*paramTypId).id == (*T61_).id);
				LA60_: ;
				T52_ = T58_;
				LA57_: ;
				if (!T52_) goto LA62_;
				paramTypId = ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL);
			}
			LA62_: ;
			T64_ = NIM_NIL;
			T64_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
			asgnRef((void**) (&T64_->data[0]), base__types_63(paramType));
			t = newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), T64_);
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
			result = addImplicitGeneric__sem_4737(c, t, paramTypId, info, genericParams, paramName);
		}
		LA48_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
	{
		{
			NI T68_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T71_;
			T68_ = (NI)0;
			T68_ = len__ast_4002(paramType);
			if (!(T68_ == ((NI) 1))) goto LA69_;
			T71_ = NIM_NIL;
			T71_ = base__types_63(paramType);
			result = liftParamType__sem_4789(c, procKind, genericParams, T71_, paramName, info, NIM_TRUE);
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_4002(paramType);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
					if (!(i_2 < colontmp_)) goto LA75;
					i = i_2;
					t_2 = liftParamType__sem_4789(c, procKind, genericParams, (*paramType).sons->data[i], paramName, info, NIM_FALSE);
					{
						if (!!((t_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA78_;
						asgnRef((void**) (&(*paramType).sons->data[i]), t_2);
						result = paramType;
					}
					LA78_: ;
					i_2 += ((NI) 1);
				} LA75: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T81_;
		T81_ = NIM_NIL;
		T81_ = base__types_63(paramType);
		result = liftParamType__sem_4789(c, procKind, genericParams, T81_, paramName, info, NIM_FALSE);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			NIM_BOOL T85_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T87_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
			tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T90_;
			T85_ = (NIM_BOOL)0;
			T85_ = ((*paramType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
			if (!(T85_)) goto LA86_;
			T87_ = NIM_NIL;
			T87_ = lastSon__ast_3743(paramType);
			T85_ = ((*T87_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0));
			LA86_: ;
			if (!T85_) goto LA88_;
			T90_ = NIM_NIL;
			T90_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
			asgnRef((void**) (&T90_->data[0]), newTypeS__semdata_733((*paramType).kind, c));
			typ = newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51), T90_);
			result = addImplicitGeneric__sem_4737(c, typ, paramTypId, info, genericParams, paramName);
		}
		goto LA83_;
		LA88_: ;
		{
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_4002(paramType);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TType__facALICuu8zUj0hjvbTLFg* lifted_2;
						if (!(i_4 < colontmp__2)) goto LA94;
						i_3 = i_4;
						{
							NimStringDesc* T99_;
							NimStringDesc* T100_;
							if (!((*paramType).sons->data[i_3] == paramType)) goto LA97_;
							T99_ = NIM_NIL;
							T99_ = typeToString__types_50(paramType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
							T100_ = NIM_NIL;
							T100_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_146), T99_);
							liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T100_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_147, NIM_FALSE);
						}
						LA97_: ;
						lifted_2 = liftParamType__sem_4789(c, procKind, genericParams, (*paramType).sons->data[i_3], paramName, info, NIM_FALSE);
						{
							if (!!((lifted_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA103_;
							asgnRef((void**) (&(*paramType).sons->data[i_3]), lifted_2);
							result = paramType;
						}
						LA103_: ;
						i_4 += ((NI) 1);
					} LA94: ;
				}
			}
		}
		LA83_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
		tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T122_;
		result = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9), c);
		rawAddSon__ast_4288(result, paramType, NIM_TRUE);
		{
			NI i_5;
			NI colontmp__3;
			NI T107_;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			T107_ = (NI)0;
			T107_ = len__ast_4002(paramType);
			colontmp__3 = (NI)(T107_ - ((NI) 1));
			i_6 = ((NI) 0);
			{
				while (1) {
					if (!(i_6 < colontmp__3)) goto LA109;
					i_5 = i_6;
					{
						tyObject_TType__facALICuu8zUj0hjvbTLFg* staticCopy;
						if (!((*(*paramType).sons->data[i_5]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA112_;
						staticCopy = exactReplica__ast_4051((*paramType).sons->data[i_5]);
						(*staticCopy).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 27)) & 63);
						rawAddSon__ast_4288(result, staticCopy, NIM_TRUE);
					}
					goto LA110_;
					LA112_: ;
					{
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T115_;
						T115_ = NIM_NIL;
						T115_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59), c);
						rawAddSon__ast_4288(result, T115_, NIM_TRUE);
					}
					LA110_: ;
					i_6 += ((NI) 1);
				} LA109: ;
			}
		}
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T118_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T121_;
			T118_ = NIM_NIL;
			T118_ = lastSon__ast_3743(paramType);
			if (!((*T118_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52))) goto LA119_;
			(*result).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53);
			T121_ = NIM_NIL;
			T121_ = lastSon__ast_3743(paramType);
			rawAddSon__ast_4288(result, T121_, NIM_TRUE);
			result = addImplicitGeneric__sem_4737(c, result, paramTypId, info, genericParams, paramName);
			goto BeforeRet_;
		}
		LA119_: ;
		x = instGenericContainer__sem_1125(c, (*(*paramType).sym).info, result, NIM_TRUE);
		T122_ = NIM_NIL;
		T122_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 2);
		asgnRef((void**) (&T122_->data[0]), paramType);
		asgnRef((void**) (&T122_->data[1]), x);
		result = newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54), T122_);
		result = addImplicitGeneric__sem_4737(c, result, paramTypId, info, genericParams, paramName);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* liftBody;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T144_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T126_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* cp;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T129_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T130_;
			T126_ = NIM_NIL;
			T126_ = lastSon__ast_3743(paramType);
			if (!((*T126_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52))) goto LA127_;
			T129_ = nextTypeId__ast_3151((*c).Sup.idgen);
			T130_ = NIM_NIL;
			T130_ = getCurrOwner__semdata_315(c);
			cp = copyType__ast_4046(paramType, T129_, T130_);
			copyTypeProps__modulegraphs_8872((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), cp, paramType);
			(*cp).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53);
			result = addImplicitGeneric__sem_4737(c, cp, paramTypId, info, genericParams, paramName);
			goto BeforeRet_;
		}
		LA127_: ;
		{
			NI i_7;
			NI colontmp__4;
			NI T132_;
			NI i_8;
			i_7 = (NI)0;
			colontmp__4 = (NI)0;
			T132_ = (NI)0;
			T132_ = len__ast_4002(paramType);
			colontmp__4 = (NI)(T132_ - ((NI) 1));
			i_8 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* lifted_3;
					if (!(i_8 < colontmp__4)) goto LA134;
					i_7 = i_8;
					lifted_3 = liftParamType__sem_4789(c, procKind, genericParams, (*paramType).sons->data[i_7], paramName, info, NIM_FALSE);
					{
						if (!!((lifted_3 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA137_;
						asgnRef((void**) (&(*paramType).sons->data[i_7]), lifted_3);
						result = paramType;
						{
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T141_;
							NimStringDesc* argX60gensym1159_;
							T141_ = NIM_NIL;
							T141_ = lastSon__ast_3743(result);
							if (!!((((*T141_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21))&63U)))!=0))) goto LA142_;
							argX60gensym1159_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_149);
							internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym1159_, TM__rF9caJawfOjYTjsgLVUSGFA_149);
						}
						LA142_: ;
					}
					LA137_: ;
					i_8 += ((NI) 1);
				} LA134: ;
			}
		}
		T144_ = NIM_NIL;
		T144_ = lastSon__ast_3743(paramType);
		liftBody = liftParamType__sem_4789(c, procKind, genericParams, T144_, paramName, info, NIM_TRUE);
		{
			if (!!((liftBody == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA147_;
			result = liftBody;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21)) & 63);
		}
		LA147_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* body;
		{
			NI i_9;
			NI colontmp__5;
			NI i_10;
			i_9 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = len__ast_4002(paramType);
			i_10 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* lifted_4;
					if (!(i_10 < colontmp__5)) goto LA152;
					i_9 = i_10;
					lifted_4 = liftParamType__sem_4789(c, procKind, genericParams, (*paramType).sons->data[i_9], paramName, info, NIM_FALSE);
					{
						if (!!((lifted_4 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA155_;
						asgnRef((void**) (&(*paramType).sons->data[i_9]), lifted_4);
					}
					LA155_: ;
					i_10 += ((NI) 1);
				} LA152: ;
			}
		}
		body = base__types_63(paramType);
		{
			if (!((*body).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30) || (*body).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50))) goto LA159_;
			goto BeforeRet_;
		}
		LA159_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T163_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* expanded;
			T163_ = NIM_NIL;
			T163_ = lastSon__ast_3743(body);
			if (!((*T163_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52))) goto LA164_;
			expanded = instGenericContainer__sem_1125(c, info, paramType, NIM_TRUE);
			result = liftParamType__sem_4789(c, procKind, genericParams, expanded, paramName, info, NIM_TRUE);
		}
		LA164_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
	{
		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T167_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T168_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T169_;
		T167_ = nextTypeId__ast_3151((*c).Sup.idgen);
		T168_ = NIM_NIL;
		T168_ = getCurrOwner__semdata_315(c);
		T169_ = NIM_NIL;
		T169_ = copyType__ast_4046(paramType, T167_, T168_);
		result = addImplicitGeneric__sem_4737(c, T169_, paramTypId, info, genericParams, paramName);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
	{
		markUsed__sigmatch_85(c, (*(*paramType).sym).info, (*paramType).sym);
		{
			if (!(((*paramType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0)) goto LA173_;
			(*paramType).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30)) & 63));
			transitionGenericParamToType__ast_4390((*paramType).sym);
		}
		LA173_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semProcTypeNode__sem_5067)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, NIM_BOOL isType) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA check;
	NI counter;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* r;
	result = NIM_NIL;
	checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
	result = newProcType__sem_5053(c, (*n).info, prev);
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	initIntSet__pureZcollectionsZintsets_238((&check));
	counter = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
					NIM_BOOL hasType;
					NI T15_;
					NIM_BOOL hasDefault;
					NI T16_;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)))) goto LA7_;
						{
							NIM_BOOL T11_;
							T11_ = (NIM_BOOL)0;
							T11_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
							if (!(T11_)) goto LA12_;
							T11_ = (((*(*a)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2))&63U)))!=0);
							LA12_: ;
							if (!T11_) goto LA13_;
							goto LA4;
						}
						LA13_: ;
						illFormedAst__semdata_1071(a, (*(*c).graph).config);
					}
					LA7_: ;
					checkMinSonsLen__semdata_1084(a, ((NI) 3), (*(*c).graph).config);
					typ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
					def = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
					constraint = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
					T15_ = (NI)0;
					T15_ = len__ast_3198(a);
					hasType = !(((*(*a)._kind_6.sons->data[(NI)(T15_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
					T16_ = (NI)0;
					T16_ = len__ast_3198(a);
					hasDefault = !(((*(*a)._kind_6.sons->data[(NI)(T16_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
					{
						NI T21_;
						if (!hasType) goto LA19_;
						T21_ = (NI)0;
						T21_ = len__ast_3198(a);
						typ = semParamType__sem_5032(c, (*a)._kind_6.sons->data[(NI)(T21_ - ((NI) 2))], &constraint);
						{
							NIM_BOOL T24_;
							NIM_BOOL T26_;
							T24_ = (NIM_BOOL)0;
							T24_ = ((12288 &((NU32)1<<((NU)(kind)&31U)))!=0);
							if (!(T24_)) goto LA25_;
							T26_ = (NIM_BOOL)0;
							T26_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
							if (T26_) goto LA27_;
							T26_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
							LA27_: ;
							T24_ = T26_;
							LA25_: ;
							if (!T24_) goto LA28_;
							{
								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T32_;
								NIM_BOOL T33_;
								NI T36_;
								NimStringDesc* T37_;
								T32_ = NIM_NIL;
								T32_ = getCurrOwner__semdata_315(c);
								T33_ = (NIM_BOOL)0;
								T33_ = isMagic__sem_5062(T32_);
								if (!!(T33_)) goto LA34_;
								T36_ = (NI)0;
								T36_ = len__ast_3198(a);
								T37_ = NIM_NIL;
								T37_ = rawNewString(((*(*(*typ).sym).name).s ? (*(*(*typ).sym).name).s->Sup.len : 0) + 57);
appendString(T37_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
appendString(T37_, (*(*(*typ).sym).name).s);
appendString(T37_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_129));
								liMessage__msgs_1118((*(*c).graph).config, (*(*a)._kind_6.sons->data[(NI)(T36_ - ((NI) 2))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T37_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_130, NIM_FALSE);
							}
							LA34_: ;
						}
						LA28_: ;
					}
					LA19_: ;
					{
						NI T42_;
						if (!hasDefault) goto LA40_;
						T42_ = (NI)0;
						T42_ = len__ast_3198(a);
						def = (*a)._kind_6.sons->data[(NI)(T42_ - ((NI) 1))];
						{
							{
								NIM_BOOL T46_;
								T46_ = (NIM_BOOL)0;
								T46_ = isGenericParams__ast_4616(genericParams);
								if (!T46_) goto LA47_;
								def = semGenericStmt__sem_2885(c, def);
								{
									NIM_BOOL T51_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
									T51_ = (NIM_BOOL)0;
									T51_ = hasUnresolvedArgs__sem_142(c, def);
									if (!T51_) goto LA52_;
									T54_ = NIM_NIL;
									T54_ = copyTree__ast_4431(def);
									asgnRef((void**) (&(*def).typ), makeTypeFromExpr__semdata_804(c, T54_));
									goto LA43;
								}
								LA52_: ;
							}
							LA47_: ;
							def = semExprWithType__sem_56(c, def, 512);
							{
								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T57_;
								NIM_BOOL T58_;
								T57_ = NIM_NIL;
								T57_ = getCurrOwner__semdata_315(c);
								T58_ = (NIM_BOOL)0;
								T58_ = referencesAnotherParam__sem_1165(def, T57_);
								if (!T58_) goto LA59_;
								(*def).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19)) & 31);
							}
							LA59_: ;
						} LA43: ;
						{
							if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA63_;
							typ = (*def).typ;
							{
								NIM_BOOL T67_;
								NimStringDesc* T70_;
								NimStringDesc* T71_;
								T67_ = (NIM_BOOL)0;
								T67_ = isEmptyContainer__types_3626(typ);
								if (!T67_) goto LA68_;
								T70_ = NIM_NIL;
								T71_ = NIM_NIL;
								T71_ = dollar___renderer_2106((*a)._kind_6.sons->data[((NI) 0)]);
								T70_ = rawNewString((T71_ ? T71_->Sup.len : 0) + 37);
appendString(T70_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_133));
appendString(T70_, T71_);
appendString(T70_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
								liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T70_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_134, NIM_FALSE);
							}
							LA68_: ;
							{
								tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T76_;
								if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA74_;
								T76_ = NIM_NIL;
								T76_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
								asgnRef((void**) (&T76_->data[0]), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c));
								typ = newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), T76_);
								(*typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
							}
							LA74_: ;
						}
						goto LA61_;
						LA63_: ;
						{
							{
								NIM_BOOL T80_;
								T80_ = (NIM_BOOL)0;
								T80_ = containsGenericType__types_3360(typ);
								if (!!(T80_)) goto LA81_;
								def = fitNode__sem_70(c, typ, def, (*def).info);
							}
							goto LA78_;
							LA81_: ;
							{
								if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA84_;
								def = semConstExpr__sem_611(c, def);
								def = fitNode__sem_70(c, typ, def, (*def).info);
							}
							goto LA78_;
							LA84_: ;
							LA78_: ;
						}
						LA61_: ;
					}
					LA40_: ;
					{
						NIM_BOOL T88_;
						T88_ = (NIM_BOOL)0;
						T88_ = !(hasType);
						if (!(T88_)) goto LA89_;
						T88_ = !(hasDefault);
						LA89_: ;
						if (!T88_) goto LA90_;
						{
							if (!isType) goto LA94_;
							liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_135), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_136, NIM_FALSE);
						}
						LA94_: ;
						{
							if (!((393216 &((NU32)1<<((NU)(kind)&31U)))!=0)) goto LA98_;
							typ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6), c);
						}
						LA98_: ;
					}
					goto LA86_;
					LA90_: ;
					{
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T101_;
						T101_ = NIM_NIL;
						T101_ = skipTypes__ast_3735(typ, TM__rF9caJawfOjYTjsgLVUSGFA_137);
						if (!((*T101_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA102_;
						goto LA4;
					}
					goto LA86_;
					LA102_: ;
					LA86_: ;
					{
						NI j;
						NI colontmp__2;
						NI T105_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T105_ = (NI)0;
						T105_ = len__ast_3198(a);
						colontmp__2 = (NI)(T105_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* arg;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T108_;
								tyObject_TType__facALICuu8zUj0hjvbTLFg* lifted;
								tyObject_TType__facALICuu8zUj0hjvbTLFg* finalType;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T149_;
								if (!(i_3 < colontmp__2)) goto LA107;
								j = i_3;
								T108_ = NIM_NIL;
								{
									if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA111_;
									T108_ = (*(*a)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)];
								}
								goto LA109_;
								LA111_: ;
								{
									T108_ = (*a)._kind_6.sons->data[j];
								}
								LA109_: ;
								arg = newSymG__sem_458(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), T108_, c);
								{
									if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA116_;
									pragma__pragmas_123(c, arg, (*(*a)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_138, NIM_FALSE);
								}
								LA116_: ;
								{
									NIM_BOOL T120_;
									NIM_BOOL T121_;
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
									T120_ = (NIM_BOOL)0;
									T121_ = (NIM_BOOL)0;
									T121_ = !(hasType);
									if (!(T121_)) goto LA122_;
									T121_ = !(hasDefault);
									LA122_: ;
									T120_ = T121_;
									if (!(T120_)) goto LA123_;
									T120_ = !(((393216 &((NU32)1<<((NU)(kind)&31U)))!=0));
									LA123_: ;
									if (!T120_) goto LA124_;
									param = strTableGet__astalgo_3383((*c).signatures, (*arg).name);
									{
										if (!!((param == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA128_;
										typ = (*param).typ;
									}
									goto LA126_;
									LA128_: ;
									{
										NimStringDesc* T131_;
										T131_ = NIM_NIL;
										T131_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_139), (*(*arg).name).s);
										liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T131_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_140, NIM_FALSE);
										typ = errorType__semdata_1002(c);
									}
									LA126_: ;
								}
								LA124_: ;
								lifted = liftParamType__sem_4789(c, kind, genericParams, typ, (*(*arg).name).s, (*arg).info, NIM_FALSE);
								{
									if (!!((lifted == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA134_;
									finalType = lifted;
								}
								goto LA132_;
								LA134_: ;
								{
									finalType = skipIntLit__magicsys_124(typ, (*c).Sup.idgen);
								}
								LA132_: ;
								asgnRef((void**) (&(*arg).typ), finalType);
								(*arg).position = counter;
								asgnRef((void**) (&(*arg).constraint), constraint);
								counter += ((NI) 1);
								{
									NIM_BOOL T139_;
									T139_ = (NIM_BOOL)0;
									T139_ = !((def == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
									if (!(T139_)) goto LA140_;
									T139_ = !(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
									LA140_: ;
									if (!T139_) goto LA141_;
									asgnRef((void**) (&(*arg).ast), copyTree__ast_4431(def));
								}
								LA141_: ;
								{
									NIM_BOOL T145_;
									NimStringDesc* T148_;
									T145_ = (NIM_BOOL)0;
									T145_ = containsOrIncl__astalgo_402((&check), (*(*arg).name).id);
									if (!T145_) goto LA146_;
									T148_ = NIM_NIL;
									T148_ = rawNewString(((*(*arg).name).s ? (*(*arg).name).s->Sup.len : 0) + 23);
appendString(T148_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_150));
appendString(T148_, (*(*arg).name).s);
appendString(T148_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
									liMessage__msgs_1118((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T148_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_151, NIM_FALSE);
								}
								LA146_: ;
								T149_ = NIM_NIL;
								T149_ = newSymNode__ast_3716(arg);
								add__ast_4797((*result).n, T149_);
								rawAddSon__ast_4288(result, finalType, NIM_TRUE);
								addParamOrResult__sem_1024(c, arg, kind);
								{
									NIM_BOOL T152_;
									T152_ = (NIM_BOOL)0;
									T152_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
									if (!(T152_)) goto LA153_;
									T152_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
									LA153_: ;
									if (!T152_) goto LA154_;
									nep1CheckDefImpl__linter_110((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, arg, (*arg).kind);
								}
								LA154_: ;
								{
									if (!((IL64(422212465065984) & (*(*(*c).graph).config).globalOptions) == 0)) goto LA158_;
									asgnRef((void**) (&(*a)._kind_6.sons->data[j]), newSymNode__ast_3716(arg));
								}
								LA158_: ;
								i_3 += ((NI) 1);
							} LA107: ;
						}
					}
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	r = NIM_NIL;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA162_;
		r = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	}
	LA162_: ;
	{
		NIM_BOOL T166_;
		NIM_BOOL T167_;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
		T166_ = (NIM_BOOL)0;
		T167_ = (NIM_BOOL)0;
		T167_ = !((r == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T167_)) goto LA168_;
		T167_ = ((393216 &((NU32)1<<((NU)(kind)&31U)))!=0);
		LA168_: ;
		T166_ = T167_;
		if (!(T166_)) goto LA169_;
		T166_ = ((*r).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
		LA169_: ;
		if (!T166_) goto LA170_;
		info = (*(*n)._kind_6.sons->data[((NI) 0)]).info;
		liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 21), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_152), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_153, NIM_FALSE);
		r = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
	}
	LA170_: ;
	{
		if (!!((r == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA174_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T178_;
			tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw oldFlags;
			T178_ = NIM_NIL;
			T178_ = skipTypes__ast_3735(r, TM__rF9caJawfOjYTjsgLVUSGFA_137);
			if (!!(((*T178_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63)))) goto LA179_;
			{
				NIM_BOOL T183_;
				NimStringDesc* T187_;
				NimStringDesc* T188_;
				T183_ = (NIM_BOOL)0;
				T183_ = !(((393216 &((NU32)1<<((NU)(kind)&31U)))!=0));
				if (!(T183_)) goto LA184_;
				T183_ = ((*r).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7) || (*r).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
				LA184_: ;
				if (!T183_) goto LA185_;
				T187_ = NIM_NIL;
				T188_ = NIM_NIL;
				T188_ = typeToString__types_50(r, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T187_ = rawNewString((T188_ ? T188_->Sup.len : 0) + 53);
appendString(T187_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_154));
appendString(T187_, T188_);
appendString(T187_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_155));
				liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T187_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_156, NIM_FALSE);
			}
			goto LA181_;
			LA185_: ;
			{
				if (!((*r).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59))) goto LA190_;
				r = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6), c);
			}
			goto LA181_;
			LA190_: ;
			{
				if (!((*r).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA193_;
			}
			goto LA181_;
			LA193_: ;
			{
				{
					NIM_BOOL T198_;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* lifted_2;
					T198_ = (NIM_BOOL)0;
					T198_ = ((*r).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
					if (T198_) goto LA199_;
					T198_ = !((((*(*r).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0));
					LA199_: ;
					if (!T198_) goto LA200_;
					lifted_2 = liftParamType__sem_4789(c, kind, genericParams, r, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102), (*(*n)._kind_6.sons->data[((NI) 0)]).info, NIM_FALSE);
					{
						if (!!((lifted_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA204_;
						r = lifted_2;
						(*r).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 11)) & 63);
					}
					LA204_: ;
				}
				LA200_: ;
				r = skipIntLit__magicsys_124(r, (*c).Sup.idgen);
				{
					if (!(kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15))) goto LA208_;
					(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15)) & 63);
				}
				LA208_: ;
			}
			LA181_: ;
			asgnRef((void**) (&(*result).sons->data[((NI) 0)]), r);
			oldFlags = (*result).flags;
			propagateToOwner__ast_4219(result, r, NIM_TRUE);
			{
				if (!!((oldFlags == (*result).flags))) goto LA212_;
				{
					if (!!(((oldFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21))&63U)))!=0))) goto LA216_;
					(*result).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21)) & 63));
				}
				LA216_: ;
			}
			LA212_: ;
			asgnRef((void**) (&(*(*result).n).typ), r);
		}
		LA179_: ;
	}
	LA174_: ;
	{
		NIM_BOOL T220_;
		T220_ = (NIM_BOOL)0;
		T220_ = isGenericParams__ast_4616(genericParams);
		if (!T220_) goto LA221_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
			n_2 = NIM_NIL;
			{
				NI i_4;
				NI colontmp__3;
				NI i_5;
				i_4 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = safeLen__ast_3191(genericParams);
				i_5 = ((NI) 0);
				{
					while (1) {
						if (!(i_5 < colontmp__3)) goto LA226;
						i_4 = i_5;
						n_2 = (*genericParams)._kind_6.sons->data[i_4];
						{
							if (!((IL64(17179869185) & (*(*n_2)._kind_4.sym).flags) == 0)) goto LA229_;
							(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
						}
						LA229_: ;
						{
							if (!(((*(*(*n_2)._kind_4.sym).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0)) goto LA233_;
							transitionGenericParamToType__ast_4390((*n_2)._kind_4.sym);
							(*(*(*n_2)._kind_4.sym).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30)) & 63));
						}
						LA233_: ;
						i_5 += ((NI) 1);
					} LA226: ;
				}
			}
		}
	}
	LA221_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semParamList__sem_91)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* genericParams, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	asgnRef((void**) (&(*s).typ), semProcTypeNode__sem_5067(c, n, genericParams, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL), (*s).kind, NIM_FALSE));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newParam__sem_7841)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* x;
	result = NIM_NIL;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
	x = (*(*(*(*(*c).owner).typ).n)._kind_6.sons->data[(NI)((*s).position + ((NI) 1))])._kind_4.sym;
	result = newSymNode__ast_3719(x, (*n).info);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleSym__sem_7855)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	{
		if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*s).owner == (*c).owner);
			if (!(T7_)) goto LA8_;
			T7_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			LA8_: ;
			if (!T7_) goto LA9_;
			result = newParam__sem_7841(c, n, s);
		}
		goto LA5_;
		LA9_: ;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym1907_;
			NIM_BOOL T12_;
			xX60gensym1907_ = s;
			T12_ = (NIM_BOOL)0;
			T12_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1907_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1907_).Sup.itemId.item))));
			if (!T12_) goto LA13_;
			result = symChoice__sem_6586((*c).c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
		}
		goto LA5_;
		LA13_: ;
		{
			NIM_BOOL T16_;
			NIM_BOOL T18_;
			NI T19_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
			T16_ = (NIM_BOOL)0;
			T16_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18));
			if (!(T16_)) goto LA17_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NI)0;
			T19_ = len__ast_4002((*s).typ);
			T18_ = (T19_ == ((NI) 1));
			if (T18_) goto LA20_;
			T18_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
			LA20_: ;
			T16_ = T18_;
			LA17_: ;
			if (!T16_) goto LA21_;
			T23_ = NIM_NIL;
			T23_ = semTemplateExpr__sem_519((*c).c, n, s, 8192);
			result = semPatternBody__sem_7835(c, T23_);
		}
		goto LA5_;
		LA21_: ;
		{
		}
		LA5_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, expectParam__sem_7897)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	result = NIM_NIL;
	s = qualifiedLookUp__lookups_1233((*c).c, n, 0);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		T4_ = ((*s).owner == (*c).owner);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
		LA6_: ;
		if (!T3_) goto LA7_;
		result = newParam__sem_7841(c, n, s);
	}
	goto LA1_;
	LA7_: ;
	{
		liMessage__msgs_1118((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_157), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_160, NIM_FALSE);
		result = n;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPatternBody__sem_7835)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		s = qualifiedLookUp__lookups_1233((*c).c, n, 0);
		result = handleSym__sem_7855(c, n, s);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
	{
		result = semBindStmt__sem_6647((*c).c, n, (&(*c).toBind));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		{
			NI T7_;
			T7_ = (NI)0;
			T7_ = len__ast_3198(n);
			if (!!((T7_ == ((NI) 2)))) goto LA8_;
			liMessage__msgs_1118((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_157), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_158, NIM_FALSE);
		}
		goto LA5_;
		LA8_: ;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA11_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[((NI) 0)]));
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), expectParam__sem_7897(c, (*n)._kind_6.sons->data[((NI) 1)]));
		}
		goto LA5_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* opr;
			T14_ = (NIM_BOOL)0;
			T14_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30));
			if (!(T14_)) goto LA15_;
			T14_ = ((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
			LA15_: ;
			if (!T14_) goto LA16_;
			opr = (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
			{
				if (!eqStrings((*(*opr)._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_44))) goto LA20_;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[((NI) 0)]));
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)]), expectParam__sem_7897(c, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 1)]));
			}
			goto LA18_;
			LA20_: ;
			{
				liMessage__msgs_1118((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_157), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_161, NIM_FALSE);
			}
			LA18_: ;
		}
		goto LA5_;
		LA16_: ;
		{
			liMessage__msgs_1118((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_157), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_162, NIM_FALSE);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		{
			NIM_BOOL T27_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
			T27_ = (NIM_BOOL)0;
			T27_ = stupidStmtListExpr__trees_404(n);
			if (!T27_) goto LA28_;
			T30_ = NIM_NIL;
			T30_ = lastSon__ast_4832(n);
			result = semPatternBody__sem_7835(c, T30_);
		}
		goto LA25_;
		LA28_: ;
		{
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3198(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA34;
						i = i_2;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i]), semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[i]));
						i_2 += ((NI) 1);
					} LA34: ;
				}
			}
		}
		LA25_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
		s_2 = qualifiedLookUp__lookups_1233((*c).c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		{
			if (!!((s_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA38_;
			{
				NIM_BOOL T42_;
				T42_ = (NIM_BOOL)0;
				T42_ = ((*s_2).owner == (*c).owner);
				if (!(T42_)) goto LA43_;
				T42_ = ((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA43_: ;
				if (!T42_) goto LA44_;
			}
			goto LA40_;
			LA44_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym1944_;
				NIM_BOOL T47_;
				xX60gensym1944_ = s_2;
				T47_ = (NIM_BOOL)0;
				T47_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1944_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1944_).Sup.itemId.item))));
				if (!T47_) goto LA48_;
			}
			goto LA40_;
			LA48_: ;
			{
				NIM_BOOL T51_;
				NIM_BOOL T53_;
				NI T54_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T58_;
				T51_ = (NIM_BOOL)0;
				T51_ = ((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18));
				if (!(T51_)) goto LA52_;
				T53_ = (NIM_BOOL)0;
				T54_ = (NI)0;
				T54_ = len__ast_4002((*s_2).typ);
				T53_ = (T54_ == ((NI) 1));
				if (T53_) goto LA55_;
				T53_ = (((*s_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
				LA55_: ;
				T51_ = T53_;
				LA52_: ;
				if (!T51_) goto LA56_;
				T58_ = NIM_NIL;
				T58_ = semTemplateExpr__sem_519((*c).c, n, s_2, 8192);
				result = semPatternBody__sem_7835(c, T58_);
				goto BeforeRet_;
			}
			goto LA40_;
			LA56_: ;
			LA40_: ;
		}
		LA38_: ;
		{
			NIM_BOOL T61_;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* id;
			NIM_BOOL T63_;
			T61_ = (NIM_BOOL)0;
			T61_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
			if (!(T61_)) goto LA62_;
			id = considerQuotedIdent__lookups_28((*c).c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
			T63_ = (NIM_BOOL)0;
			T63_ = eqeq___idents_220(id, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
			T61_ = !(T63_);
			LA62_: ;
			if (!T61_) goto LA64_;
			{
				NIM_BOOL T68_;
				NI T72_;
				T68_ = (NIM_BOOL)0;
				T68_ = eqStrings((*id).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_163));
				if (T68_) goto LA69_;
				T68_ = eqStrings((*id).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_164));
				LA69_: ;
				if (!T68_) goto LA70_;
				T72_ = (NI)0;
				T72_ = len__ast_3198(n);
				result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 153), (*n).info, T72_);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3712(id, (*n).info));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[((NI) 1)]));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), expectParam__sem_7897(c, (*n)._kind_6.sons->data[((NI) 2)]));
				goto BeforeRet_;
			}
			goto LA66_;
			LA70_: ;
			{
				NI T76_;
				if (!eqStrings((*id).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_44))) goto LA74_;
				T76_ = (NI)0;
				T76_ = len__ast_3198(n);
				result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 153), (*n).info, T76_);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3712(id, (*n).info));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[((NI) 1)]));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 2)]), semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[((NI) 2)]));
				goto BeforeRet_;
			}
			goto LA66_;
			LA74_: ;
			LA66_: ;
		}
		LA64_: ;
		{
			NIM_BOOL T79_;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* id_2;
			NIM_BOOL T81_;
			T79_ = (NIM_BOOL)0;
			T79_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30));
			if (!(T79_)) goto LA80_;
			id_2 = considerQuotedIdent__lookups_28((*c).c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
			T81_ = (NIM_BOOL)0;
			T81_ = eqeq___idents_220(id_2, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
			T79_ = !(T81_);
			LA80_: ;
			if (!T79_) goto LA82_;
			{
				NI T88_;
				if (!eqStrings((*id_2).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_165))) goto LA86_;
				T88_ = (NI)0;
				T88_ = len__ast_3198(n);
				result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 153), (*n).info, T88_);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3712(id_2, (*n).info));
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[((NI) 1)]));
				goto BeforeRet_;
			}
			LA86_: ;
		}
		LA82_: ;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA91;
					i_3 = i_4;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_3]), semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[i_3]));
					i_4 += ((NI) 1);
				} LA91: ;
			}
		}
	}
	break;
	default:
	{
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_3;
			s_3 = qualifiedLookUp__lookups_1233((*c).c, n, 0);
			{
				if (!!((s_3 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA96_;
				{
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym1967_;
					NIM_BOOL T100_;
					xX60gensym1967_ = s_3;
					T100_ = (NIM_BOOL)0;
					T100_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1967_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1967_).Sup.itemId.item))));
					if (!T100_) goto LA101_;
					result = symChoice__sem_6586((*c).c, n, s_3, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
					goto BeforeRet_;
				}
				goto LA98_;
				LA101_: ;
				{
					result = newIdentNode__ast_3712((*s_3).name, (*n).info);
					goto BeforeRet_;
				}
				LA98_: ;
			}
			LA96_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
		{
			{
				NI T107_;
				T107_ = (NI)0;
				T107_ = len__ast_3198(n);
				if (!(T107_ == ((NI) 1))) goto LA108_;
				result = semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[((NI) 0)]);
				goto BeforeRet_;
			}
			LA108_: ;
		}
		break;
		default:
		{
		}
		break;
		}
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3198(n);
			i_6 = ((NI) 0);
			{
				while (1) {
					if (!(i_6 < colontmp__3)) goto LA113;
					i_5 = i_6;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_5]), semPatternBody__sem_7835(c, (*n)._kind_6.sons->data[i_5]));
					i_6 += ((NI) 1);
				} LA113: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPattern__sem_7129)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw ctx;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA T16_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	nimZeroMem((void*)(&ctx), sizeof(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toBind));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toMixin));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toInject));
	ctx.c = c;
	ctx.owner = getCurrOwner__semdata_315(c);
	T2_ = NIM_NIL;
	T2_ = semPatternBody__sem_7835((&ctx), n);
	result = flattenStmts__trees_355(T2_);
	{
		if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA5_;
		{
			NI T9_;
			T9_ = (NI)0;
			T9_ = len__ast_3198(result);
			if (!(T9_ == ((NI) 1))) goto LA10_;
			result = (*result)._kind_6.sons->data[((NI) 0)];
		}
		goto LA7_;
		LA10_: ;
		{
			NI T13_;
			T13_ = (NI)0;
			T13_ = len__ast_3198(result);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_166), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_167, NIM_FALSE);
		}
		goto LA7_;
		LA14_: ;
		LA7_: ;
	}
	LA5_: ;
	closeScope__lookups_101(c);
	nimZeroMem((void*)(&T16_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
	nimZeroMem((void*)(&T16_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
	T16_.sym = s;
	addPattern__semdata_692(c, T16_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addGenericParamListToScope__sem_11586)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA3_;
		illFormedAst__semdata_1071(n, (*(*c).graph).config);
	}
	LA3_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!(i_2 < colontmp_)) goto LA7;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA10_;
					addDecl__lookups_845(c, (*a)._kind_4.sym);
				}
				goto LA8_;
				LA10_: ;
				{
					illFormedAst__semdata_1071(a, (*(*c).graph).config);
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA7: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addParams__sem_96)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA6_;
					addParamOrResult__sem_1024(c, (*(*n)._kind_6.sons->data[i])._kind_4.sym, kind);
				}
				goto LA4_;
				LA6_: ;
				{
					illFormedAst__semdata_1071(n, (*(*c).graph).config);
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
static N_INLINE(NIM_BOOL, importantComments__options_3989)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((3991552 &((NU32)1<<((NU)((*conf).cmd)&31U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, canonType__sem_12664)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA3_;
		result = (*(*c).graph).sysTypes[(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))- 0];
	}
	goto LA1_;
	LA3_: ;
	{
		result = t;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, prevDestructor__sem_12672)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* prevOp, tyObject_TType__facALICuu8zUj0hjvbTLFg* obj, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NimStringDesc* msg;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = typeToString__types_50(obj, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	T1_ = rawNewString(((*(*prevOp).name).s ? (*(*prevOp).name).s->Sup.len : 0) + (T2_ ? T2_->Sup.len : 0) + 27);
appendString(T1_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_183));
appendString(T1_, (*(*prevOp).name).s);
appendString(T1_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_184));
appendString(T1_, T2_);
	msg = T1_;
	{
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		if (!!((((*prevOp).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0))) goto LA5_;
		T7_ = NIM_NIL;
		T8_ = NIM_NIL;
		T8_ = dollar___msgs_624((*(*c).graph).config, (*prevOp).info);
		T7_ = rawNewString((T8_ ? T8_->Sup.len : 0) + 56);
appendString(T7_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_185));
appendString(T7_, T8_);
		msg = resizeString(msg, (T7_ ? T7_->Sup.len : 0) + 0);
appendString(msg, T7_);
	}
	goto LA3_;
	LA5_: ;
	{
		NimStringDesc* T10_;
		NimStringDesc* T11_;
		T10_ = NIM_NIL;
		T11_ = NIM_NIL;
		T11_ = dollar___msgs_624((*(*c).graph).config, (*prevOp).info);
		T10_ = rawNewString((T11_ ? T11_->Sup.len : 0) + 33);
appendString(T10_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_186));
appendString(T10_, T11_);
		msg = resizeString(msg, (T10_ ? T10_->Sup.len : 0) + 0);
appendString(msg, T10_);
	}
	LA3_: ;
	liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_187, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(void, bindTypeHook__sem_12702)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	NIM_BOOL noError;
	NIM_BOOL cond;
	t = (*s).typ;
	noError = NIM_FALSE;
	{
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		NI T7_;
		if (!(op == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T7_ = (NI)0;
		T7_ = len__ast_4002(t);
		T6_ = (T7_ == ((NI) 2));
		if (!(T6_)) goto LA8_;
		T6_ = ((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		LA8_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA9_;
		T5_ = ((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
		LA9_: ;
		cond = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T13_;
		NIM_BOOL T14_;
		NIM_BOOL T15_;
		NI T16_;
		if (!(op == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3))) goto LA11_;
		T13_ = (NIM_BOOL)0;
		T14_ = (NIM_BOOL)0;
		T15_ = (NIM_BOOL)0;
		T16_ = (NI)0;
		T16_ = len__ast_4002(t);
		T15_ = (T16_ == ((NI) 3));
		if (!(T15_)) goto LA17_;
		T15_ = ((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		LA17_: ;
		T14_ = T15_;
		if (!(T14_)) goto LA18_;
		T14_ = ((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
		LA18_: ;
		T13_ = T14_;
		if (!(T13_)) goto LA19_;
		T13_ = ((*(*t).sons->data[((NI) 2)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26));
		LA19_: ;
		cond = T13_;
	}
	goto LA1_;
	LA11_: ;
	{
		NIM_BOOL T21_;
		NI T22_;
		T21_ = (NIM_BOOL)0;
		T22_ = (NI)0;
		T22_ = len__ast_4002(t);
		T21_ = (((NI) 2) <= T22_);
		if (!(T21_)) goto LA23_;
		T21_ = ((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		LA23_: ;
		cond = T21_;
	}
	LA1_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* obj;
		if (!cond) goto LA26_;
		obj = skipTypes__ast_3735((*t).sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_182);
		{
			while (1) {
				(*obj).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
				{
					if (!((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10) || (*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11))) goto LA32_;
					obj = lastSon__ast_3743(obj);
				}
				goto LA30_;
				LA32_: ;
				{
					if (!((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA35_;
					obj = (*obj).sons->data[((NI) 0)];
				}
				goto LA30_;
				LA35_: ;
				{
					goto LA28;
				}
				LA30_: ;
			}
		} LA28: ;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* ao;
			if (!((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13) || (*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28))) goto LA40_;
			obj = canonType__sem_12664(c, obj);
			ao = getAttachedOp__modulegraphs_4011((*c).graph, obj, op);
			{
				if (!(ao == s)) goto LA44_;
			}
			goto LA42_;
			LA44_: ;
			{
				NIM_BOOL T47_;
				T47_ = (NIM_BOOL)0;
				T47_ = (ao == 0);
				if (!(T47_)) goto LA48_;
				T47_ = !((((*obj).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38))&63U)))!=0));
				LA48_: ;
				if (!T47_) goto LA49_;
				setAttachedOp__modulegraphs_4407((*c).graph, (*(*c).module).position, obj, op, s);
			}
			goto LA42_;
			LA49_: ;
			{
				prevDestructor__sem_12672(c, ao, obj, (*n).info);
			}
			LA42_: ;
			noError = NIM_TRUE;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T54_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T55_;
				NimStringDesc* T58_;
				NimStringDesc* T59_;
				T54_ = NIM_NIL;
				T54_ = getModule__astalgo_216((*obj).owner);
				T55_ = NIM_NIL;
				T55_ = getModule__astalgo_216(s);
				if (!!((T54_ == T55_))) goto LA56_;
				T58_ = NIM_NIL;
				T59_ = NIM_NIL;
				T59_ = typeToString__types_50(obj, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T58_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + (T59_ ? T59_->Sup.len : 0) + 79);
appendString(T58_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_188));
appendString(T58_, (*(*s).name).s);
appendString(T58_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_189));
appendString(T58_, T59_);
appendString(T58_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_73));
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T58_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_190, NIM_FALSE);
			}
			LA56_: ;
		}
		LA40_: ;
	}
	LA26_: ;
	{
		NIM_BOOL T62_;
		T62_ = (NIM_BOOL)0;
		T62_ = !(noError);
		if (!(T62_)) goto LA63_;
		T62_ = !((((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0));
		LA63_: ;
		if (!T62_) goto LA64_;
		{
			if (!(op == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3))) goto LA68_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_191), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_192, NIM_FALSE);
		}
		goto LA66_;
		LA68_: ;
		{
			NimStringDesc* T71_;
			T71_ = NIM_NIL;
			T71_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 50);
appendString(T71_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_193));
appendString(T71_, (*(*s).name).s);
appendString(T71_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_194));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T71_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_195, NIM_FALSE);
		}
		LA66_: ;
	}
	LA64_: ;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35)) & 63);
}
N_LIB_PRIVATE N_NIMCALL(void, semOverride__sem_12811)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* name;
{	name = nsuNormalize((*(*s).name).s);
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_175))) goto LA1_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_176))) goto LA2_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_177))) goto LA2_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_178))) goto LA3_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_179))) goto LA3_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_180))) goto LA3_;
	if (eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_181))) goto LA4_;
	goto LA5_;
	LA1_: ;
	{
		bindTypeHook__sem_12702(c, s, n, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
	}
	goto LA6_;
	LA2_: ;
	{
		{
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NI T13_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T15_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T19_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T20_;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T13_ = (NI)0;
			T13_ = len__ast_4002((*s).typ);
			T12_ = (T13_ == ((NI) 2));
			if (!(T12_)) goto LA14_;
			T15_ = NIM_NIL;
			T15_ = skipTypes__ast_3735((*(*s).typ).sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_70);
			T12_ = ((*T15_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T15_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21));
			LA14_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA16_;
			T11_ = sameType__types_1824((*(*s).typ).sons->data[((NI) 1)], (*(*s).typ).sons->data[((NI) 0)], 0);
			LA16_: ;
			if (!T11_) goto LA17_;
			T19_ = NIM_NIL;
			T19_ = skipTypes__ast_3735((*(*s).typ).sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_70);
			T20_ = NIM_NIL;
			T20_ = lastSon__ast_3743(T19_);
			t = skipTypes__ast_3735(T20_, TM__rF9caJawfOjYTjsgLVUSGFA_70);
			{
				while (1) {
					{
						if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA25_;
						t = lastSon__ast_3743(t);
					}
					goto LA23_;
					LA25_: ;
					{
						if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA28_;
						t = (*t).sons->data[((NI) 0)];
					}
					goto LA23_;
					LA28_: ;
					{
						goto LA21;
					}
					LA23_: ;
				}
			} LA21: ;
			{
				if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28))) goto LA33_;
				{
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T37_;
					T37_ = NIM_NIL;
					T37_ = getAttachedOp__modulegraphs_4011((*c).graph, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4));
					if (!(T37_ == 0)) goto LA38_;
					setAttachedOp__modulegraphs_4407((*c).graph, (*(*c).module).position, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4), s);
				}
				goto LA35_;
				LA38_: ;
				{
					NimStringDesc* T41_;
					NimStringDesc* T42_;
					T41_ = NIM_NIL;
					T42_ = NIM_NIL;
					T42_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					T41_ = rawNewString((T42_ ? T42_->Sup.len : 0) + 35);
appendString(T41_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_196));
appendString(T41_, T42_);
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T41_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_197, NIM_FALSE);
				}
				LA35_: ;
			}
			goto LA31_;
			LA33_: ;
			{
				NimStringDesc* T44_;
				NimStringDesc* T45_;
				T44_ = NIM_NIL;
				T45_ = NIM_NIL;
				T45_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T44_ = rawNewString((T45_ ? T45_->Sup.len : 0) + 27);
appendString(T44_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_198));
appendString(T44_, T45_);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T44_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_199, NIM_FALSE);
			}
			LA31_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T48_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T49_;
				NimStringDesc* T52_;
				NimStringDesc* T53_;
				T48_ = NIM_NIL;
				T48_ = getModule__astalgo_216((*t).owner);
				T49_ = NIM_NIL;
				T49_ = getModule__astalgo_216(s);
				if (!!((T48_ == T49_))) goto LA50_;
				T52_ = NIM_NIL;
				T53_ = NIM_NIL;
				T53_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T52_ = rawNewString((name ? name->Sup.len : 0) + (T53_ ? T53_->Sup.len : 0) + 79);
appendString(T52_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_188));
appendString(T52_, name);
appendString(T52_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_189));
appendString(T52_, T53_);
appendString(T52_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_73));
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T52_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_200, NIM_FALSE);
			}
			LA50_: ;
		}
		goto LA9_;
		LA17_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_201), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_202, NIM_FALSE);
		}
		LA9_: ;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35)) & 63);
	}
	goto LA6_;
	LA3_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
		{
			if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 7))) goto LA58_;
			goto BeforeRet_;
		}
		LA58_: ;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35)) & 63);
		t_2 = (*s).typ;
		{
			NIM_BOOL T62_;
			NIM_BOOL T63_;
			NI T64_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* obj;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* objB;
			T62_ = (NIM_BOOL)0;
			T63_ = (NIM_BOOL)0;
			T64_ = (NI)0;
			T64_ = len__ast_4002(t_2);
			T63_ = (T64_ == ((NI) 3));
			if (!(T63_)) goto LA65_;
			T63_ = ((*t_2).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
			LA65_: ;
			T62_ = T63_;
			if (!(T62_)) goto LA66_;
			T62_ = ((*(*t_2).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
			LA66_: ;
			if (!T62_) goto LA67_;
			obj = (*(*t_2).sons->data[((NI) 1)]).sons->data[((NI) 0)];
			{
				while (1) {
					(*obj).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
					{
						if (!((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA73_;
						obj = lastSon__ast_3743(obj);
					}
					goto LA71_;
					LA73_: ;
					{
						if (!((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA76_;
						obj = (*obj).sons->data[((NI) 0)];
					}
					goto LA71_;
					LA76_: ;
					{
						goto LA69;
					}
					LA71_: ;
				}
			} LA69: ;
			objB = (*t_2).sons->data[((NI) 2)];
			{
				while (1) {
					{
						if (!((*objB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA83_;
						objB = lastSon__ast_3743(objB);
					}
					goto LA81_;
					LA83_: ;
					{
						if (!((*objB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9) || (*objB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11))) goto LA86_;
						objB = (*objB).sons->data[((NI) 0)];
					}
					goto LA81_;
					LA86_: ;
					{
						goto LA79;
					}
					LA81_: ;
				}
			} LA79: ;
			{
				NIM_BOOL T91_;
				tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg k;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* ao;
				T91_ = (NIM_BOOL)0;
				T91_ = ((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13) || (*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
				if (!(T91_)) goto LA92_;
				T91_ = sameType__types_1824(obj, objB, 0);
				LA92_: ;
				if (!T91_) goto LA93_;
				obj = canonType__sem_12664(c, obj);
				{
					NIM_BOOL T97_;
					T97_ = (NIM_BOOL)0;
					T97_ = eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_178));
					if (T97_) goto LA98_;
					T97_ = eqStrings(name, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_179));
					LA98_: ;
					if (!T97_) goto LA99_;
					k = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1);
				}
				goto LA95_;
				LA99_: ;
				{
					k = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2);
				}
				LA95_: ;
				ao = getAttachedOp__modulegraphs_4011((*c).graph, obj, k);
				{
					if (!(ao == s)) goto LA104_;
				}
				goto LA102_;
				LA104_: ;
				{
					NIM_BOOL T107_;
					T107_ = (NIM_BOOL)0;
					T107_ = (ao == 0);
					if (!(T107_)) goto LA108_;
					T107_ = !((((*obj).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38))&63U)))!=0));
					LA108_: ;
					if (!T107_) goto LA109_;
					setAttachedOp__modulegraphs_4407((*c).graph, (*(*c).module).position, obj, k, s);
				}
				goto LA102_;
				LA109_: ;
				{
					prevDestructor__sem_12672(c, ao, obj, (*n).info);
				}
				LA102_: ;
				{
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T114_;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T115_;
					NimStringDesc* T118_;
					NimStringDesc* T119_;
					T114_ = NIM_NIL;
					T114_ = getModule__astalgo_216((*obj).owner);
					T115_ = NIM_NIL;
					T115_ = getModule__astalgo_216(s);
					if (!!((T114_ == T115_))) goto LA116_;
					T118_ = NIM_NIL;
					T119_ = NIM_NIL;
					T119_ = typeToString__types_50(obj, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					T118_ = rawNewString((name ? name->Sup.len : 0) + (T119_ ? T119_->Sup.len : 0) + 79);
appendString(T118_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_188));
appendString(T118_, name);
appendString(T118_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_189));
appendString(T118_, T119_);
appendString(T118_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_73));
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T118_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_203, NIM_FALSE);
				}
				LA116_: ;
				goto BeforeRet_;
			}
			LA93_: ;
		}
		LA67_: ;
		{
			NimStringDesc* T124_;
			if (!!((((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0))) goto LA122_;
			T124_ = NIM_NIL;
			T124_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 56);
appendString(T124_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_193));
appendString(T124_, (*(*s).name).s);
appendString(T124_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_204));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T124_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_205, NIM_FALSE);
		}
		LA122_: ;
	}
	goto LA6_;
	LA4_: ;
	{
		{
			if (!!(((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 151)))) goto LA128_;
			bindTypeHook__sem_12702(c, s, n, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3));
		}
		LA128_: ;
	}
	goto LA6_;
	LA5_: ;
	{
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0)) goto LA133_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_206), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_207, NIM_FALSE);
		}
		LA133_: ;
	}
	LA6_: ;
	}BeforeRet_: ;
}
static N_INLINE(NI, find__stdZenumutils_48)(NimStringDesc** a, NI aLen_0, NimStringDesc* item) {
	NI result;
{	result = (NI)0;
	result = ((NI) 0);
	{
		NimStringDesc** i;
		NI i_2;
		i = (NimStringDesc**)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < aLen_0)) goto LA3;
				i = (&a[i_2]);
				{
					if (!eqStrings((*i), item)) goto LA6_;
					goto BeforeRet_;
				}
				LA6_: ;
				result += ((NI) 1);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = ((NI) -1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__stdZenumutils_43)(NimStringDesc** a, NI aLen_0, NimStringDesc* item) {
	NIM_BOOL result;
	NI T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = find__stdZenumutils_48(a, aLen_0, item);
	result = (((NI) 0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProcAux__sem_12954)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg T3_;
		T3_ = (tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg)0;
		T3_ = inCheckpoint__sigmatch_5312((*n).info, (*conf).m.trackPos);
		if (!!((T3_ == ((tyEnum_TCheckPointResult__mp7otVupbkudrLwM0IFcHg) 0)))) goto LA4_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__ast_3191(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA8;
				i = i_2;
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = cursorInProcAux__sem_12954(conf, (*n)._kind_6.sons->data[i]);
					if (!T11_) goto LA12_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA12_: ;
				i_2 += ((NI) 1);
			} LA8: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cursorInProc__sem_12969)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!((*n).info.fileIndex == (*conf).m.trackPos.fileIndex)) goto LA3_;
		result = cursorInProcAux__sem_12954(conf, n);
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4646)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((520192 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2))&63U)))!=0);
	if (T3_) goto LA4_;
	T3_ = isGenericRoutine__ast_4627((*s).ast);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasObjParam__sem_12973)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	NIM_BOOL result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
{	result = (NIM_BOOL)0;
	t = (*s).typ;
	{
		NI col;
		NI colontmp_;
		NI i;
		col = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_4002(t);
		i = ((NI) 1);
		{
			while (1) {
				if (!(i < colontmp_)) goto LA3;
				col = i;
				{
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
					T6_ = NIM_NIL;
					T6_ = skipTypes__ast_3735((*t).sons->data[col], TM__rF9caJawfOjYTjsgLVUSGFA_53);
					if (!((*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA7_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA7_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semMethodPrototype__sem_12993)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NIM_BOOL T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* tt;
		NIM_BOOL foundObj;
		T3_ = (NIM_BOOL)0;
		T3_ = isGenericRoutine__ast_4646(s);
		if (!T3_) goto LA4_;
		tt = (*s).typ;
		foundObj = NIM_FALSE;
		{
			NI col;
			NI colontmp_;
			NI i;
			col = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_4002(tt);
			i = ((NI) 1);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
					if (!(i < colontmp_)) goto LA8;
					col = i;
					t = (*tt).sons->data[col];
					{
						NIM_BOOL T11_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
						T11_ = (NIM_BOOL)0;
						T11_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
						if (!(T11_)) goto LA12_;
						T11_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9));
						LA12_: ;
						if (!T11_) goto LA13_;
						x = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_220);
						{
							NIM_BOOL T17_;
							NI T19_;
							NI T20_;
							T17_ = (NIM_BOOL)0;
							T17_ = ((*x).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
							if (!(T17_)) goto LA18_;
							T19_ = (NI)0;
							T19_ = len__ast_4002(t);
							T20_ = (NI)0;
							T20_ = len__ast_3198((*n)._kind_6.sons->data[((NI) 2)]);
							T17_ = ((NI)(T19_ - ((NI) 1)) == T20_);
							LA18_: ;
							if (!T17_) goto LA21_;
							foundObj = NIM_TRUE;
							addMethodToGeneric__modulegraphs_7689((*c).graph, (*(*c).module).position, x, col, s);
						}
						LA21_: ;
					}
					LA13_: ;
					i += ((NI) 1);
				} LA8: ;
			}
		}
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 21), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_221), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_222, NIM_FALSE);
	}
	goto LA1_;
	LA4_: ;
	{
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = hasObjParam__sem_12973(s);
			if (!T26_) goto LA27_;
			methodDef__cgmeth_263((*c).graph, (*c).Sup.idgen, s);
		}
		goto LA24_;
		LA27_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_223), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_224, NIM_FALSE);
		}
		LA24_: ;
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, pushProcCon__sem_898)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner) {
	rawPushProcCon__sem_849(c, owner);
	rawHandleSelf__sem_865(c, owner);
}
N_LIB_PRIVATE N_NIMCALL(void, activate__sem_108)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
}
static N_INLINE(NIM_BOOL, isArrayConstr__sem_145)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
	if (!(T1_)) goto LA2_;
	T3_ = NIM_NIL;
	T3_ = skipTypes__ast_3735((*n).typ, TM__rF9caJawfOjYTjsgLVUSGFA_70);
	T1_ = ((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixAbstractType__sem_14967)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T8_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59));
					if (!(T6_)) goto LA7_;
					T8_ = NIM_NIL;
					T8_ = skipTypes__ast_3735((*it).typ, TM__rF9caJawfOjYTjsgLVUSGFA_228);
					T6_ = !(((*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48)));
					LA7_: ;
					if (!T6_) goto LA9_;
					{
						NIM_BOOL T13_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T14_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* s;
						T13_ = (NIM_BOOL)0;
						T14_ = NIM_NIL;
						T14_ = skipTypes__ast_3735((*(*it)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_228);
						T13_ = ((*T14_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5) || (*T14_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*T14_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19));
						if (T13_) goto LA15_;
						T13_ = isArrayConstr__sem_145((*it)._kind_6.sons->data[((NI) 1)]);
						LA15_: ;
						if (!T13_) goto LA16_;
						s = skipTypes__ast_3735((*it).typ, TM__rF9caJawfOjYTjsgLVUSGFA_229);
						{
							if (!!(((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)))) goto LA20_;
							changeType__sem_75(c, (*it)._kind_6.sons->data[((NI) 1)], s, NIM_TRUE);
						}
						LA20_: ;
						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), (*it)._kind_6.sons->data[((NI) 1)]);
					}
					LA16_: ;
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag, isAssignable__sem_15006)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr) {
	tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag result;
	result = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
	result = isAssignable__parampatterns_334((*(*c).p).owner, n, isUnsafeAddr);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderNotLValue__sem_1612)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	result = NIM_NIL;
	result = dollar___renderer_2106(n);
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA3_;
		n_2 = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		n_2 = n;
	}
	LA1_: ;
	{
		NIM_BOOL T8_;
		NI T10_;
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
		if (!(T8_)) goto LA9_;
		T10_ = (NI)0;
		T10_ = len__ast_3198(n_2);
		T8_ = (((NI) 1) < T10_);
		LA9_: ;
		if (!T8_) goto LA11_;
		T13_ = NIM_NIL;
		T14_ = NIM_NIL;
		T14_ = dollar___renderer_2106((*n_2)._kind_6.sons->data[((NI) 0)]);
		T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + (result ? result->Sup.len : 0) + 2);
appendString(T13_, T14_);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71));
appendString(T13_, result);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_73));
		result = T13_;
	}
	goto LA6_;
	LA11_: ;
	{
		NIM_BOOL T16_;
		NI T18_;
		NimStringDesc* T21_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T22_;
		NimStringDesc* T23_;
		T16_ = (NIM_BOOL)0;
		T16_ = ((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59));
		if (!(T16_)) goto LA17_;
		T18_ = (NI)0;
		T18_ = len__ast_3198(n_2);
		T16_ = (T18_ == ((NI) 2));
		LA17_: ;
		if (!T16_) goto LA19_;
		T21_ = NIM_NIL;
		T22_ = NIM_NIL;
		T22_ = skipTypes__ast_3735((*n_2).typ, TM__rF9caJawfOjYTjsgLVUSGFA_228);
		T23_ = NIM_NIL;
		T23_ = typeToString__types_50(T22_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T21_ = rawNewString((T23_ ? T23_->Sup.len : 0) + (result ? result->Sup.len : 0) + 2);
appendString(T21_, T23_);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71));
appendString(T21_, result);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_73));
		result = T21_;
	}
	goto LA6_;
	LA19_: ;
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newHiddenAddrTaken__sem_15059)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*(*c).graph).config).backend == ((tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g) 2));
		if (T5_) goto LA6_;
		T5_ = (((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 32))&63U)))!=0);
		LA6_: ;
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA7_;
		checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA7_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
		tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag aa;
		T10_ = NIM_NIL;
		T10_ = makeVarType__semdata_766(c, (*n).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
		result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), (*n).info, T10_);
		add__ast_4797(result, n);
		aa = isAssignable__sem_15006(c, n, NIM_FALSE);
		{
			if (!!(((6 &((NU8)1<<((NU)(aa)&7U)))!=0))) goto LA13_;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (aa == ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 3));
				if (!(T17_)) goto LA18_;
				T17_ = (((NI) 0) < (*c).inUncheckedAssignSection);
				LA18_: ;
				if (!T17_) goto LA19_;
			}
			goto LA15_;
			LA19_: ;
			{
				NimStringDesc* T22_;
				NimStringDesc* T23_;
				T22_ = NIM_NIL;
				T22_ = renderNotLValue__sem_1612(n);
				T23_ = NIM_NIL;
				T23_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_231), T22_);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T23_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_235, NIM_FALSE);
			}
			LA15_: ;
		}
		LA13_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, analyseIfAddressTaken__sem_15089)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T4_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
			T4_ = (NIM_BOOL)0;
			T4_ = !(((*(*n)._kind_4.sym).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T4_)) goto LA5_;
			T6_ = NIM_NIL;
			T6_ = skipTypes__ast_3735((*(*n)._kind_4.sym).typ, TM__rF9caJawfOjYTjsgLVUSGFA_5);
			T4_ = !(((*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)));
			LA5_: ;
			if (!T4_) goto LA7_;
			(*(*n)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
			result = newHiddenAddrTaken__sem_15059(c, n);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
			internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_236), TM__rF9caJawfOjYTjsgLVUSGFA_237);
			goto BeforeRet_;
		}
		LA12_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T16_;
			T16_ = NIM_NIL;
			T16_ = skipTypes__ast_3735((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).typ, TM__rF9caJawfOjYTjsgLVUSGFA_5);
			if (!!(((*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)))) goto LA17_;
			(*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
			result = newHiddenAddrTaken__sem_15059(c, n);
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T22_;
			T22_ = NIM_NIL;
			T22_ = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_5);
			if (!!(((*T22_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T22_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47)))) goto LA23_;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA27_;
				(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
			}
			LA27_: ;
			result = newHiddenAddrTaken__sem_15059(c, n);
		}
		LA23_: ;
	}
	break;
	default:
	{
		result = newHiddenAddrTaken__sem_15059(c, n);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, analyseIfAddressTakenInCall__sem_15147)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
{	checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
	t = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_137);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_230[(NU)((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic)>>3] &(1U<<((NU)((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic)&7U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA9;
					i = i_2;
					{
						NIM_BOOL T12_;
						NIM_BOOL T13_;
						NI T14_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T17_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
						tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag aa;
						T12_ = (NIM_BOOL)0;
						T13_ = (NIM_BOOL)0;
						T14_ = (NI)0;
						T14_ = len__ast_4002(t);
						T13_ = (i < T14_);
						if (!(T13_)) goto LA15_;
						T13_ = !(((*t).sons->data[i] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
						LA15_: ;
						T12_ = T13_;
						if (!(T12_)) goto LA16_;
						T17_ = NIM_NIL;
						T17_ = skipTypes__ast_3735((*t).sons->data[i], TM__rF9caJawfOjYTjsgLVUSGFA_5);
						T12_ = ((*T17_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
						LA16_: ;
						if (!T12_) goto LA18_;
						it = (*n)._kind_6.sons->data[i];
						aa = isAssignable__sem_15006(c, it, NIM_FALSE);
						{
							if (!!(((6 &((NU8)1<<((NU)(aa)&7U)))!=0))) goto LA22_;
							{
								if (!!(((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64)))) goto LA26_;
								{
									NIM_BOOL T30_;
									T30_ = (NIM_BOOL)0;
									T30_ = (aa == ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 3));
									if (!(T30_)) goto LA31_;
									T30_ = (((NI) 0) < (*c).inUncheckedAssignSection);
									LA31_: ;
									if (!T30_) goto LA32_;
								}
								goto LA28_;
								LA32_: ;
								{
									NimStringDesc* T35_;
									NimStringDesc* T36_;
									T35_ = NIM_NIL;
									T35_ = dollar___renderer_2106(it);
									T36_ = NIM_NIL;
									T36_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_231), T35_);
									liMessage__msgs_1118((*(*c).graph).config, (*it).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T36_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_232, NIM_FALSE);
								}
								LA28_: ;
							}
							LA26_: ;
						}
						LA22_: ;
					}
					LA18_: ;
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
			if (!((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 34))) goto LA39_;
			arg = (*n)._kind_6.sons->data[((NI) 1)];
			{
				if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA43_;
				arg = (*arg)._kind_6.sons->data[((NI) 0)];
			}
			LA43_: ;
			{
				NIM_BOOL T47_;
				NIM_BOOL T48_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T51_;
				NimStringDesc* T54_;
				NimStringDesc* T55_;
				T47_ = (NIM_BOOL)0;
				T48_ = (NIM_BOOL)0;
				T48_ = ((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T48_)) goto LA49_;
				T48_ = ((*(*arg)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
				LA49_: ;
				T47_ = T48_;
				if (!(T47_)) goto LA50_;
				T51_ = NIM_NIL;
				T51_ = skipTypes__ast_3735((*arg).typ, TM__rF9caJawfOjYTjsgLVUSGFA_70);
				T47_ = ((*T51_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T51_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
				LA50_: ;
				if (!T47_) goto LA52_;
				T54_ = NIM_NIL;
				T54_ = renderTree__renderer_46((*n)._kind_6.sons->data[((NI) 1)], 4);
				T55_ = NIM_NIL;
				T55_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_233), T54_);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T55_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_234, NIM_FALSE);
			}
			LA52_: ;
		}
		LA39_: ;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NI i_3;
		NI colontmp__2;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_3198(n);
		i_4 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
				if (!(i_4 < colontmp__2)) goto LA58;
				i_3 = i_4;
				{
					if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA61_;
					n_2 = (*n)._kind_6.sons->data[((NI) 0)];
				}
				goto LA59_;
				LA61_: ;
				{
					n_2 = n;
				}
				LA59_: ;
				{
					if (!((*(*n_2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA66_;
					analyseIfAddressTakenInCall__sem_15147(c, (*n_2)._kind_6.sons->data[i_3]);
				}
				LA66_: ;
				{
					NIM_BOOL T70_;
					NI T71_;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T73_;
					T70_ = (NIM_BOOL)0;
					T71_ = (NI)0;
					T71_ = len__ast_4002(t);
					T70_ = (i_3 < T71_);
					if (!(T70_)) goto LA72_;
					T73_ = NIM_NIL;
					T73_ = skipTypes__ast_3735((*t).sons->data[i_3], TM__rF9caJawfOjYTjsgLVUSGFA_5);
					T70_ = ((*T73_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
					LA72_: ;
					if (!T70_) goto LA74_;
					{
						if (!!(((*(*n_2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64)))) goto LA78_;
						asgnRef((void**) (&(*n_2)._kind_6.sons->data[i_3]), analyseIfAddressTaken__sem_15089(c, (*n_2)._kind_6.sons->data[i_3]));
					}
					LA78_: ;
				}
				LA74_: ;
				i_4 += ((NI) 1);
			} LA58: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAddrArg__sem_15267)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isUnsafeAddr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	result = NIM_NIL;
	x = semExprWithType__sem_56(c, n, 0);
	{
		if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		(*(*x)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 17)) & 63);
	}
	LA3_: ;
	{
		tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag T7_;
		T7_ = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
		T7_ = isAssignable__sem_15006(c, x, isUnsafeAddr);
		if (!!(((6 &((NU8)1<<((NU)(T7_)&7U)))!=0))) goto LA8_;
		{
			if (!isUnsafeAddr) goto LA12_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_238), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_239, NIM_FALSE);
		}
		goto LA10_;
		LA12_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_241), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_242, NIM_FALSE);
		}
		LA10_: ;
	}
	LA8_: ;
	result = x;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeOf__sem_132)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI64 m;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typExpr;
	tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ T11_;
	result = NIM_NIL;
	m = IL64(1);
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* mode;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		mode = semConstExpr__sem_611(c, (*n)._kind_6.sons->data[((NI) 2)]);
		{
			if (!!(((*mode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA8_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_244), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_245, NIM_FALSE);
		}
		goto LA6_;
		LA8_: ;
		{
			m = (*mode)._kind_1.intVal;
		}
		LA6_: ;
	}
	LA4_: ;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132), (*n).info);
	{
		if (!(m == IL64(1))) goto LA14_;
		T11_ = 8;
	}
	goto LA12_;
	LA14_: ;
	{
		T11_ = 0;
	}
	LA12_: ;
	typExpr = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], T11_);
	add__ast_4797(result, typExpr);
	asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, (*typExpr).typ));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDeref__sem_17376)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 0)], 0));
	a = getConstExpr__semfold_81((*c).module, (*n)._kind_6.sons->data[((NI) 0)], (*c).Sup.idgen, (*c).graph);
	{
		if (!!((a == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
		{
			if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA7_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_249), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_250, NIM_FALSE);
		}
		LA7_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), a);
	}
	LA3_: ;
	result = n;
	t = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_251);
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	{
		asgnRef((void**) (&(*n).typ), lastSon__ast_3743(t));
	}
	break;
	default:
	{
		result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semStaticType__sem_128)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* childNode, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	result = NIM_NIL;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), prev, c);
	T1_ = NIM_NIL;
	T1_ = semTypeNode__sem_80(c, childNode, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	base = skipTypes__ast_3735(T1_, TM__rF9caJawfOjYTjsgLVUSGFA_253);
	rawAddSon__ast_4288(result, base, NIM_TRUE);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 24)) & 63);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSymGenericInstantiation__sem_13999)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericSym__sem_2571)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newInst;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
{	result = NIM_NIL;
	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	newCandidate__sigmatch_189(c, s, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((NI) -1), (&m));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TType__facALICuu8zUj0hjvbTLFg* formal;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* arg;
				tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw tm;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				formal = (*(*(*(*s).ast)._kind_6.sons->data[((NI) 2)])._kind_6.sons->data[(NI)(i - ((NI) 1))]).typ;
				arg = (*(*n)._kind_6.sons->data[i]).typ;
				{
					NIM_BOOL T6_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
					if (!(T6_)) goto LA7_;
					T6_ = !(((*arg).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)));
					LA7_: ;
					if (!T6_) goto LA8_;
					evaluated = (*c).semTryConstExpr(c, (*n)._kind_6.sons->data[i]);
					{
						if (!!((evaluated == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA12_;
						arg = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), c);
						if ((*arg).sons) { nimGCunrefRC1((*arg).sons); (*arg).sons = NIM_NIL; }
						(*arg).sons = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeqRC1((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
						asgnRef((void**) (&(*arg).sons->data[0]), (*evaluated).typ);
						asgnRef((void**) (&(*arg).n), evaluated);
					}
					LA12_: ;
				}
				LA8_: ;
				tm = typeRel__sigmatch_202((&m), formal, arg, 0);
				{
					if (!((3 &((NU16)1<<((NU)(tm)&15U)))!=0)) goto LA16_;
					result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
					goto BeforeRet_;
				}
				LA16_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	newInst = generateInstance__sem_1295(c, s, m.bindings, (*n).info);
	(*(*newInst).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63));
	info = getCallLineInfo__sem_2390(n);
	markUsed__sigmatch_85(c, info, s);
	result = newSymNode__ast_3719(newInst, info);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericInstError__sem_2567)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	result = NIM_NIL;
	T1_ = getCallLineInfo__sem_2390(n);
	T2_ = NIM_NIL;
	T2_ = renderTree__renderer_46(n, 0);
	T3_ = NIM_NIL;
	T3_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_81), T2_);
	liMessage__msgs_1118((*(*c).graph).config, T1_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T3_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_263, NIM_FALSE);
	result = n;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, explicitGenericInstantiation__sem_2621)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
{	result = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				e = semExpr__sem_52(c, (*n)._kind_6.sons->data[i], 0);
				{
					if (!((*e).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA6_;
					asgnRef((void**) (&(*(*n)._kind_6.sons->data[i]).typ), errorType__semdata_1002(c));
				}
				goto LA4_;
				LA6_: ;
				{
					asgnRef((void**) (&(*(*n)._kind_6.sons->data[i]).typ), skipTypes__ast_3735((*e).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123));
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	s_2 = s;
	a = (*n)._kind_6.sons->data[((NI) 0)];
	{
		if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA11_;
		{
			NI T15_;
			NI T16_;
			NI expected;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T19_;
			NimStringDesc* T20_;
			NimStringDesc* T21_;
			NI T22_;
			NimStringDesc* T23_;
			NimStringDesc* T24_;
			T15_ = (NI)0;
			T15_ = safeLen__ast_3191((*(*s_2).ast)._kind_6.sons->data[((NI) 2)]);
			T16_ = (NI)0;
			T16_ = len__ast_3198(n);
			if (!!((T15_ == (NI)(T16_ - ((NI) 1))))) goto LA17_;
			expected = safeLen__ast_3191((*(*s_2).ast)._kind_6.sons->data[((NI) 2)]);
			T19_ = getCallLineInfo__sem_2390(n);
			T20_ = NIM_NIL;
			T21_ = NIM_NIL;
			T21_ = renderTree__renderer_46(n, 0);
			T22_ = (NI)0;
			T22_ = len__ast_3198(n);
			T23_ = NIM_NIL;
			T23_ = dollar___systemZdollars_3((NI)(T22_ - ((NI) 1)));
			T24_ = NIM_NIL;
			T24_ = dollar___systemZdollars_3(expected);
			T20_ = rawNewString((T21_ ? T21_->Sup.len : 0) + (T23_ ? T23_->Sup.len : 0) + (T24_ ? T24_->Sup.len : 0) + 52);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_258));
appendString(T20_, T21_);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_259));
appendString(T20_, T23_);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_260));
appendString(T20_, T24_);
			liMessage__msgs_1118((*(*c).graph).config, T19_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_261, NIM_FALSE);
			result = n;
			goto BeforeRet_;
		}
		LA17_: ;
		result = explicitGenericSym__sem_2571(c, n, s_2);
		{
			if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA27_;
			result = explicitGenericInstError__sem_2567(c, n);
		}
		LA27_: ;
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T32_;
		if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA30_;
		T32_ = getCallLineInfo__sem_2390(n);
		result = newNodeI__ast_3356((*a).kind, T32_);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(a);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* candidate;
					if (!(i_4 < colontmp__2)) goto LA35;
					i_3 = i_4;
					candidate = (*(*a)._kind_6.sons->data[i_3])._kind_4.sym;
					{
						if (!((126976 &((NU32)1<<((NU)((*candidate).kind)&31U)))!=0)) goto LA38_;
						{
							NI T42_;
							NI T43_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
							T42_ = (NI)0;
							T42_ = safeLen__ast_3191((*(*candidate).ast)._kind_6.sons->data[((NI) 2)]);
							T43_ = (NI)0;
							T43_ = len__ast_3198(n);
							if (!(T42_ == (NI)(T43_ - ((NI) 1)))) goto LA44_;
							x = explicitGenericSym__sem_2571(c, n, candidate);
							{
								if (!!((x == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA48_;
								add__ast_4797(result, x);
							}
							LA48_: ;
						}
						LA44_: ;
					}
					LA38_: ;
					i_4 += ((NI) 1);
				} LA35: ;
			}
		}
		{
			NIM_BOOL T52_;
			NI T53_;
			T52_ = (NIM_BOOL)0;
			T53_ = (NI)0;
			T53_ = len__ast_3198(result);
			T52_ = (T53_ == ((NI) 1));
			if (!(T52_)) goto LA54_;
			T52_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56));
			LA54_: ;
			if (!T52_) goto LA55_;
			result = (*result)._kind_6.sons->data[((NI) 0)];
		}
		goto LA50_;
		LA55_: ;
		{
			NI T58_;
			T58_ = (NI)0;
			T58_ = len__ast_3198(result);
			if (!(T58_ == ((NI) 0))) goto LA59_;
			result = explicitGenericInstError__sem_2567(c, n);
		}
		goto LA50_;
		LA59_: ;
		LA50_: ;
	}
	goto LA9_;
	LA30_: ;
	{
		result = explicitGenericInstError__sem_2567(c, n);
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, maybeInstantiateGeneric__sem_17398)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI neededGenParams;
	NI heldGenParams;
	NI T1_;
	NI implicitParams;
	result = NIM_NIL;
	neededGenParams = len__ast_3198((*(*s).ast)._kind_6.sons->data[((NI) 2)]);
	T1_ = (NI)0;
	T1_ = len__ast_3198(n);
	heldGenParams = (NI)(T1_ - ((NI) 1));
	implicitParams = ((NI) 0);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp_;
		x = NIM_NIL;
		colontmp_ = NIM_NIL;
		colontmp_ = (*(*s).ast)._kind_6.sons->data[((NI) 2)];
		{
			NI i;
			NI colontmp__2;
			NI i_2;
			i = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = safeLen__ast_3191(colontmp_);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp__2)) goto LA5;
					i = i_2;
					x = (*colontmp_)._kind_6.sons->data[i];
					{
						if (!(((*(*x).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 26))&63U)))!=0)) goto LA8_;
						implicitParams += ((NI) 1);
					}
					LA8_: ;
					i_2 += ((NI) 1);
				} LA5: ;
			}
		}
	}
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = !((heldGenParams == neededGenParams));
		if (!(T12_)) goto LA13_;
		T12_ = ((NI)(implicitParams + heldGenParams) == neededGenParams);
		LA13_: ;
		if (!T12_) goto LA14_;
		result = n;
	}
	goto LA10_;
	LA14_: ;
	{
		result = explicitGenericInstantiation__sem_2621(c, n, s);
		{
			if (!(result == n)) goto LA19_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), copyTree__ast_4431((*result)._kind_6.sons->data[((NI) 0)]));
		}
		goto LA17_;
		LA19_: ;
		{
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), result);
		}
		LA17_: ;
	}
	LA10_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, symFromType__sem_530)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T5_;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T6_;
{	result = NIM_NIL;
	{
		if (!!(((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA3_;
		result = (*t).sym;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = NIM_NIL;
	T5_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_264));
	T6_ = nextSymId__ast_3132((*c).Sup.idgen);
	result = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T5_, T6_, (*t).owner, info, 0);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34)) & 63);
	asgnRef((void**) (&(*result).typ), t);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, symNodeFromType__sem_543)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = symFromType__sem_530(c, t, info);
	result = newSymNode__ast_3719(T1_, info);
	asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, t));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSubscript__sem_15316)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* arr;
{	result = NIM_NIL;
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 1))) goto LA4_;
		x = semDeref__sem_17376(c, n);
		{
			if (!(x == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA8_;
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			goto BeforeRet_;
		}
		LA8_: ;
		result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47), (*x).info, (*x).typ);
		add__ast_4797(result, (*x)._kind_6.sons->data[((NI) 0)]);
		goto BeforeRet_;
	}
	LA4_: ;
	checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*c).graph).config);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 0)], 16384));
	arr = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_252);
	{
		if (!((*arr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA12_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T16_;
			T16_ = NIM_NIL;
			T16_ = base__types_63(arr);
			if (!((*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA17_;
			result = n;
			asgnRef((void**) (&(*result).typ), semStaticType__sem_128(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			goto BeforeRet_;
		}
		goto LA14_;
		LA17_: ;
		{
			if (!!(((*arr).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA20_;
			result = semSubscript__sem_15316(c, (*arr).n, flags);
			goto BeforeRet_;
		}
		goto LA14_;
		LA20_: ;
		{
			arr = base__types_63(arr);
		}
		LA14_: ;
	}
	LA12_: ;
	switch ((*arr).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		{
			NI T26_;
			T26_ = (NI)0;
			T26_ = len__ast_3198(n);
			if (!!((T26_ == ((NI) 2)))) goto LA27_;
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			goto BeforeRet_;
		}
		LA27_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), makeDeref__sem_9873((*n)._kind_6.sons->data[((NI) 0)]));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA31;
					i = i_2;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[i], (flags & 520)));
					i_2 += ((NI) 1);
				} LA31: ;
			}
		}
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* indexType;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
			if (!((*arr).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA34_;
			indexType = (*arr).sons->data[((NI) 0)];
			arg = indexTypesMatch__sem_120(c, indexType, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*n)._kind_6.sons->data[((NI) 1)]);
			{
				if (!!((arg == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA38_;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), arg);
				result = n;
				asgnRef((void**) (&(*result).typ), elemType__types_263(arr));
			}
			LA38_: ;
		}
		goto LA32_;
		LA34_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T41_;
			T41_ = NIM_NIL;
			T41_ = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_254);
			if (!((*T41_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T41_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*T41_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*T41_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44))) goto LA42_;
			result = n;
			asgnRef((void**) (&(*result).typ), elemType__types_263(arr));
		}
		goto LA32_;
		LA42_: ;
		LA32_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T45_;
		result = n;
		T45_ = NIM_NIL;
		T45_ = semTypeNode__sem_80(c, n, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, T45_));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NI T49_;
			T49_ = (NI)0;
			T49_ = len__ast_3198(n);
			if (!!((T49_ == ((NI) 2)))) goto LA50_;
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			goto BeforeRet_;
		}
		LA50_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), makeDeref__sem_9873((*n)._kind_6.sons->data[((NI) 0)]));
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semConstExpr__sem_611(c, (*n)._kind_6.sons->data[((NI) 1)]));
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T54_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA idx;
			T54_ = NIM_NIL;
			T54_ = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_255);
			if (!((*T54_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T54_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA55_;
			idx = getOrdValue__types_161((*n)._kind_6.sons->data[((NI) 1)], Max__int495056_27);
			{
				NIM_BOOL T59_;
				NI T61_;
				NI T64_;
				T59_ = (NIM_BOOL)0;
				T59_ = lteq___int495056_752(IL64(0), idx);
				if (!(T59_)) goto LA60_;
				T61_ = (NI)0;
				T61_ = len__ast_4002(arr);
				T59_ = lt___int495056_721(idx, ((NI64) (T61_)));
				LA60_: ;
				if (!T59_) goto LA62_;
				T64_ = (NI)0;
				T64_ = toInt__int495056_170(idx);
				asgnRef((void**) (&(*n).typ), (*arr).sons->data[T64_]);
			}
			goto LA57_;
			LA62_: ;
			{
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_256), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_257, NIM_FALSE);
			}
			LA57_: ;
			result = n;
		}
		goto LA52_;
		LA55_: ;
		{
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
		}
		LA52_: ;
	}
	break;
	default:
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA70_;
			s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		}
		goto LA68_;
		LA70_: ;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA73_;
			s = (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		}
		goto LA68_;
		LA73_: ;
		{
			s = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
		}
		LA68_: ;
		{
			if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA78_;
			switch ((*s).kind) {
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
			{
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semSymGenericInstantiation__sem_13999(c, (*n)._kind_6.sons->data[((NI) 0)], s));
				result = maybeInstantiateGeneric__sem_17398(c, n, s);
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
			{
				{
					if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 15))&31U)))!=0)) goto LA84_;
					result = n;
				}
				goto LA82_;
				LA84_: ;
				{
					transitionSonsKind__ast_4359(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 27));
					switch ((*s).kind) {
					case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
					{
						result = semMacroExpr__sem_524(c, n, n, s, flags);
					}
					break;
					case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
					{
						result = semTemplateExpr__sem_519(c, n, s, flags);
					}
					break;
					default:
					{
					}
					break;
					}
				}
				LA82_: ;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T91_;
				T91_ = NIM_NIL;
				T91_ = semTypeNode__sem_80(c, n, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
				result = symNodeFromType__sem_543(c, T91_, (*n).info);
			}
			break;
			default:
			{
			}
			break;
			}
		}
		LA78_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, effectProblem__sem_1583)(tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, NimStringDesc** result, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*f).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T3_)) goto LA4_;
		T3_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 7))&63U)))!=0);
			if (!(T9_)) goto LA10_;
			T9_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 7))&63U)))!=0));
			LA10_: ;
			if (!T9_) goto LA11_;
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), 103));
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_287));
		}
		goto LA7_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T14_ = !((((*a).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0));
			LA15_: ;
			if (!T14_) goto LA16_;
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), 116));
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_288));
		}
		goto LA7_;
		LA16_: ;
		{
			tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ T19_;
			T19_ = (tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ)0;
			T19_ = compatibleEffects__types_3425(f, a);
			switch (T19_) {
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 0):
			{
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 1):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 37));
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_289));
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 2):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 110));
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_290));
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 3):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 35));
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_291));
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 4):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 106));
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_292));
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 5):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 107));
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_293));
			}
			break;
			case ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 6):
			{
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), 39));
appendString((*result), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_294));
			}
			break;
			}
		}
		LA7_: ;
	}
	LA5_: ;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__system_5279(p);
	decRef__system_5324(T1_);
}
N_LIB_PRIVATE N_NIMCALL(void, presentFailedCandidates__sem_1636)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__0dpGN6F4ocevqUQGsaf41w* errors, tyTuple__ZtAk5YtH0VW1iPowvxePrg* Result) {
	tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer;
	NimStringDesc* proto;
	NIM_BOOL filterOnlyFirst;
	NIM_BOOL maybeWrongSpace;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* candidatesAll;
	NimStringDesc* candidates;
	NI skipped;
	tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw colontmp__2;
	NimStringDesc* colontmp__3;
	prefer = ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0);
	proto = describeArgs__sigmatch_384(c, n, ((NI) 1), ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	{
		tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ* err;
		NI i;
		NI L;
		NI T2_;
		err = (tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ*)0;
		i = ((NI) 0);
		T2_ = (errors ? errors->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NimStringDesc* errProto;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
				if (!(i < L)) goto LA4;
				err = (&errors->data[i]);
				errProto = ((NimStringDesc*) NIM_NIL);
				n_2 = (*(*(*err).sym).typ).n;
				{
					NI i_2;
					NI colontmp_;
					NI i_3;
					i_2 = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__ast_3198(n_2);
					i_3 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
							if (!(i_3 < colontmp_)) goto LA7;
							i_2 = i_3;
							p = (*n_2)._kind_6.sons->data[i_2];
							{
								NimStringDesc* T12_;
								if (!((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA10_;
								T12_ = NIM_NIL;
								T12_ = typeToString__types_50((*(*p)._kind_4.sym).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
								errProto = resizeString(errProto, (T12_ ? T12_->Sup.len : 0) + 0);
appendString(errProto, T12_);
								{
									NI T15_;
									T15_ = (NI)0;
									T15_ = len__ast_3198(n_2);
									if (!!((i_2 == (NI)(T15_ - ((NI) 1))))) goto LA16_;
									errProto = resizeString(errProto, 2);
appendString(errProto, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_72));
								}
								LA16_: ;
							}
							LA10_: ;
							i_3 += ((NI) 1);
						} LA7: ;
					}
				}
				{
					if (!eqStrings(errProto, proto)) goto LA20_;
					prefer = ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 3);
					goto LA1;
				}
				LA20_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	} LA1: ;
	filterOnlyFirst = NIM_FALSE;
	{
		if (!!((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 32))&63U)))!=0))) goto LA24_;
		{
			tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ* err_2;
			NI i_4;
			NI L_2;
			NI T27_;
			err_2 = (tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ*)0;
			i_4 = ((NI) 0);
			T27_ = (errors ? errors->Sup.len : 0);
			L_2 = T27_;
			{
				while (1) {
					if (!(i_4 < L_2)) goto LA29;
					err_2 = (&errors->data[i_4]);
					{
						if (!(((NI) 1) < (*err_2).firstMismatch.arg)) goto LA32_;
						filterOnlyFirst = NIM_TRUE;
						goto LA26;
					}
					LA32_: ;
					i_4 += ((NI) 1);
				} LA29: ;
			}
		} LA26: ;
	}
	LA24_: ;
	maybeWrongSpace = NIM_FALSE;
	candidatesAll = NIM_NIL;
	candidates = ((NimStringDesc*) NIM_NIL);
	skipped = ((NI) 0);
	{
		tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ* err_3;
		NI i_5;
		NI L_3;
		NI T35_;
		err_3 = (tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ*)0;
		i_5 = ((NI) 0);
		T35_ = (errors ? errors->Sup.len : 0);
		L_3 = T35_;
		{
			while (1) {
				if (!(i_5 < L_3)) goto LA37;
				err_3 = (&errors->data[i_5]);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nArg;
					NimStringDesc* nameParam;
					NI T132_;
					NimStringDesc* T133_;
					candidates = setLengthStr(candidates, ((NI) 0));
					{
						NIM_BOOL T41_;
						T41_ = (NIM_BOOL)0;
						T41_ = filterOnlyFirst;
						if (!(T41_)) goto LA42_;
						T41_ = ((*err_3).firstMismatch.arg == ((NI) 1));
						LA42_: ;
						if (!T41_) goto LA43_;
						skipped += ((NI) 1);
						goto LA38;
					}
					LA43_: ;
					{
						NIM_BOOL T47_;
						NimStringDesc* T51_;
						T47_ = (NIM_BOOL)0;
						T47_ = ((520192 &((NU32)1<<((NU)((*(*err_3).sym).kind)&31U)))!=0);
						if (!(T47_)) goto LA48_;
						T47_ = !(((*(*err_3).sym).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
						LA48_: ;
						if (!T47_) goto LA49_;
						T51_ = NIM_NIL;
						T51_ = renderTree__renderer_46((*(*err_3).sym).ast, 22);
						candidates = resizeString(candidates, (T51_ ? T51_->Sup.len : 0) + 0);
appendString(candidates, T51_);
					}
					goto LA45_;
					LA49_: ;
					{
						NimStringDesc* T53_;
						T53_ = NIM_NIL;
						T53_ = getProcHeader__types_222((*(*c).graph).config, (*err_3).sym, prefer, NIM_TRUE);
						candidates = resizeString(candidates, (T53_ ? T53_->Sup.len : 0) + 0);
appendString(candidates, T53_);
					}
					LA45_: ;
					addDeclaredLocMaybe__astmsgs_21((&candidates), (*(*c).graph).config, (*err_3).sym);
					candidates = resizeString(candidates, 1);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_271));
					{
						NI T56_;
						T56_ = (NI)0;
						T56_ = len__ast_3198(n);
						if (!((*err_3).firstMismatch.arg < T56_)) goto LA57_;
						nArg = (*n)._kind_6.sons->data[(*err_3).firstMismatch.arg];
					}
					goto LA54_;
					LA57_: ;
					{
						nArg = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
					}
					LA54_: ;
					{
						if (!!(((*err_3).firstMismatch.formal == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA62_;
						nameParam = (*(*(*err_3).firstMismatch.formal).name).s;
					}
					goto LA60_;
					LA62_: ;
					{
						nameParam = ((NimStringDesc*) NIM_NIL);
					}
					LA60_: ;
					{
						NI T67_;
						NimStringDesc* T70_;
						NimStringDesc* T71_;
						T67_ = (NI)0;
						T67_ = len__ast_3198(n);
						if (!(((NI) 1) < T67_)) goto LA68_;
						T70_ = NIM_NIL;
						T71_ = NIM_NIL;
						T71_ = dollar___systemZdollars_3((*err_3).firstMismatch.arg);
						T70_ = rawNewString((T71_ ? T71_->Sup.len : 0) + 35);
appendString(T70_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_272));
appendString(T70_, T71_);
						candidates = resizeString(candidates, (T70_ ? T70_->Sup.len : 0) + 0);
appendString(candidates, T70_);
						switch ((*err_3).firstMismatch.kind) {
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 2):
						{
							{
								if (!(nArg == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA75_;
								candidates = resizeString(candidates, 26);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_273));
							}
							goto LA73_;
							LA75_: ;
							{
								NimStringDesc* T78_;
								NimStringDesc* T79_;
								T78_ = NIM_NIL;
								T79_ = NIM_NIL;
								T79_ = dollar___renderer_2106((*nArg)._kind_6.sons->data[((NI) 0)]);
								T78_ = rawNewString((T79_ ? T79_->Sup.len : 0) + 28);
appendString(T78_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_274));
appendString(T78_, T79_);
								candidates = resizeString(candidates, (T78_ ? T78_->Sup.len : 0) + 0);
appendString(candidates, T78_);
							}
							LA73_: ;
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 1):
						{
							NimStringDesc* T81_;
							NimStringDesc* T82_;
							T81_ = NIM_NIL;
							T82_ = NIM_NIL;
							T82_ = dollar___renderer_2106((*nArg)._kind_6.sons->data[((NI) 0)]);
							T81_ = rawNewString((T82_ ? T82_->Sup.len : 0) + 33);
appendString(T81_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_275));
appendString(T81_, T82_);
							candidates = resizeString(candidates, (T81_ ? T81_->Sup.len : 0) + 0);
appendString(candidates, T81_);
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 7):
						{
							candidates = resizeString(candidates, 52);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_276));
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 6):
						{
							candidates = resizeString(candidates, 23);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_277));
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 5):
						{
							NimStringDesc* T86_;
							T86_ = NIM_NIL;
							T86_ = rawNewString((nameParam ? nameParam->Sup.len : 0) + 22);
appendString(T86_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_278));
appendString(T86_, nameParam);
							candidates = resizeString(candidates, (T86_ ? T86_->Sup.len : 0) + 0);
appendString(candidates, T86_);
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 3):
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4):
						{
							tyObject_TType__facALICuu8zUj0hjvbTLFg* wanted;
							NimStringDesc* T96_;
							{
								if (!!(!((nArg == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))))) goto LA90_;
								failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_279));
							}
							LA90_: ;
							wanted = (*(*err_3).firstMismatch.formal).typ;
							{
								if (!!(!(((*err_3).firstMismatch.formal == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))))) goto LA94_;
								failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_280));
							}
							LA94_: ;
							T96_ = NIM_NIL;
							T96_ = rawNewString((nameParam ? nameParam->Sup.len : 0) + 23);
appendString(T96_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_281));
appendString(T96_, nameParam);
appendString(T96_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_282));
							candidates = resizeString(candidates, (T96_ ? T96_->Sup.len : 0) + 0);
appendString(candidates, T96_);
							addTypeDeclVerboseMaybe__types_53((&candidates), (*(*c).graph).config, wanted);
							candidates = resizeString(candidates, 19);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_283));
							{
								NimStringDesc* T101_;
								if (!((*err_3).firstMismatch.kind == ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 4))) goto LA99_;
								T101_ = NIM_NIL;
								T101_ = renderNotLValue__sem_1612(nArg);
								candidates = resizeString(candidates, (T101_ ? T101_->Sup.len : 0) + 0);
appendString(candidates, T101_);
								candidates = resizeString(candidates, 25);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_284));
							}
							goto LA97_;
							LA99_: ;
							{
								NimStringDesc* T103_;
								tyObject_TType__facALICuu8zUj0hjvbTLFg* got;
								T103_ = NIM_NIL;
								T103_ = renderTree__renderer_46(nArg, 0);
								candidates = resizeString(candidates, (T103_ ? T103_->Sup.len : 0) + 0);
appendString(candidates, T103_);
								candidates = resizeString(candidates, 14);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_285));
								got = (*nArg).typ;
								addTypeDeclVerboseMaybe__types_53((&candidates), (*(*c).graph).config, got);
								{
									if (!!(!((wanted == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))))) goto LA106_;
									failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_286));
								}
								LA106_: ;
								{
									if (!!((got == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA110_;
									{
										NIM_BOOL T114_;
										T114_ = (NIM_BOOL)0;
										T114_ = ((*got).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
										if (!(T114_)) goto LA115_;
										T114_ = ((*wanted).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
										LA115_: ;
										if (!T114_) goto LA116_;
										addPragmaAndCallConvMismatch__types_3795((&candidates), wanted, got, (*(*c).graph).config);
									}
									LA116_: ;
									effectProblem__sem_1583(wanted, got, (&candidates), c);
								}
								LA110_: ;
							}
							LA97_: ;
						}
						break;
						case ((tyEnum_MismatchKind__9a6KkG9auuBdYowCMkBNpD6w) 0):
						{
						}
						break;
						}
						candidates = resizeString(candidates, 1);
appendString(candidates, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_271));
						{
							NIM_BOOL T121_;
							NIM_BOOL T122_;
							T121_ = (NIM_BOOL)0;
							T122_ = (NIM_BOOL)0;
							T122_ = ((*err_3).firstMismatch.arg == ((NI) 1));
							if (!(T122_)) goto LA123_;
							T122_ = ((*nArg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160));
							LA123_: ;
							T121_ = T122_;
							if (!(T121_)) goto LA124_;
							T121_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26));
							LA124_: ;
							if (!T121_) goto LA125_;
							maybeWrongSpace = NIM_TRUE;
						}
						LA125_: ;
					}
					LA68_: ;
					{
						NimStringDesc** diag;
						NI i_6;
						NI L_4;
						NI T128_;
						diag = (NimStringDesc**)0;
						i_6 = ((NI) 0);
						T128_ = ((*err_3).diagnostics ? (*err_3).diagnostics->Sup.len : 0);
						L_4 = T128_;
						{
							while (1) {
								NimStringDesc* T131_;
								if (!(i_6 < L_4)) goto LA130;
								diag = (&(*err_3).diagnostics->data[i_6]);
								T131_ = NIM_NIL;
								T131_ = rawNewString(((*diag) ? (*diag)->Sup.len : 0) + 1);
appendString(T131_, (*diag));
appendString(T131_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_271));
								candidates = resizeString(candidates, (T131_ ? T131_->Sup.len : 0) + 0);
appendString(candidates, T131_);
								i_6 += ((NI) 1);
							} LA130: ;
						}
					}
					candidatesAll = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(candidatesAll), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
					T132_ = candidatesAll->Sup.len++;
					T133_ = NIM_NIL;
					T133_ = candidatesAll->data[T132_]; candidatesAll->data[T132_] = copyStringRC1(candidates);
					if (T133_) nimGCunrefNoCycle(T133_);
				} LA38: ;
				i_5 += ((NI) 1);
			} LA37: ;
		}
	}
	sort__sem_1792(candidatesAll->data, (candidatesAll ? candidatesAll->Sup.len : 0), ((tyEnum_SortOrder__8iBc6wlNqBa9cju9cUAhUAxA) 1));
	candidates = nsuJoinSep(candidatesAll->data, (candidatesAll ? candidatesAll->Sup.len : 0), ((NimStringDesc*) NIM_NIL));
	{
		NimStringDesc* T138_;
		NimStringDesc* T139_;
		if (!(((NI) 0) < skipped)) goto LA136_;
		T138_ = NIM_NIL;
		T139_ = NIM_NIL;
		T139_ = dollar___systemZdollars_3(skipped);
		T138_ = rawNewString((T139_ ? T139_->Sup.len : 0) + 97);
appendString(T138_, T139_);
appendString(T138_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_295));
		candidates = resizeString(candidates, (T138_ ? T138_->Sup.len : 0) + 0);
appendString(candidates, T138_);
	}
	LA136_: ;
	{
		NimStringDesc* T144_;
		NimStringDesc* T145_;
		if (!maybeWrongSpace) goto LA142_;
		T144_ = NIM_NIL;
		T145_ = NIM_NIL;
		T145_ = renderTree__renderer_46((*n)._kind_6.sons->data[((NI) 0)], 0);
		T144_ = rawNewString((T145_ ? T145_->Sup.len : 0) + 40);
appendString(T144_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_296));
appendString(T144_, T145_);
appendString(T144_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_297));
		candidates = resizeString(candidates, (T144_ ? T144_->Sup.len : 0) + 0);
appendString(candidates, T144_);
	}
	LA142_: ;
	colontmp__2 = prefer;
	colontmp__3 = copyString(candidates);
	(*Result).Field0 = colontmp__2;
	unsureAsgnRef((void**) (&(*Result).Field1), copyString(colontmp__3));
}
N_LIB_PRIVATE N_NIMCALL(void, notFoundError__sem_1922)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__0dpGN6F4ocevqUQGsaf41w* errors) {
	tyTuple__ZtAk5YtH0VW1iPowvxePrg T12_;
	tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer;
	NimStringDesc* candidates;
	NimStringDesc* result;
	NimStringDesc* T13_;
	NimStringDesc* T19_;
	NimStringDesc* T20_;
{	{
		if (!((*(*(*c).graph).config).m.errorOutputs == 0)) goto LA3_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_267), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_268, NIM_FALSE);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NI T7_;
		NimStringDesc* T10_;
		NimStringDesc* T11_;
		T7_ = (errors ? errors->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		T10_ = NIM_NIL;
		T10_ = renderTree__renderer_46((*n)._kind_6.sons->data[((NI) 0)], 0);
		T11_ = NIM_NIL;
		T11_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_269), T10_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T11_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_270, NIM_FALSE);
		goto BeforeRet_;
	}
	LA8_: ;
	nimZeroMem((void*)(&T12_), sizeof(tyTuple__ZtAk5YtH0VW1iPowvxePrg));
	presentFailedCandidates__sem_1636(c, n, errors, (&T12_));
	prefer = (tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw)0;
	prefer = T12_.Field0;
	candidates = NIM_NIL;
	candidates = T12_.Field1;
	result = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_298));
	T13_ = NIM_NIL;
	T13_ = describeArgs__sigmatch_384(c, n, ((NI) 1), prefer);
	result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
appendString(result, T13_);
	result = addChar(result, 62);
	{
		NimStringDesc* T18_;
		if (!!(((candidates ? candidates->Sup.len : 0) == 0))) goto LA16_;
		T18_ = NIM_NIL;
		T18_ = rawNewString((candidates ? candidates->Sup.len : 0) + 22);
appendString(T18_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_299));
appendString(T18_, candidates);
		result = resizeString(result, (T18_ ? T18_->Sup.len : 0) + 0);
appendString(result, T18_);
	}
	LA16_: ;
	T19_ = NIM_NIL;
	T20_ = NIM_NIL;
	T20_ = dollar___renderer_2106(n);
	T19_ = rawNewString((result ? result->Sup.len : 0) + (T20_ ? T20_->Sup.len : 0) + 13);
appendString(T19_, result);
appendString(T19_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_300));
appendString(T19_, T20_);
	liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_301, NIM_FALSE);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, bracketNotFoundError__sem_1937)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tySequence__0dpGN6F4ocevqUQGsaf41w* errors;
	tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* symx;
	errors = NIM_NIL;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
	headSymbol = (*n)._kind_6.sons->data[((NI) 0)];
	symx = initOverloadIter__lookups_1374((&o), c, headSymbol);
	{
		while (1) {
			if (!!((symx == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA2;
			{
				tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ T7_;
				NI T8_;
				if (!((520192 &((NU32)1<<((NU)((*symx).kind)&31U)))!=0)) goto LA5_;
				nimZeroMem((void*)(&T7_), sizeof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ));
				nimZeroMem((void*)(&T7_), sizeof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ));
				T7_.sym = symx;
				nimZeroMem((void*)(&T7_.firstMismatch), sizeof(tyObject_MismatchInfo__Bde9a0sl26Y9b6iLNg1iH8LQ));
				T7_.diagnostics = NIM_NIL;
				T7_.enabled = NIM_FALSE;
				errors = (tySequence__0dpGN6F4ocevqUQGsaf41w*) incrSeqV3((TGenericSeq*)(errors), (&NTIcandidateerrors__0dpGN6F4ocevqUQGsaf41w_));
				T8_ = errors->Sup.len++;
				asgnRef((void**) (&errors->data[T8_].sym), T7_.sym);
				errors->data[T8_].firstMismatch.kind = T7_.firstMismatch.kind;
				errors->data[T8_].firstMismatch.arg = T7_.firstMismatch.arg;
				asgnRef((void**) (&errors->data[T8_].firstMismatch.formal), T7_.firstMismatch.formal);
				genericSeqAssign((&errors->data[T8_].diagnostics), T7_.diagnostics, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
				errors->data[T8_].enabled = T7_.enabled;
			}
			LA5_: ;
			symx = nextOverloadIter__lookups_1528((&o), c, headSymbol);
		} LA2: ;
	}
	{
		NI T11_;
		NimStringDesc* T14_;
		NimStringDesc* T15_;
		T11_ = (errors ? errors->Sup.len : 0);
		if (!(T11_ == ((NI) 0))) goto LA12_;
		T14_ = NIM_NIL;
		T15_ = NIM_NIL;
		T15_ = dollar___renderer_2106(n);
		T14_ = rawNewString((T15_ ? T15_->Sup.len : 0) + 19);
appendString(T14_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_265));
appendString(T14_, T15_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T14_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_266, NIM_FALSE);
	}
	goto LA9_;
	LA12_: ;
	{
		notFoundError__sem_1922(c, n, errors);
	}
	LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrGet__sem_15320)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				add__ast_4797(result, (*n)._kind_6.sons->data[i]);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = semSubscript__sem_15316(c, result, flags);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T8_;
		if (!(result == 0)) goto LA6_;
		x = copyTree__ast_4431(n);
		T8_ = NIM_NIL;
		T8_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_27));
		asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3712(T8_, (*n).info));
		bracketNotFoundError__sem_1937(c, x);
		result = n;
	}
	LA6_: ;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipAddr__ast_5218)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		result = n;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrPut__sem_15343)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	b = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
	T1_ = NIM_NIL;
	T1_ = skipAddr__ast_5218((*n)._kind_6.sons->data[((NI) 1)]);
	add__ast_4797(b, T1_);
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		colontmp_ = (NI)(T3_ - ((NI) 1));
		i_2 = ((NI) 2);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				add__ast_4797(b, (*n)._kind_6.sons->data[i]);
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
	result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info, ((NI) 2));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), b);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), lastSon__ast_4832(n));
	result = semAsgn__sem_15312(c, result, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsgnOpr__sem_15372)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info, ((NI) 2));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), (*n)._kind_6.sons->data[((NI) 1)]);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), (*n)._kind_6.sons->data[((NI) 2)]);
	result = semAsgn__sem_15312(c, result, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 2));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semShallowCopy__sem_15758)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), (*n).info);
		add__ast_4797(result, (*n)._kind_6.sons->data[((NI) 1)]);
		add__ast_4797(result, (*n)._kind_6.sons->data[((NI) 2)]);
		result = semAsgn__sem_15312(c, result, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 0));
	}
	goto LA1_;
	LA4_: ;
	{
		result = semDirectOp__sem_511(c, n, flags);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIsPartOf__sem_15380)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TAnalysisResult__p9a9bcrXoRmLT4eUuwrDq9b4w r;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	result = NIM_NIL;
	r = isPartOf__aliases_129((*n)._kind_6.sons->data[((NI) 1)], (*n)._kind_6.sons->data[((NI) 2)]);
	T1_ = toInt128__types_1378(r);
	result = newIntNodeT__semfold_57(T1_, n, (*c).Sup.idgen, (*c).graph);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, toNode__sem_15433)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), i, t);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTypeDescNode__sem_15452)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* resType;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T1_;
	result = NIM_NIL;
	T1_ = nextTypeId__ast_3151((*c).Sup.idgen);
	resType = newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), T1_, sym);
	rawAddSon__ast_4288(resType, typ, NIM_TRUE);
	result = toNode__sem_15433(resType, info);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, uninstantiate__sem_15448)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	{
		result = t;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		result = base__types_63(t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
	{
		result = uninstantiate__sem_15448((*t).sons->data[((NI) 1)]);
	}
	break;
	default:
	{
		result = t;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalTypeTrait__sem_15459)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* traitCall, tyObject_TType__facALICuu8zUj0hjvbTLFg* operand, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* context) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* trait;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* operand_2;
	NimStringDesc* s;
{	result = NIM_NIL;
	trait = (*traitCall)._kind_6.sons->data[((NI) 0)];
	{
		NimStringDesc* argX60gensym4009_;
		if (!!(((*trait).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA3_;
		argX60gensym4009_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_303);
		internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym4009_, TM__rF9caJawfOjYTjsgLVUSGFA_303);
	}
	LA3_: ;
	operand_2 = skipTypes__ast_3735(operand, TM__rF9caJawfOjYTjsgLVUSGFA_304);
	{
		NIM_BOOL T7_;
		NIM_BOOL T9_;
		NI T10_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T12_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*operand_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
		if (T7_) goto LA8_;
		T9_ = (NIM_BOOL)0;
		T10_ = (NI)0;
		T10_ = len__ast_3198(traitCall);
		T9_ = (((NI) 2) < T10_);
		if (!(T9_)) goto LA11_;
		T12_ = NIM_NIL;
		T12_ = skipTypes__ast_3735((*(*traitCall)._kind_6.sons->data[((NI) 2)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123);
		T9_ = ((*T12_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
		LA11_: ;
		T7_ = T9_;
		LA8_: ;
		if (!T7_) goto LA13_;
		result = traitCall;
		goto BeforeRet_;
	}
	LA13_: ;
	s = (*(*(*trait)._kind_4.sym).name).s;
	switch (hashString(s) & 15) {
	case 0: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_309))) goto LA19_;
break;
	case 1: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_311))) goto LA21_;
break;
	case 3: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_44))) goto LA15_;
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_310))) goto LA20_;
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_314))) goto LA24_;
break;
	case 4: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_308))) goto LA19_;
break;
	case 5: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_109))) goto LA17_;
break;
	case 7: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_307))) goto LA18_;
break;
	case 9: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_316))) goto LA26_;
break;
	case 10: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_305))) goto LA15_;
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_315))) goto LA25_;
break;
	case 11: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_313))) goto LA23_;
break;
	case 13: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_312))) goto LA22_;
break;
	case 14: 
if (eqStrings(s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_306))) goto LA16_;
break;
	}
	goto LA27_;
	LA15_: ;
	{
		tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T30_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T31_;
		T30_ = NIM_NIL;
		T30_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 2);
		asgnRef((void**) (&T30_->data[0]), operand_2);
		asgnRef((void**) (&T30_->data[1]), skipTypes__ast_3735((*(*traitCall)._kind_6.sons->data[((NI) 2)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123));
		T31_ = NIM_NIL;
		T31_ = newTypeWithSons__semdata_815(context, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57), T30_, (*c).Sup.idgen);
		result = toNode__sem_15433(T31_, (*traitCall).info);
		goto BeforeRet_;
	}
	goto LA28_;
	LA16_: ;
	{
		tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T33_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T34_;
		T33_ = NIM_NIL;
		T33_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 2);
		asgnRef((void**) (&T33_->data[0]), operand_2);
		asgnRef((void**) (&T33_->data[1]), skipTypes__ast_3735((*(*traitCall)._kind_6.sons->data[((NI) 2)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123));
		T34_ = NIM_NIL;
		T34_ = newTypeWithSons__semdata_815(context, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56), T33_, (*c).Sup.idgen);
		result = toNode__sem_15433(T34_, (*traitCall).info);
		goto BeforeRet_;
	}
	goto LA28_;
	LA17_: ;
	{
		tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T36_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T37_;
		T36_ = NIM_NIL;
		T36_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
		asgnRef((void**) (&T36_->data[0]), operand_2);
		T37_ = NIM_NIL;
		T37_ = newTypeWithSons__semdata_815(context, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58), T36_, (*c).Sup.idgen);
		result = toNode__sem_15433(T37_, (*traitCall).info);
		goto BeforeRet_;
	}
	goto LA28_;
	LA18_: ;
	{
		tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer;
		NimStringDesc* T44_;
		prefer = ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 5);
		{
			NI T41_;
			NimStringDesc* preferStr;
			T41_ = (NI)0;
			T41_ = len__ast_3198(traitCall);
			if (!(((NI) 2) <= T41_)) goto LA42_;
			preferStr = (*(*traitCall)._kind_6.sons->data[((NI) 2)])._kind_3.strVal;
			prefer = parseEnum__sem_15514(preferStr);
		}
		LA42_: ;
		T44_ = NIM_NIL;
		T44_ = typeToString__types_50(operand_2, prefer);
		result = newStrNode__ast_3813(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), T44_);
		asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*(*traitCall)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28)));
		(*result).info = (*traitCall).info;
	}
	goto LA28_;
	LA19_: ;
	{
		NimStringDesc* T46_;
		T46_ = NIM_NIL;
		T46_ = typeToString__types_50(operand_2, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 5));
		result = newStrNode__ast_3813(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), T46_);
		asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*(*traitCall)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28)));
		(*result).info = (*traitCall).info;
	}
	goto LA28_;
	LA20_: ;
	{
		NI T48_;
		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T49_;
		T48_ = (NI)0;
		T48_ = len__ast_4002(operand_2);
		result = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((NI)(T48_ - ((*operand_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25))))));
		T49_ = nextTypeId__ast_3151((*c).Sup.idgen);
		asgnRef((void**) (&(*result).typ), newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31), T49_, context));
		(*result).info = (*traitCall).info;
	}
	goto LA28_;
	LA21_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* arg;
		arg = operand_2;
		switch ((*arg).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T52_;
			T52_ = NIM_NIL;
			T52_ = base__types_63(arg);
			result = getTypeDescNode__sem_15452(c, T52_, (*operand_2).owner, (*traitCall).info);
		}
		break;
		default:
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T54_;
			NimStringDesc* T55_;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T56_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T57_;
			nimZeroMem((void*)T54_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T54_[0] = toHumanStr__ast_5188((*arg).kind);
			T54_[1] = typeToString__types_50(operand_2, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T55_ = NIM_NIL;
			T55_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_317), T54_, 2);
			liMessage__msgs_1118((*(*c).graph).config, (*traitCall).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T55_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_318, NIM_FALSE);
			T56_ = nextTypeId__ast_3151((*c).Sup.idgen);
			T57_ = NIM_NIL;
			T57_ = newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), T56_, context);
			result = toNode__sem_15433(T57_, (*traitCall).info);
		}
		break;
		}
	}
	goto LA28_;
	LA22_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T59_;
		T59_ = NIM_NIL;
		T59_ = uninstantiate__sem_15448(operand_2);
		result = toNode__sem_15433(T59_, (*traitCall).info);
	}
	goto LA28_;
	LA23_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		NIM_BOOL complexObj;
		NIM_BOOL T61_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T63_;
		t = skipTypes__ast_3735(operand_2, TM__rF9caJawfOjYTjsgLVUSGFA_319);
		T61_ = (NIM_BOOL)0;
		T61_ = containsGarbageCollectedRef__types_612(t);
		if (T61_) goto LA62_;
		T61_ = !(((IL64(2147483664) & (*t).flags) == 0));
		LA62_: ;
		complexObj = T61_;
		T63_ = toInt128__types_1378(!(complexObj));
		result = newIntNodeT__semfold_57(T63_, traitCall, (*c).Sup.idgen, (*c).graph);
	}
	goto LA28_;
	LA24_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* operand_3;
		NIM_BOOL cond;
		NIM_BOOL T65_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T67_;
		operand_3 = skipTypes__ast_3735(operand_2, TM__rF9caJawfOjYTjsgLVUSGFA_320);
		T65_ = (NIM_BOOL)0;
		T65_ = ((*operand_3).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		if (!(T65_)) goto LA66_;
		T65_ = !(((*operand_3).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		LA66_: ;
		cond = T65_;
		T67_ = toInt128__types_1378(cond);
		result = newIntNodeT__semfold_57(T67_, traitCall, (*c).Sup.idgen, (*c).graph);
	}
	goto LA28_;
	LA25_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* operand_4;
		NI T69_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T70_;
		operand_4 = skipTypes__ast_3735(operand_2, TM__rF9caJawfOjYTjsgLVUSGFA_320);
		T69_ = (NI)0;
		T69_ = len__ast_4002(operand_4);
		T70_ = toInt128__types_1378(T69_);
		result = newIntNodeT__semfold_57(T70_, traitCall, (*c).Sup.idgen, (*c).graph);
	}
	goto LA28_;
	LA26_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* arg_2;
		NIM_BOOL rec;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T72_;
		arg_2 = skipTypes__ast_3735(operand_2, TM__rF9caJawfOjYTjsgLVUSGFA_320);
		T72_ = NIM_NIL;
		T72_ = semConstExpr__sem_611(c, (*traitCall)._kind_6.sons->data[((NI) 2)]);
		rec = !(((*T72_)._kind_1.intVal == IL64(0)));
		{
			while (1) {
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T75_;
				if (!((*arg_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA74;
				T75_ = NIM_NIL;
				T75_ = base__types_63(arg_2);
				arg_2 = skipTypes__ast_3735(T75_, TM__rF9caJawfOjYTjsgLVUSGFA_321);
				{
					if (!!(rec)) goto LA78_;
					goto LA73;
				}
				LA78_: ;
			} LA74: ;
		} LA73: ;
		result = getTypeDescNode__sem_15452(c, arg_2, (*operand_2).owner, (*traitCall).info);
	}
	goto LA28_;
	LA27_: ;
	{
		NimStringDesc* T81_;
		T81_ = NIM_NIL;
		T81_ = rawNewString((s ? s->Sup.len : 0) + 15);
appendString(T81_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_322));
appendString(T81_, s);
		liMessage__msgs_1118((*(*c).graph).config, (*traitCall).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T81_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_323, NIM_FALSE);
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*traitCall).info);
	}
	LA28_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeTraits__sem_15636)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	result = NIM_NIL;
	checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*c).graph).config);
	t = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		NimStringDesc* argX60gensym4046_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		argX60gensym4046_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_302);
		internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym4046_, TM__rF9caJawfOjYTjsgLVUSGFA_302);
	}
	LA5_: ;
	{
		NI T9_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T12_;
		T9_ = (NI)0;
		T9_ = len__ast_4002(t);
		if (!(((NI) 0) < T9_)) goto LA10_;
		T12_ = NIM_NIL;
		T12_ = getCurrOwner__semdata_315(c);
		result = evalTypeTrait__sem_15459(c, n, t, T12_);
	}
	goto LA7_;
	LA10_: ;
	{
		result = n;
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, expectIntLit__sem_15395)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	result = (NI)0;
	x = (*c).semConstExpr(c, n);
	switch ((*x).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
	{
		result = ((NI) ((*x)._kind_1.intVal));
	}
	break;
	default:
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_324), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_325, NIM_FALSE);
	}
	break;
	}
	return result;
}
static N_INLINE(NI, toLinenumber__msgs_609)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = ((NI) (info.line));
	return result;
}
static N_INLINE(NI, toColumn__msgs_612)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = ((NI) (info.col));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semInstantiationInfo__sem_15402)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI idx;
	NI useFullPaths;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* filename;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* line;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T22_;
	NI T23_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* column;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T24_;
	NI T25_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T26_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T28_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T30_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
	result = NIM_NIL;
	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), (*n).info, (*n).typ);
	idx = expectIntLit__sem_15395(c, (*n)._kind_6.sons->data[((NI) 1)]);
	useFullPaths = expectIntLit__sem_15395(c, (*n)._kind_6.sons->data[((NI) 2)]);
	info = getInfoContext__msgs_516((*(*c).graph).config, idx);
	T1_ = NIM_NIL;
	T1_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28));
	filename = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), (*n).info, T1_);
	{
		if (!!((useFullPaths == ((NI) 0)))) goto LA4_;
		asgnRef((void**) (&(*filename)._kind_3.strVal), toFullPath__msgs_538((*(*c).graph).config, info.fileIndex));
	}
	goto LA2_;
	LA4_: ;
	{
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = (info.fileIndex < ((NI32) 0));
			if (T9_) goto LA10_;
			T9_ = ((*(*c).graph).config == ((tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw*) NIM_NIL));
			LA10_: ;
			if (!T9_) goto LA11_;
			{
				NimStringDesc* T17_;
				if (!(info.fileIndex == ((NI32) -3))) goto LA15_;
				T17_ = NIM_NIL;
				T17_ = (*filename)._kind_3.strVal; (*filename)._kind_3.strVal = copyStringRC1(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_326));
				if (T17_) nimGCunrefNoCycle(T17_);
			}
			goto LA13_;
			LA15_: ;
			{
				NimStringDesc* T19_;
				T19_ = NIM_NIL;
				T19_ = (*filename)._kind_3.strVal; (*filename)._kind_3.strVal = copyStringRC1(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_327));
				if (T19_) nimGCunrefNoCycle(T19_);
			}
			LA13_: ;
		}
		goto LA7_;
		LA11_: ;
		{
			NimStringDesc* T21_;
			T21_ = NIM_NIL;
			T21_ = (*filename)._kind_3.strVal; (*filename)._kind_3.strVal = copyStringRC1((*(*(*c).graph).config).m.fileInfos->data[info.fileIndex].shortName);
			if (T21_) nimGCunrefNoCycle(T21_);
		}
		LA7_: ;
	}
	LA2_: ;
	T22_ = NIM_NIL;
	T22_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	line = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), (*n).info, T22_);
	T23_ = (NI)0;
	T23_ = toLinenumber__msgs_609(info);
	(*line)._kind_1.intVal = ((NI64) (T23_));
	T24_ = NIM_NIL;
	T24_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	column = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), (*n).info, T24_);
	T25_ = (NI)0;
	T25_ = toColumn__msgs_612(info);
	(*column)._kind_1.intVal = ((NI64) (T25_));
	nimZeroMem((void*)T26_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T26_[0] = (*(*(*n).typ).n)._kind_6.sons->data[((NI) 0)];
	T26_[1] = filename;
	T27_ = NIM_NIL;
	T27_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), T26_, 2);
	add__ast_4797(result, T27_);
	nimZeroMem((void*)T28_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T28_[0] = (*(*(*n).typ).n)._kind_6.sons->data[((NI) 1)];
	T28_[1] = line;
	T29_ = NIM_NIL;
	T29_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), T28_, 2);
	add__ast_4797(result, T29_);
	nimZeroMem((void*)T30_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T30_[0] = (*(*(*n).typ).n)._kind_6.sons->data[((NI) 2)];
	T30_[1] = column;
	T31_ = NIM_NIL;
	T31_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), T30_, 2);
	add__ast_4797(result, T31_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOrd__sem_15657)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* parType;
	result = NIM_NIL;
	result = n;
	parType = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isOrdinalType__types_299(parType, NIM_TRUE);
		if (!T3_) goto LA4_;
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_328), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_329, NIM_FALSE);
		asgnRef((void**) (&(*result).typ), errorType__semdata_1002(c));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOf__sem_15762)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		NI T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* a;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* b;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* y;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], 0));
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 2)], 512));
		a = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_97);
		b = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 2)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_97);
		x = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_330);
		y = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 2)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_330);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*x).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			if (T8_) goto LA9_;
			T8_ = !(((*y).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
			LA9_: ;
			if (!T8_) goto LA10_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_331), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_332, NIM_FALSE);
		}
		goto LA6_;
		LA10_: ;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = !(((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)));
			if (T13_) goto LA14_;
			T13_ = !(((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)));
			LA14_: ;
			if (!T13_) goto LA15_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_331), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_333, NIM_FALSE);
		}
		goto LA6_;
		LA15_: ;
		{
			NI diff;
			diff = inheritanceDiff__types_2685(a, b);
			{
				NimStringDesc* T22_;
				if (!(diff <= ((NI) 0))) goto LA20_;
				T22_ = NIM_NIL;
				T22_ = renderTree__renderer_46(n, 0);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 86), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_334, NIM_FALSE);
				result = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				(*result).info = (*n).info;
				asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
				goto BeforeRet_;
			}
			goto LA18_;
			LA20_: ;
			{
				if (!(diff == ((NI) IL64(9223372036854775807)))) goto LA24_;
				{
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T28_;
					NimStringDesc* T31_;
					NimStringDesc* T32_;
					T28_ = NIM_NIL;
					T28_ = commonSuperclass__types_2747(a, b);
					if (!(T28_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA29_;
					T31_ = NIM_NIL;
					T31_ = typeToString__types_50(a, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					T32_ = NIM_NIL;
					T32_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_335), T31_);
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T32_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_336, NIM_FALSE);
				}
				goto LA26_;
				LA29_: ;
				{
					NimStringDesc* T34_;
					T34_ = NIM_NIL;
					T34_ = renderTree__renderer_46(n, 0);
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 87), T34_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_337, NIM_FALSE);
					result = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
					(*result).info = (*n).info;
					asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
				}
				LA26_: ;
			}
			goto LA18_;
			LA24_: ;
			LA18_: ;
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_338), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_339, NIM_FALSE);
	}
	LA1_: ;
	asgnRef((void**) (&(*n).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
	result = n;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLowHigh__sem_14550)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_340), opToStr__sem_14555[(m)- 8]);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_343, NIM_FALSE);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], 512));
		typ = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_344);
		switch ((*typ).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			asgnRef((void**) (&(*n).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31)));
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			asgnRef((void**) (&(*n).typ), (*typ).sons->data[((NI) 0)]);
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20));
				if (!(T12_)) goto LA13_;
				T12_ = emptyRange__nimsets_273((*(*(*n).typ).n)._kind_6.sons->data[((NI) 0)], (*(*(*n).typ).n)._kind_6.sons->data[((NI) 1)]);
				LA13_: ;
				if (!T12_) goto LA14_;
				asgnRef((void**) (&(*n).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31)));
			}
			LA14_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38):
		{
			asgnRef((void**) (&(*n).typ), skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123));
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
			T18_ = NIM_NIL;
			T18_ = copyTree__ast_4431(n);
			asgnRef((void**) (&(*n).typ), makeTypeFromExpr__semdata_804(c, T18_));
		}
		break;
		default:
		{
			NimStringDesc* T20_;
			T20_ = NIM_NIL;
			T20_ = rawNewString((opToStr__sem_14555[(m)- 8] ? opToStr__sem_14555[(m)- 8]->Sup.len : 0) + 22);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_345));
appendString(T20_, opToStr__sem_14555[(m)- 8]);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_346, NIM_FALSE);
		}
		break;
		}
	}
	LA1_: ;
	result = n;
	return result;
}
static N_INLINE(NIM_BOOL, isCompileTimeProc__ast_4683)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((12288 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
	if (!(T3_)) goto LA4_;
	T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBindSym__sem_15663)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sl;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* isMixin;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* id;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T13_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
{	result = NIM_NIL;
	result = copyNode__ast_4336(n);
	add__ast_4797(result, (*n)._kind_6.sons->data[((NI) 0)]);
	sl = semConstExpr__sem_611(c, (*n)._kind_6.sons->data[((NI) 1)]);
	{
		if (!!(((*sl).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) || (*sl).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21) || (*sl).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22)))) goto LA3_;
		liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_347), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_348, NIM_FALSE);
		result = errorNode__semdata_1009(c, n);
		goto BeforeRet_;
	}
	LA3_: ;
	isMixin = semConstExpr__sem_611(c, (*n)._kind_6.sons->data[((NI) 2)]);
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = !(((*isMixin).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)));
		if (T8_) goto LA9_;
		T8_ = ((*isMixin)._kind_1.intVal < IL64(0));
		LA9_: ;
		T7_ = T8_;
		if (T7_) goto LA10_;
		T7_ = (IL64(2) < (*isMixin)._kind_1.intVal);
		LA10_: ;
		if (!T7_) goto LA11_;
		liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 2)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_349), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_350, NIM_FALSE);
		result = errorNode__semdata_1009(c, n);
		goto BeforeRet_;
	}
	LA11_: ;
	T13_ = NIM_NIL;
	T13_ = getIdent__idents_143((*c).cache, (*sl)._kind_3.strVal);
	id = newIdentNode__ast_3712(T13_, (*n).info);
	s = qualifiedLookUp__lookups_1233(c, id, 2);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sc;
		if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA16_;
		sc = symChoice__sem_6586(c, id, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) ((*isMixin)._kind_1.intVal)), NIM_FALSE);
		{
			NIM_BOOL T20_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T22_;
			T20_ = (NIM_BOOL)0;
			T20_ = (((NI) 0) < (*c).inStaticContext);
			if (T20_) goto LA21_;
			T22_ = NIM_NIL;
			T22_ = getCurrOwner__semdata_315(c);
			T20_ = isCompileTimeProc__ast_4683(T22_);
			LA21_: ;
			if (!!(T20_)) goto LA23_;
			result = sc;
			goto BeforeRet_;
		}
		LA23_: ;
		add__ast_4797(result, sc);
	}
	goto LA14_;
	LA16_: ;
	{
		errorUndeclaredIdentifier__lookups_1199(c, (*(*n)._kind_6.sons->data[((NI) 1)]).info, (*sl)._kind_3.strVal, ((NimStringDesc*) NIM_NIL));
	}
	LA14_: ;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__IqGNbqKVyQ9b9an5n9bN8QJsQ)(void* p, NI op) {
	tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg* a;
	a = (tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg*)p;
	nimGCvisit((void*)(*a).c1, op);
	nimGCvisit((void*)(*a).scope2, op);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, opBindSym__sem_15702)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI isMixin, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* id;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* tmpScope;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
{	result = NIM_NIL;
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 21) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2)))) goto LA3_;
		liMessage__msgs_1118((*(*c).graph).config, (*info).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_353), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_354, NIM_FALSE);
		result = errorNode__semdata_1009(c, n);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (isMixin < ((NI) 0));
		if (T7_) goto LA8_;
		T7_ = (((NI) 2) < isMixin);
		LA8_: ;
		if (!T7_) goto LA9_;
		liMessage__msgs_1118((*(*c).graph).config, (*info).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_349), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_355, NIM_FALSE);
		result = errorNode__semdata_1009(c, n);
		goto BeforeRet_;
	}
	LA9_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA13_;
		id = n;
	}
	goto LA11_;
	LA13_: ;
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T16_;
		T16_ = NIM_NIL;
		T16_ = getIdent__idents_143((*c).cache, (*n)._kind_3.strVal);
		id = newIdentNode__ast_3712(T16_, (*info).info);
	}
	LA11_: ;
	tmpScope = (*c).currentScope;
	asgnRef((void**) (&(*c).currentScope), scope);
	s = qualifiedLookUp__lookups_1233(c, id, 2);
	{
		if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA19_;
		result = symChoice__sem_6586(c, id, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) (isMixin)), NIM_FALSE);
	}
	goto LA17_;
	LA19_: ;
	{
		NimStringDesc* T22_;
		T22_ = NIM_NIL;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA25_;
			T22_ = copyString((*(*n)._kind_5.ident).s);
		}
		goto LA23_;
		LA25_: ;
		{
			T22_ = copyString((*n)._kind_3.strVal);
		}
		LA23_: ;
		errorUndeclaredIdentifier__lookups_1199(c, (*info).info, T22_, ((NimStringDesc*) NIM_NIL));
	}
	LA17_: ;
	asgnRef((void**) (&(*c).currentScope), tmpScope);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_CLOSURE(void, bindSymWrapper__sem_15741)(tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* a, void* ClE_0) {
	tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg* colonenvP_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI64 T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
	colonenvP_ = (tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg*) ClE_0;
	T1_ = NIM_NIL;
	T1_ = getNode__vm_330(a, ((NI) 0));
	T2_ = (NI64)0;
	T2_ = getInt__vm_273(a, ((NI) 1));
	T3_ = NIM_NIL;
	T3_ = getNode__vm_330(a, ((NI) 2));
	T4_ = NIM_NIL;
	T4_ = opBindSym__sem_15702((*colonenvP_).c1, (*colonenvP_).scope2, T1_, ((NI) (T2_)), T3_);
	setResult__vm_246(a, T4_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDynamicBindSym__sem_15732)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg* colonenv_;
	tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* vm;
	NI idx;
	tyProc__5QC9cKfPJmKuW0XbCTd8ylA T12_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idxNode;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T13_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T14_;
{	result = NIM_NIL;
	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg*) newObj((&NTIrefobject__IqGNbqKVyQ9b9an5n9bN8QJsQ_), sizeof(tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg));
	(*colonenv_).Sup.m_type = (&NTIobject__LF0eKAnygFo4etNDdpTetg_);
	asgnRef((void**) (&(*colonenv_).c1), c);
	{
		NIM_BOOL T3_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) < (*(*colonenv_).c1).inStaticContext);
		if (T3_) goto LA4_;
		T5_ = NIM_NIL;
		T5_ = getCurrOwner__semdata_315((*colonenv_).c1);
		T3_ = isCompileTimeProc__ast_4683(T5_);
		LA4_: ;
		if (!!(T3_)) goto LA6_;
		result = semBindSym__sem_15663((*colonenv_).c1, n);
		goto BeforeRet_;
	}
	LA6_: ;
	{
		if (!((*(*(*colonenv_).c1).graph).vm == 0)) goto LA10_;
		setupGlobalCtx__vm_13671((*(*colonenv_).c1).module, (*(*colonenv_).c1).graph, (*(*colonenv_).c1).Sup.idgen);
	}
	LA10_: ;
	vm = (*((tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw**) (&((*(*(*colonenv_).c1).graph).vm))));
	asgnRef((void**) (&(*colonenv_).scope2), (*(*colonenv_).c1).currentScope);
	nimZeroMem((void*)(&T12_), sizeof(tyProc__5QC9cKfPJmKuW0XbCTd8ylA));
	T12_.ClP_0 = bindSymWrapper__sem_15741; T12_.ClE_0 = colonenv_;
	idx = registerCallback__vmdef_433(vm, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_352), T12_);
	nimZeroMem((void*)(&T13_), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	T14_ = NIM_NIL;
	T14_ = getSysType__magicsys_60((*(*colonenv_).c1).graph, T13_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	idxNode = newIntTypeNode__ast_3783(((NI64) (idx)), T14_);
	result = copyNode__ast_4336(n);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		x = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA18;
					i = i_2;
					x = (*n)._kind_6.sons->data[i];
					add__ast_4797(result, x);
					i_2 += ((NI) 1);
				} LA18: ;
			}
		}
	}
	add__ast_4797(result, n);
	add__ast_4797(result, idxNode);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, whereToBindTypeHook__sem_12682)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = t;
	{
		while (1) {
			{
				if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11))) goto LA5_;
				result = lastSon__ast_3743(result);
			}
			goto LA3_;
			LA5_: ;
			{
				if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA8_;
				result = (*result).sons->data[((NI) 0)];
			}
			goto LA3_;
			LA8_: ;
			{
				goto LA1;
			}
			LA3_: ;
		}
	} LA1: ;
	{
		if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28))) goto LA13_;
		result = canonType__sem_12664(c, result);
	}
	LA13_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__s6znTCfmZMSZG9absJgsa1w)(void* p, NI op) {
	tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw* a;
	a = (tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw*)p;
	nimGCvisit((void*)(*a).orig1, op);
}
N_LIB_PRIVATE N_CLOSURE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transform__sem_15883)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* procSym, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* old, tyObject_TType__facALICuu8zUj0hjvbTLFg* fresh, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldParam, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newParam, void* ClE_0) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw* colonenvP_;
	result = NIM_NIL;
	colonenvP_ = (tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw*) ClE_0;
	result = shallowCopy__ast_4413(n);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTypeOrNil__types_1848((*n).typ, old, 0);
		if (!T3_) goto LA4_;
		asgnRef((void**) (&(*result).typ), fresh);
	}
	LA4_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA8_;
		{
			if (!((*n)._kind_4.sym == oldParam)) goto LA12_;
			asgnRef((void**) (&(*result)._kind_4.sym), newParam);
		}
		goto LA10_;
		LA12_: ;
		{
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T17_;
			if (!((*(*n)._kind_4.sym).owner == (*colonenvP_).orig1)) goto LA15_;
			T17_ = nextSymId__ast_3132((*c).Sup.idgen);
			asgnRef((void**) (&(*result)._kind_4.sym), copySym__ast_4054((*n)._kind_4.sym, T17_));
			asgnRef((void**) (&(*(*result)._kind_4.sym).owner), procSym);
		}
		goto LA10_;
		LA15_: ;
		LA10_: ;
	}
	LA8_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__ast_3191(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyProc__9aCo26f5IRYbBmS07lBztwA T21_;
				if (!(i_2 < colontmp_)) goto LA20;
				i = i_2;
				nimZeroMem((void*)(&T21_), sizeof(tyProc__9aCo26f5IRYbBmS07lBztwA));
				T21_.ClP_0 = transform__sem_15883; T21_.ClE_0 = colonenvP_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[i]), T21_.ClE_0? T21_.ClP_0(c, procSym, (*n)._kind_6.sons->data[i], old, fresh, oldParam, newParam, T21_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_364)(T21_.ClP_0))(c, procSym, (*n)._kind_6.sons->data[i], old, fresh, oldParam, newParam));
				i_2 += ((NI) 1);
			} LA20: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, turnFinalizerIntoDestructor__sem_15878)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* orig, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw* colonenv_;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T1_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* origParamType;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* newParamType;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldParam;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* newParam;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T3_;
	tyProc__9aCo26f5IRYbBmS07lBztwA T4_;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T5_;
	result = NIM_NIL;
	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw*) newObj((&NTIrefobject__s6znTCfmZMSZG9absJgsa1w_), sizeof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw));
	(*colonenv_).Sup.m_type = (&NTIobject__irrxU9bX4WBQP9bu3Q627FYw_);
	asgnRef((void**) (&(*colonenv_).orig1), orig);
	T1_ = nextSymId__ast_3132((*c).Sup.idgen);
	result = copySym__ast_4054((*colonenv_).orig1, T1_);
	(*result).info = info;
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2)) & 63);
	asgnRef((void**) (&(*result).owner), (*colonenv_).orig1);
	origParamType = (*(*(*colonenv_).orig1).typ).sons->data[((NI) 1)];
	T2_ = NIM_NIL;
	T2_ = skipTypes__ast_3735(origParamType, TM__rF9caJawfOjYTjsgLVUSGFA_97);
	newParamType = makeVarType__semdata_775(result, T2_, (*c).Sup.idgen, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
	oldParam = (*(*(*(*(*colonenv_).orig1).typ).n)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
	T3_ = nextSymId__ast_3132((*c).Sup.idgen);
	newParam = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), (*oldParam).name, T3_, result, (*result).info, 0);
	asgnRef((void**) (&(*newParam).typ), newParamType);
	nimZeroMem((void*)(&T4_), sizeof(tyProc__9aCo26f5IRYbBmS07lBztwA));
	T4_.ClP_0 = transform__sem_15883; T4_.ClE_0 = colonenv_;
	asgnRef((void**) (&(*result).ast), T4_.ClE_0? T4_.ClP_0(c, result, (*(*colonenv_).orig1).ast, origParamType, newParamType, oldParam, newParam, T4_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_365)(T4_.ClP_0))(c, result, (*(*colonenv_).orig1).ast, origParamType, newParamType, oldParam, newParam));
	T5_ = nextTypeId__ast_3151((*c).Sup.idgen);
	asgnRef((void**) (&(*result).typ), newProcType__ast_5056((*result).info, T5_, result));
	addParam__ast_5065((*result).typ, newParam);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, unownedType__sem_15818)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* elems;
		NI T2_;
		NIM_BOOL someChange;
		T2_ = (NI)0;
		T2_ = len__ast_4002(t);
		elems = newSeq__modulegraphs_2893(((NI) (T2_)));
		someChange = NIM_FALSE;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_4002(t);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					asgnRef((void**) (&elems->data[i]), unownedType__sem_15818(c, (*t).sons->data[i]));
					{
						if (!!((elems->data[i] == (*t).sons->data[i]))) goto LA8_;
						someChange = NIM_TRUE;
					}
					LA8_: ;
					i_2 += ((NI) 1);
				} LA5: ;
			}
		}
		{
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T14_;
			if (!someChange) goto LA12_;
			T14_ = nextTypeId__ast_3151((*c).Sup.idgen);
			result = newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), T14_, (*t).owner);
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg** e;
				NI i_3;
				NI L;
				NI T16_;
				e = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
				i_3 = ((NI) 0);
				T16_ = (elems ? elems->Sup.len : 0);
				L = T16_;
				{
					while (1) {
						if (!(i_3 < L)) goto LA18;
						e = &elems->data[i_3];
						rawAddSon__ast_4288(result, (*e), NIM_TRUE);
						i_3 += ((NI) 1);
					} LA18: ;
				}
			}
		}
		goto LA10_;
		LA12_: ;
		{
			result = t;
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		result = (*t).sons->data[((NI) 0)];
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* b;
		NI T22_;
		T22_ = (NI)0;
		T22_ = len__ast_4002(t);
		b = unownedType__sem_15818(c, (*t).sons->data[(NI)(T22_ - ((NI) 1))]);
		{
			NI T25_;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T28_;
			NI T29_;
			T25_ = (NI)0;
			T25_ = len__ast_4002(t);
			if (!!((b == (*t).sons->data[(NI)(T25_ - ((NI) 1))]))) goto LA26_;
			T28_ = nextTypeId__ast_3151((*c).Sup.idgen);
			result = copyType__ast_4046(t, T28_, (*t).owner);
			copyTypeProps__modulegraphs_8872((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), result, t);
			T29_ = (NI)0;
			T29_ = len__ast_4002(result);
			asgnRef((void**) (&(*result).sons->data[(NI)(T29_ - ((NI) 1))]), b);
			(*result).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63));
		}
		goto LA23_;
		LA26_: ;
		{
			result = t;
		}
		LA23_: ;
	}
	break;
	default:
	{
		result = t;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semUnown__sem_15814)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = copyTree__ast_4431((*n)._kind_6.sons->data[((NI) 1)]);
	asgnRef((void**) (&(*result).typ), unownedType__sem_15818(c, (*result).typ));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semQuantifier__sem_15921)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* args;
	NI T26_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	result = newNodeIT__ast_3378((*n).kind, (*n).info, (*n).typ);
	add__ast_4797(result, (*n)._kind_6.sons->data[((NI) 0)]);
	args = (*n)._kind_6.sons->data[((NI) 1)];
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__ast_3198(args);
		colontmp_ = (NI)(T3_ - ((NI) 2));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NIM_BOOL valid;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				it = (*args)._kind_6.sons->data[i];
				valid = NIM_FALSE;
				{
					tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* op;
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29))) goto LA8_;
					op = considerQuotedIdent__lookups_28(c, (*it)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* domain;
						tyArray__T6RKPw8xfAeNaoei9aZGzXg T20_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
						if (!((*op).id == ((NI) 31))) goto LA12_;
						v = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21), (*it)._kind_6.sons->data[((NI) 1)], c);
						{
							NIM_BOOL T16_;
							T16_ = (NIM_BOOL)0;
							T16_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
							if (!(T16_)) goto LA17_;
							T16_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
							LA17_: ;
							if (!T16_) goto LA18_;
							nep1CheckDefImpl__linter_110((*(*c).graph).config, (*v).info, v, (*v).kind);
						}
						LA18_: ;
						domain = semExprWithType__sem_56(c, (*it)._kind_6.sons->data[((NI) 2)], 2);
						asgnRef((void**) (&(*v).typ), (*domain).typ);
						valid = NIM_TRUE;
						addDecl__lookups_845(c, v);
						nimZeroMem((void*)T20_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
						T20_[0] = (*it)._kind_6.sons->data[((NI) 0)];
						T20_[1] = newSymNode__ast_3716(v);
						T20_[2] = domain;
						T21_ = NIM_NIL;
						T21_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), T20_, 3);
						add__ast_4797(result, T21_);
					}
					LA12_: ;
				}
				LA8_: ;
				{
					if (!!(valid)) goto LA24_;
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_366), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_367, NIM_FALSE);
				}
				LA24_: ;
				res += ((NI) 1);
			} LA5: ;
		}
	}
	T26_ = (NI)0;
	T26_ = len__ast_3198(args);
	T27_ = NIM_NIL;
	T27_ = semExprWithType__sem_56(c, (*args)._kind_6.sons->data[(NI)(T26_ - ((NI) 1))], 0);
	T28_ = NIM_NIL;
	T28_ = forceBool__sem_2869(c, T27_);
	add__ast_4797(result, T28_);
	closeScope__lookups_101(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOld__sem_15990)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA3_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]);
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T7_) goto LA8_;
		T7_ = !(((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
		LA8_: ;
		if (!T7_) goto LA9_;
		liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_368), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_369, NIM_FALSE);
	}
	goto LA5_;
	LA9_: ;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T12_;
		NimStringDesc* T15_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T16_;
		T12_ = NIM_NIL;
		T12_ = getCurrOwner__semdata_315(c);
		if (!!(((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).owner == T12_))) goto LA13_;
		T15_ = NIM_NIL;
		T16_ = NIM_NIL;
		T16_ = getCurrOwner__semdata_315(c);
		T15_ = rawNewString(((*(*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).name).s ? (*(*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).name).s->Sup.len : 0) + ((*(*T16_).name).s ? (*(*T16_).name).s->Sup.len : 0) + 20);
appendString(T15_, (*(*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym).name).s);
appendString(T15_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_370));
appendString(T15_, (*(*T16_).name).s);
		liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T15_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_371, NIM_FALSE);
	}
	goto LA5_;
	LA13_: ;
	LA5_: ;
	result = n;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPrivateAccess__sem_16020)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	NI T1_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
	result = NIM_NIL;
	t = toObjectFromRefPtrGeneric__ast_4890((*(*(*n)._kind_6.sons->data[((NI) 1)]).typ).sons->data[((NI) 0)]);
	asgnRef((void**) (&(*(*c).currentScope).allowPrivateAccess), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*(*c).currentScope).allowPrivateAccess), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
	T1_ = (*(*c).currentScope).allowPrivateAccess->Sup.len++;
	asgnRef((void**) (&(*(*c).currentScope).allowPrivateAccess->data[T1_]), (*t).sym);
	T2_ = NIM_NIL;
	T2_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63));
	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info, T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, magicsAfterOverloadResolution__sem_16031)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	switch ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 16):
	{
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
		result = n;
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semAddrArg__sem_15267(c, (*n)._kind_6.sons->data[((NI) 1)], eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_243))));
		asgnRef((void**) (&(*result).typ), makePtrType__semdata_742(c, (*(*result)._kind_6.sons->data[((NI) 1)]).typ));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18):
	{
		result = semTypeOf__sem_132(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 10):
	{
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* configX60gensym4179_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodeX60gensym4179_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typX60gensym4179_;
		NI64 sizeX60gensym4179_;
		configX60gensym4179_ = (*(*c).graph).config;
		nodeX60gensym4179_ = n;
		typX60gensym4179_ = (*(*nodeX60gensym4179_)._kind_6.sons->data[((NI) 1)]).typ;
		computeSizeAlign__types_2924(configX60gensym4179_, typX60gensym4179_);
		sizeX60gensym4179_ = (*typX60gensym4179_).size;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resX60gensym4179_;
			if (!(IL64(0) <= sizeX60gensym4179_)) goto LA6_;
			resX60gensym4179_ = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), sizeX60gensym4179_);
			(*resX60gensym4179_).info = (*nodeX60gensym4179_).info;
			asgnRef((void**) (&(*resX60gensym4179_).typ), (*nodeX60gensym4179_).typ);
			result = resX60gensym4179_;
		}
		goto LA4_;
		LA6_: ;
		{
			result = n;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 11):
	{
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* configX60gensym4183_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodeX60gensym4183_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typX60gensym4183_;
		NI16 alignX60gensym4183_;
		configX60gensym4183_ = (*(*c).graph).config;
		nodeX60gensym4183_ = n;
		typX60gensym4183_ = (*(*nodeX60gensym4183_)._kind_6.sons->data[((NI) 1)]).typ;
		computeSizeAlign__types_2924(configX60gensym4183_, typX60gensym4183_);
		alignX60gensym4183_ = (*typX60gensym4183_).align;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resX60gensym4183_;
			if (!(((NI16) 0) <= alignX60gensym4183_)) goto LA12_;
			resX60gensym4183_ = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (alignX60gensym4183_)));
			(*resX60gensym4183_).info = (*nodeX60gensym4183_).info;
			asgnRef((void**) (&(*resX60gensym4183_).typ), (*nodeX60gensym4183_).typ);
			result = resX60gensym4183_;
		}
		goto LA10_;
		LA12_: ;
		{
			result = n;
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 12):
	{
		tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* configX60gensym4187_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodeX60gensym4187_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dotExprX60gensym4187_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* valueX60gensym4187_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* memberX60gensym4187_;
		NI offsetX60gensym4187_;
		configX60gensym4187_ = (*(*c).graph).config;
		nodeX60gensym4187_ = n;
		dotExprX60gensym4187_ = NIM_NIL;
		{
			{
				if (!((*(*nodeX60gensym4187_)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA19_;
				dotExprX60gensym4187_ = (*nodeX60gensym4187_)._kind_6.sons->data[((NI) 1)];
			}
			goto LA17_;
			LA19_: ;
			{
				if (!((*(*nodeX60gensym4187_)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA22_;
				dotExprX60gensym4187_ = (*(*nodeX60gensym4187_)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
			}
			goto LA17_;
			LA22_: ;
			{
				liMessage__msgs_1118(configX60gensym4187_, (*nodeX60gensym4187_).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_246), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_247, NIM_FALSE);
			}
			LA17_: ;
		}
		valueX60gensym4187_ = (*dotExprX60gensym4187_)._kind_6.sons->data[((NI) 0)];
		memberX60gensym4187_ = (*dotExprX60gensym4187_)._kind_6.sons->data[((NI) 1)];
		computeSizeAlign__types_2924(configX60gensym4187_, (*valueX60gensym4187_).typ);
		offsetX60gensym4187_ = (*(*memberX60gensym4187_)._kind_4.sym).offset;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym4187_;
			if (!(((NI) 0) <= offsetX60gensym4187_)) goto LA27_;
			tmpX60gensym4187_ = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (offsetX60gensym4187_)));
			(*tmpX60gensym4187_).info = (*nodeX60gensym4187_).info;
			asgnRef((void**) (&(*tmpX60gensym4187_).typ), (*nodeX60gensym4187_).typ);
			result = tmpX60gensym4187_;
		}
		goto LA25_;
		LA27_: ;
		{
			result = n;
		}
		LA25_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5):
	{
		result = semArrGet__sem_15320(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 6):
	{
		result = semArrPut__sem_15343(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 7):
	{
		{
			if (!eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_178))) goto LA35_;
			result = semAsgnOpr__sem_15372(c, n);
		}
		goto LA33_;
		LA35_: ;
		{
			result = semShallowCopy__sem_15758(c, n, flags);
		}
		LA33_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 139):
	{
		result = semIsPartOf__sem_15380(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 13):
	{
		result = semTypeTraits__sem_15636(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 140):
	{
		NimStringDesc* T41_;
		T41_ = NIM_NIL;
		T41_ = renderTree__renderer_46((*n)._kind_6.sons->data[((NI) 1)], 4);
		result = newStrNodeT__semfold_76(T41_, n, (*c).graph);
		asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28)));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 260):
	{
		result = semInstantiationInfo__sem_15402(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 31):
	{
		result = semOrd__sem_15657(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 15):
	{
		result = semOf__sem_15762(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 9):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8):
	{
		result = semLowHigh__sem_14550(c, n, (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 21):
	{
		result = semShallowCopy__sem_15758(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 250):
	{
		{
			if (!!((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 6))&31U)))!=0))) goto LA50_;
			result = semBindSym__sem_15663(c, n);
		}
		goto LA48_;
		LA50_: ;
		{
			result = semDynamicBindSym__sem_15732(c, n);
		}
		LA48_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 203):
	{
		result = n;
		asgnRef((void**) (&(*result).typ), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 127):
	{
		result = n;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 19):
	{
		tyProc__RcJNn9bSvWdJgUmA1O6sbHA plugin;
		plugin = getPlugin__pluginsZactive_25((*c).cache, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
		{
			NimStringDesc* T60_;
			if (!(plugin == 0)) goto LA58_;
			T60_ = NIM_NIL;
			T60_ = rawNewString(((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s ? (*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s->Sup.len : 0) + 19);
appendString(T60_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_356));
appendString(T60_, (*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T60_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_357, NIM_FALSE);
			result = n;
		}
		goto LA56_;
		LA58_: ;
		{
			result = plugin(c, n);
		}
		LA56_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33):
	{
		{
			NIM_BOOL T65_;
			NI T66_;
			NI T68_;
			T65_ = (NIM_BOOL)0;
			T66_ = (NI)0;
			T66_ = len__ast_3198(n);
			T65_ = ((*(*n)._kind_6.sons->data[(NI)(T66_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T65_)) goto LA67_;
			T68_ = (NI)0;
			T68_ = len__ast_3198(n);
			T65_ = !(((12288 &((NU32)1<<((NU)((*(*(*n)._kind_6.sons->data[(NI)(T68_ - ((NI) 1))])._kind_4.sym).kind)&31U)))!=0));
			LA67_: ;
			if (!T65_) goto LA69_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_358), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_359, NIM_FALSE);
		}
		goto LA63_;
		LA69_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nfin;
			NI T74_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fin;
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 41))&63U)))!=0)) goto LA72_;
			T74_ = (NI)0;
			T74_ = len__ast_3198(n);
			nfin = skipConvCastAndClosure__astalgo_114((*n)._kind_6.sons->data[(NI)(T74_ - ((NI) 1))]);
			switch ((*nfin).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
			{
				fin = (*nfin)._kind_4.sym;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
			{
				fin = (*(*nfin)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			}
			break;
			default:
			{
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_358), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_360, NIM_FALSE);
				fin = NIM_NIL;
			}
			break;
			}
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T86_;
				if (!!((fin == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA80_;
				{
					if (!!(((12288 &((NU32)1<<((NU)((*fin).kind)&31U)))!=0))) goto LA84_;
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_358), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_361, NIM_FALSE);
				}
				LA84_: ;
				T86_ = NIM_NIL;
				T86_ = skipTypes__ast_3735((*(*fin).typ).sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_362);
				t = whereToBindTypeHook__sem_12682(c, T86_);
				{
					NIM_BOOL T89_;
					NIM_BOOL T90_;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T92_;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T94_;
					T89_ = (NIM_BOOL)0;
					T90_ = (NIM_BOOL)0;
					T90_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
					if (!(T90_)) goto LA91_;
					T92_ = NIM_NIL;
					T92_ = getAttachedOp__modulegraphs_4011((*c).graph, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
					T90_ = !((T92_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
					LA91_: ;
					T89_ = T90_;
					if (!(T89_)) goto LA93_;
					T94_ = NIM_NIL;
					T94_ = getAttachedOp__modulegraphs_4011((*c).graph, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
					T89_ = ((*T94_).owner == fin);
					LA93_: ;
					if (!T89_) goto LA95_;
				}
				goto LA87_;
				LA95_: ;
				{
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T98_;
					T98_ = NIM_NIL;
					T98_ = turnFinalizerIntoDestructor__sem_15878(c, fin, (*n).info);
					bindTypeHook__sem_12702(c, T98_, n, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
				}
				LA87_: ;
			}
			LA80_: ;
		}
		goto LA63_;
		LA72_: ;
		LA63_: ;
		result = n;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
		result = n;
		t_2 = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_228);
		op = getAttachedOp__modulegraphs_4011((*c).graph, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
		{
			if (!!((op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA102_;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(op));
		}
		LA102_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 151):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t_3;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op_2;
		result = n;
		t_3 = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_228);
		op_2 = getAttachedOp__modulegraphs_4011((*c).graph, t_3, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3));
		{
			if (!!((op_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA107_;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(op_2));
		}
		LA107_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 153):
	{
		result = semUnown__sem_15814(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 113):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 114):
	{
		result = semQuantifier__sem_15921(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		result = semOld__sem_15990(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 138):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* seqType;
		result = n;
		seqType = skipTypes__ast_3735((*(*result)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_372);
		{
			NIM_BOOL T115_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T117_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T120_;
			NimStringDesc* T121_;
			T115_ = (NIM_BOOL)0;
			T115_ = ((*seqType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
			if (!(T115_)) goto LA116_;
			T117_ = NIM_NIL;
			T117_ = base__types_63(seqType);
			T115_ = requiresInit__typeallowed_582(T117_);
			LA116_: ;
			if (!T115_) goto LA118_;
			T120_ = NIM_NIL;
			T120_ = base__types_63(seqType);
			T121_ = NIM_NIL;
			T121_ = typeToString__types_50(T120_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 40), T121_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_373, NIM_FALSE);
		}
		LA118_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 152):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* constructed;
		result = n;
		{
			NimStringDesc* argX60gensym4250_;
			if (!!(((*(*(*result)._kind_6.sons->data[((NI) 1)]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA125_;
			argX60gensym4250_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_374);
			internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym4250_, TM__rF9caJawfOjYTjsgLVUSGFA_374);
		}
		LA125_: ;
		constructed = base__types_63((*(*result)._kind_6.sons->data[((NI) 1)]).typ);
		{
			NIM_BOOL T129_;
			NimStringDesc* T132_;
			T129_ = (NIM_BOOL)0;
			T129_ = requiresInit__typeallowed_582(constructed);
			if (!T129_) goto LA130_;
			T132_ = NIM_NIL;
			T132_ = typeToString__types_50(constructed, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 41), T132_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_375, NIM_FALSE);
		}
		LA130_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 155):
	{
		{
			NIM_BOOL T136_;
			NimStringDesc* T139_;
			NimStringDesc* T140_;
			T136_ = (NIM_BOOL)0;
			T136_ = checkIsolate__isolation95check_112((*n)._kind_6.sons->data[((NI) 1)]);
			if (!!(T136_)) goto LA137_;
			T139_ = NIM_NIL;
			T140_ = NIM_NIL;
			T140_ = dollar___renderer_2106((*n)._kind_6.sons->data[((NI) 1)]);
			T139_ = rawNewString((T140_ ? T140_->Sup.len : 0) + 31);
appendString(T139_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_376));
appendString(T139_, T140_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T139_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_377, NIM_FALSE);
		}
		LA137_: ;
		result = n;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	{
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T144_;
			T144_ = NIM_NIL;
			T144_ = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_70);
			if (!((*T144_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*T144_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44))) goto LA145_;
			(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic = ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66);
		}
		LA145_: ;
		result = n;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 275):
	{
		result = semPrivateAccess__sem_16020(c, n);
	}
	break;
	default:
	{
		result = n;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasCycle__sem_548)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 0)) & 31);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__ast_3191(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = (((*(*n)._kind_6.sons->data[i]).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 0))&31U)))!=0);
					if (T6_) goto LA7_;
					T6_ = hasCycle__sem_548((*n)._kind_6.sons->data[i]);
					LA7_: ;
					if (!T6_) goto LA8_;
					result = NIM_TRUE;
					goto LA1;
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	} LA1: ;
	(*n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 0)) & 31));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fixupTypeAfterEval__sem_570)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eOrig) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		if (!((*(*eOrig).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6) || (*(*eOrig).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7) || (*(*eOrig).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA3_;
		result = semExprWithType__sem_56(c, evaluated, 0);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* expectedType;
		result = evaluated;
		expectedType = skipTypes__ast_3735((*eOrig).typ, TM__rF9caJawfOjYTjsgLVUSGFA_30);
		{
			NIM_BOOL T8_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n2X60gensym48_;
			T8_ = (NIM_BOOL)0;
			T8_ = hasCycle__sem_548(result);
			if (!T8_) goto LA9_;
			n2X60gensym48_ = eOrig;
			liMessage__msgs_1118((*(*c).graph).config, (*n2X60gensym48_).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_381), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_382, NIM_FALSE);
			result = errorNode__semdata_1009(c, n2X60gensym48_);
		}
		goto LA6_;
		LA9_: ;
		{
			annotateType__semmacrosanity_69(result, expectedType, (*(*c).graph).config);
		}
		LA6_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalAtCompileTime__sem_117)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee;
{	result = NIM_NIL;
	result = n;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*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)));
		if (T3_) goto LA4_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	callee = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T9_)) goto LA10_;
		T9_ = (((*(*n).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 33))&63U)))!=0);
		LA10_: ;
		if (!T9_) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		NIM_BOOL T15_;
		NIM_BOOL T16_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
		NIM_BOOL allConst;
		T15_ = (NIM_BOOL)0;
		T16_ = (NIM_BOOL)0;
		T16_ = !(((*callee).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)));
		if (!(T16_)) goto LA17_;
		T16_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_378[(NU)((*callee).magic)>>3] &(1U<<((NU)((*callee).magic)&7U)))!=0);
		LA17_: ;
		T15_ = T16_;
		if (!(T15_)) goto LA18_;
		T15_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA18_: ;
		if (!T15_) goto LA19_;
		call = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, (*n).typ);
		add__ast_4797(call, (*n)._kind_6.sons->data[((NI) 0)]);
		allConst = NIM_TRUE;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					if (!(i_2 < colontmp_)) goto LA23;
					i = i_2;
					a = getConstExpr__semfold_81((*c).module, (*n)._kind_6.sons->data[i], (*c).Sup.idgen, (*c).graph);
					{
						if (!(a == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA26_;
						allConst = NIM_FALSE;
						a = (*n)._kind_6.sons->data[i];
						{
							if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58))) goto LA30_;
							a = (*a)._kind_6.sons->data[((NI) 1)];
						}
						LA30_: ;
					}
					LA26_: ;
					add__ast_4797(call, a);
					i_2 += ((NI) 1);
				} LA23: ;
			}
		}
		{
			if (!allConst) goto LA34_;
			result = getConstExpr__semfold_81((*c).module, call, (*c).Sup.idgen, (*c).graph);
			{
				if (!(result == 0)) goto LA38_;
				result = n;
			}
			goto LA36_;
			LA38_: ;
			{
				goto BeforeRet_;
			}
			LA36_: ;
		}
		LA34_: ;
	}
	LA19_: ;
	{
		{
			NI T44_;
			tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T58_;
			T44_ = (NI)0;
			T44_ = len__ast_3198(n);
			if (!(((NI) 1) < T44_)) goto LA45_;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_3198(n);
				i_4 = ((NI) 1);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA49;
						i_3 = i_4;
						{
							NIM_BOOL T52_;
							NIM_BOOL T53_;
							T52_ = (NIM_BOOL)0;
							T53_ = (NIM_BOOL)0;
							T53_ = ((*(*n)._kind_6.sons->data[i_3]).typ == 0);
							if (T53_) goto LA54_;
							T53_ = !(((*(*(*n)._kind_6.sons->data[i_3]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)));
							LA54_: ;
							T52_ = T53_;
							if (T52_) goto LA55_;
							T52_ = !((((*(*(*n)._kind_6.sons->data[i_3]).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0));
							LA55_: ;
							if (!T52_) goto LA56_;
							goto LA41;
						}
						LA56_: ;
						i_4 += ((NI) 1);
					} LA49: ;
				}
			}
			T58_ = NIM_NIL;
			T58_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
			asgnRef((void**) (&T58_->data[0]), (*n).typ);
			asgnRef((void**) (&(*n).typ), newTypeWithSons__semdata_821(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), T58_));
			(*(*n).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
		}
		LA45_: ;
	} LA41: ;
	{
		NIM_BOOL T61_;
		NIM_BOOL T63_;
		NIM_BOOL T64_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call_2;
		T61_ = (NIM_BOOL)0;
		T61_ = ((*callee).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10));
		if (T61_) goto LA62_;
		T63_ = (NIM_BOOL)0;
		T64_ = (NIM_BOOL)0;
		T64_ = !(((268439552 & (*callee).flags) == 0));
		if (!(T64_)) goto LA65_;
		T64_ = ((80 & (*callee).flags) == 0);
		LA65_: ;
		T63_ = T64_;
		if (!(T63_)) goto LA66_;
		T63_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA66_: ;
		T61_ = T63_;
		LA62_: ;
		if (!T61_) goto LA67_;
		{
			NIM_BOOL T71_;
			NIM_BOOL T72_;
			T71_ = (NIM_BOOL)0;
			T72_ = (NIM_BOOL)0;
			T72_ = !(((*callee).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10)));
			if (!(T72_)) goto LA73_;
			T72_ = !((((*callee).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0));
			LA73_: ;
			T71_ = T72_;
			if (!(T71_)) goto LA74_;
			T71_ = !((((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 22))&31U)))!=0));
			LA74_: ;
			if (!T71_) goto LA75_;
			goto BeforeRet_;
		}
		LA75_: ;
		{
			if (!!(((TM__rF9caJawfOjYTjsgLVUSGFA_378[(NU)((*callee).magic)>>3] &(1U<<((NU)((*callee).magic)&7U)))!=0))) goto LA79_;
			goto BeforeRet_;
		}
		LA79_: ;
		{
			NIM_BOOL T83_;
			T83_ = (NIM_BOOL)0;
			T83_ = !(((78848 &((NU32)1<<((NU)((*callee).kind)&31U)))!=0));
			if (T83_) goto LA84_;
			T83_ = isGenericRoutine__ast_4646(callee);
			LA84_: ;
			if (!T83_) goto LA85_;
			goto BeforeRet_;
		}
		LA85_: ;
		{
			NIM_BOOL T89_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T91_;
			T89_ = (NIM_BOOL)0;
			T89_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T89_)) goto LA90_;
			T91_ = NIM_NIL;
			T91_ = typeAllowed__typeallowed_476((*n).typ, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10), c, 0);
			T89_ = !((T91_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			LA90_: ;
			if (!T89_) goto LA92_;
			goto BeforeRet_;
		}
		LA92_: ;
		call_2 = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, (*n).typ);
		add__ast_4797(call_2, (*n)._kind_6.sons->data[((NI) 0)]);
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3198(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
					if (!(i_6 < colontmp__3)) goto LA96;
					i_5 = i_6;
					a_2 = getConstExpr__semfold_81((*c).module, (*n)._kind_6.sons->data[i_5], (*c).Sup.idgen, (*c).graph);
					{
						if (!(a_2 == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA99_;
						result = n;
						goto BeforeRet_;
					}
					LA99_: ;
					add__ast_4797(call_2, a_2);
					i_6 += ((NI) 1);
				} LA96: ;
			}
		}
		{
			NIM_BOOL T103_;
			T103_ = (NIM_BOOL)0;
			T103_ = ((*c).inStaticContext == ((NI) 0));
			if (T103_) goto LA104_;
			T103_ = (((*callee).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
			LA104_: ;
			if (!T103_) goto LA105_;
			{
				if (!(((*callee).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0)) goto LA109_;
				result = evalStaticExpr__vm_13752((*c).module, (*c).Sup.idgen, (*c).graph, call_2, (*(*c).p).owner);
				{
					NimStringDesc* T115_;
					NimStringDesc* T116_;
					if (!(result == 0)) goto LA113_;
					T115_ = NIM_NIL;
					T115_ = renderTree__renderer_46(call_2, 0);
					T116_ = NIM_NIL;
					T116_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_379), T115_);
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T116_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_380, NIM_FALSE);
				}
				goto LA111_;
				LA113_: ;
				{
					result = fixupTypeAfterEval__sem_570(c, result, n);
				}
				LA111_: ;
			}
			goto LA107_;
			LA109_: ;
			{
				result = evalConstExpr__vm_13746((*c).module, (*c).Sup.idgen, (*c).graph, call_2);
				{
					if (!(result == 0)) goto LA121_;
					result = n;
				}
				goto LA119_;
				LA121_: ;
				{
					result = fixupTypeAfterEval__sem_570(c, result, n);
				}
				LA119_: ;
			}
			LA107_: ;
		}
		goto LA101_;
		LA105_: ;
		{
			result = n;
		}
		LA101_: ;
	}
	LA67_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, afterCallActions__sem_16525)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 13))&31U)))!=0));
		if (!(T4_)) goto LA5_;
		T4_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50));
		LA6_: ;
		if (!T3_) goto LA7_;
		result = errorNode__semdata_1009(c, n);
		goto BeforeRet_;
	}
	LA7_: ;
	result = n;
	callee = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	switch ((*callee).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
	{
		result = semMacroExpr__sem_524(c, result, orig, callee, flags);
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		result = semTemplateExpr__sem_519(c, result, callee, flags);
	}
	break;
	default:
	{
		semFinishOperands__sigmatch_4162(c, result);
		activate__sem_108(c, result);
		fixAbstractType__sem_14967(c, result);
		analyseIfAddressTakenInCall__sem_15147(c, result);
		{
			if (!!(((*callee).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA14_;
			result = magicsAfterOverloadResolution__sem_16031(c, result, flags);
		}
		LA14_: ;
	}
	break;
	}
	{
		if (!((*c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL))) goto LA18_;
		result = evalAtCompileTime__sem_117(c, result);
	}
	LA18_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDirectOp__sem_511)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig;
	result = NIM_NIL;
	nOrig = copyTree__ast_4431(n);
	result = semOverloadedCallAnalyseEffects__sem_16425(c, n, nOrig, flags);
	{
		if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
		result = afterCallActions__sem_16525(c, result, nOrig, flags);
	}
	goto LA1_;
	LA3_: ;
	{
		result = errorNode__semdata_1009(c, n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalPattern__sem_671)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NimStringDesc* rule;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NimStringDesc* argX60gensym82_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		argX60gensym82_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_227);
		internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym82_, TM__rF9caJawfOjYTjsgLVUSGFA_227);
	}
	LA5_: ;
	rule = NIM_NIL;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = hasHint__options_517((*(*c).graph).config, ((tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA) 89));
		if (!T9_) goto LA10_;
		rule = renderTree__renderer_46(n, 4);
	}
	LA10_: ;
	s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
	{
		result = semMacroExpr__sem_524(c, n, orig, s, 0);
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		result = semTemplateExpr__sem_519(c, n, s, 65536);
	}
	break;
	default:
	{
		result = semDirectOp__sem_511(c, n, 0);
	}
	break;
	}
	{
		NIM_BOOL T17_;
		NimStringDesc* T20_;
		NimStringDesc* T21_;
		T17_ = (NIM_BOOL)0;
		T17_ = hasHint__options_517((*(*c).graph).config, ((tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA) 89));
		if (!T17_) goto LA18_;
		T20_ = NIM_NIL;
		T21_ = NIM_NIL;
		T21_ = renderTree__renderer_46(result, 4);
		T20_ = rawNewString((rule ? rule->Sup.len : 0) + (T21_ ? T21_->Sup.len : 0) + 7);
appendString(T20_, rule);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_383));
appendString(T20_, T21_);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
		liMessage__msgs_1118((*(*c).graph).config, (*orig).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 89), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_384, NIM_FALSE);
	}
	LA18_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyPatterns__sem_692)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).patterns ? (*c).patterns->Sup.len : 0);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = colontmp_;
		{
			while (1) {
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* pattern;
				if (!(((NI) 0) <= res)) goto LA4;
				i = res;
				pattern = (*c).patterns->data[i];
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
					if (!!((pattern == 0))) goto LA7_;
					x = applyRule__patterns_548(c, pattern, result);
					{
						if (!!((x == 0))) goto LA11_;
						(*(*(*c).graph).config).evalTemplateCounter += ((NI) 1);
						{
							if (!(((NI) 1000) < (*(*(*c).graph).config).evalTemplateCounter)) goto LA15_;
							liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_14), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_225, NIM_FALSE);
						}
						LA15_: ;
						asgnRef((void**) (&(*c).patterns->data[i]), ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
						{
							if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA19_;
							asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 1)]), evalPattern__sem_671(c, (*x)._kind_6.sons->data[((NI) 1)], result));
							result = flattenStmts__trees_355(x);
						}
						goto LA17_;
						LA19_: ;
						{
							result = evalPattern__sem_671(c, x, result);
						}
						LA17_: ;
						(*(*(*c).graph).config).evalTemplateCounter -= ((NI) 1);
						asgnRef((void**) (&(*c).patterns->data[i]), pattern);
					}
					LA11_: ;
				}
				LA7_: ;
				res -= ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hlo__sem_668)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	(*c).hloLoopDetector += ((NI) 1);
	{
		if (!(((NI) 300) < (*c).hloLoopDetector)) goto LA3_;
		result = n;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = n;
	}
	break;
	default:
	{
		{
			NIM_BOOL T9_;
			NIM_BOOL T10_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36));
			if (!(T10_)) goto LA11_;
			T10_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			LA11_: ;
			T9_ = T10_;
			if (!(T9_)) goto LA12_;
			T9_ = ((2056 & (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags) == 2056);
			LA12_: ;
			if (!T9_) goto LA13_;
			result = n;
			goto BeforeRet_;
		}
		LA13_: ;
		result = applyPatterns__sem_692(c, n);
		{
			if (!(result == n)) goto LA17_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191(result);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* h;
						if (!(i_2 < colontmp_)) goto LA21;
						i = i_2;
						a = (*result)._kind_6.sons->data[i];
						h = hlo__sem_668(c, a);
						{
							if (!!((h == a))) goto LA24_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i]), h);
						}
						LA24_: ;
						i_2 += ((NI) 1);
					} LA21: ;
				}
			}
		}
		goto LA15_;
		LA17_: ;
		{
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = isEmptyType__ast_4779((*n).typ);
				if (!(T29_)) goto LA30_;
				T29_ = isEmptyType__ast_4779((*result).typ);
				LA30_: ;
				if (!T29_) goto LA31_;
			}
			goto LA27_;
			LA31_: ;
			{
				result = fitNode__sem_70(c, (*n).typ, result, (*n).info);
			}
			LA27_: ;
			result = commonOptimizations__transf_1490((*c).graph, (*c).Sup.idgen, (*c).module, result);
			result = hlo__sem_668(c, result);
			result = commonOptimizations__transf_1490((*c).graph, (*c).Sup.idgen, (*c).module, result);
		}
		LA15_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hloBody__sem_783)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = ((*c).patterns ? (*c).patterns->Sup.len : 0);
		T3_ = (T4_ == ((NI) 0));
		if (T3_) goto LA5_;
		T3_ = !((((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 23))&31U)))!=0));
		LA5_: ;
		if (!T3_) goto LA6_;
		result = n;
		goto BeforeRet_;
	}
	LA6_: ;
	(*c).hloLoopDetector = ((NI) 0);
	result = hlo__sem_668(c, n);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, popProcCon__semdata_389)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	asgnRef((void**) (&(*c).p), (*(*c).p).next);
}
N_LIB_PRIVATE N_NIMCALL(void, typeAllowedCheck__sem_481)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg flags) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	t = typeAllowed__typeallowed_476(typ, kind, c, flags);
	{
		NimStringDesc* err;
		if (!!((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA3_;
		err = NIM_NIL;
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T9_;
			if (!(t == typ)) goto LA7_;
			nimZeroMem((void*)T9_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T9_[0] = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T9_[1] = toHumanStr__ast_5158(kind);
			err = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_387), T9_, 2);
			{
				NIM_BOOL T12_;
				tyArray__nHXaesL0DJZHyVS07ARPRA T16_;
				NimStringDesc* T17_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((1792 &((NU32)1<<((NU)(kind)&31U)))!=0);
				if (!(T12_)) goto LA13_;
				T12_ = ((flags &((NU8)1<<((NU)(((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 5))&7U)))!=0);
				LA13_: ;
				if (!T12_) goto LA14_;
				nimZeroMem((void*)T16_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
				T16_[0] = toHumanStr__ast_5158((*(*typ).owner).kind);
				T17_ = NIM_NIL;
				T17_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_388), T16_, 1);
				err = resizeString(err, (T17_ ? T17_->Sup.len : 0) + 0);
appendString(err, T17_);
			}
			LA14_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T19_;
			nimZeroMem((void*)T19_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T19_[0] = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T19_[1] = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T19_[2] = toHumanStr__ast_5158(kind);
			err = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_389), T19_, 3);
		}
		LA5_: ;
		liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), err, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_390, NIM_FALSE);
	}
	LA3_: ;
}
static N_INLINE(void, paramsTypeCheck__sem_505)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
	typeAllowedCheck__sem_481(c, (*(*typ).n).info, typ, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12), 0);
}
N_LIB_PRIVATE N_NIMCALL(void, fixupInstantiatedSymbols__sem_1095)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).generics ? (*c).generics->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym162_;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym163_;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldPrc;
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T9_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
					xX60gensym162_ = (*c).generics->data[i].genericSym;
					xX60gensym163_ = s;
					if (!((NI)((NI)((NU64)(((NI) ((*xX60gensym162_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym162_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym163_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym163_).Sup.itemId.item))))) goto LA7_;
					oldPrc = (*(*c).generics->data[i].inst).sym;
					pushProcCon__sem_898(c, oldPrc);
					pushOwner__semdata_322(c, oldPrc);
					pushInfoContext__msgs_490((*(*c).graph).config, (*oldPrc).info, ((NimStringDesc*) NIM_NIL));
					T9_ = NIM_NIL;
					T9_ = openScope__lookups_69(c);
					n = (*oldPrc).ast;
					T10_ = NIM_NIL;
					T10_ = getBody__modulegraphs_11241((*c).graph, s);
					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), copyTree__ast_4431(T10_));
					instantiateBody__sem_1028(c, n, (*(*oldPrc).typ).n, oldPrc, s);
					closeScope__lookups_101(c);
					popInfoContext__msgs_507((*(*c).graph).config);
					popOwner__semdata_329(c);
					popProcCon__semdata_389(c);
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, searchForBorrowProc__sem_2711)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* startScope, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
	NIM_BOOL hasDistinct;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	call = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*fn).info);
	hasDistinct = NIM_FALSE;
	T1_ = NIM_NIL;
	T1_ = newIdentNode__ast_3712((*fn).name, (*fn).info);
	add__ast_4797(call, T1_);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198((*(*fn).typ).n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* param;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* x;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				param = (*(*(*fn).typ).n)._kind_6.sons->data[i];
				t = skipTypes__ast_3735((*param).typ, TM__rF9caJawfOjYTjsgLVUSGFA_395);
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
					if (T7_) goto LA8_;
					T7_ = ((*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
					LA8_: ;
					if (!T7_) goto LA9_;
					hasDistinct = NIM_TRUE;
				}
				LA9_: ;
				x = NIM_NIL;
				{
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T15_;
					if (!((*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA13_;
					x = newTypeS__semdata_733((*(*param).typ).kind, c);
					T15_ = NIM_NIL;
					T15_ = baseOfDistinct__types_3363(t, (*c).graph, (*c).Sup.idgen);
					addSonSkipIntLit__magicsys_136(x, T15_, (*c).Sup.idgen);
				}
				goto LA11_;
				LA13_: ;
				{
					x = baseOfDistinct__types_3363(t, (*c).graph, (*c).Sup.idgen);
				}
				LA11_: ;
				T17_ = NIM_NIL;
				T17_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*fn).info, x);
				add__ast_4797(call, T17_);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resolved;
		if (!hasDistinct) goto LA20_;
		{
			if (!((12288 &((NU32)1<<((NU)((*fn).kind)&31U)))!=0)) goto LA24_;
			filter = 12288;
		}
		goto LA22_;
		LA24_: ;
		{
			filter = 0;
			filter |=((NU32)(1)<<(((*fn).kind)%(sizeof(NU32)*8)));
		}
		LA22_: ;
		resolved = semOverloadedCall__sem_2498(c, call, call, filter, 0);
		{
			if (!!((resolved == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA29_;
			result = (*(*resolved)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				NIM_BOOL T33_;
				T33_ = (NIM_BOOL)0;
				T33_ = compareTypes__types_2668((*(*result).typ).sons->data[((NI) 0)], (*(*fn).typ).sons->data[((NI) 0)], ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1), 0);
				if (!!(T33_)) goto LA34_;
				result = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
			}
			goto LA31_;
			LA34_: ;
			{
				if (!((*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 6) || (*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5))) goto LA37_;
				result = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
			}
			goto LA31_;
			LA37_: ;
			LA31_: ;
		}
		LA29_: ;
	}
	LA20_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semBorrow__sem_12356)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b;
	b = searchForBorrowProc__sem_2711(c, (*(*c).currentScope).parent, s);
	{
		if (!!((b == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA3_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), newSymNode__ast_3716(b));
		(*s).magic = (*b).magic;
		{
			NIM_BOOL T7_;
			NI T9_;
			T7_ = (NIM_BOOL)0;
			T7_ = !(((*b).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T7_)) goto LA8_;
			T9_ = (NI)0;
			T9_ = len__ast_4002((*b).typ);
			T7_ = (((NI) 0) < T9_);
			LA8_: ;
			if (!T7_) goto LA10_;
			asgnRef((void**) (&(*(*(*s).typ).n)._kind_6.sons->data[((NI) 0)]), (*(*(*b).typ).n)._kind_6.sons->data[((NI) 0)]);
		}
		LA10_: ;
		(*(*s).typ).flags = (*(*b).typ).flags;
	}
	goto LA1_;
	LA3_: ;
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_396), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_397, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sideEffectsCheck__sem_1122)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcAux__sem_13030)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL isAnon;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* declarationScope;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T10_;
	tyTuple__7rlNEhvBksZh9a9asniQIl9aQ T36_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* proto;
	NIM_BOOL comesFromShadowScope;
	NIM_BOOL hasProto;
{	result = NIM_NIL;
	result = semProcAnnotation__sem_12465(c, n, validPragmas);
	{
		if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = n;
	checkMinSonsLen__semdata_1084(n, ((NI) 7), (*(*c).graph).config);
	isAnon = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
	s = NIM_NIL;
	switch ((*(*n)._kind_6.sons->data[((NI) 0)]).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	{
		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T6_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T7_;
		T6_ = nextSymId__ast_3132((*c).Sup.idgen);
		T7_ = NIM_NIL;
		T7_ = getCurrOwner__semdata_315(c);
		s = newSym__ast_3445(kind, (*(*c).cache).idAnon, T6_, T7_, (*n).info, 0);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(s));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		asgnRef((void**) (&(*s).owner), getCurrOwner__semdata_315(c));
	}
	break;
	default:
	{
		s = semIdentDef__sem_9679(c, (*n)._kind_6.sons->data[((NI) 0)], kind, NIM_TRUE);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(s));
	}
	break;
	}
	asgnRef((void**) (&(*s).ast), n);
	(*s).options = (*(*(*c).graph).config).options;
	declarationScope = (*c).currentScope;
	pushOwner__semdata_322(c, s);
	T10_ = NIM_NIL;
	T10_ = openScope__lookups_69(c);
	setGenericParamsMisc__sem_6510(c, n);
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA13_;
		semParamList__sem_91(c, (*n)._kind_6.sons->data[((NI) 3)], (*n)._kind_6.sons->data[((NI) 2)], s);
	}
	goto LA11_;
	LA13_: ;
	{
		asgnRef((void**) (&(*s).typ), newProcType__sem_5053(c, (*n).info, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
	}
	LA11_: ;
	{
		NI T18_;
		T18_ = (NI)0;
		T18_ = safeLen__ast_3191((*n)._kind_6.sons->data[((NI) 2)]);
		if (!(T18_ == ((NI) 0))) goto LA19_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), (*(*n)._kind_6.sons->data[((NI) 5)])._kind_6.sons->data[((NI) 1)]);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 5)]), (*(*c).graph).emptyNode);
	}
	LA19_: ;
	{
		if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 33))&63U)))!=0)) goto LA23_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 28)) & 63);
	}
	LA23_: ;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA27_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semPattern__sem_7129(c, (*n)._kind_6.sons->data[((NI) 1)], s));
	}
	LA27_: ;
	{
		if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15))) goto LA31_;
		(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15)) & 63);
	}
	goto LA29_;
	LA31_: ;
	{
		if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13))) goto LA34_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 12)) & 63);
		(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1)) & 63);
	}
	goto LA29_;
	LA34_: ;
	LA29_: ;
	nimZeroMem((void*)(&T36_), sizeof(tyTuple__7rlNEhvBksZh9a9asniQIl9aQ));
	{
		if (!isAnon) goto LA39_;
		T36_.Field0 = TM__rF9caJawfOjYTjsgLVUSGFA_168.Field0;
		T36_.Field1 = TM__rF9caJawfOjYTjsgLVUSGFA_168.Field1;
	}
	goto LA37_;
	LA39_: ;
	{
		searchForProc__procfind_73(c, declarationScope, s, (&T36_));
	}
	LA37_: ;
	proto = NIM_NIL;
	proto = T36_.Field0;
	comesFromShadowScope = (NIM_BOOL)0;
	comesFromShadowScope = T36_.Field1;
	{
		NIM_BOOL T44_;
		NIM_BOOL T45_;
		T44_ = (NIM_BOOL)0;
		T45_ = (NIM_BOOL)0;
		T45_ = (proto == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
		if (!(T45_)) goto LA46_;
		T45_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
		LA46_: ;
		T44_ = T45_;
		if (!(T44_)) goto LA47_;
		T44_ = !(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA47_: ;
		if (!T44_) goto LA48_;
		proto = s;
	}
	LA48_: ;
	hasProto = !((proto == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
	{
		{
			if (!!(((*(*s).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)))) goto LA53_;
			{
				if (!isAnon) goto LA57_;
				(*(*s).typ).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9);
			}
			goto LA55_;
			LA57_: ;
			{
				(*(*s).typ).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5);
			}
			LA55_: ;
		}
		LA53_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
	}
	break;
	default:
	{
		{
			tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* T66_;
			if (!!(hasProto)) goto LA64_;
			T66_ = NIM_NIL;
			T66_ = lastOptionEntry__semdata_341(c);
			(*(*s).typ).callConv = (*T66_).defaultCC;
		}
		LA64_: ;
	}
	break;
	}
	{
		NIM_BOOL T69_;
		T69_ = (NIM_BOOL)0;
		T69_ = !(hasProto);
		if (!(T69_)) goto LA70_;
		T69_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0));
		LA70_: ;
		if (!T69_) goto LA71_;
		{
			if (!((1568832 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA75_;
			addInterfaceOverloadableSymAt__lookups_899(c, declarationScope, s);
		}
		goto LA73_;
		LA75_: ;
		{
			addInterfaceDeclAt__lookups_875(c, declarationScope, s);
		}
		LA73_: ;
	}
	LA71_: ;
	pragmaCallable__pragmas_2552(c, s, n, validPragmas, NIM_FALSE);
	{
		if (!!(hasProto)) goto LA80_;
		implicitPragmas__pragmas_2394(c, s, (*n).info, validPragmas);
	}
	LA80_: ;
	{
		NIM_BOOL T84_;
		T84_ = (NIM_BOOL)0;
		T84_ = !(((*(*n)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		if (!(T84_)) goto LA85_;
		T84_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0));
		LA85_: ;
		if (!T84_) goto LA86_;
		setEffectsForProcType__sempass50_4545((*c).graph, (*s).typ, (*n)._kind_6.sons->data[((NI) 4)], s);
	}
	LA86_: ;
	(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 44)) & 63);
	{
		NIM_BOOL T90_;
		NIM_BOOL T92_;
		NIM_BOOL T93_;
		NimStringDesc* T98_;
		NimStringDesc* T99_;
		NimStringDesc* T100_;
		NimStringDesc* T101_;
		T90_ = (NIM_BOOL)0;
		T90_ = hasProto;
		if (!(T90_)) goto LA91_;
		T92_ = (NIM_BOOL)0;
		T93_ = (NIM_BOOL)0;
		T93_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 42))&63U)))!=0);
		if (!(T93_)) goto LA94_;
		T93_ = !(((*(*proto).typ).callConv == (*(*s).typ).callConv));
		LA94_: ;
		T92_ = T93_;
		if (T92_) goto LA95_;
		T92_ = ((((*(*proto).typ).flags & ~ (*(*s).typ).flags)==0)&&((*(*proto).typ).flags != (*(*s).typ).flags));
		LA95_: ;
		T90_ = T92_;
		LA91_: ;
		if (!T90_) goto LA96_;
		T98_ = NIM_NIL;
		T99_ = NIM_NIL;
		T99_ = dollar___msgs_624((*(*c).graph).config, (*proto).info);
		T100_ = NIM_NIL;
		T100_ = dollar___msgs_624((*(*c).graph).config, (*s).info);
		T98_ = rawNewString(((*(*proto).name).s ? (*(*proto).name).s->Sup.len : 0) + (T99_ ? T99_->Sup.len : 0) + ((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + (T100_ ? T100_->Sup.len : 0) + 17);
appendString(T98_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
appendString(T98_, (*(*proto).name).s);
appendString(T98_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_170));
appendString(T98_, T99_);
appendString(T98_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_171));
appendString(T98_, (*(*s).name).s);
appendString(T98_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_170));
appendString(T98_, T100_);
		T101_ = NIM_NIL;
		T101_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_169), T98_);
		liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 4)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T101_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_172, NIM_FALSE);
	}
	LA96_: ;
	{
		NIM_BOOL T104_;
		T104_ = (NIM_BOOL)0;
		T104_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
		if (!(T104_)) goto LA105_;
		T104_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
		LA105_: ;
		if (!T104_) goto LA106_;
		nep1CheckDefImpl__linter_110((*(*c).graph).config, (*s).info, s, (*s).kind);
	}
	LA106_: ;
	{
		if (!hasProto) goto LA110_;
	}
	goto LA108_;
	LA110_: ;
	{
	}
	LA108_: ;
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T127_;
		if (!hasProto) goto LA115_;
		{
			NIM_BOOL T119_;
			T119_ = (NIM_BOOL)0;
			T119_ = !((((*proto).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0));
			if (!(T119_)) goto LA120_;
			T119_ = ((*proto).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
			LA120_: ;
			if (!T119_) goto LA121_;
			wrongRedefinition__lookups_805(c, (*n).info, (*(*proto).name).s, (*proto).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15));
		}
		LA121_: ;
		{
			if (!!(comesFromShadowScope)) goto LA125_;
			(*proto).flags &= ~(((NU64)1) << ((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4)) & 63));
			(*proto).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 5)) & 63);
		}
		LA125_: ;
		suggestSym__sigmatch_5375((*c).graph, (*s).info, proto, &(*(*c).graph).usageSym, NIM_TRUE);
		closeScope__lookups_101(c);
		T127_ = NIM_NIL;
		T127_ = openScope__lookups_69(c);
		{
			NIM_BOOL T130_;
			T130_ = (NIM_BOOL)0;
			T130_ = isGenericParams__ast_4616((*(*proto).ast)._kind_6.sons->data[((NI) 2)]);
			if (!T130_) goto LA131_;
			addGenericParamListToScope__sem_11586(c, (*(*proto).ast)._kind_6.sons->data[((NI) 2)]);
		}
		LA131_: ;
		addParams__sem_96(c, (*(*proto).typ).n, (*proto).kind);
		(*proto).info = (*s).info;
		(*proto).options = (*s).options;
		s = proto;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), (*(*proto).ast)._kind_6.sons->data[((NI) 2)]);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 3)]), (*(*proto).ast)._kind_6.sons->data[((NI) 3)]);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 4)]), (*(*proto).ast)._kind_6.sons->data[((NI) 4)]);
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA135_;
			internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_173), TM__rF9caJawfOjYTjsgLVUSGFA_174);
		}
		LA135_: ;
		asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym), proto);
		{
			NIM_BOOL T139_;
			NimStringDesc* T141_;
			NimStringDesc* T144_;
			T139_ = (NIM_BOOL)0;
			T139_ = importantComments__options_3989((*(*c).graph).config);
			if (!(T139_)) goto LA140_;
			T141_ = NIM_NIL;
			T141_ = comment__ast_993((*proto).ast);
			T139_ = (((NI) 0) < (T141_ ? T141_->Sup.len : 0));
			LA140_: ;
			if (!T139_) goto LA142_;
			T144_ = NIM_NIL;
			T144_ = comment__ast_993((*proto).ast);
			commenteq___ast_1361(n, T144_);
		}
		LA142_: ;
		asgnRef((void**) (&(*proto).ast), n);
		popOwner__semdata_329(c);
		pushOwner__semdata_322(c, s);
	}
	LA115_: ;
	{
		if (!!(isAnon)) goto LA147_;
		{
			NIM_BOOL T151_;
			T151_ = (NIM_BOOL)0;
			T151_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0);
			if (T151_) goto LA152_;
			T151_ = ((NU8)((*(*s).name).s->data[((NI) 0)]) == (NU8)(61));
			LA152_: ;
			if (!T151_) goto LA153_;
			semOverride__sem_12811(c, s, n);
		}
		goto LA149_;
		LA153_: ;
		{
			if (!(((NU8)((*(*s).name).s->data[((NI) 0)])) == ((NU8)(46)) || ((NU8)((*(*s).name).s->data[((NI) 0)])) == ((NU8)(40)))) goto LA156_;
			{
				NIM_BOOL T160_;
				NimStringDesc* T164_;
				T160_ = (NIM_BOOL)0;
				T160_ = contains__stdZenumutils_43(TM__rF9caJawfOjYTjsgLVUSGFA_208, 3, (*(*s).name).s);
				if (!(T160_)) goto LA161_;
				T160_ = ((18 & (*c).features) == 0);
				LA161_: ;
				if (!T160_) goto LA162_;
				T164_ = NIM_NIL;
				T164_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 80);
appendString(T164_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_212));
appendString(T164_, (*(*s).name).s);
appendString(T164_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_213));
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T164_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_214, NIM_FALSE);
			}
			goto LA158_;
			LA162_: ;
			{
				NIM_BOOL T166_;
				NimStringDesc* T170_;
				T166_ = (NIM_BOOL)0;
				T166_ = eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_215));
				if (!(T166_)) goto LA167_;
				T166_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 2))&31U)))!=0));
				LA167_: ;
				if (!T166_) goto LA168_;
				T170_ = NIM_NIL;
				T170_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 80);
appendString(T170_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_212));
appendString(T170_, (*(*s).name).s);
appendString(T170_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_216));
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T170_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_217, NIM_FALSE);
			}
			goto LA158_;
			LA168_: ;
			LA158_: ;
		}
		goto LA149_;
		LA156_: ;
		LA149_: ;
	}
	LA147_: ;
	{
		NIM_BOOL T173_;
		T173_ = (NIM_BOOL)0;
		T173_ = !(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		if (!(T173_)) goto LA174_;
		T173_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
		LA174_: ;
		if (!T173_) goto LA175_;
		{
			NimStringDesc* T181_;
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0)) goto LA179_;
			T181_ = NIM_NIL;
			T181_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_218), (*(*s).name).s);
			liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 6)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T181_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_219, NIM_FALSE);
		}
		LA179_: ;
		{
			NIM_BOOL T184_;
			NIM_BOOL T185_;
			NIM_BOOL T188_;
			T184_ = (NIM_BOOL)0;
			T185_ = (NIM_BOOL)0;
			T185_ = ((6 &((NU16)1<<((NU)((*(*(*c).graph).config).ideCmd)&15U)))!=0);
			if (!(T185_)) goto LA186_;
			T185_ = !(((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0));
			LA186_: ;
			T184_ = T185_;
			if (!(T184_)) goto LA187_;
			T188_ = (NIM_BOOL)0;
			T188_ = cursorInProc__sem_12969((*(*c).graph).config, (*n)._kind_6.sons->data[((NI) 6)]);
			T184_ = !(T188_);
			LA187_: ;
			if (!T184_) goto LA189_;
			{
				if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA193_;
				semMethodPrototype__sem_12993(c, s, n);
			}
			LA193_: ;
		}
		goto LA182_;
		LA189_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
			if (!isAnon) goto LA196_;
			gp = (*n)._kind_6.sons->data[((NI) 2)];
			{
				NIM_BOOL T200_;
				NIM_BOOL T202_;
				NI T203_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T207_;
				T200_ = (NIM_BOOL)0;
				T200_ = ((*gp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
				if (T200_) goto LA201_;
				T202_ = (NIM_BOOL)0;
				T203_ = (NI)0;
				T203_ = len__ast_3198(gp);
				T202_ = (T203_ == ((NI) 1));
				if (!(T202_)) goto LA204_;
				T202_ = (((*(*(*gp)._kind_6.sons->data[((NI) 0)]).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 11))&63U)))!=0);
				LA204_: ;
				T200_ = T202_;
				LA201_: ;
				if (!T200_) goto LA205_;
				pushProcCon__sem_898(c, s);
				addResult__sem_12396(c, n, (*(*s).typ).sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
				T207_ = NIM_NIL;
				T207_ = semProcBody__sem_67(c, (*n)._kind_6.sons->data[((NI) 6)]);
				asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 6)]), hloBody__sem_783(c, T207_));
				trackProc__sempass50_4697(c, s, (*(*s).ast)._kind_6.sons->data[((NI) 6)]);
				popProcCon__semdata_389(c);
			}
			goto LA198_;
			LA205_: ;
			{
				if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 12))&31U)))!=0))) goto LA209_;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_385), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_386, NIM_FALSE);
			}
			goto LA198_;
			LA209_: ;
			LA198_: ;
		}
		goto LA182_;
		LA196_: ;
		{
			pushProcCon__sem_898(c, s);
			{
				NIM_BOOL T214_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T224_;
				T214_ = (NIM_BOOL)0;
				T214_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
				if (T214_) goto LA215_;
				T214_ = ((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
				LA215_: ;
				if (!T214_) goto LA216_;
				{
					NIM_BOOL T220_;
					T220_ = (NIM_BOOL)0;
					T220_ = !(((393216 &((NU32)1<<((NU)((*s).kind)&31U)))!=0));
					if (!(T220_)) goto LA221_;
					T220_ = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
					LA221_: ;
					if (!T220_) goto LA222_;
					paramsTypeCheck__sem_505(c, (*s).typ);
				}
				LA222_: ;
				maybeAddResult__sem_100(c, s, n);
				T224_ = NIM_NIL;
				T224_ = semProcBody__sem_67(c, (*n)._kind_6.sons->data[((NI) 6)]);
				asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 6)]), hloBody__sem_783(c, T224_));
				trackProc__sempass50_4697(c, s, (*(*s).ast)._kind_6.sons->data[((NI) 6)]);
			}
			goto LA212_;
			LA216_: ;
			{
				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T235_;
				{
					NIM_BOOL T228_;
					tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T232_;
					tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T233_;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T234_;
					T228_ = (NIM_BOOL)0;
					T228_ = !(((*(*s).typ).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
					if (!(T228_)) goto LA229_;
					T228_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15)));
					LA229_: ;
					if (!T228_) goto LA230_;
					T232_ = NIM_NIL;
					T232_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102));
					T233_ = nextSymId__ast_3132((*c).Sup.idgen);
					T234_ = NIM_NIL;
					T234_ = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T232_, T233_, ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), (*n).info, 0);
					addDecl__lookups_845(c, T234_);
				}
				LA230_: ;
				T235_ = NIM_NIL;
				T235_ = openScope__lookups_69(c);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semGenericStmt__sem_2885(c, (*n)._kind_6.sons->data[((NI) 6)]));
				closeScope__lookups_101(c);
				{
					if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA238_;
					fixupInstantiatedSymbols__sem_1095(c, s);
				}
				LA238_: ;
			}
			LA212_: ;
			{
				if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA242_;
				semMethodPrototype__sem_12993(c, s, n);
			}
			LA242_: ;
			popProcCon__semdata_389(c);
		}
		LA182_: ;
	}
	goto LA171_;
	LA175_: ;
	{
		{
			if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA247_;
			semMethodPrototype__sem_12993(c, s, n);
		}
		LA247_: ;
		{
			NimStringDesc* T253_;
			if (!hasProto) goto LA251_;
			T253_ = NIM_NIL;
			T253_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_391), (*(*proto).name).s);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T253_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_392, NIM_FALSE);
		}
		LA251_: ;
		{
			NIM_BOOL T256_;
			T256_ = (NIM_BOOL)0;
			T256_ = ((IL64(2164260928) & (*s).flags) == 0);
			if (!(T256_)) goto LA257_;
			T256_ = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
			LA257_: ;
			if (!T256_) goto LA258_;
			{
				NIM_BOOL T262_;
				NIM_BOOL T263_;
				T262_ = (NIM_BOOL)0;
				T263_ = (NIM_BOOL)0;
				T263_ = ((12288 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
				if (!(T263_)) goto LA264_;
				T263_ = !(((*(*s).typ).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
				LA264_: ;
				T262_ = T263_;
				if (!(T262_)) goto LA265_;
				T262_ = ((*(*(*s).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
				LA265_: ;
				if (!T262_) goto LA266_;
				liMessage__msgs_1118((*(*c).graph).config, (*(*(*n)._kind_6.sons->data[((NI) 3)])._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_393), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_394, NIM_FALSE);
			}
			LA266_: ;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4)) & 63);
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 5)) & 63);
		}
		goto LA254_;
		LA258_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0)) goto LA269_;
			semBorrow__sem_12356(c, n, s);
		}
		goto LA254_;
		LA269_: ;
		LA254_: ;
	}
	LA171_: ;
	sideEffectsCheck__sem_1122(c, s);
	closeScope__lookups_101(c);
	popOwner__semdata_329(c);
	{
		NI T275_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA273_;
		asgnRef((void**) (&(*c).patterns), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*c).patterns), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
		T275_ = (*c).patterns->Sup.len++;
		asgnRef((void**) (&(*c).patterns->data[T275_]), s);
	}
	LA273_: ;
	{
		if (!isAnon) goto LA278_;
		transitionSonsKind__ast_4359(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 51));
		asgnRef((void**) (&(*result).typ), (*s).typ);
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA282_;
			asgnRef((void**) (&(*result).typ), makeVarType__semdata_766(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
		}
		LA282_: ;
	}
	goto LA276_;
	LA278_: ;
	{
		NIM_BOOL T285_;
		NIM_BOOL T286_;
		T285_ = (NIM_BOOL)0;
		T286_ = (NIM_BOOL)0;
		T286_ = isTopLevel__semdata_1091(c);
		if (!(T286_)) goto LA287_;
		T286_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15)));
		LA287_: ;
		T285_ = T286_;
		if (!(T285_)) goto LA288_;
		T285_ = ((*(*s).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA288_: ;
		if (!T285_) goto LA289_;
		liMessage__msgs_1118((*(*c).graph).config, (*s).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_398), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_399, NIM_FALSE);
	}
	goto LA276_;
	LA289_: ;
	LA276_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, determineType__sem_1460)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
{	{
		if (!!(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = NIM_NIL;
	T5_ = semProcAux__sem_13030(c, (*s).ast, (*s).kind, TM__rF9caJawfOjYTjsgLVUSGFA_400, 0);
	(void)(T5_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__u9c10b19cqoKPxYSuh3ZKtIw*, initCandidateSymbols__sem_1463)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* best, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* alt, tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ* o, NIM_BOOL diagnostics) {
	tySequence__u9c10b19cqoKPxYSuh3ZKtIw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* symx;
	result = NIM_NIL;
	result = NIM_NIL;
	symx = initOverloadIter__lookups_1374(o, c, headSymbol);
	{
		while (1) {
			if (!!((symx == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA2;
			{
				tyTuple__TZXo9ct5DP9bCdCGHY4IfZPQ T7_;
				NI T8_;
				if (!((filter &((NU32)1<<((NU)((*symx).kind)&31U)))!=0)) goto LA5_;
				nimZeroMem((void*)(&T7_), sizeof(tyTuple__TZXo9ct5DP9bCdCGHY4IfZPQ));
				T7_.Field0 = symx;
				T7_.Field1 = lastOverloadScope__lookups_1472((&(*o)));
				result = (tySequence__u9c10b19cqoKPxYSuh3ZKtIw*) incrSeqV3((TGenericSeq*)(result), (&NTIseqLLpsym_intTT__u9c10b19cqoKPxYSuh3ZKtIw_));
				T8_ = result->Sup.len++;
				asgnRef((void**) (&result->data[T8_].Field0), T7_.Field0);
				result->data[T8_].Field1 = T7_.Field1;
			}
			LA5_: ;
			symx = nextOverloadIter__lookups_1528(o, c, headSymbol);
		} LA2: ;
	}
	{
		NI T11_;
		T11_ = (result ? result->Sup.len : 0);
		if (!(((NI) 0) < T11_)) goto LA12_;
		initCandidate__sigmatch_124(c, best, result->data[((NI) 0)].Field0, initialBinding, result->data[((NI) 0)].Field1, diagnostics);
		initCandidate__sigmatch_124(c, alt, result->data[((NI) 0)].Field0, initialBinding, result->data[((NI) 0)].Field1, diagnostics);
		(*best).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
	}
	LA12_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pickBestCandidate__sem_1496)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* best, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* alt, tySequence__0dpGN6F4ocevqUQGsaf41w** errors, NIM_BOOL diagnosticsFlag, NIM_BOOL errorsEnabled, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
	NI scope;
	NI counterInitial;
	tySequence__u9c10b19cqoKPxYSuh3ZKtIw* syms;
	NIM_BOOL noSyms;
	NI nextSymIndex;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA z;
	nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
	sym = initOverloadIter__lookups_1374((&o), c, headSymbol);
	scope = lastOverloadScope__lookups_1472((&o));
	counterInitial = (*(*c).currentScope).symbols.counter;
	syms = NIM_NIL;
	noSyms = NIM_TRUE;
	nextSymIndex = ((NI) 0);
	{
		while (1) {
			if (!!((sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA2;
			{
				if (!((filter &((NU32)1<<((NU)((*sym).kind)&31U)))!=0)) goto LA5_;
				initCandidate__sigmatch_124(c, best, sym, initialBinding, scope, diagnosticsFlag);
				initCandidate__sigmatch_124(c, alt, sym, initialBinding, scope, diagnosticsFlag);
				(*best).state = ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2);
				goto LA1;
			}
			goto LA3_;
			LA5_: ;
			{
				sym = nextOverloadIter__lookups_1528((&o), c, headSymbol);
				scope = lastOverloadScope__lookups_1472((&o));
			}
			LA3_: ;
		} LA2: ;
	} LA1: ;
	nimZeroMem((void*)(&z), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	{
		while (1) {
			if (!!((sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA9;
			{
				{
					if (!!(((filter &((NU32)1<<((NU)((*sym).kind)&31U)))!=0))) goto LA13_;
					sym = nextOverloadIter__lookups_1528((&o), c, headSymbol);
					scope = lastOverloadScope__lookups_1472((&o));
					goto LA10;
				}
				LA13_: ;
				determineType__sem_1460(c, sym);
				initCandidate__sigmatch_124(c, (&z), sym, initialBinding, scope, diagnosticsFlag);
				{
					NIM_BOOL T17_;
					NI T19_;
					T17_ = (NIM_BOOL)0;
					T17_ = ((*(*c).currentScope).symbols.counter == counterInitial);
					if (T17_) goto LA18_;
					T19_ = (syms ? syms->Sup.len : 0);
					T17_ = !((T19_ == ((NI) 0)));
					LA18_: ;
					if (!T17_) goto LA20_;
					matches__sigmatch_4181(c, n, orig, (&z));
					{
						if (!(z.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1))) goto LA24_;
						{
							if (!((*sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15))) goto LA28_;
							{
								NIM_BOOL T32_;
								T32_ = (NIM_BOOL)0;
								T32_ = !(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 1))&31U)))!=0));
								if (!(T32_)) goto LA33_;
								T32_ = ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 2))&31U)))!=0);
								LA33_: ;
								if (!!(T32_)) goto LA34_;
								z.exactMatches += ((NI) 200);
							}
							goto LA30_;
							LA34_: ;
							{
								z.exactMatches -= ((NI) 200);
							}
							LA30_: ;
						}
						LA28_: ;
						switch ((*best).state) {
						case ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 0):
						case ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 2):
						{
							genericAssign((void*)(&(*best)), (void*)(&z), (&NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_));
						}
						break;
						case ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1):
						{
							NI cmp;
							cmp = cmpCandidates__sigmatch_358((&(*best)), (&z));
							{
								if (!(cmp < ((NI) 0))) goto LA41_;
								genericAssign((void*)(&(*best)), (void*)(&z), (&NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_));
							}
							goto LA39_;
							LA41_: ;
							{
								if (!(cmp == ((NI) 0))) goto LA44_;
								genericAssign((void*)(&(*alt)), (void*)(&z), (&NTItcandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA_));
							}
							goto LA39_;
							LA44_: ;
							LA39_: ;
						}
						break;
						}
					}
					goto LA22_;
					LA24_: ;
					{
						NIM_BOOL T47_;
						tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ T51_;
						NI T52_;
						T47_ = (NIM_BOOL)0;
						T47_ = errorsEnabled;
						if (T47_) goto LA48_;
						T47_ = z.diagnosticsEnabled;
						LA48_: ;
						if (!T47_) goto LA49_;
						nimZeroMem((void*)(&T51_), sizeof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ));
						nimZeroMem((void*)(&T51_), sizeof(tyObject_CandidateError__5fLnqPfj0Ty9cmak1Q1pBFQ));
						T51_.sym = sym;
						T51_.firstMismatch.kind = z.firstMismatch.kind;
						T51_.firstMismatch.arg = z.firstMismatch.arg;
						T51_.firstMismatch.formal = z.firstMismatch.formal;
						genericSeqAssign((&T51_.diagnostics), z.diagnostics, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
						unsureAsgnRef((void**) (&(*errors)), (tySequence__0dpGN6F4ocevqUQGsaf41w*) incrSeqV3((TGenericSeq*)((*errors)), (&NTIcandidateerrors__0dpGN6F4ocevqUQGsaf41w_)));
						T52_ = (*errors)->Sup.len++;
						asgnRef((void**) (&(*errors)->data[T52_].sym), T51_.sym);
						(*errors)->data[T52_].firstMismatch.kind = T51_.firstMismatch.kind;
						(*errors)->data[T52_].firstMismatch.arg = T51_.firstMismatch.arg;
						asgnRef((void**) (&(*errors)->data[T52_].firstMismatch.formal), T51_.firstMismatch.formal);
						genericSeqAssign((&(*errors)->data[T52_].diagnostics), T51_.diagnostics, (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
						(*errors)->data[T52_].enabled = T51_.enabled;
					}
					goto LA22_;
					LA49_: ;
					LA22_: ;
				}
				goto LA15_;
				LA20_: ;
				{
					syms = initCandidateSymbols__sem_1463(c, headSymbol, initialBinding, filter, best, alt, (&o), diagnosticsFlag);
					noSyms = NIM_FALSE;
				}
				LA15_: ;
				{
					if (!noSyms) goto LA56_;
					sym = nextOverloadIter__lookups_1528((&o), c, headSymbol);
					scope = lastOverloadScope__lookups_1472((&o));
				}
				goto LA54_;
				LA56_: ;
				{
					NI T59_;
					T59_ = (syms ? syms->Sup.len : 0);
					if (!(nextSymIndex < T59_)) goto LA60_;
					sym = syms->data[nextSymIndex].Field0;
					scope = syms->data[nextSymIndex].Field1;
					nextSymIndex += ((NI) 1);
				}
				goto LA54_;
				LA60_: ;
				{
					goto LA8;
				}
				LA54_: ;
			} LA10: ;
		} LA9: ;
	} LA8: ;
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___pureZunicode_840)(NI a, NI b) {
	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_3215)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x) {
	NimStringDesc* result;
	NI a;
	NI L;
	result = NIM_NIL;
	a = x.a;
	L = (NI)((NI)((NI)((s ? s->Sup.len : 0) - x.b) - a) + ((NI) 1));
	result = mnewString(((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				result->data[i] = s->data[(NI)(i + a)];
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot___stdZenumutils_80)(NI a, NI b) {
	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	result.a = a;
	result.b = b;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getMsgDiagnostic__sem_1968)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f) {
	NimStringDesc* result;
	NimStringDesc* ident;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T10_;
	result = NIM_NIL;
	{
		if (!(((NI) 0) < (*c).compilesContextId)) goto LA3_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
		nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
		sym = initOverloadIter__lookups_1374((&o), c, f);
		{
			while (1) {
				tyArray__nHXaesL0DJZHyVS07ARPRA T8_;
				NimStringDesc* T9_;
				if (!!((sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA7;
				nimZeroMem((void*)T8_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
				T8_[0] = getSymRepr__lookups_548((*(*c).graph).config, sym, NIM_TRUE);
				T9_ = NIM_NIL;
				T9_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_402), T8_, 1);
				result = resizeString(result, (T9_ ? T9_->Sup.len : 0) + 0);
appendString(result, T9_);
				sym = nextOverloadIter__lookups_1528((&o), c, f);
			} LA7: ;
		}
	}
	LA1_: ;
	T10_ = NIM_NIL;
	T10_ = considerQuotedIdent__lookups_28(c, f, n);
	ident = (*T10_).s;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym_2;
		NimStringDesc* typeHint;
		NimStringDesc* suffix;
		NimStringDesc* T28_;
		NimStringDesc* T29_;
		if (!((2560 & (*n).flags) == 512)) goto LA13_;
		sym_2 = typSym__astmsgs_5((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		typeHint = ((NimStringDesc*) NIM_NIL);
		{
			if (!(sym_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA17_;
		}
		goto LA15_;
		LA17_: ;
		{
			NimStringDesc* T20_;
			NimStringDesc* T21_;
			T20_ = NIM_NIL;
			T21_ = NIM_NIL;
			T21_ = getProcHeader__types_222((*(*c).graph).config, sym_2, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
			T20_ = rawNewString((T21_ ? T21_->Sup.len : 0) + 10);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_403));
appendString(T20_, T21_);
			typeHint = T20_;
		}
		LA15_: ;
		{
			NimStringDesc* T26_;
			if (!(((NI) 0) < (result ? result->Sup.len : 0))) goto LA24_;
			T26_ = NIM_NIL;
			T26_ = rawNewString((result ? result->Sup.len : 0) + 1);
appendString(T26_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_404));
appendString(T26_, result);
			suffix = T26_;
		}
		goto LA22_;
		LA24_: ;
		{
			suffix = ((NimStringDesc*) NIM_NIL);
		}
		LA22_: ;
		T28_ = NIM_NIL;
		T29_ = NIM_NIL;
		T29_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_405), ident);
		T28_ = rawNewString((T29_ ? T29_->Sup.len : 0) + (typeHint ? typeHint->Sup.len : 0) + (suffix ? suffix->Sup.len : 0) + 0);
appendString(T28_, T29_);
appendString(T28_, typeHint);
appendString(T28_, suffix);
		result = T28_;
	}
	goto LA11_;
	LA13_: ;
	{
		{
			if (!((result ? result->Sup.len : 0) == ((NI) 0))) goto LA33_;
			result = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_406), ident);
		}
		goto LA31_;
		LA33_: ;
		{
			tyArray__Re75IspeoxXy2oCZHwcRrA T36_;
			nimZeroMem((void*)T36_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T36_[0] = copyString(ident);
			T36_[1] = copyString(result);
			result = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_407), T36_, 2);
		}
		LA31_: ;
	}
	LA11_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameMethodDispatcher__sem_1428)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* a, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aa;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bb;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14));
		if (!(T3_)) goto LA4_;
		T3_ = ((*b).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14));
		LA4_: ;
		if (!T3_) goto LA5_;
		aa = lastSon__ast_4832((*a).ast);
		bb = lastSon__ast_4832((*b).ast);
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*aa).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T9_)) goto LA10_;
			T9_ = ((*bb).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			LA10_: ;
			if (!T9_) goto LA11_;
			{
				if (!((*aa)._kind_4.sym == (*bb)._kind_4.sym)) goto LA15_;
				result = NIM_TRUE;
			}
			LA15_: ;
		}
		goto LA7_;
		LA11_: ;
		{
		}
		LA7_: ;
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, resolveOverloads__sem_1997)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tySequence__0dpGN6F4ocevqUQGsaf41w** errors, NIM_BOOL errorsEnabled, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initialBinding;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA alt;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f;
	tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg overloadsState;
{	unsureAsgnRef((void**)&(*Result).c, NIM_NIL);
	(*Result).exactMatches = 0;
	(*Result).genericMatches = 0;
	(*Result).subtypeMatches = 0;
	(*Result).intConvMatches = 0;
	(*Result).convMatches = 0;
	(*Result).state = 0;
	unsureAsgnRef((void**)&(*Result).callee, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).calleeSym, NIM_NIL);
	(*Result).calleeScope = 0;
	unsureAsgnRef((void**)&(*Result).call, NIM_NIL);
	(*Result).bindings.counter = 0;
	unsureAsgnRef((void**)&(*Result).bindings.data, NIM_NIL);
	(*Result).magic = 0;
	(*Result).baseTypeMatch = 0;
	(*Result).fauxMatch = 0;
	(*Result).genericConverter = 0;
	(*Result).coerceDistincts = 0;
	(*Result).typedescMatched = 0;
	(*Result).isNoCall = 0;
	unsureAsgnRef((void**)&(*Result).inferredTypes, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).diagnostics, NIM_NIL);
	(*Result).inheritancePenalty = 0;
	(*Result).firstMismatch.kind = 0;
	(*Result).firstMismatch.arg = 0;
	unsureAsgnRef((void**)&(*Result).firstMismatch.formal, NIM_NIL);
	(*Result).diagnosticsEnabled = 0;
	initialBinding = NIM_NIL;
	nimZeroMem((void*)(&alt), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	f = (*n)._kind_6.sons->data[((NI) 0)];
	{
		if (!((*f).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42))) goto LA3_;
		semOpAux__sem_88(c, f);
		initialBinding = f;
		f = (*f)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		initialBinding = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	}
	LA1_: ;
	pickBestCandidate__sem_1496(c, f, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0), errorsEnabled, flags);
	overloadsState = (*Result).state;
	{
		if (!!((overloadsState == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA8_;
		{
			NIM_BOOL T12_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* hiddenArg;
			T12_ = (NIM_BOOL)0;
			T12_ = !(((*c).p == ((tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*) NIM_NIL)));
			if (!(T12_)) goto LA13_;
			T12_ = !(((*(*c).p).selfSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
			LA13_: ;
			if (!T12_) goto LA14_;
			hiddenArg = newSymNode__ast_3716((*(*c).p).selfSym);
			asgnRef((void**) (&(*hiddenArg).typ), ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
			insert__liftdestructors_1579((&(*n)._kind_6.sons), hiddenArg, ((NI) 1));
			insert__liftdestructors_1579((&(*orig)._kind_6.sons), hiddenArg, ((NI) 1));
			pickBestCandidate__sem_1496(c, f, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0), errorsEnabled, flags);
			{
				if (!!(((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA18_;
				delete__closureiters_1709((&(*n)._kind_6.sons), ((NI) 1));
				delete__closureiters_1709((&(*orig)._kind_6.sons), ((NI) 1));
				(*n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 12)) & 31));
			}
			goto LA16_;
			LA18_: ;
			{
				goto BeforeRet_;
			}
			LA16_: ;
		}
		LA14_: ;
		{
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T32_;
			tyArray__T6RKPw8xfAeNaoei9aZGzXg T33_;
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T34_;
			tyArray__T6RKPw8xfAeNaoei9aZGzXg T35_;
			if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 9))&31U)))!=0)) goto LA23_;
			{
				NIM_BOOL T27_;
				NI T29_;
				NimStringDesc* argX60gensym324_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*f).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
				if (!(T27_)) goto LA28_;
				T29_ = (NI)0;
				T29_ = len__ast_3198(n);
				T27_ = (((NI) 2) <= T29_);
				LA28_: ;
				if (!!(T27_)) goto LA30_;
				argX60gensym324_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_401);
				internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym324_, TM__rF9caJawfOjYTjsgLVUSGFA_401);
			}
			LA30_: ;
			T32_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T33_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
			T33_[0] = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			T33_[1] = (*n)._kind_6.sons->data[((NI) 1)];
			T33_[2] = f;
			X5BX5Deq___pragmas_1672((&(*n)._kind_6.sons), T32_, T33_, 3);
			T34_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T35_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
			T35_[0] = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			T35_[1] = (*orig)._kind_6.sons->data[((NI) 1)];
			T35_[2] = f;
			X5BX5Deq___pragmas_1672((&(*orig)._kind_6.sons), T34_, T35_, 3);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* opX60gensym329_;
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T40_;
				if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 11))&31U)))!=0)) goto LA38_;
				T40_ = NIM_NIL;
				T40_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_210));
				opX60gensym329_ = newIdentNode__ast_3712(T40_, (*n).info);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), opX60gensym329_);
				asgnRef((void**) (&(*orig)._kind_6.sons->data[((NI) 0)]), opX60gensym329_);
				pickBestCandidate__sem_1496(c, opX60gensym329_, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0), errorsEnabled, flags);
			}
			LA38_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* opX60gensym335_;
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T45_;
				if (!((5 &((NU8)1<<((NU)((*Result).state)&7U)))!=0)) goto LA43_;
				T45_ = NIM_NIL;
				T45_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_209));
				opX60gensym335_ = newIdentNode__ast_3712(T45_, (*n).info);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), opX60gensym335_);
				asgnRef((void**) (&(*orig)._kind_6.sons->data[((NI) 0)]), opX60gensym335_);
				pickBestCandidate__sem_1496(c, opX60gensym335_, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0), errorsEnabled, flags);
			}
			LA43_: ;
		}
		goto LA21_;
		LA23_: ;
		{
			NIM_BOOL T47_;
			NIM_BOOL T48_;
			NI T51_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* calleeName;
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T54_;
			NimStringDesc* T55_;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T56_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callOp;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T57_;
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T58_;
			tyArray__T6RKPw8xfAeNaoei9aZGzXg T59_;
			tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T60_;
			tyArray__T6RKPw8xfAeNaoei9aZGzXg T61_;
			T47_ = (NIM_BOOL)0;
			T48_ = (NIM_BOOL)0;
			T48_ = (((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 10))&31U)))!=0);
			if (!(T48_)) goto LA49_;
			T48_ = ((*f).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
			LA49_: ;
			T47_ = T48_;
			if (!(T47_)) goto LA50_;
			T51_ = (NI)0;
			T51_ = len__ast_3198(n);
			T47_ = (T51_ == ((NI) 3));
			LA50_: ;
			if (!T47_) goto LA52_;
			T54_ = dotdot___stdZenumutils_80(((NI) 0), ((NI) 2));
			T55_ = NIM_NIL;
			T55_ = X5BX5D___pureZunicode_3215((*(*f)._kind_5.ident).s, T54_);
			T56_ = NIM_NIL;
			T56_ = getIdent__idents_143((*c).cache, T55_);
			calleeName = newIdentNode__ast_3712(T56_, (*n).info);
			T57_ = NIM_NIL;
			T57_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_211));
			callOp = newIdentNode__ast_3712(T57_, (*n).info);
			T58_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T59_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
			T59_[0] = callOp;
			T59_[1] = (*n)._kind_6.sons->data[((NI) 1)];
			T59_[2] = calleeName;
			X5BX5Deq___pragmas_1672((&(*n)._kind_6.sons), T58_, T59_, 3);
			T60_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 1));
			nimZeroMem((void*)T61_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
			T61_[0] = callOp;
			T61_[1] = (*orig)._kind_6.sons->data[((NI) 1)];
			T61_[2] = calleeName;
			X5BX5Deq___pragmas_1672((&(*orig)._kind_6.sons), T60_, T61_, 3);
			pickBestCandidate__sem_1496(c, callOp, n, orig, initialBinding, filter, Result, (&alt), errors, ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0), errorsEnabled, flags);
		}
		goto LA21_;
		LA52_: ;
		LA21_: ;
		{
			NIM_BOOL T64_;
			T64_ = (NIM_BOOL)0;
			T64_ = (overloadsState == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 0));
			if (!(T64_)) goto LA65_;
			T64_ = ((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 0));
			LA65_: ;
			if (!T64_) goto LA66_;
			{
				if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 18))&31U)))!=0))) goto LA70_;
				{
					NIM_BOOL T74_;
					NIM_BOOL T75_;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
					T74_ = (NIM_BOOL)0;
					T75_ = (NIM_BOOL)0;
					T75_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
					if (!(T75_)) goto LA76_;
					T75_ = eqStrings((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_211));
					LA76_: ;
					T74_ = T75_;
					if (!(T74_)) goto LA77_;
					T74_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
					LA77_: ;
					if (!T74_) goto LA78_;
					sym = (*(*(*n)._kind_6.sons->data[((NI) 1)]).typ).sym;
					{
						NimStringDesc* T84_;
						if (!(sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA82_;
						T84_ = NIM_NIL;
						T84_ = getMsgDiagnostic__sem_1968(c, flags, n, f);
						liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T84_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_408, NIM_FALSE);
					}
					goto LA80_;
					LA82_: ;
					{
						NimStringDesc* field;
						NimStringDesc* msg;
						NimStringDesc* T86_;
						NimStringDesc* T87_;
						NimStringDesc* T88_;
						field = (*(*(*n)._kind_6.sons->data[((NI) 2)])._kind_5.ident).s;
						T86_ = NIM_NIL;
						T87_ = NIM_NIL;
						T87_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_405), field);
						T88_ = NIM_NIL;
						T88_ = getProcHeader__types_222((*(*c).graph).config, sym, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
						T86_ = rawNewString((T87_ ? T87_->Sup.len : 0) + (T88_ ? T88_->Sup.len : 0) + 10);
appendString(T86_, T87_);
appendString(T86_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_403));
appendString(T86_, T88_);
						msg = T86_;
						liMessage__msgs_1118((*(*c).graph).config, (*(*orig)._kind_6.sons->data[((NI) 2)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_409, NIM_FALSE);
					}
					LA80_: ;
				}
				goto LA72_;
				LA78_: ;
				{
					NimStringDesc* T90_;
					T90_ = NIM_NIL;
					T90_ = getMsgDiagnostic__sem_1968(c, flags, n, f);
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T90_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_410, NIM_FALSE);
				}
				LA72_: ;
			}
			LA70_: ;
			goto BeforeRet_;
		}
		goto LA62_;
		LA66_: ;
		{
			if (!!(((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA92_;
			{
				NimStringDesc* T98_;
				NimStringDesc* T99_;
				if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 12))&31U)))!=0)) goto LA96_;
				T98_ = NIM_NIL;
				T98_ = renderTree__renderer_46(n, 4);
				T99_ = NIM_NIL;
				T99_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_269), T98_);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T99_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_411, NIM_FALSE);
			}
			goto LA94_;
			LA96_: ;
			{
				{
					if (!!(((1536 & (*n).flags) == 0))) goto LA103_;
					delete__closureiters_1709((&(*n)._kind_6.sons), ((NI) 2));
					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), f);
				}
				LA103_: ;
			}
			LA94_: ;
			goto BeforeRet_;
		}
		goto LA62_;
		LA92_: ;
		LA62_: ;
	}
	LA8_: ;
	{
		NIM_BOOL T107_;
		NIM_BOOL T108_;
		NI T110_;
		NIM_BOOL T112_;
		T107_ = (NIM_BOOL)0;
		T108_ = (NIM_BOOL)0;
		T108_ = (alt.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1));
		if (!(T108_)) goto LA109_;
		T110_ = (NI)0;
		T110_ = cmpCandidates__sigmatch_358(Result, (&alt));
		T108_ = (T110_ == ((NI) 0));
		LA109_: ;
		T107_ = T108_;
		if (!(T107_)) goto LA111_;
		T112_ = (NIM_BOOL)0;
		T112_ = sameMethodDispatcher__sem_1428((*Result).calleeSym, alt.calleeSym);
		T107_ = !(T112_);
		LA111_: ;
		if (!T107_) goto LA113_;
		{
			NimStringDesc* argX60gensym374_;
			if (!!(((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA117_;
			argX60gensym374_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_412);
			internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym374_, TM__rF9caJawfOjYTjsgLVUSGFA_412);
		}
		LA117_: ;
		{
			if (!((*(*(*c).graph).config).m.errorOutputs == 0)) goto LA121_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_413), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_414, NIM_FALSE);
		}
		goto LA119_;
		LA121_: ;
		{
			NimStringDesc* args;
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T134_;
			NimStringDesc* T135_;
			if (!((*(*(*c).graph).config).errorCounter == ((NI) 0))) goto LA124_;
			args = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_71));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3198(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						NimStringDesc* T133_;
						if (!(i_2 < colontmp_)) goto LA128;
						i = i_2;
						{
							if (!(((NI) 1) < i)) goto LA131_;
							args = resizeString(args, 2);
appendString(args, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_72));
						}
						LA131_: ;
						T133_ = NIM_NIL;
						T133_ = typeToString__types_50((*(*n)._kind_6.sons->data[i]).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
						args = resizeString(args, (T133_ ? T133_->Sup.len : 0) + 0);
appendString(args, T133_);
						i_2 += ((NI) 1);
					} LA128: ;
				}
			}
			args = resizeString(args, 1);
appendString(args, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_73));
			nimZeroMem((void*)T134_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T134_[0] = getProcHeader__types_222((*(*c).graph).config, (*Result).calleeSym, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
			T134_[1] = getProcHeader__types_222((*(*c).graph).config, alt.calleeSym, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
			T134_[2] = copyString(args);
			T135_ = NIM_NIL;
			T135_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_415), T134_, 3);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T135_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_416, NIM_FALSE);
		}
		goto LA119_;
		LA124_: ;
		LA119_: ;
	}
	LA113_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersSons__sem_2316)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x) {
	{
		if (!(*x).genericConverter) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					instGenericConvertersArg__sem_2292(c, (*n)._kind_6.sons->data[i], x);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, updateDefaultParams__sem_2362)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* calleeParams;
	calleeParams = (*(*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).typ).n;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(call);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					if (!(((*(*call)._kind_6.sons->data[i]).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 18))&31U)))!=0)) goto LA6_;
					def = (*(*(*calleeParams)._kind_6.sons->data[i])._kind_4.sym).ast;
					{
						if (!(((*def).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19))&31U)))!=0)) goto LA10_;
						(*call).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19)) & 31);
					}
					LA10_: ;
					asgnRef((void**) (&(*call)._kind_6.sons->data[i]), def);
				}
				LA6_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semResolvedCall__sem_2401)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* finalCallee;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T90_;
{	result = NIM_NIL;
	finalCallee = (*x).calleeSym;
	info = getCallLineInfo__sem_2390(n);
	markUsed__sigmatch_85(c, info, finalCallee);
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T5_;
		if (!!(((*x).fauxMatch == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)))) goto LA3_;
		result = (*x).call;
		T5_ = getCallLineInfo__sem_2390((*result)._kind_6.sons->data[((NI) 0)]);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3719(finalCallee, T5_));
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = containsGenericType__types_3360((*result).typ);
			if (T8_) goto LA9_;
			T8_ = ((*x).fauxMatch == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61));
			LA9_: ;
			if (!T8_) goto LA10_;
			asgnRef((void**) (&(*result).typ), newTypeS__semdata_733((*x).fauxMatch, c));
			{
				if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50))) goto LA14_;
				(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
			}
			LA14_: ;
		}
		LA10_: ;
		goto BeforeRet_;
	}
	LA3_: ;
	gp = (*(*finalCallee).ast)._kind_6.sons->data[((NI) 2)];
	{
		NIM_BOOL T18_;
		T18_ = (NIM_BOOL)0;
		T18_ = isGenericParams__ast_4616(gp);
		if (!T18_) goto LA19_;
		{
			if (!!(((393216 &((NU32)1<<((NU)((*(*x).calleeSym).kind)&31U)))!=0))) goto LA23_;
			{
				if (!((*(*x).calleeSym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5) || (*(*x).calleeSym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 6))) goto LA27_;
				finalCallee = (*x).calleeSym;
			}
			goto LA25_;
			LA27_: ;
			{
				finalCallee = generateInstance__sem_1295(c, (*x).calleeSym, (*x).bindings, (*n).info);
			}
			LA25_: ;
		}
		goto LA21_;
		LA23_: ;
		{
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
				s = NIM_NIL;
				{
					NimStringDesc* argX60gensym132_;
					if (!!(((*gp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA34_;
					argX60gensym132_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_79);
					internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym132_, TM__rF9caJawfOjYTjsgLVUSGFA_79);
				}
				LA34_: ;
				{
					NI i;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					i = (NI)0;
					a = NIM_NIL;
					{
						NI i_2;
						NI colontmp_;
						NI i_3;
						i_2 = (NI)0;
						colontmp_ = (NI)0;
						colontmp_ = safeLen__ast_3191(gp);
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* q;
								if (!(i_3 < colontmp_)) goto LA39;
								i_2 = i_3;
								i = i_2;
								a = (*gp)._kind_6.sons->data[i_2];
								{
									NimStringDesc* argX60gensym135_;
									if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA42_;
									argX60gensym135_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_80);
									internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym135_, TM__rF9caJawfOjYTjsgLVUSGFA_80);
								}
								LA42_: ;
								q = (*a)._kind_4.sym;
								{
									tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind;
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
									tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T53_;
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T54_;
									tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
									RootObj* T55_;
									if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*(*q).typ).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51) && (*(*q).typ).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54) || (*(*q).typ).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56) && (*(*q).typ).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60) || (*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62))) goto LA46_;
									{
										if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA50_;
										symKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10);
									}
									goto LA48_;
									LA50_: ;
									{
										symKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7);
									}
									LA48_: ;
									T53_ = nextSymId__ast_3132((*c).Sup.idgen);
									T54_ = NIM_NIL;
									T54_ = getCurrOwner__semdata_315(c);
									s_2 = newSym__ast_3445(symKind, (*q).name, T53_, T54_, (*q).info, 0);
									(*s_2).flags = ((*s_2).flags | 5);
									T55_ = NIM_NIL;
									T55_ = idTableGet__astalgo_64((*x).bindings, (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&((*q).typ)))));
									t = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T55_));
									{
										if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA58_;
										{
											if (!(((*(*q).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 11))&63U)))!=0)) goto LA62_;
											t = (*q).typ;
										}
										goto LA60_;
										LA62_: ;
										{
											NimStringDesc* T65_;
											T65_ = NIM_NIL;
											T65_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_81), (*(*s_2).name).s);
											liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T65_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_82, NIM_FALSE);
											t = errorType__semdata_1002(c);
										}
										LA60_: ;
									}
									goto LA56_;
									LA58_: ;
									{
										NimStringDesc* T69_;
										if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62))) goto LA67_;
										T69_ = NIM_NIL;
										T69_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_81), (*(*q).name).s);
										liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T69_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_83, NIM_FALSE);
										t = errorType__semdata_1002(c);
									}
									goto LA56_;
									LA67_: ;
									{
										if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA71_;
										t = generateTypeInstance__semtypinst_1050(c, (*x).bindings, (*a).info, t);
									}
									goto LA56_;
									LA71_: ;
									LA56_: ;
									asgnRef((void**) (&(*s_2).typ), t);
									{
										if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA75_;
										asgnRef((void**) (&(*s_2).ast), (*t).n);
									}
									LA75_: ;
									s = s_2;
									switch ((*s).kind) {
									case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
									{
										{
											if (!!(((*s).ast == 0))) goto LA80_;
											add__ast_4797((*x).call, (*s).ast);
										}
										goto LA78_;
										LA80_: ;
										{
											add__ast_4797((*x).call, (*(*c).graph).emptyNode);
										}
										LA78_: ;
									}
									break;
									case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T84_;
										T84_ = NIM_NIL;
										T84_ = newSymNode__ast_3719(s, (*n).info);
										add__ast_4797((*x).call, T84_);
									}
									break;
									default:
									{
										{
											NimStringDesc* argX60gensym425_;
											if (!NIM_TRUE) goto LA88_;
											argX60gensym425_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_419);
											internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym425_, TM__rF9caJawfOjYTjsgLVUSGFA_419);
										}
										LA88_: ;
									}
									break;
									}
								}
								LA46_: ;
								i_3 += ((NI) 1);
							} LA39: ;
						}
					}
				}
			}
		}
		LA21_: ;
	}
	LA19_: ;
	result = (*x).call;
	instGenericConvertersSons__sem_2316(c, result, x);
	T90_ = getCallLineInfo__sem_2390((*result)._kind_6.sons->data[((NI) 0)]);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3719(finalCallee, T90_));
	asgnRef((void**) (&(*result).typ), (*(*finalCallee).typ).sons->data[((NI) 0)]);
	updateDefaultParams__sem_2362(result);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, canDeref__sem_2474)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	NIM_BOOL T4_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NI)0;
	T2_ = len__ast_3198(n);
	T1_ = (((NI) 2) <= T2_);
	if (!(T1_)) goto LA3_;
	t = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	T4_ = (NIM_BOOL)0;
	T4_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
	if (!(T4_)) goto LA5_;
	T6_ = NIM_NIL;
	T6_ = skipTypes__ast_3735(t, TM__rF9caJawfOjYTjsgLVUSGFA_137);
	T4_ = ((*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T6_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
	LA5_: ;
	T1_ = T4_;
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryDeref__sem_2490)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info);
	T1_ = NIM_NIL;
	T1_ = skipTypes__ast_3735((*n).typ, TM__rF9caJawfOjYTjsgLVUSGFA_70);
	asgnRef((void**) (&(*result).typ), (*T1_).sons->data[((NI) 0)]);
	add__ast_4797(result, n);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOverloadedCall__sem_2498)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tySequence__0dpGN6F4ocevqUQGsaf41w* errors;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA r;
	result = NIM_NIL;
	errors = NIM_NIL;
	nimZeroMem((void*)(&r), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	resolveOverloads__sem_1997(c, n, nOrig, filter, flags, (&errors), ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0), (&r));
	{
		if (!(r.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1))) goto LA3_;
		{
			NI T7_;
			tyTuple__ZtAk5YtH0VW1iPowvxePrg T10_;
			tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw _;
			NimStringDesc* candidates;
			NimStringDesc* T11_;
			NimStringDesc* T12_;
			T7_ = (errors ? errors->Sup.len : 0);
			if (!(((NI) 0) < T7_)) goto LA8_;
			nimZeroMem((void*)(&T10_), sizeof(tyTuple__ZtAk5YtH0VW1iPowvxePrg));
			presentFailedCandidates__sem_1636(c, n, errors, (&T10_));
			_ = (tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw)0;
			_ = T10_.Field0;
			candidates = NIM_NIL;
			candidates = T10_.Field1;
			T11_ = NIM_NIL;
			T12_ = NIM_NIL;
			T12_ = renderTree__renderer_46(n, 0);
			T11_ = rawNewString((T12_ ? T12_->Sup.len : 0) + (candidates ? candidates->Sup.len : 0) + 29);
appendString(T11_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_417));
appendString(T11_, T12_);
appendString(T11_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_271));
appendString(T11_, candidates);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 100), T11_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_418, NIM_FALSE);
		}
		LA8_: ;
		result = semResolvedCall__sem_2401(c, (&r), n, flags);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T14_;
		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA r_2;
		T14_ = (NIM_BOOL)0;
		T14_ = (((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 0))&31U)))!=0);
		if (!(T14_)) goto LA15_;
		T14_ = canDeref__sem_2474(n);
		LA15_: ;
		if (!T14_) goto LA16_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), tryDeref__sem_2490((*n)._kind_6.sons->data[((NI) 1)]));
		nimZeroMem((void*)(&r_2), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
		resolveOverloads__sem_1997(c, n, nOrig, filter, flags, (&errors), ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0), (&r_2));
		{
			if (!(r_2.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1))) goto LA20_;
			result = semResolvedCall__sem_2401(c, (&r_2), n, flags);
		}
		goto LA18_;
		LA20_: ;
		{
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
				if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0))) goto LA25_;
				T27_ = NIM_NIL;
				T27_ = semOverloadedCall__sem_2498(c, n, nOrig, filter, (flags | 1024));
				(void)(T27_);
			}
			goto LA23_;
			LA25_: ;
			{
				if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 18))&31U)))!=0))) goto LA29_;
				notFoundError__sem_1922(c, n, errors);
			}
			goto LA23_;
			LA29_: ;
			LA23_: ;
		}
		LA18_: ;
	}
	goto LA1_;
	LA16_: ;
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
			if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0))) goto LA34_;
			T36_ = NIM_NIL;
			T36_ = semOverloadedCall__sem_2498(c, n, nOrig, filter, (flags | 1024));
			(void)(T36_);
		}
		goto LA32_;
		LA34_: ;
		{
			if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 18))&31U)))!=0))) goto LA38_;
			notFoundError__sem_1922(c, n, errors);
		}
		goto LA32_;
		LA38_: ;
		LA32_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOverloadedCallAnalyseEffects__sem_16425)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		if (!!(((flags & 14) == 0))) goto LA3_;
		result = semOverloadedCall__sem_2498(c, n, nOrig, 520192, flags);
	}
	goto LA1_;
	LA3_: ;
	{
		result = semOverloadedCall__sem_2498(c, n, nOrig, 487424, flags);
	}
	LA1_: ;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee;
		if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA8_;
		{
			if (!!(((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
			internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_420), TM__rF9caJawfOjYTjsgLVUSGFA_421);
			goto BeforeRet_;
		}
		LA12_: ;
		callee = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		switch ((*callee).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
		{
		}
		break;
		default:
		{
			{
				NIM_BOOL T18_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym4312_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym4313_;
				NimStringDesc* T22_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T23_;
				T18_ = (NIM_BOOL)0;
				T18_ = ((*callee).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
				if (!(T18_)) goto LA19_;
				xX60gensym4312_ = callee;
				xX60gensym4313_ = (*(*c).p).owner;
				T18_ = ((NI)((NI)((NU64)(((NI) ((*xX60gensym4312_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym4312_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym4313_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym4313_).Sup.itemId.item))));
				LA19_: ;
				if (!T18_) goto LA20_;
				T22_ = NIM_NIL;
				T22_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_422), (*(*callee).name).s);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_423, NIM_FALSE);
				T23_ = NIM_NIL;
				T23_ = errorSym__lookups_506(c, n);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(T23_));
			}
			goto LA16_;
			LA20_: ;
			{
				if (!((*callee).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15))) goto LA25_;
				{
					tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
					if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 2))&31U)))!=0)) goto LA29_;
					typ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64), c);
					rawAddSon__ast_4288(typ, (*result).typ, NIM_TRUE);
					asgnRef((void**) (&(*result).typ), typ);
				}
				LA29_: ;
			}
			goto LA16_;
			LA25_: ;
			LA16_: ;
		}
		break;
		}
	}
	LA8_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, propertyWriteAccess__sem_17558)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* id;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* setterId;
	NimStringDesc* T1_;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aOrig;
	tyArray__T6RKPw8xfAeNaoei9aZGzXg T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig;
	tyArray__T6RKPw8xfAeNaoei9aZGzXg T4_;
	result = NIM_NIL;
	id = considerQuotedIdent__lookups_28(c, (*a)._kind_6.sons->data[((NI) 1)], a);
	T1_ = NIM_NIL;
	T1_ = rawNewString(((*id).s ? (*id).s->Sup.len : 0) + 1);
appendString(T1_, (*id).s);
appendChar(T1_, 61);
	T2_ = NIM_NIL;
	T2_ = getIdent__idents_143((*c).cache, T1_);
	setterId = newIdentNode__ast_3712(T2_, (*n).info);
	aOrig = (*nOrig)._kind_6.sons->data[((NI) 0)];
	nimZeroMem((void*)T3_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
	T3_[0] = setterId;
	T3_[1] = (*a)._kind_6.sons->data[((NI) 0)];
	T3_[2] = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	result = newTreeI__ast_3420(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, T3_, 3);
	(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 10)) & 31);
	nimZeroMem((void*)T4_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
	T4_[0] = setterId;
	T4_[1] = (*aOrig)._kind_6.sons->data[((NI) 0)];
	T4_[2] = (*nOrig)._kind_6.sons->data[((NI) 1)];
	orig = newTreeI__ast_3420(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, T4_, 3);
	result = semOverloadedCallAnalyseEffects__sem_16425(c, result, orig, 0);
	{
		if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA7_;
		result = afterCallActions__sem_16525(c, result, nOrig, 0);
	}
	LA7_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isSymChoice__sem_14367)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotTransformation__sem_17323)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isSymChoice__sem_14367((*n)._kind_6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25), (*n).info);
		add__ast_4797(result, (*n)._kind_6.sons->data[((NI) 1)]);
		T6_ = NIM_NIL;
		T6_ = copyTree__ast_4431((*n)._kind_6.sons->data[((NI) 0)]);
		add__ast_4797(result, T6_);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* i;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		i = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[((NI) 1)], n);
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25), (*n).info);
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 9)) & 31);
		T8_ = NIM_NIL;
		T8_ = newIdentNode__ast_3712(i, (*(*n)._kind_6.sons->data[((NI) 1)]).info);
		add__ast_4797(result, T8_);
		T9_ = NIM_NIL;
		T9_ = copyTree__ast_4431((*n)._kind_6.sons->data[((NI) 0)]);
		add__ast_4797(result, T9_);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOverloadedSubscripts__sem_17363)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	T1_ = NIM_NIL;
	T1_ = newIdentNode__ast_3712(ident, (*n).info);
	add__ast_4797(result, T1_);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
		s = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					s = (*n)._kind_6.sons->data[i];
					add__ast_4797(result, s);
					i_2 += ((NI) 1);
				} LA5: ;
			}
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getRoot__sem_17683)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL followDeref) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	{
		while (1) {
			switch ((*result).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
			{
				{
					if (!followDeref) goto LA6_;
					result = (*result)._kind_6.sons->data[((NI) 0)];
				}
				goto LA4_;
				LA6_: ;
				{
					goto LA1;
				}
				LA4_: ;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			{
				result = (*result)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			{
				result = (*result)._kind_6.sons->data[((NI) 1)];
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	return result;
}
static N_INLINE(NIM_BOOL, scopedLifetime__sem_17690)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T4_;
	result = (NIM_BOOL)0;
	n = getRoot__sem_17683(ri, NIM_FALSE);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*ri).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*ri).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T4_ = (NIM_BOOL)0;
	T4_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T4_)) goto LA5_;
	T4_ = ((*(*n)._kind_4.sym).owner == (*(*c).p).owner);
	LA5_: ;
	T3_ = T4_;
	if (!(T3_)) goto LA6_;
	T3_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11)));
	LA6_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, escapes__sem_17715)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	n = getRoot__sem_17683(le, NIM_TRUE);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T1_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, borrowCheck__sem_17676)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T8_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T11_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = !(((*ri).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T6_)) goto LA7_;
		T8_ = NIM_NIL;
		T8_ = skipTypes__ast_3735((*ri).typ, TM__rF9caJawfOjYTjsgLVUSGFA_429);
		T6_ = ((*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
		LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA9_;
		T5_ = !(((*le).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA9_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA10_;
		T11_ = NIM_NIL;
		T11_ = skipTypes__ast_3735((*le).typ, TM__rF9caJawfOjYTjsgLVUSGFA_429);
		T4_ = !(((*T11_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
		LA10_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA12_;
		T3_ = scopedLifetime__sem_17690(c, ri);
		LA12_: ;
		if (!T3_) goto LA13_;
		{
			NIM_BOOL T17_;
			NimStringDesc* T21_;
			NimStringDesc* T22_;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*le).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T17_)) goto LA18_;
			T17_ = ((*(*le)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
			LA18_: ;
			if (!T17_) goto LA19_;
			T21_ = NIM_NIL;
			T22_ = NIM_NIL;
			T22_ = typeToString__types_50((*le).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T21_ = rawNewString((T22_ ? T22_->Sup.len : 0) + 86);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_430));
appendString(T21_, T22_);
appendString(T21_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_431));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_432, NIM_FALSE);
		}
		goto LA15_;
		LA19_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = escapes__sem_17715(c, le);
			if (!T24_) goto LA25_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_433), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_434, NIM_FALSE);
		}
		goto LA15_;
		LA25_: ;
		LA15_: ;
	}
	LA13_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, goodLineInfo__sem_17759)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	{
		NIM_BOOL T3_;
		NI T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__ast_3198(arg);
		T3_ = (((NI) 0) < T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = len__ast_3198(arg);
		result = goodLineInfo__sem_17759((*arg)._kind_6.sons->data[(NI)(T8_ - ((NI) 1))]);
	}
	goto LA1_;
	LA6_: ;
	{
		result = (*arg).info;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, takeImplicitAddr__sem_17582)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL isLent) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* root;
	tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag valid;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T43_;
{	result = NIM_NIL;
	root = exprRoot__parampatterns_300(n);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((root == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((*root).owner == (*(*c).p).owner);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T13_;
			NimStringDesc* T14_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((800 &((NU32)1<<((NU)((*root).kind)&31U)))!=0);
			if (!(T9_)) goto LA10_;
			T9_ = !((((*root).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0));
			LA10_: ;
			if (!T9_) goto LA11_;
			nimZeroMem((void*)T13_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T13_[0] = copyString((*(*root).name).s);
			T13_[1] = renderTree__renderer_46(n, 4);
			T13_[2] = createDocLink__lineinfos_6(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_436));
			T14_ = NIM_NIL;
			T14_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_435), T13_, 3);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T14_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_437, NIM_FALSE);
		}
		goto LA7_;
		LA11_: ;
		{
			NIM_BOOL T16_;
			tyArray__24KAM9afIUgUaqBaEBB6r9bg T20_;
			NimStringDesc* T21_;
			T16_ = (NIM_BOOL)0;
			T16_ = ((*root).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T16_)) goto LA17_;
			T16_ = !(((*root).position == ((NI) 0)));
			LA17_: ;
			if (!T16_) goto LA18_;
			nimZeroMem((void*)T20_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
			T20_[0] = copyString((*(*root).name).s);
			T20_[1] = renderTree__renderer_46(n, 4);
			T20_[2] = createDocLink__lineinfos_6(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_436));
			T21_ = NIM_NIL;
			T21_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_438), T20_, 3);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_439, NIM_FALSE);
		}
		goto LA7_;
		LA18_: ;
		LA7_: ;
	}
	LA5_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	{
		result = n;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	{
		result = (*n)._kind_6.sons->data[((NI) 0)];
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		{
			NI T27_;
			T27_ = (NI)0;
			T27_ = len__ast_3198(n);
			if (!(T27_ == ((NI) 1))) goto LA28_;
			result = (*n)._kind_6.sons->data[((NI) 0)];
			goto BeforeRet_;
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
	}
	break;
	default:
	{
	}
	break;
	}
	valid = isAssignable__sem_15006(c, n, isLent);
	{
		if (!!((valid == ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 1)))) goto LA34_;
		{
			NimStringDesc* T40_;
			NimStringDesc* T41_;
			if (!(valid == ((tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag) 2))) goto LA38_;
			T40_ = NIM_NIL;
			T40_ = renderTree__renderer_46(n, 4);
			T41_ = NIM_NIL;
			T41_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_233), T40_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T41_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_440, NIM_FALSE);
		}
		goto LA36_;
		LA38_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_238), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_441, NIM_FALSE);
		}
		LA36_: ;
	}
	LA34_: ;
	T43_ = NIM_NIL;
	{
		if (!((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA46_;
		T43_ = (*n).typ;
	}
	goto LA44_;
	LA46_: ;
	{
		T43_ = makePtrType__semdata_742(c, (*n).typ);
	}
	LA44_: ;
	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), (*n).info, T43_);
	add__ast_4797(result, n);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, asgnToResultVar__sem_17631)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		if (!((*le).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA3_;
		x = (*le)._kind_6.sons->data[((NI) 0)];
		{
			if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA7_;
			{
				NIM_BOOL T11_;
				NIM_BOOL T13_;
				tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog T15_;
				T11_ = (NIM_BOOL)0;
				T11_ = ((*(*x)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
				if (!(T11_)) goto LA12_;
				T13_ = (NIM_BOOL)0;
				T13_ = ((*(*x).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*x).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
				if (T13_) goto LA14_;
				T15_ = (tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog)0;
				T15_ = classifyViewType__typeallowed_568((*x).typ);
				T13_ = !((T15_ == ((tyEnum_ViewTypeKind__3S4FAWaxPP9ahVaUnMsznog) 0)));
				LA14_: ;
				T11_ = T13_;
				LA12_: ;
				if (!T11_) goto LA16_;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), x);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), takeImplicitAddr__sem_17582(c, ri, ((*(*x).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))));
				(*(*x).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
			}
			goto LA9_;
			LA16_: ;
			{
				if (!(((*(*x)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0)) goto LA19_;
				(*(*x).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
			}
			goto LA9_;
			LA19_: ;
			LA9_: ;
		}
		LA7_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsgn__sem_15312)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* le;
{	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	a = (*n)._kind_6.sons->data[((NI) 0)];
	switch ((*a).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig;
		nOrig = copyTree__ast_4431(n);
		a = builtinFieldAccess__sem_17195(c, a, 1);
		{
			if (!(a == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA4_;
			a = propertyWriteAccess__sem_17558(c, n, nOrig, (*n)._kind_6.sons->data[((NI) 0)]);
			{
				if (!!((a == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA8_;
				result = a;
				goto BeforeRet_;
			}
			LA8_: ;
			a = dotTransformation__sem_17323(c, (*n)._kind_6.sons->data[((NI) 0)]);
			{
				if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25))) goto LA12_;
				transitionSonsKind__ast_4359(a, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 27));
				a = semExprWithType__sem_56(c, a, 1);
			}
			LA12_: ;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		a = semSubscript__sem_15316(c, a, 1);
		{
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T19_;
			if (!(a == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA17_;
			T19_ = NIM_NIL;
			T19_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_132));
			result = buildOverloadedSubscripts__sem_17363((*n)._kind_6.sons->data[((NI) 0)], T19_);
			add__ast_4797(result, (*n)._kind_6.sons->data[((NI) 1)]);
			{
				if (!(mode == ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 1))) goto LA22_;
				bracketNotFoundError__sem_1937(c, result);
				result = n;
				goto BeforeRet_;
			}
			goto LA20_;
			LA22_: ;
			{
				result = semExprNoType__sem_60(c, result);
				goto BeforeRet_;
			}
			LA20_: ;
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T26_;
		T26_ = NIM_NIL;
		T26_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_131));
		result = buildOverloadedSubscripts__sem_17363((*n)._kind_6.sons->data[((NI) 0)], T26_);
		add__ast_4797(result, (*n)._kind_6.sons->data[((NI) 1)]);
		result = semExprNoType__sem_60(c, result);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			NI T30_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
			T30_ = (NI)0;
			T30_ = len__ast_3198(a);
			if (!(((NI) 2) <= T30_)) goto LA31_;
			T33_ = NIM_NIL;
			T33_ = lowerTupleUnpackingForAsgn__lowerings_211((*c).graph, n, (*c).Sup.idgen, (*(*c).p).owner);
			result = semStmt__sem_84(c, T33_, 0);
			goto BeforeRet_;
		}
		goto LA28_;
		LA31_: ;
		{
			a = semExprWithType__sem_56(c, a, 1);
		}
		LA28_: ;
	}
	break;
	default:
	{
		a = semExprWithType__sem_56(c, a, 1);
	}
	break;
	}
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), a);
	le = (*a).typ;
	{
		if (!(le == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA38_;
		liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_424), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_425, NIM_FALSE);
	}
	goto LA36_;
	LA38_: ;
	{
		NIM_BOOL T41_;
		NIM_BOOL T42_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T43_;
		tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag T45_;
		NIM_BOOL T47_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T48_;
		NimStringDesc* T52_;
		NimStringDesc* T53_;
		T41_ = (NIM_BOOL)0;
		T42_ = (NIM_BOOL)0;
		T43_ = NIM_NIL;
		T43_ = skipTypes__ast_3735(le, TM__rF9caJawfOjYTjsgLVUSGFA_137);
		T42_ = !(((*T43_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23)));
		if (!(T42_)) goto LA44_;
		T45_ = (tyEnum_TAssignableResult__JFgO3TudAWntzWI8Fmx4Ag)0;
		T45_ = isAssignable__sem_15006(c, a, NIM_FALSE);
		T42_ = ((17 &((NU8)1<<((NU)(T45_)&7U)))!=0);
		LA44_: ;
		T41_ = T42_;
		if (T41_) goto LA46_;
		T47_ = (NIM_BOOL)0;
		T48_ = NIM_NIL;
		T48_ = skipTypes__ast_3735(le, TM__rF9caJawfOjYTjsgLVUSGFA_228);
		T47_ = ((*T48_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T48_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48));
		if (!(T47_)) goto LA49_;
		T47_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 13))&31U)))!=0));
		LA49_: ;
		T41_ = T47_;
		LA46_: ;
		if (!T41_) goto LA50_;
		T52_ = NIM_NIL;
		T52_ = renderTree__renderer_46(a, 4);
		T53_ = NIM_NIL;
		T53_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_426), T52_);
		liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T53_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_427, NIM_FALSE);
	}
	goto LA36_;
	LA50_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lhs;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rhs;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T85_;
		lhs = (*n)._kind_6.sons->data[((NI) 0)];
		rhs = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NIM_BOOL T57_;
			T57_ = (NIM_BOOL)0;
			T57_ = ((*lhs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T57_)) goto LA58_;
			T57_ = ((*(*lhs)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
			LA58_: ;
			if (!T57_) goto LA59_;
			asgnRef((void**) (&(*n).typ), (*c).enforceVoidContext);
			{
				NIM_BOOL T63_;
				NIM_BOOL T65_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* rhsTyp;
				T63_ = (NIM_BOOL)0;
				T63_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17)));
				if (!(T63_)) goto LA64_;
				T65_ = (NIM_BOOL)0;
				T65_ = isMetaType__ast_3495((*(*lhs)._kind_4.sym).typ);
				if (!(T65_)) goto LA66_;
				T65_ = !(((*(*(*lhs)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
				LA66_: ;
				T63_ = T65_;
				LA64_: ;
				if (!T63_) goto LA67_;
				rhsTyp = (*rhs).typ;
				{
					NIM_BOOL T71_;
					T71_ = (NIM_BOOL)0;
					T71_ = ((*rhsTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) || (*rhsTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53));
					if (!(T71_)) goto LA72_;
					T71_ = (((*rhsTyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
					LA72_: ;
					if (!T71_) goto LA73_;
					rhsTyp = lastSon__ast_3743(rhsTyp);
				}
				LA73_: ;
				{
					tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T77_;
					T77_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
					T77_ = cmpTypes__sigmatch_3047(c, (*lhs).typ, rhsTyp);
					if (!((1280 &((NU16)1<<((NU)(T77_)&15U)))!=0)) goto LA78_;
					{
						NimStringDesc* argX60gensym4665_;
						if (!!(!(((*(*c).p).resultSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))))) goto LA82_;
						argX60gensym4665_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_428);
						internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym4665_, TM__rF9caJawfOjYTjsgLVUSGFA_428);
					}
					LA82_: ;
					typeAllowedCheck__sem_481(c, (*n).info, rhsTyp, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11), 0);
					asgnRef((void**) (&(*lhs).typ), rhsTyp);
					asgnRef((void**) (&(*(*(*c).p).resultSym).typ), rhsTyp);
					asgnRef((void**) (&(*(*(*(*c).p).owner).typ).sons->data[((NI) 0)]), rhsTyp);
				}
				goto LA75_;
				LA78_: ;
				{
					typeMismatch__types_3870((*(*c).graph).config, (*n).info, (*lhs).typ, rhsTyp, rhs);
				}
				LA75_: ;
			}
			LA67_: ;
		}
		LA59_: ;
		borrowCheck__sem_17676(c, n, lhs, rhs);
		T85_ = goodLineInfo__sem_17759((*n)._kind_6.sons->data[((NI) 1)]);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), fitNode__sem_70(c, le, rhs, T85_));
		fixAbstractType__sem_14967(c, n);
		asgnToResultVar__sem_17631(c, n, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)]);
	}
	LA36_: ;
	result = n;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProcBody__sem_67)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	result = semExpr__sem_52(c, n, 0);
	{
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*(*c).p).resultSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T6_ = isEmptyType__ast_4779((*result).typ);
		T4_ = !(T6_);
		LA5_: ;
		if (!T4_) goto LA7_;
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA11_;
			asgnRef((void**) (&(*result).typ), ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		}
		goto LA9_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
			if (!(T14_)) goto LA15_;
			T14_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5));
			LA15_: ;
			if (!T14_) goto LA16_;
			fixNilType__sem_9307(c, result);
		}
		goto LA9_;
		LA16_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			a = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info, ((NI) 2));
			asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716((*(*c).p).resultSym));
			asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 1)]), result);
			result = semAsgn__sem_15312(c, a, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 0));
		}
		LA9_: ;
	}
	goto LA2_;
	LA7_: ;
	{
		discardCheck__sem_9323(c, result, 0);
	}
	LA2_: ;
	{
		NIM_BOOL T22_;
		NIM_BOOL T23_;
		T22_ = (NIM_BOOL)0;
		T23_ = (NIM_BOOL)0;
		T23_ = !(((393216 &((NU32)1<<((NU)((*(*(*c).p).owner).kind)&31U)))!=0));
		if (!(T23_)) goto LA24_;
		T23_ = !(((*(*c).p).resultSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		LA24_: ;
		T22_ = T23_;
		if (!(T22_)) goto LA25_;
		T22_ = isMetaType__ast_3495((*(*(*c).p).resultSym).typ);
		LA25_: ;
		if (!T22_) goto LA26_;
		{
			NIM_BOOL T30_;
			T30_ = (NIM_BOOL)0;
			T30_ = isEmptyType__ast_4779((*result).typ);
			if (!T30_) goto LA31_;
			asgnRef((void**) (&(*(*(*c).p).resultSym).typ), errorType__semdata_1002(c));
			asgnRef((void**) (&(*(*(*(*c).p).owner).typ).sons->data[((NI) 0)]), ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		}
		goto LA28_;
		LA31_: ;
		{
			NimStringDesc* T34_;
			T34_ = NIM_NIL;
			T34_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_442), (*(*(*(*c).p).owner).name).s);
			liMessage__msgs_1118((*(*c).graph).config, (*(*(*c).p).resultSym).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T34_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_443, NIM_FALSE);
		}
		LA28_: ;
	}
	LA26_: ;
	{
		NIM_BOOL T37_;
		NIM_BOOL T38_;
		NimStringDesc* T43_;
		T37_ = (NIM_BOOL)0;
		T38_ = (NIM_BOOL)0;
		T38_ = isInlineIterator__ast_4989((*(*(*c).p).owner).typ);
		if (!(T38_)) goto LA39_;
		T38_ = !(((*(*(*(*c).p).owner).typ).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA39_: ;
		T37_ = T38_;
		if (!(T37_)) goto LA40_;
		T37_ = ((*(*(*(*(*c).p).owner).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
		LA40_: ;
		if (!T37_) goto LA41_;
		T43_ = NIM_NIL;
		T43_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_442), (*(*(*(*c).p).owner).name).s);
		liMessage__msgs_1118((*(*c).graph).config, (*(*(*c).p).owner).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T43_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_444, NIM_FALSE);
	}
	LA41_: ;
	closeScope__lookups_101(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, instantiateBody__sem_1028)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* orig) {
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* procParams;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMap;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		procParams = (*(*result).typ).n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(procParams);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					addDecl__lookups_845(c, (*(*procParams)._kind_6.sons->data[i])._kind_4.sym);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
		maybeAddResult__sem_100(c, result, (*result).ast);
		(*c).inGenericInst += ((NI) 1);
		b = (*n)._kind_6.sons->data[((NI) 6)];
		nimZeroMem((void*)(&symMap), sizeof(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q));
		initIdTable__ast_4096((&symMap));
		{
			if (!!((params == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA10_;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_3198(params);
				i_4 = ((NI) 1);
				{
					while (1) {
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
						if (!(i_4 < colontmp__2)) goto LA14;
						i_3 = i_4;
						param = (*(*params)._kind_6.sons->data[i_3])._kind_4.sym;
						{
							if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0)) goto LA17_;
							idTablePut__astalgo_70((&symMap), (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&((*(*params)._kind_6.sons->data[i_3])._kind_4.sym)))), (*((RootObj**) (&((*(*(*(*result).typ).n)._kind_6.sons->data[(NI)((*param).position + ((NI) 1))])._kind_4.sym)))));
						}
						LA17_: ;
						i_4 += ((NI) 1);
					} LA14: ;
				}
			}
		}
		LA10_: ;
		freshGenSyms__sem_990(c, b, result, orig, (&symMap));
		b = semProcBody__sem_67(c, b);
		asgnRef((void**) (&(*(*result).ast)._kind_6.sons->data[((NI) 6)]), hloBody__sem_783(c, b));
		(*result).flags &= ~(((NU64)1) << ((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4)) & 63));
		trackProc__sempass50_4697(c, result, (*(*result).ast)._kind_6.sons->data[((NI) 6)]);
		(*c).inGenericInst -= ((NI) 1);
	}
	LA3_: ;
}
static N_INLINE(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, pop__icZic_2460)(tySequence__eHqUwlHGGaPw0TDPDeL79cQ** s) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	NI L;
	NI T1_;
	result = NIM_NIL;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	result = (*s)->data[L];
	unsureAsgnRef((void**) (&(*s)), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) setLengthSeqV2(&((*s))->Sup, (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_), ((NI) (L))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, finishMethod__sem_114)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasObjParam__sem_12973(s);
		if (!T3_) goto LA4_;
		methodDef__cgmeth_263((*c).graph, (*c).Sup.idgen, s);
	}
	LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, generateInstance__sem_1295)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T9_;
	NI T10_;
	tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* oldMatchedConcept;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* oldScope;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T14_;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T15_;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T16_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
	tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* entry;
	NI i;
	NI T21_;
	NI T22_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldPrc;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T100_;
	result = NIM_NIL;
	{
		NimStringDesc* argX60gensym213_;
		if (!!(!(((393216 &((NU32)1<<((NU)((*fn).kind)&31U)))!=0)))) goto LA3_;
		argX60gensym213_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_74);
		internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym213_, TM__rF9caJawfOjYTjsgLVUSGFA_74);
	}
	LA3_: ;
	{
		if (!(((NI) 50) < (*c).instCounter)) goto LA7_;
		liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_76), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_77, NIM_FALSE);
	}
	LA7_: ;
	(*c).instCounter += ((NI) 1);
	n = copyTree__ast_4431((*fn).ast);
	T9_ = NIM_NIL;
	T9_ = getModule__astalgo_216(fn);
	asgnRef((void**) (&(*c).friendModules), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
	T10_ = (*c).friendModules->Sup.len++;
	asgnRef((void**) (&(*c).friendModules->data[T10_]), T9_);
	oldMatchedConcept = (*c).matchedConcept;
	(*c).matchedConcept = ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL);
	oldScope = (*c).currentScope;
	{
		while (1) {
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = isTopLevel__semdata_1091(c);
			if (!!(T13_)) goto LA12;
			asgnRef((void**) (&(*c).currentScope), (*(*c).currentScope).parent);
		} LA12: ;
	}
	T14_ = nextSymId__ast_3132((*c).Sup.idgen);
	result = copySym__ast_4054(fn, T14_);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2)) & 63);
	asgnRef((void**) (&(*result).owner), fn);
	asgnRef((void**) (&(*result).ast), n);
	pushOwner__semdata_322(c, result);
	T15_ = NIM_NIL;
	T15_ = openScope__lookups_69(c);
	fillMixinScope__sem_1283(c);
	T16_ = NIM_NIL;
	T16_ = openScope__lookups_69(c);
	gp = (*n)._kind_6.sons->data[((NI) 2)];
	{
		NimStringDesc* argX60gensym221_;
		if (!!(((*gp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA19_;
		argX60gensym221_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_78);
		internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym221_, TM__rF9caJawfOjYTjsgLVUSGFA_78);
	}
	LA19_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(result));
	pushInfoContext__msgs_490((*(*c).graph).config, info, (*(*fn).name).s);
	entry = new__sem_1335();
	asgnRef((void**) (&(*entry).sym), result);
	i = ((NI) 0);
	T21_ = (NI)0;
	T21_ = len__ast_4002((*fn).typ);
	T22_ = (NI)0;
	T22_ = len__ast_3198(gp);
	if ((*entry).concreteTypes) { nimGCunrefRC1((*entry).concreteTypes); (*entry).concreteTypes = NIM_NIL; }
	(*entry).concreteTypes = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeqRC1((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), ((NI) ((NI)((NI)(T21_ + T22_) - ((NI) 1)))));
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		s = NIM_NIL;
		{
			NimStringDesc* argX60gensym132_;
			if (!!(((*gp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75)))) goto LA26_;
			argX60gensym132_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_79);
			internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym132_, TM__rF9caJawfOjYTjsgLVUSGFA_79);
		}
		LA26_: ;
		{
			NI i_2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			i_2 = (NI)0;
			a = NIM_NIL;
			{
				NI i_3;
				NI colontmp_;
				NI i_4;
				i_3 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191(gp);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* q;
						if (!(i_4 < colontmp_)) goto LA31;
						i_3 = i_4;
						i_2 = i_3;
						a = (*gp)._kind_6.sons->data[i_3];
						{
							NimStringDesc* argX60gensym135_;
							if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA34_;
							argX60gensym135_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_80);
							internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym135_, TM__rF9caJawfOjYTjsgLVUSGFA_80);
						}
						LA34_: ;
						q = (*a)._kind_4.sym;
						{
							tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
							tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T45_;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T46_;
							tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
							RootObj* T47_;
							if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*(*q).typ).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51) && (*(*q).typ).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54) || (*(*q).typ).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56) && (*(*q).typ).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60) || (*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62))) goto LA38_;
							{
								if (!((*(*q).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA42_;
								symKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10);
							}
							goto LA40_;
							LA42_: ;
							{
								symKind = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7);
							}
							LA40_: ;
							T45_ = nextSymId__ast_3132((*c).Sup.idgen);
							T46_ = NIM_NIL;
							T46_ = getCurrOwner__semdata_315(c);
							s_2 = newSym__ast_3445(symKind, (*q).name, T45_, T46_, (*q).info, 0);
							(*s_2).flags = ((*s_2).flags | 5);
							T47_ = NIM_NIL;
							T47_ = idTableGet__astalgo_64(pt, (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&((*q).typ)))));
							t = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) (T47_));
							{
								if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA50_;
								{
									if (!(((*(*q).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 11))&63U)))!=0)) goto LA54_;
									t = (*q).typ;
								}
								goto LA52_;
								LA54_: ;
								{
									NimStringDesc* T57_;
									T57_ = NIM_NIL;
									T57_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_81), (*(*s_2).name).s);
									liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T57_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_82, NIM_FALSE);
									t = errorType__semdata_1002(c);
								}
								LA52_: ;
							}
							goto LA48_;
							LA50_: ;
							{
								NimStringDesc* T61_;
								if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62))) goto LA59_;
								T61_ = NIM_NIL;
								T61_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_81), (*(*q).name).s);
								liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T61_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_83, NIM_FALSE);
								t = errorType__semdata_1002(c);
							}
							goto LA48_;
							LA59_: ;
							{
								if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9))) goto LA63_;
								t = generateTypeInstance__semtypinst_1050(c, pt, (*a).info, t);
							}
							goto LA48_;
							LA63_: ;
							LA48_: ;
							asgnRef((void**) (&(*s_2).typ), t);
							{
								if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA67_;
								asgnRef((void**) (&(*s_2).ast), (*t).n);
							}
							LA67_: ;
							s = s_2;
							addDecl__lookups_845(c, s);
							asgnRef((void**) (&(*entry).concreteTypes->data[i]), (*s).typ);
							i += ((NI) 1);
						}
						LA38_: ;
						i_4 += ((NI) 1);
					} LA31: ;
				}
			}
		}
	}
	rawPushProcCon__sem_849(c, result);
	instantiateProcType__sem_1187(c, pt, result, info);
	{
		NI j;
		NI colontmp__2;
		NI i_5;
		j = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_4002((*result).typ);
		i_5 = ((NI) 1);
		{
			while (1) {
				if (!(i_5 < colontmp__2)) goto LA71;
				j = i_5;
				asgnRef((void**) (&(*entry).concreteTypes->data[i]), (*(*result).typ).sons->data[j]);
				i += ((NI) 1);
				i_5 += ((NI) 1);
			} LA71: ;
		}
	}
	{
		if (!(((*(*result).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 33))&63U)))!=0)) goto LA74_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 28)) & 63);
	}
	LA74_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), (*(*c).graph).emptyNode);
	oldPrc = genericCacheGet__sem_983((*c).graph, fn, (*entry), (*c).compilesContextId);
	{
		tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ T80_;
		NI T81_;
		if (!(oldPrc == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA78_;
		rawHandleSelf__sem_865(c, result);
		(*entry).compilesId = (*c).compilesContextId;
		addToGenericProcCache__semdata_1185(c, fn, entry);
		nimZeroMem((void*)(&T80_), sizeof(tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ));
		makeInstPair__semdata_297(fn, entry, (&T80_));
		asgnRef((void**) (&(*c).generics), (tySequence__jWKvSdankQPoT5bw9cBU9aiw*) incrSeqV3((TGenericSeq*)((*c).generics), (&NTIseqLtinstantiationpairT__jWKvSdankQPoT5bw9cBU9aiw_)));
		T81_ = (*c).generics->Sup.len++;
		asgnRef((void**) (&(*c).generics->data[T81_].genericSym), T80_.genericSym);
		asgnRef((void**) (&(*c).generics->data[T81_].inst), T80_.inst);
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 4)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA84_;
			pragma__pragmas_123(c, result, (*n)._kind_6.sons->data[((NI) 4)], TM__rF9caJawfOjYTjsgLVUSGFA_98, NIM_FALSE);
		}
		LA84_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T90_;
			if (!((*n)._kind_6.sons->data[((NI) 6)] == 0)) goto LA88_;
			T90_ = NIM_NIL;
			T90_ = getBody__modulegraphs_11241((*c).graph, fn);
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), copyTree__ast_4431(T90_));
		}
		LA88_: ;
		{
			if (!((*c).inGenericContext == ((NI) 0))) goto LA93_;
			instantiateBody__sem_1028(c, n, (*(*fn).typ).n, result, fn);
		}
		LA93_: ;
		sideEffectsCheck__sem_1122(c, result);
		{
			if (!!(((*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126) || (*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18)))) goto LA97_;
			paramsTypeCheck__sem_505(c, (*result).typ);
		}
		LA97_: ;
	}
	goto LA76_;
	LA78_: ;
	{
		result = oldPrc;
	}
	LA76_: ;
	popProcCon__semdata_389(c);
	popInfoContext__msgs_507((*(*c).graph).config);
	closeScope__lookups_101(c);
	closeScope__lookups_101(c);
	popOwner__semdata_329(c);
	asgnRef((void**) (&(*c).currentScope), oldScope);
	T100_ = NIM_NIL;
	T100_ = pop__icZic_2460((&(*c).friendModules));
	(void)(T100_);
	(*c).instCounter -= ((NI) 1);
	(*c).matchedConcept = oldMatchedConcept;
	{
		if (!((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA103_;
		finishMethod__sem_114(c, result);
	}
	LA103_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, instGenericConvertersArg__sem_2292)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* x) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
	{
		if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA3_;
		a_2 = (*a)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		a_2 = a;
	}
	LA1_: ;
	{
		NIM_BOOL T8_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
		if (!(T8_)) goto LA9_;
		T8_ = ((*(*a_2)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA9_: ;
		if (!T8_) goto LA10_;
		s = (*(*a_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		{
			NIM_BOOL T14_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* finalCallee;
			T14_ = (NIM_BOOL)0;
			T14_ = isGenericRoutineStrict__ast_4639(s);
			if (!T14_) goto LA15_;
			finalCallee = generateInstance__sem_1295(c, s, (*x).bindings, (*a_2).info);
			asgnRef((void**) (&(*(*a_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym), finalCallee);
			asgnRef((void**) (&(*(*a_2)._kind_6.sons->data[((NI) 0)]).typ), (*finalCallee).typ);
		}
		LA15_: ;
	}
	LA10_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, indexTypesMatch__sem_120)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* f, tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
	result = NIM_NIL;
	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	newCandidate__sigmatch_195(c, f, (&m));
	result = paramTypesMatch__sigmatch_3583((&m), f, a, arg, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = m.genericConverter;
		if (!(T3_)) goto LA4_;
		T3_ = !((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		instGenericConvertersArg__sem_2292(c, result, (&m));
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNode__sem_70)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!((*arg).typ == 0)) goto LA3_;
		T5_ = NIM_NIL;
		T6_ = NIM_NIL;
		T6_ = renderTree__renderer_46(arg, 4);
		T5_ = rawNewString((T6_ ? T6_->Sup.len : 0) + 24);
appendString(T5_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
appendString(T5_, T6_);
		liMessage__msgs_1118((*(*c).graph).config, (*arg).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T5_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_69, NIM_FALSE);
		result = copyTree__ast_4431(arg);
		asgnRef((void**) (&(*result).typ), formal);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57));
		if (!(T8_)) goto LA9_;
		T10_ = NIM_NIL;
		T10_ = skipTypes__ast_3735(formal, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		T8_ = ((*T10_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
		LA9_: ;
		if (!T8_) goto LA11_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ch;
			ch = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191(arg);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA16;
						i = i_2;
						ch = (*arg)._kind_6.sons->data[i];
						{
							NIM_BOOL T19_;
							T19_ = (NIM_BOOL)0;
							T19_ = sameType__types_1824((*ch).typ, formal, 0);
							if (!T19_) goto LA20_;
							result = getConstExpr__semfold_81((*c).module, ch, (*c).Sup.idgen, (*c).graph);
							goto BeforeRet_;
						}
						LA20_: ;
						i_2 += ((NI) 1);
					} LA16: ;
				}
			}
		}
		typeMismatch__types_3870((*(*c).graph).config, info, formal, (*arg).typ, arg);
	}
	goto LA1_;
	LA11_: ;
	{
		result = indexTypesMatch__sem_120(c, formal, (*arg).typ, arg);
		{
			if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA25_;
			typeMismatch__types_3870((*(*c).graph).config, info, formal, (*arg).typ, arg);
			result = copyTree__ast_4431(arg);
			asgnRef((void**) (&(*result).typ), formal);
		}
		goto LA23_;
		LA25_: ;
		{
			result = fitNodePostMatch__sem_164(c, formal, result);
		}
		LA23_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, forceBool__sem_2869)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	result = fitNode__sem_70(c, T1_, n, (*n).info);
	{
		if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA4_;
		result = n;
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstBoolExpr__sem_2877)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = semConstExpr__sem_611(c, n);
	result = forceBool__sem_2869(c, T1_);
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA4_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_349), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_445, NIM_FALSE);
	}
	LA4_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isRange__trees_213)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callee;
		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_;
		callee = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			NIM_BOOL T12_;
			NIM_BOOL T15_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*callee).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
			if (!(T9_)) goto LA10_;
			T9_ = ((*(*callee)._kind_5.ident).id == ((NI) 71));
			LA10_: ;
			T8_ = T9_;
			if (T8_) goto LA11_;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*callee).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T12_)) goto LA13_;
			T12_ = ((*(*(*callee)._kind_4.sym).name).id == ((NI) 71));
			LA13_: ;
			T8_ = T12_;
			LA11_: ;
			T7_ = T8_;
			if (T7_) goto LA14_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*callee).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*callee).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57));
			if (!(T15_)) goto LA16_;
			T15_ = ((*(*(*(*callee)._kind_6.sons->data[((NI) 1)])._kind_4.sym).name).id == ((NI) 71));
			LA16_: ;
			T7_ = T15_;
			LA14_: ;
			if (!T7_) goto LA17_;
			result = NIM_TRUE;
		}
		LA17_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBranchRange__sem_3747)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ac;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bc;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* at;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bt;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = NIM_NIL;
	checkMinSonsLen__semdata_1084(t, ((NI) 1), (*(*c).graph).config);
	ac = semConstExpr__sem_611(c, a);
	bc = semConstExpr__sem_611(c, b);
	T1_ = NIM_NIL;
	T1_ = fitNode__sem_70(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, ac, (*ac).info);
	at = skipConvTakeType__types_3623(T1_);
	T2_ = NIM_NIL;
	T2_ = fitNode__sem_70(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, bc, (*bc).info);
	bt = skipConvTakeType__types_3623(T2_);
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44), (*a).info);
	add__ast_4797(result, at);
	add__ast_4797(result, bt);
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = emptyRange__nimsets_273(ac, bc);
		if (!T5_) goto LA6_;
		liMessage__msgs_1118((*(*c).graph).config, (*b).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_28), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_456, NIM_FALSE);
	}
	goto LA3_;
	LA6_: ;
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T10_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T11_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T12_;
		T9_ = getOrdValue__types_161(bc, Max__int495056_27);
		T10_ = plus___int495056_448((*covered), T9_);
		T11_ = plus___int495056_794(T10_, IL64(1));
		T12_ = getOrdValue__types_161(ac, Max__int495056_27);
		(*covered) = minus___int495056_474(T11_, T12_);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCaseBranchRange__sem_3768)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	checkSonsLen__semdata_1077(b, ((NI) 3), (*(*c).graph).config);
	result = semBranchRange__sem_3747(c, t, (*b)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 2)], covered);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCaseBranchSetElem__sem_3776)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isRange__trees_213(b);
		if (!T3_) goto LA4_;
		checkSonsLen__semdata_1077(b, ((NI) 3), (*(*c).graph).config);
		result = semBranchRange__sem_3747(c, t, (*b)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 2)], covered);
	}
	goto LA1_;
	LA4_: ;
	{
		if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA7_;
		checkSonsLen__semdata_1077(b, ((NI) 2), (*(*c).graph).config);
		result = semBranchRange__sem_3747(c, t, (*b)._kind_6.sons->data[((NI) 0)], (*b)._kind_6.sons->data[((NI) 1)], covered);
	}
	goto LA1_;
	LA7_: ;
	{
		result = fitNode__sem_70(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, b, (*b).info);
		inc__int495056_251(covered, ((NU32) 1));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForOverlap__sem_3723)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, NI currentEx, NI branchIndex) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex;
	ex = skipConv__types_3597((*(*t)._kind_6.sons->data[branchIndex])._kind_6.sons->data[currentEx]);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= branchIndex)) goto LA3;
				i = res;
				{
					NI j;
					NI colontmp_;
					NI T5_;
					NI i_2;
					j = (NI)0;
					colontmp_ = (NI)0;
					T5_ = (NI)0;
					T5_ = len__ast_3198((*t)._kind_6.sons->data[i]);
					colontmp_ = (NI)(T5_ - ((NI) 1));
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA7;
							j = i_2;
							{
								NIM_BOOL T10_;
								T10_ = (NIM_BOOL)0;
								T10_ = (i == branchIndex);
								if (!(T10_)) goto LA11_;
								T10_ = (j == currentEx);
								LA11_: ;
								if (!T10_) goto LA12_;
								goto LA4;
							}
							LA12_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
								NIM_BOOL T17_;
								T16_ = NIM_NIL;
								T16_ = skipConv__types_3597((*(*t)._kind_6.sons->data[i])._kind_6.sons->data[j]);
								T17_ = (NIM_BOOL)0;
								T17_ = overlap__nimsets_40(T16_, ex);
								if (!T17_) goto LA18_;
								liMessage__msgs_1118((*(*c).graph).config, (*ex).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_457), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_458, NIM_FALSE);
							}
							LA18_: ;
							i_2 += ((NI) 1);
						} LA7: ;
					}
				} LA4: ;
				res += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, semCaseBranch__sem_3791)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch, NI branchIndex, tyObject_Int128__9a9axPfb75jdWY25AamJewkA* covered) {
	NI lastIndex;
	NI T1_;
{	T1_ = (NI)0;
	T1_ = len__ast_3198(branch);
	lastIndex = (NI)(T1_ - ((NI) 2));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
				if (!(res <= lastIndex)) goto LA4;
				i = res;
				b = (*branch)._kind_6.sons->data[i];
				{
					if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA7_;
					asgnRef((void**) (&(*branch)._kind_6.sons->data[i]), b);
				}
				goto LA5_;
				LA7_: ;
				{
					NIM_BOOL T10_;
					T10_ = (NIM_BOOL)0;
					T10_ = isRange__trees_213(b);
					if (!T10_) goto LA11_;
					asgnRef((void**) (&(*branch)._kind_6.sons->data[i]), semCaseBranchRange__sem_3768(c, t, b, covered));
				}
				goto LA5_;
				LA11_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
					r = semConstExpr__sem_611(c, b);
					{
						NIM_BOOL T16_;
						NIM_BOOL T17_;
						NI T19_;
						NI T21_;
						T16_ = (NIM_BOOL)0;
						T17_ = (NIM_BOOL)0;
						T17_ = ((*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39) || (*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
						if (!(T17_)) goto LA18_;
						T19_ = (NI)0;
						T19_ = len__ast_3198(r);
						T17_ = (T19_ == ((NI) 0));
						LA18_: ;
						T16_ = T17_;
						if (!(T16_)) goto LA20_;
						T21_ = (NI)0;
						T21_ = len__ast_3198(branch);
						T16_ = (T21_ == ((NI) 2));
						LA20_: ;
						if (!T16_) goto LA22_;
						delSon__ast_4313(branch, ((NI) 0));
						goto BeforeRet_;
					}
					goto LA14_;
					LA22_: ;
					{
						NIM_BOOL T25_;
						NI T27_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
						T25_ = (NIM_BOOL)0;
						T25_ = !(((*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39) || (*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41)));
						if (T25_) goto LA26_;
						T27_ = (NI)0;
						T27_ = len__ast_3198(r);
						T25_ = (T27_ == ((NI) 0));
						LA26_: ;
						if (!T25_) goto LA28_;
						checkMinSonsLen__semdata_1084(t, ((NI) 1), (*(*c).graph).config);
						tmp = fitNode__sem_70(c, (*(*t)._kind_6.sons->data[((NI) 0)]).typ, r, (*r).info);
						{
							if (!((*tmp).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA32_;
							tmp = semConstExpr__sem_611(c, tmp);
						}
						LA32_: ;
						asgnRef((void**) (&(*branch)._kind_6.sons->data[i]), skipConv__types_3597(tmp));
						inc__int495056_251(covered, ((NU32) 1));
					}
					goto LA14_;
					LA28_: ;
					{
						{
							if (!((*r).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39))) goto LA37_;
							r = deduplicate__nimsets_236((*(*c).graph).config, r);
						}
						LA37_: ;
						asgnRef((void**) (&(*branch)._kind_6.sons->data[i]), semCaseBranchSetElem__sem_3776(c, t, (*r)._kind_6.sons->data[((NI) 0)], covered));
						{
							NI j;
							NI colontmp_;
							NI i_2;
							j = (NI)0;
							colontmp_ = (NI)0;
							colontmp_ = len__ast_3198(r);
							i_2 = ((NI) 1);
							{
								while (1) {
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
									NI T44_;
									NI T45_;
									if (!(i_2 < colontmp_)) goto LA41;
									j = i_2;
									T42_ = NIM_NIL;
									T42_ = semCaseBranchSetElem__sem_3776(c, t, (*r)._kind_6.sons->data[j], covered);
									add__ast_4797(branch, T42_);
									T43_ = NIM_NIL;
									T44_ = (NI)0;
									T44_ = len__ast_3198(branch);
									T45_ = (NI)0;
									T45_ = len__ast_3198(branch);
									T43_ = (*branch)._kind_6.sons->data[(NI)(T44_ - ((NI) 2))];
									asgnRef((void**) (&(*branch)._kind_6.sons->data[(NI)(T44_ - ((NI) 2))]), (*branch)._kind_6.sons->data[(NI)(T45_ - ((NI) 1))]);
									asgnRef((void**) (&(*branch)._kind_6.sons->data[(NI)(T45_ - ((NI) 1))]), T43_);
									i_2 += ((NI) 1);
								} LA41: ;
							}
						}
					}
					LA14_: ;
				}
				LA5_: ;
				checkForOverlap__sem_3723(c, t, i, branchIndex);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NI i_3;
		NI colontmp__2;
		NI colontmp__3;
		NI T47_;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__2 = (NI)(lastIndex + ((NI) 1));
		T47_ = (NI)0;
		T47_ = len__ast_3198(branch);
		colontmp__3 = (NI)(T47_ - ((NI) 1));
		i_4 = colontmp__2;
		{
			while (1) {
				if (!(i_4 < colontmp__3)) goto LA49;
				i_3 = i_4;
				checkForOverlap__sem_3723(c, t, i_3, branchIndex);
				i_4 += ((NI) 1);
			} LA49: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toCover__sem_3884)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t2;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	t2 = skipTypes__ast_3735(t, TM__rF9caJawfOjYTjsgLVUSGFA_459);
	{
		NIM_BOOL T3_;
		NI T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
		if (!(T3_)) goto LA4_;
		T3_ = enumHasHoles__types_287(t2);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NI)0;
		T7_ = len__ast_3198((*t2).n);
		result = toInt128__types_1378(T7_);
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
		t_2 = skipTypes__ast_3735(t, TM__rF9caJawfOjYTjsgLVUSGFA_448);
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T13_;
			if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44))) goto LA11_;
			T13_ = toInt128__types_1378(((NI) 1));
			result = shl__int495056_379(T13_, ((NI) 64));
		}
		goto LA9_;
		LA11_: ;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T17_;
			if (!((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) || (*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40))) goto LA15_;
			T17_ = toInt128__types_1378(((NI) 1));
			result = shl__int495056_379(T17_, (NI)((*(*(*c).graph).config).target.intSize * ((NI) 8)));
		}
		goto LA9_;
		LA15_: ;
		{
			result = lengthOrd__types_1661((*(*c).graph).config, t_2);
		}
		LA9_: ;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, len__nilcheck_1772)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s) {
	NI result;
	result = (NI)0;
	{
		if (!((*s).elems < ((NI) 34))) goto LA3_;
		result = (*s).elems;
	}
	goto LA1_;
	LA3_: ;
	{
		result = ((NI) 0);
		{
			NI _;
			_ = (NI)0;
			{
				if (!((*s).elems <= ((NI) 34))) goto LA9_;
				{
					NI i;
					NI i_2;
					i = (NI)0;
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < (*s).elems)) goto LA13;
							i = i_2;
							_ = (*s).a[(i)- 0];
							result += ((NI) 1);
							i_2 += ((NI) 1);
						} LA13: ;
					}
				}
			}
			goto LA7_;
			LA9_: ;
			{
				tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* r;
				r = (*s).head;
				{
					while (1) {
						NI i_3;
						if (!!((r == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA16;
						i_3 = ((NI) 0);
						{
							while (1) {
								NU w;
								NI j;
								if (!(i_3 <= ((NI) 7))) goto LA18;
								w = (*r).bits[(i_3)- 0];
								j = ((NI) 0);
								{
									while (1) {
										if (!!((w == ((NU) 0)))) goto LA20;
										{
											NI T25_;
											if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA23_;
											T25_ = (NI)0;
											T25_ = pluspercent___system_696((NI)((NU64)(i_3) << (NU64)(((NI) 6))), j);
											_ = (NI)((NI)((NU64)((*r).key) << (NU64)(((NI) 9))) | T25_);
											result += ((NI) 1);
										}
										LA23_: ;
										j += ((NI) 1);
										w = (NU)((NU64)(w) >> (NU64)(((NI) 1)));
									} LA20: ;
								}
								i_3 += ((NI) 1);
							} LA18: ;
						}
						r = (*r).next;
					} LA16: ;
				}
			}
			LA7_: ;
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderAsType__sem_3988)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* vals, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NimStringDesc* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
	NI enumSymOffset;
	NI i;
	result = NIM_NIL;
	result = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_463));
	t_2 = skipTypes__ast_3735(t, TM__rF9caJawfOjYTjsgLVUSGFA_461);
	enumSymOffset = ((NI) 0);
	i = ((NI) 0);
	{
		NI val;
		val = (NI)0;
		{
			if (!((*vals).elems <= ((NI) 34))) goto LA4_;
			{
				NI i_2;
				NI i_3;
				i_2 = (NI)0;
				i_3 = ((NI) 0);
				{
					while (1) {
						if (!(i_3 < (*vals).elems)) goto LA8;
						i_2 = i_3;
						val = (*vals).a[(i_2)- 0];
						{
							if (!(((NI) 1) < (result ? result->Sup.len : 0))) goto LA11_;
							result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_72));
						}
						LA11_: ;
						switch ((*t_2).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
						{
							{
								while (1) {
									if (!((*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).position < val)) goto LA15;
									enumSymOffset += ((NI) 1);
								} LA15: ;
							}
							result = resizeString(result, ((*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s ? (*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s->Sup.len : 0) + 0);
appendString(result, (*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s);
						}
						break;
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
						{
							addQuoted__sem_4005((&result), ((NIM_CHAR) (val)));
						}
						break;
						default:
						{
							{
								NI T22_;
								NimStringDesc* T23_;
								NimStringDesc* T24_;
								if (!(i == ((NI) 64))) goto LA20_;
								T22_ = (NI)0;
								T22_ = len__nilcheck_1772(vals);
								T23_ = NIM_NIL;
								T23_ = dollar___systemZdollars_3((NI)(T22_ - i));
								T24_ = NIM_NIL;
								T24_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_464), T23_);
								result = resizeString(result, (T24_ ? T24_->Sup.len : 0) + 0);
appendString(result, T24_);
								goto LA1;
							}
							goto LA18_;
							LA20_: ;
							{
								NimStringDesc* T26_;
								T26_ = NIM_NIL;
								T26_ = dollar___systemZdollars_3(val);
								result = resizeString(result, (T26_ ? T26_->Sup.len : 0) + 0);
appendString(result, T26_);
							}
							LA18_: ;
						}
						break;
						}
						i += ((NI) 1);
						i_3 += ((NI) 1);
					} LA8: ;
				}
			}
		}
		goto LA2_;
		LA4_: ;
		{
			tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* r;
			r = (*vals).head;
			{
				while (1) {
					NI i_4;
					if (!!((r == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA29;
					i_4 = ((NI) 0);
					{
						while (1) {
							NU w;
							NI j;
							if (!(i_4 <= ((NI) 7))) goto LA31;
							w = (*r).bits[(i_4)- 0];
							j = ((NI) 0);
							{
								while (1) {
									if (!!((w == ((NU) 0)))) goto LA33;
									{
										NI T38_;
										if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA36_;
										T38_ = (NI)0;
										T38_ = pluspercent___system_696((NI)((NU64)(i_4) << (NU64)(((NI) 6))), j);
										val = (NI)((NI)((NU64)((*r).key) << (NU64)(((NI) 9))) | T38_);
										{
											if (!(((NI) 1) < (result ? result->Sup.len : 0))) goto LA41_;
											result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_72));
										}
										LA41_: ;
										switch ((*t_2).kind) {
										case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
										case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
										{
											{
												while (1) {
													if (!((*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).position < val)) goto LA45;
													enumSymOffset += ((NI) 1);
												} LA45: ;
											}
											result = resizeString(result, ((*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s ? (*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s->Sup.len : 0) + 0);
appendString(result, (*(*(*(*(*t_2).n)._kind_6.sons->data[enumSymOffset])._kind_4.sym).name).s);
										}
										break;
										case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
										{
											addQuoted__sem_4005((&result), ((NIM_CHAR) (val)));
										}
										break;
										default:
										{
											{
												NI T52_;
												NimStringDesc* T53_;
												NimStringDesc* T54_;
												if (!(i == ((NI) 64))) goto LA50_;
												T52_ = (NI)0;
												T52_ = len__nilcheck_1772(vals);
												T53_ = NIM_NIL;
												T53_ = dollar___systemZdollars_3((NI)(T52_ - i));
												T54_ = NIM_NIL;
												T54_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_464), T53_);
												result = resizeString(result, (T54_ ? T54_->Sup.len : 0) + 0);
appendString(result, T54_);
												goto LA1;
											}
											goto LA48_;
											LA50_: ;
											{
												NimStringDesc* T56_;
												T56_ = NIM_NIL;
												T56_ = dollar___systemZdollars_3(val);
												result = resizeString(result, (T56_ ? T56_->Sup.len : 0) + 0);
appendString(result, T56_);
											}
											LA48_: ;
										}
										break;
										}
										i += ((NI) 1);
									}
									LA36_: ;
									j += ((NI) 1);
									w = (NU)((NU64)(w) >> (NU64)(((NI) 1)));
								} LA33: ;
							}
							i_4 += ((NI) 1);
						} LA31: ;
					}
					r = (*r).next;
				} LA29: ;
			}
		}
		LA2_: ;
	} LA1: ;
	result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_465));
	return result;
}
static N_INLINE(void, minus___sem_4040)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T1_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	difference__sem_4045(s1, s2, (&T1_));
	genericShallowAssign((void*)Result, (void*)(&T1_), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
}
N_LIB_PRIVATE N_NIMCALL(void, getIntSetOfType__sem_3930)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
	initIntSet__pureZcollectionsZintsets_238(Result);
	{
		NIM_BOOL T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
		T3_ = (NIM_BOOL)0;
		T3_ = enumHasHoles__types_287(t);
		if (!T3_) goto LA4_;
		t_2 = skipTypes__ast_3735(t, TM__rF9caJawfOjYTjsgLVUSGFA_461);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** field;
			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
			NI i;
			NI L;
			NI T7_;
			field = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
			colontmp_ = NIM_NIL;
			colontmp_ = (*(*t_2).n)._kind_6.sons;
			i = ((NI) 0);
			T7_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T7_;
			{
				while (1) {
					if (!(i < L)) goto LA9;
					field = &colontmp_->data[i];
					incl__pureZcollectionsZintsets_55(Result, (*(*(*field))._kind_4.sym).position);
					i += ((NI) 1);
				} LA9: ;
			}
		}
	}
	goto LA1_;
	LA4_: ;
	{
		{
			NI64 i_2;
			NI64 colontmp__2;
			NI64 colontmp__3;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T12_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T13_;
			NI64 res;
			i_2 = (NI64)0;
			colontmp__2 = (NI64)0;
			colontmp__3 = (NI64)0;
			T12_ = firstOrd__types_1353((*(*c).graph).config, t);
			colontmp__2 = toInt64__int495056_88(T12_);
			T13_ = lastOrd__types_1470((*(*c).graph).config, t);
			colontmp__3 = toInt64__int495056_88(T13_);
			res = colontmp__2;
			{
				while (1) {
					if (!(res <= colontmp__3)) goto LA15;
					i_2 = res;
					incl__pureZcollectionsZintsets_55(Result, ((NI) (i_2)));
					res += ((NI) 1);
				} LA15: ;
			}
		}
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, formatMissingEnums__sem_4020)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* result;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA coveredCases;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T23_;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T24_;
	result = NIM_NIL;
	nimZeroMem((void*)(&coveredCases), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	initIntSet__pureZcollectionsZintsets_238((&coveredCases));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NI val;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__2;
					val = (NI)0;
					colontmp__2 = NIM_NIL;
					colontmp__2 = (*n)._kind_6.sons->data[i];
					{
						if (!((*colontmp__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA7_;
						{
							NI i_3;
							NI colontmp__3;
							NI T10_;
							NI i_4;
							i_3 = (NI)0;
							colontmp__3 = (NI)0;
							T10_ = (NI)0;
							T10_ = len__ast_3198(colontmp__2);
							colontmp__3 = (NI)(T10_ - ((NI) 1));
							i_4 = ((NI) 0);
							{
								while (1) {
									if (!(i_4 < colontmp__3)) goto LA12;
									i_3 = i_4;
									{
										if (!((*(*colontmp__2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) || (*(*colontmp__2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5))) goto LA15_;
										val = ((NI) ((*(*colontmp__2)._kind_6.sons->data[i_3])._kind_1.intVal));
										incl__pureZcollectionsZintsets_55((&coveredCases), val);
									}
									goto LA13_;
									LA15_: ;
									{
										if (!((*(*colontmp__2)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA18_;
										{
											NI64 i_5;
											NI64 colontmp__4;
											NI64 colontmp__5;
											NI64 res;
											i_5 = (NI64)0;
											colontmp__4 = (NI64)0;
											colontmp__5 = (NI64)0;
											colontmp__4 = (*(*(*colontmp__2)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 0)])._kind_1.intVal;
											colontmp__5 = (*(*(*colontmp__2)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)])._kind_1.intVal;
											res = colontmp__4;
											{
												while (1) {
													if (!(res <= colontmp__5)) goto LA22;
													i_5 = res;
													val = ((NI) (i_5));
													incl__pureZcollectionsZintsets_55((&coveredCases), val);
													res += ((NI) 1);
												} LA22: ;
											}
										}
									}
									goto LA13_;
									LA18_: ;
									LA13_: ;
									i_4 += ((NI) 1);
								} LA12: ;
							}
						}
					}
					LA7_: ;
				}
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	nimZeroMem((void*)(&T23_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	getIntSetOfType__sem_3930(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (&T23_));
	nimZeroMem((void*)(&T24_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	minus___sem_4040((&T23_), (&coveredCases), (&T24_));
	result = renderAsType__sem_3988((&T24_), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semRecordCase__sem_4067)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* rectype) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA covered;
	NIM_BOOL chckCovered;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
{	a = copyNode__ast_4336(n);
	checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*c).graph).config);
	semRecordNodeAux__sem_3922(c, (*n)._kind_6.sons->data[((NI) 0)], check, pos, a, rectype, NIM_TRUE);
	{
		if (!!(((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA3_;
		internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_446), TM__rF9caJawfOjYTjsgLVUSGFA_447);
		goto BeforeRet_;
	}
	LA3_: ;
	(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 20)) & 63);
	covered = toInt128__types_1378(((NI) 0));
	chckCovered = NIM_FALSE;
	typ = skipTypes__ast_3735((*(*a)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_448);
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
	{
		chckCovered = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
	{
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
			T10_ = NIM_NIL;
			T10_ = skipTypes__ast_3735((*typ).sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_70);
			if (!((*T10_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T10_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*T10_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*T10_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*T10_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*T10_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43) || (*T10_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1))) goto LA11_;
			chckCovered = NIM_TRUE;
		}
		LA11_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
	{
		errorUndeclaredIdentifier__lookups_1199(c, (*(*n)._kind_6.sons->data[((NI) 0)]).info, (*(*(*typ).sym).name).s, ((NimStringDesc*) NIM_NIL));
	}
	break;
	default:
	{
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = isOrdinalType__types_299(typ, NIM_FALSE);
			if (!!(T17_)) goto LA18_;
			liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_449), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_450, NIM_FALSE);
		}
		LA18_: ;
	}
	break;
	}
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T22_;
		NIM_BOOL T23_;
		NimStringDesc* T26_;
		T22_ = firstOrd__types_1353((*(*c).graph).config, typ);
		T23_ = (NIM_BOOL)0;
		T23_ = eqeq___int495056_759(T22_, IL64(0));
		if (!!(T23_)) goto LA24_;
		T26_ = NIM_NIL;
		T26_ = rawNewString(((*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s ? (*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s->Sup.len : 0) + 32);
appendString(T26_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_451));
appendString(T26_, (*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
appendString(T26_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_452));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_453, NIM_FALSE);
	}
	goto LA20_;
	LA24_: ;
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T28_;
		NIM_BOOL T29_;
		NimStringDesc* T32_;
		T28_ = lengthOrd__types_1661((*(*c).graph).config, typ);
		T29_ = (NIM_BOOL)0;
		T29_ = lt___int495056_738(IL64(32767), T28_);
		if (!T29_) goto LA30_;
		T32_ = NIM_NIL;
		T32_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_454), (*(*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T32_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_455, NIM_FALSE);
	}
	goto LA20_;
	LA30_: ;
	LA20_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
				NI T46_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
				if (!(i_2 < colontmp_)) goto LA35;
				i = i_2;
				b = copyTree__ast_4431((*n)._kind_6.sons->data[i]);
				add__ast_4797(a, b);
				switch ((*(*n)._kind_6.sons->data[i]).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
				{
					checkMinSonsLen__semdata_1084(b, ((NI) 2), (*(*c).graph).config);
					semCaseBranch__sem_3791(c, a, b, i, (&covered));
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
				{
					checkSonsLen__semdata_1077(b, ((NI) 1), (*(*c).graph).config);
					{
						NIM_BOOL T40_;
						tyObject_Int128__9a9axPfb75jdWY25AamJewkA T42_;
						T40_ = (NIM_BOOL)0;
						T40_ = chckCovered;
						if (!(T40_)) goto LA41_;
						T42_ = toCover__sem_3884(c, (*(*a)._kind_6.sons->data[((NI) 0)]).typ);
						T40_ = eqeq___int495056_313(covered, T42_);
						LA41_: ;
						if (!T40_) goto LA43_;
						liMessage__msgs_1118((*(*c).graph).config, (*b).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 45), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_460, NIM_FALSE);
					}
					LA43_: ;
					chckCovered = NIM_FALSE;
				}
				break;
				default:
				{
					illFormedAst__semdata_1071(n, (*(*c).graph).config);
				}
				break;
				}
				T46_ = (NI)0;
				T46_ = len__ast_3198(b);
				delSon__ast_4313(b, (NI)(T46_ - ((NI) 1)));
				T47_ = NIM_NIL;
				T47_ = lastSon__ast_4832((*n)._kind_6.sons->data[i]);
				semRecordNodeAux__sem_3922(c, T47_, check, pos, b, rectype, NIM_TRUE);
				i_2 += ((NI) 1);
			} LA35: ;
		}
	}
	{
		NIM_BOOL T50_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T52_;
		NIM_BOOL T53_;
		T50_ = (NIM_BOOL)0;
		T50_ = chckCovered;
		if (!(T50_)) goto LA51_;
		T52_ = toCover__sem_3884(c, (*(*a)._kind_6.sons->data[((NI) 0)]).typ);
		T53_ = (NIM_BOOL)0;
		T53_ = eqeq___int495056_313(covered, T52_);
		T50_ = !(T53_);
		LA51_: ;
		if (!T50_) goto LA54_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T58_;
			NimStringDesc* T61_;
			NimStringDesc* T62_;
			T58_ = NIM_NIL;
			T58_ = skipTypes__ast_3735((*(*a)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_461);
			if (!((*T58_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14))) goto LA59_;
			T61_ = NIM_NIL;
			T61_ = formatMissingEnums__sem_4020(c, a);
			T62_ = NIM_NIL;
			T62_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_462), T61_);
			liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T62_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_466, NIM_FALSE);
		}
		goto LA56_;
		LA59_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_467), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_468, NIM_FALSE);
		}
		LA56_: ;
	}
	LA54_: ;
	add__ast_4797(father, a);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, semRecordNodeAux__sem_3922)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* check, NI* pos, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* rectype, NIM_BOOL hasCaseFields) {
{	{
		if (!(n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 140):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
		branch = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					NI idx;
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					it = (*n)._kind_6.sons->data[i];
					{
						if (!(it == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA11_;
						illFormedAst__semdata_1071(n, (*(*c).graph).config);
					}
					LA11_: ;
					idx = ((NI) 1);
					switch ((*it).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
					{
						checkSonsLen__semdata_1077(it, ((NI) 2), (*(*c).graph).config);
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
							if (!((*c).inGenericContext == ((NI) 0))) goto LA16_;
							e = semConstBoolExpr__sem_2877(c, (*it)._kind_6.sons->data[((NI) 0)]);
							{
								if (!!(((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA20_;
							}
							goto LA18_;
							LA20_: ;
							{
								NIM_BOOL T23_;
								T23_ = (NIM_BOOL)0;
								T23_ = !(((*e)._kind_1.intVal == IL64(0)));
								if (!(T23_)) goto LA24_;
								T23_ = (branch == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
								LA24_: ;
								if (!T23_) goto LA25_;
								branch = (*it)._kind_6.sons->data[((NI) 1)];
							}
							goto LA18_;
							LA25_: ;
							LA18_: ;
						}
						goto LA14_;
						LA16_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
							T28_ = NIM_NIL;
							T28_ = semExprWithType__sem_56(c, (*it)._kind_6.sons->data[((NI) 0)], 0);
							asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), forceBool__sem_2869(c, T28_));
						}
						LA14_: ;
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						checkSonsLen__semdata_1077(it, ((NI) 1), (*(*c).graph).config);
						{
							if (!(branch == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA32_;
							branch = (*it)._kind_6.sons->data[((NI) 0)];
						}
						LA32_: ;
						idx = ((NI) 0);
					}
					break;
					default:
					{
						illFormedAst__semdata_1071(n, (*(*c).graph).config);
					}
					break;
					}
					{
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA newCheck;
						NI newPos;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newf;
						if (!(((NI) 0) < (*c).inGenericContext)) goto LA37_;
						nimZeroMem((void*)(&newCheck), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						assign__types_3929((&newCheck), (&(*check)));
						newPos = (*pos);
						newf = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
						semRecordNodeAux__sem_3922(c, (*it)._kind_6.sons->data[idx], (&newCheck), (&newPos), newf, rectype, hasCaseFields);
						{
							NI T41_;
							T41_ = (NI)0;
							T41_ = len__ast_3198(newf);
							if (!(T41_ == ((NI) 1))) goto LA42_;
							asgnRef((void**) (&(*it)._kind_6.sons->data[idx]), (*newf)._kind_6.sons->data[((NI) 0)]);
						}
						goto LA39_;
						LA42_: ;
						{
							asgnRef((void**) (&(*it)._kind_6.sons->data[idx]), newf);
						}
						LA39_: ;
					}
					LA37_: ;
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
		{
			if (!(((NI) 0) < (*c).inGenericContext)) goto LA47_;
			add__ast_4797(father, n);
		}
		goto LA45_;
		LA47_: ;
		{
			if (!!((branch == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA50_;
			semRecordNodeAux__sem_3922(c, branch, check, pos, father, rectype, hasCaseFields);
		}
		goto LA45_;
		LA50_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T55_;
			if (!((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88) || (*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA53_;
			T55_ = NIM_NIL;
			T55_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
			add__ast_4797(father, T55_);
		}
		goto LA45_;
		LA53_: ;
		LA45_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		semRecordCase__sem_4067(c, n, check, pos, father, rectype);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T62_;
			if (!!(((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138)))) goto LA60_;
			T62_ = NIM_NIL;
			T62_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
			add__ast_4797(father, T62_);
		}
		LA60_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		{
			if (!((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138))) goto LA66_;
			a = father;
		}
		goto LA64_;
		LA66_: ;
		{
			a = copyNode__ast_4336(n);
		}
		LA64_: ;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA71;
					i_3 = i_4;
					semRecordNodeAux__sem_3922(c, (*n)._kind_6.sons->data[i_3], check, pos, a, rectype, hasCaseFields);
					i_4 += ((NI) 1);
				} LA71: ;
			}
		}
		{
			if (!!((a == father))) goto LA74_;
			add__ast_4797(father, a);
		}
		LA74_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fieldOwner;
		checkMinSonsLen__semdata_1084(n, ((NI) 3), (*(*c).graph).config);
		a_2 = NIM_NIL;
		{
			NIM_BOOL T79_;
			NI T81_;
			T79_ = (NIM_BOOL)0;
			T79_ = !(((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138)));
			if (!(T79_)) goto LA80_;
			T81_ = (NI)0;
			T81_ = len__ast_3198(n);
			T79_ = (((NI) 4) <= T81_);
			LA80_: ;
			if (!T79_) goto LA82_;
			a_2 = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
		}
		goto LA77_;
		LA82_: ;
		{
			a_2 = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		}
		LA77_: ;
		{
			NI T87_;
			NI T90_;
			T87_ = (NI)0;
			T87_ = len__ast_3198(n);
			if (!!(((*(*n)._kind_6.sons->data[(NI)(T87_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA88_;
			T90_ = (NI)0;
			T90_ = len__ast_3198(n);
			liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[(NI)(T90_ - ((NI) 1))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_469), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_470, NIM_FALSE);
		}
		LA88_: ;
		typ = NIM_NIL;
		{
			NI T93_;
			T93_ = (NI)0;
			T93_ = len__ast_3198(n);
			if (!((*(*n)._kind_6.sons->data[(NI)(T93_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA94_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_471, NIM_FALSE);
			typ = errorType__semdata_1002(c);
		}
		goto LA91_;
		LA94_: ;
		{
			NI T97_;
			T97_ = (NI)0;
			T97_ = len__ast_3198(n);
			typ = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[(NI)(T97_ - ((NI) 2))], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
			propagateToOwner__ast_4219(rectype, typ, NIM_TRUE);
		}
		LA91_: ;
		{
			if (!(((NI) 0) < (*c).inGenericContext)) goto LA100_;
			fieldOwner = getCurrOwner__semdata_315(c);
		}
		goto LA98_;
		LA100_: ;
		{
			fieldOwner = (*rectype).sym;
		}
		LA98_: ;
		{
			NI i_5;
			NI colontmp__3;
			NI T104_;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			T104_ = (NI)0;
			T104_ = len__ast_3198(n);
			colontmp__3 = (NI)(T104_ - ((NI) 2));
			i_6 = ((NI) 0);
			{
				while (1) {
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f;
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
					if (!(i_6 < colontmp__3)) goto LA106;
					i_5 = i_6;
					f = semIdentWithPragma__sem_476(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19), (*n)._kind_6.sons->data[i_5], 2);
					{
						if (!((*(*n)._kind_6.sons->data[i_5]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31))) goto LA109_;
						info = (*(*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)]).info;
					}
					goto LA107_;
					LA109_: ;
					{
						info = (*(*n)._kind_6.sons->data[i_5]).info;
					}
					LA107_: ;
					suggestSym__sigmatch_5375((*c).graph, info, f, &(*(*c).graph).usageSym, NIM_TRUE);
					asgnRef((void**) (&(*f).typ), typ);
					(*f).position = (*pos);
					(*f).options = (*(*(*c).graph).config).options;
					{
						NIM_BOOL T114_;
						NIM_BOOL T115_;
						NIM_BOOL T116_;
						T114_ = (NIM_BOOL)0;
						T115_ = (NIM_BOOL)0;
						T116_ = (NIM_BOOL)0;
						T116_ = !((fieldOwner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
						if (!(T116_)) goto LA117_;
						T116_ = !(((192 & (*fieldOwner).flags) == 0));
						LA117_: ;
						T115_ = T116_;
						if (!(T115_)) goto LA118_;
						T115_ = !(hasCaseFields);
						LA118_: ;
						T114_ = T115_;
						if (!(T114_)) goto LA119_;
						T114_ = ((*f).loc.r == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL));
						LA119_: ;
						if (!T114_) goto LA120_;
						asgnRef((void**) (&(*f).loc.r), rope__ropes_109((*(*f).name).s));
						(*f).flags = ((*f).flags | (192 & (*fieldOwner).flags));
					}
					LA120_: ;
					(*pos) += ((NI) 1);
					{
						NIM_BOOL T124_;
						NimStringDesc* T127_;
						T124_ = (NIM_BOOL)0;
						T124_ = containsOrIncl__astalgo_402(check, (*(*f).name).id);
						if (!T124_) goto LA125_;
						T127_ = NIM_NIL;
						T127_ = rawNewString(((*(*f).name).s ? (*(*f).name).s->Sup.len : 0) + 23);
appendString(T127_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_150));
appendString(T127_, (*(*f).name).s);
appendString(T127_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
						liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T127_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_472, NIM_FALSE);
					}
					LA125_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T132_;
						if (!((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA130_;
						T132_ = NIM_NIL;
						T132_ = newSymNode__ast_3716(f);
						add__ast_4797(father, T132_);
					}
					goto LA128_;
					LA130_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T134_;
						T134_ = NIM_NIL;
						T134_ = newSymNode__ast_3716(f);
						add__ast_4797(a_2, T134_);
					}
					LA128_: ;
					{
						NIM_BOOL T137_;
						T137_ = (NIM_BOOL)0;
						T137_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
						if (!(T137_)) goto LA138_;
						T137_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
						LA138_: ;
						if (!T137_) goto LA139_;
						nep1CheckDefImpl__linter_110((*(*c).graph).config, (*f).info, f, (*f).kind);
					}
					LA139_: ;
					i_6 += ((NI) 1);
				} LA106: ;
			}
		}
		{
			if (!!(((*a_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA143_;
			add__ast_4797(father, a_2);
		}
		LA143_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T148_;
			NimStringDesc* T151_;
			T148_ = (NIM_BOOL)0;
			T148_ = containsOrIncl__astalgo_402(check, (*(*(*n)._kind_4.sym).name).id);
			if (!T148_) goto LA149_;
			T151_ = NIM_NIL;
			T151_ = rawNewString(((*(*(*n)._kind_4.sym).name).s ? (*(*(*n)._kind_4.sym).name).s->Sup.len : 0) + 23);
appendString(T151_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_150));
appendString(T151_, (*(*(*n)._kind_4.sym).name).s);
appendString(T151_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T151_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_473, NIM_FALSE);
		}
		LA149_: ;
		add__ast_4797(father, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	{
		{
			if (!((*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88) || (*father).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA155_;
			add__ast_4797(father, n);
		}
		LA155_: ;
	}
	break;
	default:
	{
		illFormedAst__semdata_1071(n, (*(*c).graph).config);
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initConstrContext__sem_19672)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* Result) {
	unsureAsgnRef((void**)&(*Result).typ, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).initExpr, NIM_NIL);
	(*Result).needsFullInit = 0;
	unsureAsgnRef((void**)&(*Result).missingFields, NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).typ), t);
	unsureAsgnRef((void**) (&(*Result).initExpr), initExpr);
	(*Result).needsFullInit = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0);
}
N_LIB_PRIVATE N_NIMCALL(void, mergeInitStatus__sem_19091)(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ* existing, tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ newStatus) {
	switch (newStatus) {
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 4):
	{
		(*existing) = newStatus;
	}
	break;
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2):
	{
		{
			if (!((11 &((NU8)1<<((NU)((*existing))&7U)))!=0)) goto LA5_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3):
	{
		{
			if (!((*existing) == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0))) goto LA10_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3);
		}
		goto LA8_;
		LA10_: ;
		{
			if (!((*existing) == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1))) goto LA13_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2);
		}
		goto LA8_;
		LA13_: ;
		LA8_: ;
	}
	break;
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1):
	{
		{
			if (!((*existing) == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0))) goto LA18_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1);
		}
		goto LA16_;
		LA18_: ;
		{
			if (!((*existing) == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3))) goto LA21_;
			(*existing) = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2);
		}
		goto LA16_;
		LA21_: ;
		LA16_: ;
	}
	break;
	case ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0):
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, invalidObjConstr__sem_19125)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((NU8)((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s->data[((NI) 0)]) == (NU8)(58));
		LA6_: ;
		if (!T3_) goto LA7_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_478), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_479, NIM_FALSE);
	}
	goto LA1_;
	LA7_: ;
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_480), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_481, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, locateFieldInInitExpr__sem_19138)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI fieldId;
{	result = NIM_NIL;
	fieldId = (*(*field).name).id;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(initExpr);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* assignment;
					assignment = (*initExpr)._kind_6.sons->data[i];
					{
						if (!!(((*assignment).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA7_;
						invalidObjConstr__sem_19125(c, assignment);
						goto LA4;
					}
					LA7_: ;
					{
						tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T11_;
						T11_ = NIM_NIL;
						T11_ = considerQuotedIdent__lookups_28(c, (*assignment)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
						if (!(fieldId == (*T11_).id)) goto LA12_;
						result = assignment;
						goto BeforeRet_;
					}
					LA12_: ;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, fieldsPresentInInitExpr__sem_19314)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsRecList, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = ((NimStringDesc*) NIM_NIL);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
		field = NIM_NIL;
		{
			if (!((*fieldsRecList).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA4_;
			field = fieldsRecList;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
				NimStringDesc* T15_;
				T8_ = NIM_NIL;
				T8_ = locateFieldInInitExpr__sem_19138(c, (*field)._kind_4.sym, initExpr);
				if (!!((T8_ == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA9_;
				{
					if (!!(((result ? result->Sup.len : 0) == ((NI) 0)))) goto LA13_;
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_72));
				}
				LA13_: ;
				T15_ = NIM_NIL;
				T15_ = rawNewString(((*(*(*field)._kind_4.sym).name).s ? (*(*(*field)._kind_4.sym).name).s->Sup.len : 0) + 2);
appendString(T15_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
appendString(T15_, (*(*(*field)._kind_4.sym).name).s);
appendString(T15_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
				result = resizeString(result, (T15_ ? T15_->Sup.len : 0) + 0);
appendString(result, T15_);
			}
			LA9_: ;
		}
		goto LA2_;
		LA4_: ;
		{
			{
				if (!!(((*fieldsRecList).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138)))) goto LA19_;
				failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_482));
			}
			LA19_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field_2;
				field_2 = NIM_NIL;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__ast_3191(fieldsRecList);
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA24;
							i = i_2;
							field_2 = (*fieldsRecList)._kind_6.sons->data[i];
							{
								{
									if (!!(((*field_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA28_;
									goto LA25;
								}
								LA28_: ;
								field = field_2;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
									NimStringDesc* T39_;
									T32_ = NIM_NIL;
									T32_ = locateFieldInInitExpr__sem_19138(c, (*field)._kind_4.sym, initExpr);
									if (!!((T32_ == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA33_;
									{
										if (!!(((result ? result->Sup.len : 0) == ((NI) 0)))) goto LA37_;
										result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_72));
									}
									LA37_: ;
									T39_ = NIM_NIL;
									T39_ = rawNewString(((*(*(*field)._kind_4.sym).name).s ? (*(*(*field)._kind_4.sym).name).s->Sup.len : 0) + 2);
appendString(T39_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
appendString(T39_, (*(*(*field)._kind_4.sym).name).s);
appendString(T39_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
									result = resizeString(result, (T39_ ? T39_->Sup.len : 0) + 0);
appendString(result, T39_);
								}
								LA33_: ;
							} LA25: ;
							i_2 += ((NI) 1);
						} LA24: ;
					}
				}
			}
		}
		LA2_: ;
	}
	return result;
}
static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).prev = excHandler__system_2565;
	excHandler__system_2565 = s;
}
static N_INLINE(void, popSafePoint)(void) {
	excHandler__system_2565 = (*excHandler__system_2565).prev;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = NIM_NIL;
	result = currException__system_2566;
	return result;
}
static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryConstExpr__sem_582)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* volatile result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
	NI oldErrorCount;
	NI oldErrorMax;
	tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA oldErrorOutputs;
	TSafePoint TM__rF9caJawfOjYTjsgLVUSGFA_487;
{	result = NIM_NIL;
	e = semExprWithType__sem_56(c, n, 0);
	{
		if (!(e == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = getConstExpr__semfold_81((*c).module, e, (*c).Sup.idgen, (*c).graph);
	{
		if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	oldErrorCount = (*(*(*c).graph).config).errorCounter;
	oldErrorMax = (*(*(*c).graph).config).errorMax;
	oldErrorOutputs = (*(*(*c).graph).config).m.errorOutputs;
	(*(*(*c).graph).config).m.errorOutputs = 0;
	(*(*(*c).graph).config).errorMax = ((NI) IL64(9223372036854775807));
	pushSafePoint(&TM__rF9caJawfOjYTjsgLVUSGFA_487);
	TM__rF9caJawfOjYTjsgLVUSGFA_487.status = _setjmp(TM__rF9caJawfOjYTjsgLVUSGFA_487.context);
	if (TM__rF9caJawfOjYTjsgLVUSGFA_487.status == 0) {
	result = evalConstExpr__vm_13746((*c).module, (*c).Sup.idgen, (*c).graph, e);
	{
		NIM_BOOL T11_;
		T11_ = (NIM_BOOL)0;
		T11_ = (result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		if (T11_) goto LA12_;
		T11_ = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA12_: ;
		if (!T11_) goto LA13_;
		result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	}
	goto LA9_;
	LA13_: ;
	{
		result = fixupTypeAfterEval__sem_570(c, result, e);
	}
	LA9_: ;
	popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIerecoverableerror__IxbcvonC7TQkv166Uvdu1g_))) {
			TM__rF9caJawfOjYTjsgLVUSGFA_487.status = 0;
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			popCurrentException();
		}
	}
	if (TM__rF9caJawfOjYTjsgLVUSGFA_487.status != 0) reraiseException();
	(*(*(*c).graph).config).errorCounter = oldErrorCount;
	(*(*(*c).graph).config).errorMax = oldErrorMax;
	(*(*(*c).graph).config).m.errorOutputs = oldErrorOutputs;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprFlagDispatched__sem_641)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 4))&31U)))!=0)) goto LA3_;
		{
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 6))&31U)))!=0)) goto LA7_;
			result = tryConstExpr__sem_582(c, n);
			goto BeforeRet_;
		}
		goto LA5_;
		LA7_: ;
		{
			result = semConstExpr__sem_611(c, n);
			goto BeforeRet_;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = semExprWithType__sem_56(c, n, flags);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated;
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 5))&31U)))!=0)) goto LA13_;
			evaluated = getConstExpr__semfold_81((*c).module, result, (*c).Sup.idgen, (*c).graph);
			{
				if (!!((evaluated == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA17_;
				result = evaluated;
				goto BeforeRet_;
			}
			LA17_: ;
			evaluated = evalAtCompileTime__sem_117(c, result);
			{
				if (!!((evaluated == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA21_;
				result = evaluated;
				goto BeforeRet_;
			}
			LA21_: ;
		}
		LA13_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitNodeConsiderViewType__sem_212)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = NIM_NIL;
	a = fitNode__sem_70(c, formal, arg, info);
	{
		if (!((*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*formal).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA3_;
		result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), (*a).info, formal);
		add__ast_4797(result, a);
		(*formal).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
	}
	goto LA1_;
	LA3_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstrField__sem_19159)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initExpr) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* assignment;
{	result = NIM_NIL;
	assignment = locateFieldInInitExpr__sem_19138(c, field, initExpr);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* initValue;
		if (!!((assignment == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
		{
			if (!(((*assignment).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0)) goto LA7_;
			result = (*assignment)._kind_6.sons->data[((NI) 1)];
			goto BeforeRet_;
		}
		LA7_: ;
		{
			NIM_BOOL T11_;
			tyArray__nHXaesL0DJZHyVS07ARPRA T14_;
			NimStringDesc* T15_;
			T11_ = (NIM_BOOL)0;
			T11_ = fieldVisible__sigmatch_4944(c, field);
			if (!!(T11_)) goto LA12_;
			nimZeroMem((void*)T14_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
			T14_[0] = copyString((*(*field).name).s);
			T15_ = NIM_NIL;
			T15_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_485), T14_, 1);
			liMessage__msgs_1118((*(*c).graph).config, (*initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T15_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_486, NIM_FALSE);
			goto BeforeRet_;
		}
		LA12_: ;
		initValue = semExprFlagDispatched__sem_641(c, (*assignment)._kind_6.sons->data[((NI) 1)], flags);
		{
			if (!!((initValue == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA18_;
			initValue = fitNodeConsiderViewType__sem_212(c, (*field).typ, initValue, (*assignment).info);
		}
		LA18_: ;
		asgnRef((void**) (&(*assignment)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(field));
		asgnRef((void**) (&(*assignment)._kind_6.sons->data[((NI) 1)]), initValue);
		(*assignment).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31);
		result = initValue;
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, findUsefulCaseContext__sem_19238)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discrimator, tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* Result) {
{	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	(*Result).Field1 = 0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*(*c).p).caseContext ? (*(*c).p).caseContext->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = colontmp_;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseNode;
				NI index;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* skipped;
				if (!(((NI) 0) <= res)) goto LA4;
				i = res;
				caseNode = NIM_NIL;
				caseNode = (*(*c).p).caseContext->data[i].Field0;
				index = (NI)0;
				index = (*(*c).p).caseContext->data[i].Field1;
				skipped = skipHidden__types_3613((*caseNode)._kind_6.sons->data[((NI) 0)]);
				{
					NIM_BOOL T7_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__2;
					NI colontmp__3;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*skipped).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T7_)) goto LA8_;
					T7_ = ((*skipped)._kind_4.sym == (*discrimator)._kind_4.sym);
					LA8_: ;
					if (!T7_) goto LA9_;
					colontmp__2 = caseNode;
					colontmp__3 = index;
					unsureAsgnRef((void**) (&(*Result).Field0), colontmp__2);
					(*Result).Field1 = colontmp__3;
					goto BeforeRet_;
				}
				LA9_: ;
				res -= ((NI) 1);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, branchVals__sem_19206)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseNode, NI caseIdx, NIM_BOOL isStmtBranch, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
	{
		if (!((*(*caseNode)._kind_6.sons->data[caseIdx]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA3_;
		initIntSet__pureZcollectionsZintsets_238(Result);
		{
			NI val;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp_;
			val = (NI)0;
			colontmp_ = NIM_NIL;
			colontmp_ = (*caseNode)._kind_6.sons->data[caseIdx];
			{
				if (!((*colontmp_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA8_;
				{
					NI i;
					NI colontmp__2;
					NI T11_;
					NI i_2;
					i = (NI)0;
					colontmp__2 = (NI)0;
					T11_ = (NI)0;
					T11_ = len__ast_3198(colontmp_);
					colontmp__2 = (NI)(T11_ - ((NI) 1));
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp__2)) goto LA13;
							i = i_2;
							{
								if (!((*(*colontmp_)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) || (*(*colontmp_)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5))) goto LA16_;
								val = ((NI) ((*(*colontmp_)._kind_6.sons->data[i])._kind_1.intVal));
								incl__pureZcollectionsZintsets_55(Result, val);
							}
							goto LA14_;
							LA16_: ;
							{
								if (!((*(*colontmp_)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA19_;
								{
									NI64 i_3;
									NI64 colontmp__3;
									NI64 colontmp__4;
									NI64 res;
									i_3 = (NI64)0;
									colontmp__3 = (NI64)0;
									colontmp__4 = (NI64)0;
									colontmp__3 = (*(*(*colontmp_)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_1.intVal;
									colontmp__4 = (*(*(*colontmp_)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)])._kind_1.intVal;
									res = colontmp__3;
									{
										while (1) {
											if (!(res <= colontmp__4)) goto LA23;
											i_3 = res;
											val = ((NI) (i_3));
											incl__pureZcollectionsZintsets_55(Result, val);
											res += ((NI) 1);
										} LA23: ;
									}
								}
							}
							goto LA14_;
							LA19_: ;
							LA14_: ;
							i_2 += ((NI) 1);
						} LA13: ;
					}
				}
			}
			LA8_: ;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		getIntSetOfType__sem_3930(c, (*(*caseNode)._kind_6.sons->data[((NI) 0)]).typ, Result);
		{
			NI i_4;
			NI colontmp__5;
			NI T26_;
			NI i_5;
			i_4 = (NI)0;
			colontmp__5 = (NI)0;
			T26_ = (NI)0;
			T26_ = len__ast_3198(caseNode);
			colontmp__5 = (NI)(T26_ - ((NI) 1));
			i_5 = ((NI) 1);
			{
				while (1) {
					if (!(i_5 < colontmp__5)) goto LA28;
					i_4 = i_5;
					{
						NI val_2;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__6;
						val_2 = (NI)0;
						colontmp__6 = NIM_NIL;
						colontmp__6 = (*caseNode)._kind_6.sons->data[i_4];
						{
							if (!((*colontmp__6).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA32_;
							{
								NI i_6;
								NI colontmp__7;
								NI T35_;
								NI i_7;
								i_6 = (NI)0;
								colontmp__7 = (NI)0;
								T35_ = (NI)0;
								T35_ = len__ast_3198(colontmp__6);
								colontmp__7 = (NI)(T35_ - ((NI) 1));
								i_7 = ((NI) 0);
								{
									while (1) {
										if (!(i_7 < colontmp__7)) goto LA37;
										i_6 = i_7;
										{
											if (!((*(*colontmp__6)._kind_6.sons->data[i_6]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) || (*(*colontmp__6)._kind_6.sons->data[i_6]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5))) goto LA40_;
											val_2 = ((NI) ((*(*colontmp__6)._kind_6.sons->data[i_6])._kind_1.intVal));
											excl__reorder_264(Result, val_2);
										}
										goto LA38_;
										LA40_: ;
										{
											if (!((*(*colontmp__6)._kind_6.sons->data[i_6]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA43_;
											{
												NI64 i_8;
												NI64 colontmp__8;
												NI64 colontmp__9;
												NI64 res_2;
												i_8 = (NI64)0;
												colontmp__8 = (NI64)0;
												colontmp__9 = (NI64)0;
												colontmp__8 = (*(*(*colontmp__6)._kind_6.sons->data[i_6])._kind_6.sons->data[((NI) 0)])._kind_1.intVal;
												colontmp__9 = (*(*(*colontmp__6)._kind_6.sons->data[i_6])._kind_6.sons->data[((NI) 1)])._kind_1.intVal;
												res_2 = colontmp__8;
												{
													while (1) {
														if (!(res_2 <= colontmp__9)) goto LA47;
														i_8 = res_2;
														val_2 = ((NI) (i_8));
														excl__reorder_264(Result, val_2);
														res_2 += ((NI) 1);
													} LA47: ;
												}
											}
										}
										goto LA38_;
										LA43_: ;
										LA38_: ;
										i_7 += ((NI) 1);
									} LA37: ;
								}
							}
						}
						LA32_: ;
					}
					i_5 += ((NI) 1);
				} LA28: ;
			}
		}
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, caseBranchMatchesExpr__sem_19187)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matched) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__ast_3198(branch);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					if (!((*(*branch)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA7_;
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = overlap__nimsets_40((*branch)._kind_6.sons->data[i], matched);
						if (!T11_) goto LA12_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA12_: ;
				}
				goto LA5_;
				LA7_: ;
				{
					NIM_BOOL T15_;
					T15_ = (NIM_BOOL)0;
					T15_ = exprStructuralEquivalent__trees_56((*branch)._kind_6.sons->data[i], matched, NIM_FALSE);
					if (!T15_) goto LA16_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				goto LA5_;
				LA16_: ;
				LA5_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	result = NIM_FALSE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, collectMissingFields__sem_19324)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsRecList, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx) {
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
		r = NIM_NIL;
		{
			if (!((*fieldsRecList).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA4_;
			r = fieldsRecList;
			{
				NIM_BOOL T8_;
				NIM_BOOL T9_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* assignment;
				T8_ = (NIM_BOOL)0;
				T9_ = (NIM_BOOL)0;
				T9_ = (*constrCtx).needsFullInit;
				if (T9_) goto LA10_;
				T9_ = (((*(*r)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 21))&63U)))!=0);
				LA10_: ;
				T8_ = T9_;
				if (T8_) goto LA11_;
				T8_ = requiresInit__typeallowed_582((*(*r)._kind_4.sym).typ);
				LA11_: ;
				if (!T8_) goto LA12_;
				assignment = locateFieldInInitExpr__sem_19138(c, (*r)._kind_4.sym, (*constrCtx).initExpr);
				{
					NI T18_;
					if (!(assignment == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA16_;
					unsureAsgnRef((void**) (&(*constrCtx).missingFields), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*constrCtx).missingFields), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
					T18_ = (*constrCtx).missingFields->Sup.len++;
					asgnRef((void**) (&(*constrCtx).missingFields->data[T18_]), (*r)._kind_4.sym);
				}
				LA16_: ;
			}
			LA12_: ;
		}
		goto LA2_;
		LA4_: ;
		{
			{
				if (!!(((*fieldsRecList).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138)))) goto LA22_;
				failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_482));
			}
			LA22_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
				field = NIM_NIL;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__ast_3191(fieldsRecList);
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA27;
							i = i_2;
							field = (*fieldsRecList)._kind_6.sons->data[i];
							{
								{
									if (!!(((*field).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA31_;
									goto LA28;
								}
								LA31_: ;
								r = field;
								{
									NIM_BOOL T35_;
									NIM_BOOL T36_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* assignment_2;
									T35_ = (NIM_BOOL)0;
									T36_ = (NIM_BOOL)0;
									T36_ = (*constrCtx).needsFullInit;
									if (T36_) goto LA37_;
									T36_ = (((*(*r)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 21))&63U)))!=0);
									LA37_: ;
									T35_ = T36_;
									if (T35_) goto LA38_;
									T35_ = requiresInit__typeallowed_582((*(*r)._kind_4.sym).typ);
									LA38_: ;
									if (!T35_) goto LA39_;
									assignment_2 = locateFieldInInitExpr__sem_19138(c, (*r)._kind_4.sym, (*constrCtx).initExpr);
									{
										NI T45_;
										if (!(assignment_2 == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA43_;
										unsureAsgnRef((void**) (&(*constrCtx).missingFields), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*constrCtx).missingFields), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
										T45_ = (*constrCtx).missingFields->Sup.len++;
										asgnRef((void**) (&(*constrCtx).missingFields->data[T45_]), (*r)._kind_4.sym);
									}
									LA43_: ;
								}
								LA39_: ;
							} LA28: ;
							i_2 += ((NI) 1);
						} LA27: ;
					}
				}
			}
		}
		LA2_: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pickCaseBranch__sem_19263)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseExpr, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matched) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL endsWithElse;
	NI T1_;
{	result = NIM_NIL;
	T1_ = (NI)0;
	T1_ = len__ast_3198(caseExpr);
	endsWithElse = ((*(*caseExpr)._kind_6.sons->data[(NI)(T1_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__ast_3198(caseExpr);
		colontmp_ = (NI)(T3_ - ((NI) (endsWithElse)));
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				{
					NIM_BOOL T8_;
					T8_ = (NIM_BOOL)0;
					T8_ = caseBranchMatchesExpr__sem_19187((*caseExpr)._kind_6.sons->data[i], matched);
					if (!T8_) goto LA9_;
					result = (*caseExpr)._kind_6.sons->data[i];
					goto BeforeRet_;
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
	{
		NI T15_;
		if (!endsWithElse) goto LA13_;
		T15_ = (NI)0;
		T15_ = len__ast_3198(caseExpr);
		result = (*caseExpr)._kind_6.sons->data[(NI)(T15_ - ((NI) 1))];
		goto BeforeRet_;
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ, semConstructFields__sem_19342)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ result;
	result = (tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ)0;
	result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0);
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
			field = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ status;
						if (!(i_2 < colontmp_)) goto LA5;
						i = i_2;
						field = (*n)._kind_6.sons->data[i];
						status = semConstructFields__sem_19342(c, field, constrCtx, flags);
						mergeInitStatus__sem_19091((&result), status);
						i_2 += ((NI) 1);
					} LA5: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discriminator;
		NI selectedBranch;
		discriminator = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NimStringDesc* argX60gensym5101_;
			if (!!(((*discriminator).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA9_;
			argX60gensym5101_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_476);
			internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym5101_, TM__rF9caJawfOjYTjsgLVUSGFA_476);
		}
		LA9_: ;
		selectedBranch = ((NI) -1);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* innerRecords;
					NI T14_;
					tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ status_2;
					if (!(i_4 < colontmp__2)) goto LA13;
					i_3 = i_4;
					T14_ = (NI)0;
					T14_ = len__ast_3198((*n)._kind_6.sons->data[i_3]);
					innerRecords = (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[(NI)(T14_ - ((NI) 1))];
					status_2 = semConstructFields__sem_19342(c, innerRecords, constrCtx, flags);
					{
						if (!!(((9 &((NU8)1<<((NU)(status_2)&7U)))!=0))) goto LA17_;
						mergeInitStatus__sem_19091((&result), status_2);
						{
							NimStringDesc* prevFields;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym5109_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5109_;
							NI T23_;
							NimStringDesc* currentFields;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym5114_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5114_;
							NI T24_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T25_;
							NimStringDesc* T26_;
							if (!!((selectedBranch == ((NI) -1)))) goto LA21_;
							branchX60gensym5109_ = (*n)._kind_6.sons->data[selectedBranch];
							T23_ = (NI)0;
							T23_ = len__ast_3198(branchX60gensym5109_);
							fieldsX60gensym5109_ = (*branchX60gensym5109_)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))];
							prevFields = fieldsPresentInInitExpr__sem_19314(c, fieldsX60gensym5109_, (*constrCtx).initExpr);
							branchX60gensym5114_ = (*n)._kind_6.sons->data[i_3];
							T24_ = (NI)0;
							T24_ = len__ast_3198(branchX60gensym5114_);
							fieldsX60gensym5114_ = (*branchX60gensym5114_)._kind_6.sons->data[(NI)(T24_ - ((NI) 1))];
							currentFields = fieldsPresentInInitExpr__sem_19314(c, fieldsX60gensym5114_, (*constrCtx).initExpr);
							nimZeroMem((void*)T25_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T25_[0] = copyString(prevFields);
							T25_[1] = copyString(currentFields);
							T26_ = NIM_NIL;
							T26_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_483), T25_, 2);
							liMessage__msgs_1118((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_484, NIM_FALSE);
							result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 4);
						}
						goto LA19_;
						LA21_: ;
						{
							selectedBranch = i_3;
						}
						LA19_: ;
					}
					LA17_: ;
					i_4 += ((NI) 1);
				} LA13: ;
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchNode;
			tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags_2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discriminatorVal;
			if (!!((selectedBranch == ((NI) -1)))) goto LA30_;
			branchNode = (*n)._kind_6.sons->data[selectedBranch];
			flags_2 = 96;
			discriminatorVal = semConstrField__sem_19159(c, flags_2, (*discriminator)._kind_4.sym, (*constrCtx).initExpr);
			{
				if (!!((discriminatorVal == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA34_;
				discriminatorVal = skipHidden__types_3613(discriminatorVal);
				{
					NIM_BOOL T38_;
					NIM_BOOL T40_;
					NIM_BOOL T41_;
					NIM_BOOL T42_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T44_;
					tyObject_Int128__9a9axPfb75jdWY25AamJewkA T46_;
					T38_ = (NIM_BOOL)0;
					T38_ = !(((*discriminatorVal).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*discriminatorVal).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22)));
					if (!(T38_)) goto LA39_;
					T40_ = (NIM_BOOL)0;
					T41_ = (NIM_BOOL)0;
					T42_ = (NIM_BOOL)0;
					T42_ = isOrdinalType__types_299((*discriminatorVal).typ, NIM_TRUE);
					T41_ = !(T42_);
					if (T41_) goto LA43_;
					T44_ = lengthOrd__types_1661((*(*c).graph).config, (*discriminatorVal).typ);
					T41_ = lt___int495056_738(IL64(65536), T44_);
					LA43_: ;
					T40_ = T41_;
					if (T40_) goto LA45_;
					T46_ = lengthOrd__types_1661((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					T40_ = lt___int495056_738(IL64(65536), T46_);
					LA45_: ;
					T38_ = T40_;
					LA39_: ;
					if (!T38_) goto LA47_;
					liMessage__msgs_1118((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_488), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_489, NIM_FALSE);
				}
				LA47_: ;
			}
			LA34_: ;
			{
				if (!(discriminatorVal == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA51_;
				{
					NimStringDesc* fieldsX60gensym5134_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym5135_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5135_;
					NI T57_;
					tyArray__Re75IspeoxXy2oCZHwcRrA T58_;
					NimStringDesc* T59_;
					if (!((*c).inUncheckedAssignSection == ((NI) 0))) goto LA55_;
					branchX60gensym5135_ = (*n)._kind_6.sons->data[selectedBranch];
					T57_ = (NI)0;
					T57_ = len__ast_3198(branchX60gensym5135_);
					fieldsX60gensym5135_ = (*branchX60gensym5135_)._kind_6.sons->data[(NI)(T57_ - ((NI) 1))];
					fieldsX60gensym5134_ = fieldsPresentInInitExpr__sem_19314(c, fieldsX60gensym5135_, (*constrCtx).initExpr);
					nimZeroMem((void*)T58_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T58_[0] = copyString(fieldsX60gensym5134_);
					T58_[1] = copyString((*(*(*discriminator)._kind_4.sym).name).s);
					T59_ = NIM_NIL;
					T59_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_490), T58_, 2);
					liMessage__msgs_1118((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T59_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_491, NIM_FALSE);
				}
				LA55_: ;
				mergeInitStatus__sem_19091((&result), ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3));
			}
			goto LA49_;
			LA51_: ;
			{
				tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw T63_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ctorCase;
				NI ctorIdx;
				if (!((*discriminatorVal).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA61_;
				nimZeroMem((void*)(&T63_), sizeof(tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw));
				findUsefulCaseContext__sem_19238(c, discriminatorVal, (&T63_));
				ctorCase = NIM_NIL;
				ctorCase = T63_.Field0;
				ctorIdx = (NI)0;
				ctorIdx = T63_.Field1;
				{
					if (!(ctorCase == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA66_;
					{
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA rangeVals;
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA recBranchVals;
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA diff;
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T72_;
						if (!((*(*discriminatorVal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20))) goto LA70_;
						nimZeroMem((void*)(&rangeVals), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						getIntSetOfType__sem_3930(c, (*discriminatorVal).typ, (&rangeVals));
						nimZeroMem((void*)(&recBranchVals), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						branchVals__sem_19206(c, n, selectedBranch, NIM_FALSE, (&recBranchVals));
						nimZeroMem((void*)(&diff), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						nimZeroMem((void*)(&T72_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						minus___sem_4040((&rangeVals), (&recBranchVals), (&T72_));
						nimCopyMem((void*)(&diff), (NIM_CONST void*)(&T72_), sizeof(diff));
						{
							NI T75_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T78_;
							NimStringDesc* T79_;
							T75_ = (NI)0;
							T75_ = len__nilcheck_1772((&diff));
							if (!!((T75_ == ((NI) 0)))) goto LA76_;
							nimZeroMem((void*)T78_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T78_[0] = dollar___systemZdollars_3(selectedBranch);
							T78_[1] = renderAsType__sem_3988((&diff), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
							T79_ = NIM_NIL;
							T79_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_492), T78_, 2);
							liMessage__msgs_1118((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T79_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_493, NIM_FALSE);
						}
						LA76_: ;
					}
					goto LA68_;
					LA70_: ;
					{
						{
							NimStringDesc* fieldsX60gensym5149_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym5150_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5150_;
							NI T85_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T86_;
							NimStringDesc* T87_;
							if (!((*c).inUncheckedAssignSection == ((NI) 0))) goto LA83_;
							branchX60gensym5150_ = (*n)._kind_6.sons->data[selectedBranch];
							T85_ = (NI)0;
							T85_ = len__ast_3198(branchX60gensym5150_);
							fieldsX60gensym5150_ = (*branchX60gensym5150_)._kind_6.sons->data[(NI)(T85_ - ((NI) 1))];
							fieldsX60gensym5149_ = fieldsPresentInInitExpr__sem_19314(c, fieldsX60gensym5150_, (*constrCtx).initExpr);
							nimZeroMem((void*)T86_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T86_[0] = copyString(fieldsX60gensym5149_);
							T86_[1] = copyString((*(*(*discriminator)._kind_4.sym).name).s);
							T87_ = NIM_NIL;
							T87_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_490), T86_, 2);
							liMessage__msgs_1118((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T87_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_491, NIM_FALSE);
						}
						LA83_: ;
						mergeInitStatus__sem_19091((&result), ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3));
					}
					LA68_: ;
				}
				goto LA64_;
				LA66_: ;
				{
					NIM_BOOL T89_;
					T89_ = (NIM_BOOL)0;
					T89_ = !(((520 &((NU32)1<<((NU)((*(*discriminatorVal)._kind_4.sym).kind)&31U)))!=0));
					if (T89_) goto LA90_;
					T89_ = ((*(*(*discriminatorVal)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
					LA90_: ;
					if (!T89_) goto LA91_;
					{
						if (!((*c).inUncheckedAssignSection == ((NI) 0))) goto LA95_;
						liMessage__msgs_1118((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_494), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_495, NIM_FALSE);
					}
					LA95_: ;
				}
				goto LA64_;
				LA91_: ;
				{
					if (!((*(*ctorCase)._kind_6.sons->data[ctorIdx]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86))) goto LA98_;
					liMessage__msgs_1118((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_496), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_497, NIM_FALSE);
				}
				goto LA64_;
				LA98_: ;
				{
					tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA ctorBranchVals;
					tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA recBranchVals_2;
					tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA branchValsDiff;
					nimZeroMem((void*)(&ctorBranchVals), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
					branchVals__sem_19206(c, ctorCase, ctorIdx, NIM_TRUE, (&ctorBranchVals));
					nimZeroMem((void*)(&recBranchVals_2), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
					branchVals__sem_19206(c, n, selectedBranch, NIM_FALSE, (&recBranchVals_2));
					nimZeroMem((void*)(&branchValsDiff), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
					minus___sem_4040((&ctorBranchVals), (&recBranchVals_2), (&branchValsDiff));
					{
						NI T103_;
						tyArray__Re75IspeoxXy2oCZHwcRrA T106_;
						NimStringDesc* T107_;
						T103_ = (NI)0;
						T103_ = len__nilcheck_1772((&branchValsDiff));
						if (!!((T103_ == ((NI) 0)))) goto LA104_;
						nimZeroMem((void*)T106_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
						T106_[0] = dollar___systemZdollars_3(selectedBranch);
						T106_[1] = renderAsType__sem_3988((&branchValsDiff), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
						T107_ = NIM_NIL;
						T107_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_492), T106_, 2);
						liMessage__msgs_1118((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T107_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_498, NIM_FALSE);
					}
					LA104_: ;
				}
				LA64_: ;
			}
			goto LA49_;
			LA61_: ;
			{
				NI failedBranch;
				failedBranch = ((NI) -1);
				{
					if (!!(((*branchNode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88)))) goto LA111_;
					{
						NIM_BOOL T115_;
						T115_ = (NIM_BOOL)0;
						T115_ = caseBranchMatchesExpr__sem_19187(branchNode, discriminatorVal);
						if (!!(T115_)) goto LA116_;
						failedBranch = selectedBranch;
					}
					LA116_: ;
				}
				goto LA109_;
				LA111_: ;
				{
					{
						NI i_5;
						NI colontmp__3;
						NI T120_;
						NI i_6;
						i_5 = (NI)0;
						colontmp__3 = (NI)0;
						T120_ = (NI)0;
						T120_ = len__ast_3198(n);
						colontmp__3 = (NI)(T120_ - ((NI) 1));
						i_6 = ((NI) 1);
						{
							while (1) {
								if (!(i_6 < colontmp__3)) goto LA122;
								i_5 = i_6;
								{
									NIM_BOOL T125_;
									T125_ = (NIM_BOOL)0;
									T125_ = caseBranchMatchesExpr__sem_19187((*n)._kind_6.sons->data[i_5], discriminatorVal);
									if (!T125_) goto LA126_;
									failedBranch = i_5;
									goto LA119;
								}
								LA126_: ;
								i_6 += ((NI) 1);
							} LA122: ;
						}
					} LA119: ;
				}
				LA109_: ;
				{
					if (!!((failedBranch == ((NI) -1)))) goto LA130_;
					{
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA rangeVals_2;
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA recBranchVals_3;
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA diff_2;
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T136_;
						if (!((*(*discriminatorVal).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20))) goto LA134_;
						nimZeroMem((void*)(&rangeVals_2), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						getIntSetOfType__sem_3930(c, (*discriminatorVal).typ, (&rangeVals_2));
						nimZeroMem((void*)(&recBranchVals_3), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						branchVals__sem_19206(c, n, selectedBranch, NIM_FALSE, (&recBranchVals_3));
						nimZeroMem((void*)(&diff_2), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						nimZeroMem((void*)(&T136_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						minus___sem_4040((&rangeVals_2), (&recBranchVals_3), (&T136_));
						nimCopyMem((void*)(&diff_2), (NIM_CONST void*)(&T136_), sizeof(diff_2));
						{
							NI T139_;
							tyArray__Re75IspeoxXy2oCZHwcRrA T142_;
							NimStringDesc* T143_;
							T139_ = (NI)0;
							T139_ = len__nilcheck_1772((&diff_2));
							if (!!((T139_ == ((NI) 0)))) goto LA140_;
							nimZeroMem((void*)T142_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
							T142_[0] = dollar___systemZdollars_3(selectedBranch);
							T142_[1] = renderAsType__sem_3988((&diff_2), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
							T143_ = NIM_NIL;
							T143_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_492), T142_, 2);
							liMessage__msgs_1118((*(*c).graph).config, (*discriminatorVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T143_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_499, NIM_FALSE);
						}
						LA140_: ;
					}
					goto LA132_;
					LA134_: ;
					{
						{
							NimStringDesc* fieldsX60gensym5182_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym5183_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5183_;
							NI T149_;
							tyArray__24KAM9afIUgUaqBaEBB6r9bg T150_;
							NimStringDesc* T151_;
							if (!((*c).inUncheckedAssignSection == ((NI) 0))) goto LA147_;
							branchX60gensym5183_ = (*n)._kind_6.sons->data[failedBranch];
							T149_ = (NI)0;
							T149_ = len__ast_3198(branchX60gensym5183_);
							fieldsX60gensym5183_ = (*branchX60gensym5183_)._kind_6.sons->data[(NI)(T149_ - ((NI) 1))];
							fieldsX60gensym5182_ = fieldsPresentInInitExpr__sem_19314(c, fieldsX60gensym5183_, (*constrCtx).initExpr);
							nimZeroMem((void*)T150_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
							T150_[0] = copyString((*(*(*discriminator)._kind_4.sym).name).s);
							T150_[1] = renderTree__renderer_46(discriminatorVal, 0);
							T150_[2] = copyString(fieldsX60gensym5182_);
							T151_ = NIM_NIL;
							T151_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_500), T150_, 3);
							liMessage__msgs_1118((*(*c).graph).config, (*(*constrCtx).initExpr).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T151_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_501, NIM_FALSE);
						}
						LA147_: ;
					}
					LA132_: ;
				}
				LA130_: ;
			}
			LA49_: ;
			{
				if (!(result == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2))) goto LA154_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5191_;
					NI T160_;
					if (!!((branchNode == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA158_;
					T160_ = (NI)0;
					T160_ = len__ast_3198(branchNode);
					fieldsX60gensym5191_ = (*branchNode)._kind_6.sons->data[(NI)(T160_ - ((NI) 1))];
					collectMissingFields__sem_19324(c, fieldsX60gensym5191_, constrCtx);
				}
				LA158_: ;
			}
			LA154_: ;
		}
		goto LA28_;
		LA30_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* discriminatorVal_2;
			result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3);
			discriminatorVal_2 = semConstrField__sem_19159(c, (flags | 32), (*discriminator)._kind_4.sym, (*constrCtx).initExpr);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* defaultValue;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matchedBranch;
				if (!(discriminatorVal_2 == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA164_;
				defaultValue = newIntLit__lowerings_701((*c).graph, (*(*constrCtx).initExpr).info, IL64(0));
				matchedBranch = pickCaseBranch__sem_19263(n, defaultValue);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5196_;
					NI T170_;
					if (!!((matchedBranch == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA168_;
					T170_ = (NI)0;
					T170_ = len__ast_3198(matchedBranch);
					fieldsX60gensym5196_ = (*matchedBranch)._kind_6.sons->data[(NI)(T170_ - ((NI) 1))];
					collectMissingFields__sem_19324(c, fieldsX60gensym5196_, constrCtx);
				}
				LA168_: ;
			}
			goto LA162_;
			LA164_: ;
			{
				result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 2);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* matchedBranch_2;
					if (!((*discriminatorVal_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA174_;
					matchedBranch_2 = pickCaseBranch__sem_19263(n, discriminatorVal_2);
					{
						if (!!((matchedBranch_2 == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA178_;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5202_;
							NI T184_;
							if (!!((matchedBranch_2 == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA182_;
							T184_ = (NI)0;
							T184_ = len__ast_3198(matchedBranch_2);
							fieldsX60gensym5202_ = (*matchedBranch_2)._kind_6.sons->data[(NI)(T184_ - ((NI) 1))];
							collectMissingFields__sem_19324(c, fieldsX60gensym5202_, constrCtx);
						}
						LA182_: ;
					}
					LA178_: ;
				}
				goto LA172_;
				LA174_: ;
				{
					{
						NI i_7;
						NI colontmp__4;
						NI i_8;
						i_7 = (NI)0;
						colontmp__4 = (NI)0;
						colontmp__4 = len__ast_3198(n);
						i_8 = ((NI) 1);
						{
							while (1) {
								if (!(i_8 < colontmp__4)) goto LA188;
								i_7 = i_8;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fieldsX60gensym5208_;
									NI T193_;
									if (!!(((*n)._kind_6.sons->data[i_7] == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA191_;
									T193_ = (NI)0;
									T193_ = len__ast_3198((*n)._kind_6.sons->data[i_7]);
									fieldsX60gensym5208_ = (*(*n)._kind_6.sons->data[i_7])._kind_6.sons->data[(NI)(T193_ - ((NI) 1))];
									collectMissingFields__sem_19324(c, fieldsX60gensym5208_, constrCtx);
								}
								LA191_: ;
								i_8 += ((NI) 1);
							} LA188: ;
						}
					}
				}
				LA172_: ;
			}
			LA162_: ;
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
		field_2 = (*n)._kind_4.sym;
		e = semConstrField__sem_19159(c, flags, field_2, (*constrCtx).initExpr);
		{
			if (!!((e == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA197_;
			result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1);
		}
		goto LA195_;
		LA197_: ;
		{
			result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 3);
		}
		LA195_: ;
	}
	break;
	default:
	{
		{
			NimStringDesc* argX60gensym5215_;
			if (!NIM_TRUE) goto LA203_;
			argX60gensym5215_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_502);
			internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym5215_, TM__rF9caJawfOjYTjsgLVUSGFA_502);
		}
		LA203_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ, semConstructTypeAux__sem_19647)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw* constrCtx, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
{	result = (tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ)0;
	result = ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 0);
	t = (*constrCtx).typ;
	{
		while (1) {
			tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ status;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
			NIM_BOOL T15_;
			status = semConstructFields__sem_19342(c, (*t).n, constrCtx, flags);
			mergeInitStatus__sem_19091((&result), status);
			{
				if (!((13 &((NU8)1<<((NU)(status)&7U)))!=0)) goto LA5_;
				collectMissingFields__sem_19324(c, (*t).n, constrCtx);
			}
			LA5_: ;
			base = (*t).sons->data[((NI) 0)];
			{
				if (!(base == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA9_;
				goto LA1;
			}
			LA9_: ;
			t = skipTypes__ast_3735(base, TM__rF9caJawfOjYTjsgLVUSGFA_53);
			{
				if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA13_;
				goto BeforeRet_;
			}
			LA13_: ;
			T15_ = (NIM_BOOL)0;
			T15_ = (*constrCtx).needsFullInit;
			if (T15_) goto LA16_;
			T15_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0);
			LA16_: ;
			(*constrCtx).needsFullInit = T15_;
		}
	} LA1: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, computeRequiresInit__sem_135)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw constrCtx;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ initResult;
	NI T2_;
	result = (NIM_BOOL)0;
	nimZeroMem((void*)(&constrCtx), sizeof(tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw));
	T1_ = NIM_NIL;
	T1_ = newNode__ast_3332(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38));
	initConstrContext__sem_19672(t, T1_, (&constrCtx));
	initResult = semConstructTypeAux__sem_19647(c, (&constrCtx), 0);
	T2_ = (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0);
	result = (((NI) 0) < T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semObjectNode__sem_4464)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA check;
	NI pos;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* realBase;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = newConstraint__sem_2929(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		goto BeforeRet_;
	}
	LA4_: ;
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	initIntSet__pureZcollectionsZintsets_238((&check));
	pos = ((NI) 0);
	base = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
	realBase = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
	checkSonsLen__semdata_1077(n, ((NI) 3), (*(*c).graph).config);
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA8_;
		realBase = semTypeNode__sem_80(c, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		base = skipTypesOrNil__ast_4185(realBase, TM__rF9caJawfOjYTjsgLVUSGFA_53);
		{
			if (!(base == 0)) goto LA12_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_54), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_55, NIM_FALSE);
		}
		goto LA10_;
		LA12_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* concreteBase;
			concreteBase = skipGenericInvocation__sem_4428(base);
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = ((*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9));
				if (!(T17_)) goto LA18_;
				T17_ = !((((*concreteBase).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0));
				LA18_: ;
				if (!T17_) goto LA19_;
				{
					if (!((*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA23_;
					{
						NIM_BOOL T27_;
						NIM_BOOL T28_;
						T27_ = (NIM_BOOL)0;
						T28_ = (NIM_BOOL)0;
						T28_ = !(((*concreteBase).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
						if (!(T28_)) goto LA29_;
						T28_ = ((*(*concreteBase).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 268));
						LA29_: ;
						T27_ = T28_;
						if (!(T27_)) goto LA30_;
						T27_ = !((((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0));
						LA30_: ;
						if (!T27_) goto LA31_;
						liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 38), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_56, NIM_FALSE);
					}
					LA31_: ;
					addInheritedFields__sem_4443(c, (&check), (&pos), concreteBase);
				}
				LA23_: ;
			}
			goto LA15_;
			LA19_: ;
			{
				{
					NimStringDesc* T38_;
					NimStringDesc* T39_;
					if (!!(((*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)))) goto LA36_;
					T38_ = NIM_NIL;
					T39_ = NIM_NIL;
					T39_ = typeToString__types_50(realBase, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					T38_ = rawNewString((T39_ ? T39_->Sup.len : 0) + 120);
appendString(T38_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_63));
appendString(T38_, T39_);
appendString(T38_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_64));
					liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T38_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_65, NIM_FALSE);
				}
				LA36_: ;
				base = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
				realBase = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
			}
			LA15_: ;
		}
		LA10_: ;
	}
	LA8_: ;
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133)))) goto LA42_;
		internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_66), TM__rF9caJawfOjYTjsgLVUSGFA_67);
	}
	LA42_: ;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17), prev, c);
	rawAddSon__ast_4288(result, realBase, NIM_TRUE);
	{
		NIM_BOOL T46_;
		T46_ = (NIM_BOOL)0;
		T46_ = (realBase == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		if (!(T46_)) goto LA47_;
		T46_ = ((flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 3))&63U)))!=0);
		LA47_: ;
		if (!T46_) goto LA48_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 3)) & 63);
	}
	LA48_: ;
	{
		if (!((flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 39))&63U)))!=0)) goto LA52_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 39)) & 63);
	}
	LA52_: ;
	{
		if (!((*result).n == 0)) goto LA56_;
		asgnRef((void**) (&(*result).n), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info));
	}
	goto LA54_;
	LA56_: ;
	{
		addInheritedFields__sem_4443(c, (&check), (&pos), result);
	}
	LA54_: ;
	semRecordNodeAux__sem_3922(c, (*n)._kind_6.sons->data[((NI) 2)], (&check), (&pos), (*result).n, result, NIM_FALSE);
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T63_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T64_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA61_;
		T63_ = NIM_NIL;
		T63_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_474));
		T64_ = NIM_NIL;
		T64_ = newIdentNode__ast_3712(T63_, (*n).info);
		s = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T64_, c);
		asgnRef((void**) (&(*s).typ), result);
		pragma__pragmas_123(c, s, (*n)._kind_6.sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_475, NIM_FALSE);
	}
	LA61_: ;
	{
		NIM_BOOL T67_;
		T67_ = (NIM_BOOL)0;
		T67_ = (base == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		if (!(T67_)) goto LA68_;
		T67_ = !((((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 3))&63U)))!=0));
		LA68_: ;
		if (!T67_) goto LA69_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2)) & 63);
	}
	LA69_: ;
	{
		NIM_BOOL T73_;
		T73_ = (NIM_BOOL)0;
		T73_ = ((*c).inGenericContext == ((NI) 0));
		if (!(T73_)) goto LA74_;
		T73_ = computeRequiresInit__sem_135(c, result);
		LA74_: ;
		if (!T73_) goto LA75_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
	}
	LA75_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semAnyRef__sem_4568)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ < ((NI) 1))) goto LA4_;
		result = newConstraint__sem_2929(c, kind);
	}
	goto LA1_;
	LA4_: ;
	{
		NI isCall;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		NIM_BOOL isNilable;
		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag wrapperKind;
		isCall = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA9_;
			n_2 = (*n)._kind_6.sons->data[((NI) 0)];
		}
		goto LA7_;
		LA9_: ;
		{
			n_2 = n;
		}
		LA7_: ;
		checkMinSonsLen__semdata_1084(n_2, ((NI) 1), (*(*c).graph).config);
		body = lastSon__ast_4832(n_2);
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = !((prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T14_)) goto LA15_;
			T14_ = ((*body).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133));
			LA15_: ;
			if (!T14_) goto LA16_;
			t = semObjectNode__sem_4464(c, body, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL), (*prev).flags);
		}
		goto LA12_;
		LA16_: ;
		{
			t = semTypeNode__sem_80(c, body, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		}
		LA12_: ;
		{
			NIM_BOOL T21_;
			T21_ = (NIM_BOOL)0;
			T21_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			if (!(T21_)) goto LA22_;
			T21_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0));
			LA22_: ;
			if (!T21_) goto LA23_;
			t = base__types_63(t);
		}
		LA23_: ;
		{
			NimStringDesc* T29_;
			NimStringDesc* T30_;
			if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA27_;
			T29_ = NIM_NIL;
			T29_ = toHumanStr__ast_5188(kind);
			T30_ = NIM_NIL;
			T30_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_503), T29_);
			liMessage__msgs_1118((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T30_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_504, NIM_FALSE);
		}
		LA27_: ;
		result = newOrPrevType__sem_2916(kind, prev, c);
		isNilable = NIM_FALSE;
		wrapperKind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
		{
			NI i;
			NI colontmp_;
			NI T32_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T32_ = (NI)0;
			T32_ = len__ast_3198(n_2);
			colontmp_ = (NI)(T32_ - ((NI) 1));
			i_2 = isCall;
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ni;
					if (!(i_2 < colontmp_)) goto LA34;
					i = i_2;
					ni = (*n_2)._kind_6.sons->data[i];
					{
						if (!((*ni).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA37_;
						isNilable = NIM_TRUE;
					}
					goto LA35_;
					LA37_: ;
					{
						tyObject_TType__facALICuu8zUj0hjvbTLFg* region;
						region = semTypeNode__sem_80(c, ni, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
						{
							if (!((*region).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45) || (*region).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46))) goto LA42_;
							wrapperKind = (*region).kind;
						}
						goto LA40_;
						LA42_: ;
						{
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T45_;
							T45_ = NIM_NIL;
							T45_ = skipTypes__ast_3735(region, TM__rF9caJawfOjYTjsgLVUSGFA_137);
							if (!!(((*T45_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50) || (*T45_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA46_;
							liMessage__msgs_1118((*(*c).graph).config, (*(*n_2)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_505), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_506, NIM_FALSE);
							addSonSkipIntLit__magicsys_136(result, region, (*c).Sup.idgen);
						}
						goto LA40_;
						LA46_: ;
						{
							liMessage__msgs_1118((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 21), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_507), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_508, NIM_FALSE);
							addSonSkipIntLit__magicsys_136(result, region, (*c).Sup.idgen);
						}
						LA40_: ;
					}
					LA35_: ;
					i_2 += ((NI) 1);
				} LA34: ;
			}
		}
		addSonSkipIntLit__magicsys_136(result, t, (*c).Sup.idgen);
		{
			if (!(((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 16))&63U)))!=0)) goto LA51_;
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T55_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T58_;
				T55_ = NIM_NIL;
				T55_ = lastSon__ast_3743(result);
				if (!((*T55_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA56_;
				T58_ = NIM_NIL;
				T58_ = lastSon__ast_3743(result);
				(*T58_).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 16)) & 63);
			}
			LA56_: ;
		}
		LA51_: ;
		switch (wrapperKind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
		{
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
				if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA62_;
				t_2 = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45), c);
				(*t_2).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63);
				rawAddSonNoPropagationOfTypeFlags__ast_4299(t_2, result);
				result = t_2;
			}
			LA62_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* t_3;
			t_3 = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46), c);
			rawAddSonNoPropagationOfTypeFlags__ast_4299(t_3, result);
			result = t_3;
		}
		break;
		default:
		{
		}
		break;
		}
		{
			NIM_BOOL T68_;
			T68_ = (NIM_BOOL)0;
			T68_ = ((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			if (!(T68_)) goto LA69_;
			T68_ = ((48 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0);
			LA69_: ;
			if (!T68_) goto LA70_;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
		}
		LA70_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeOf2__sem_5878)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	NI64 m;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t;
	tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ T12_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	m = IL64(1);
	{
		NI T4_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* mode;
		T4_ = (NI)0;
		T4_ = len__ast_3198(n);
		if (!(T4_ == ((NI) 3))) goto LA5_;
		mode = semConstExpr__sem_611(c, (*n)._kind_6.sons->data[((NI) 2)]);
		{
			if (!!(((*mode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA9_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_244), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_510, NIM_FALSE);
		}
		goto LA7_;
		LA9_: ;
		{
			m = (*mode)._kind_1.intVal;
		}
		LA7_: ;
	}
	LA5_: ;
	{
		if (!(m == IL64(1))) goto LA15_;
		T12_ = 8;
	}
	goto LA13_;
	LA15_: ;
	{
		T12_ = 0;
	}
	LA13_: ;
	t = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], T12_);
	closeScope__lookups_101(c);
	fixupTypeOf__sem_5584(c, prev, t);
	result = (*t).typ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, commonType__sem_237)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TType__facALICuu8zUj0hjvbTLFg* y) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* a;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* b;
{	result = NIM_NIL;
	{
		if (!(x == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
		result = x;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(y == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA7_;
		result = y;
		goto BeforeRet_;
	}
	LA7_: ;
	a = skipTypes__ast_3735(x, TM__rF9caJawfOjYTjsgLVUSGFA_137);
	b = skipTypes__ast_3735(y, TM__rF9caJawfOjYTjsgLVUSGFA_137);
	result = x;
	{
		if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5))) goto LA11_;
		result = y;
	}
	goto LA9_;
	LA11_: ;
	{
		if (!((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6) || (*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5))) goto LA14_;
		result = x;
	}
	goto LA9_;
	LA14_: ;
	{
		if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7))) goto LA17_;
		result = a;
	}
	goto LA9_;
	LA17_: ;
	{
		if (!((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7))) goto LA20_;
		result = b;
	}
	goto LA9_;
	LA20_: ;
	{
		if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA23_;
		{
			NI T27_;
			T27_ = (NI)0;
			T27_ = len__ast_4002(a);
			if (!(T27_ == ((NI) 0))) goto LA28_;
			result = a;
		}
		goto LA25_;
		LA28_: ;
		{
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T31_;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T32_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T33_;
			T31_ = nextTypeId__ast_3151((*c).Sup.idgen);
			result = newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), T31_, (*a).owner);
			T32_ = nextTypeId__ast_3151((*c).Sup.idgen);
			T33_ = NIM_NIL;
			T33_ = newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), T32_, (*a).owner);
			rawAddSon__ast_4288(result, T33_, NIM_TRUE);
		}
		LA25_: ;
	}
	goto LA9_;
	LA23_: ;
	{
		NIM_BOOL T35_;
		NI idx;
		T35_ = (NIM_BOOL)0;
		T35_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19) || (*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
		if (!(T35_)) goto LA36_;
		T35_ = ((*a).kind == (*b).kind);
		LA36_: ;
		if (!T35_) goto LA37_;
		idx = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
		{
			if (!((*(*a).sons->data[idx]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3))) goto LA41_;
			result = y;
			goto BeforeRet_;
		}
		LA41_: ;
	}
	goto LA9_;
	LA37_: ;
	{
		NIM_BOOL T44_;
		NIM_BOOL T45_;
		NI T48_;
		NI T49_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* nt;
		T44_ = (NIM_BOOL)0;
		T45_ = (NIM_BOOL)0;
		T45_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		if (!(T45_)) goto LA46_;
		T45_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA46_: ;
		T44_ = T45_;
		if (!(T44_)) goto LA47_;
		T48_ = (NI)0;
		T48_ = len__ast_4002(a);
		T49_ = (NI)0;
		T49_ = len__ast_4002(b);
		T44_ = (T48_ == T49_);
		LA47_: ;
		if (!T44_) goto LA50_;
		nt = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_4002(a);
			i_2 = ((NI) 0);
			{
				while (1) {
					NIM_BOOL aEmpty;
					NIM_BOOL bEmpty;
					if (!(i_2 < colontmp_)) goto LA54;
					i = i_2;
					aEmpty = isEmptyContainer__types_3626((*a).sons->data[i]);
					bEmpty = isEmptyContainer__types_3626((*b).sons->data[i]);
					{
						if (!!((aEmpty == bEmpty))) goto LA57_;
						{
							tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T63_;
							if (!(nt == 0)) goto LA61_;
							T63_ = nextTypeId__ast_3151((*c).Sup.idgen);
							nt = copyType__ast_4046(a, T63_, (*a).owner);
							copyTypeProps__modulegraphs_8872((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), nt, a);
						}
						LA61_: ;
						{
							if (!aEmpty) goto LA66_;
							asgnRef((void**) (&(*nt).sons->data[i]), (*b).sons->data[i]);
						}
						goto LA64_;
						LA66_: ;
						{
							asgnRef((void**) (&(*nt).sons->data[i]), (*a).sons->data[i]);
						}
						LA64_: ;
					}
					LA57_: ;
					i_2 += ((NI) 1);
				} LA54: ;
			}
		}
		{
			if (!!((nt == 0))) goto LA71_;
			result = nt;
		}
		LA71_: ;
	}
	goto LA9_;
	LA50_: ;
	{
		NIM_BOOL T74_;
		T74_ = (NIM_BOOL)0;
		T74_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20));
		if (!(T74_)) goto LA75_;
		T74_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20));
		LA75_: ;
		if (!T74_) goto LA76_;
		{
			NIM_BOOL T80_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T83_;
			T80_ = (NIM_BOOL)0;
			T80_ = sameType__types_1824(a, b, 0);
			if (!!(T80_)) goto LA81_;
			T83_ = NIM_NIL;
			T83_ = skipTypes__ast_3735(a, TM__rF9caJawfOjYTjsgLVUSGFA_31);
			result = skipIntLit__magicsys_124(T83_, (*c).Sup.idgen);
		}
		LA81_: ;
	}
	goto LA9_;
	LA76_: ;
	{
		NIM_BOOL T85_;
		T85_ = (NIM_BOOL)0;
		T85_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T85_)) goto LA86_;
		T85_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA86_: ;
		if (!T85_) goto LA87_;
		{
			NIM_BOOL T91_;
			T91_ = (NIM_BOOL)0;
			T91_ = ((*a).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
			if (!(T91_)) goto LA92_;
			T91_ = !(((*b).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)));
			LA92_: ;
			if (!T91_) goto LA93_;
			result = x;
		}
		goto LA89_;
		LA93_: ;
		{
			NIM_BOOL T96_;
			tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ T97_;
			T96_ = (NIM_BOOL)0;
			T97_ = (tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ)0;
			T97_ = compatibleEffects__types_3425(a, b);
			T96_ = !((T97_ == ((tyEnum_EffectsCompat__xpkKZ2yw9a7eyibhzepiEFQ) 0)));
			if (T96_) goto LA98_;
			T96_ = (((((*b).flags & 130) & ~ ((*a).flags & 130))==0)&&(((*b).flags & 130) != ((*a).flags & 130)));
			LA98_: ;
			if (!T96_) goto LA99_;
			result = y;
		}
		goto LA89_;
		LA99_: ;
		LA89_: ;
	}
	goto LA9_;
	LA87_: ;
	{
		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag k;
		k = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T110_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T111_;
			if (!((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA104_;
			k = (*a).kind;
			{
				if (!!(((*b).kind == (*a).kind))) goto LA108_;
				result = x;
				goto BeforeRet_;
			}
			LA108_: ;
			T110_ = NIM_NIL;
			T110_ = lastSon__ast_3743(a);
			a = skipTypes__ast_3735(T110_, TM__rF9caJawfOjYTjsgLVUSGFA_320);
			T111_ = NIM_NIL;
			T111_ = lastSon__ast_3743(b);
			b = skipTypes__ast_3735(T111_, TM__rF9caJawfOjYTjsgLVUSGFA_320);
		}
		LA104_: ;
		{
			NIM_BOOL T114_;
			T114_ = (NIM_BOOL)0;
			T114_ = ((*a).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
			if (!(T114_)) goto LA115_;
			T114_ = ((*b).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
			LA115_: ;
			if (!T114_) goto LA116_;
			result = commonSuperclass__types_2747(a, b);
			{
				NIM_BOOL T120_;
				T120_ = (NIM_BOOL)0;
				T120_ = (result == 0);
				if (T120_) goto LA121_;
				T120_ = (result == a);
				LA121_: ;
				if (!T120_) goto LA122_;
				result = x;
				goto BeforeRet_;
			}
			LA122_: ;
			{
				if (!(result == b)) goto LA126_;
				result = y;
				goto BeforeRet_;
			}
			LA126_: ;
			{
				NIM_BOOL T130_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* r;
				tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T134_;
				T130_ = (NIM_BOOL)0;
				T130_ = !((k == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
				if (!(T130_)) goto LA131_;
				T130_ = !(((*x).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11)));
				LA131_: ;
				if (!T130_) goto LA132_;
				r = result;
				T134_ = nextTypeId__ast_3151((*c).Sup.idgen);
				result = newType__ast_3896(k, T134_, (*r).owner);
				addSonSkipIntLit__magicsys_136(result, r, (*c).Sup.idgen);
			}
			LA132_: ;
		}
		LA116_: ;
	}
	LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semWhen__sem_515)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL semCheck) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL whenNimvm;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
{	result = NIM_NIL;
	result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	whenNimvm = NIM_FALSE;
	T1_ = NIM_NIL;
	T1_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*) newObj((&NTIptype__qt2Wh0elFEz5fH0l7yusLw_), sizeof(tyObject_TType__facALICuu8zUj0hjvbTLFg));
	(*T1_).Sup.Sup.m_type = (&NTIttype__facALICuu8zUj0hjvbTLFg_);
	(*T1_).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6);
	typ = T1_;
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NI T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exprNode;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = (NI)0;
		T6_ = len__ast_3198(n);
		T5_ = (T6_ == ((NI) 2));
		if (!(T5_)) goto LA7_;
		T5_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86));
		LA7_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA8_;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88));
		LA8_: ;
		if (!T4_) goto LA9_;
		exprNode = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T15_;
			if (!((*exprNode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA13_;
			T15_ = NIM_NIL;
			T15_ = lookUp__lookups_1211(c, exprNode);
			whenNimvm = ((*T15_).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263));
		}
		goto LA11_;
		LA13_: ;
		{
			if (!((*exprNode).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA17_;
			whenNimvm = ((*(*exprNode)._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263));
		}
		goto LA11_;
		LA17_: ;
		LA11_: ;
		{
			if (!whenNimvm) goto LA21_;
			(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 8)) & 31);
		}
		LA21_: ;
	}
	LA9_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA25;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				switch ((*it).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49):
				{
					checkSonsLen__semdata_1077(it, ((NI) 2), (*(*c).graph).config);
					{
						if (!whenNimvm) goto LA29_;
						{
							if (!semCheck) goto LA33_;
							asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 1)]), semExpr__sem_52(c, (*it)._kind_6.sons->data[((NI) 1)], 0));
							typ = commonType__sem_237(c, typ, (*(*it)._kind_6.sons->data[((NI) 1)]).typ);
						}
						LA33_: ;
						result = n;
					}
					goto LA27_;
					LA29_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
						T36_ = NIM_NIL;
						T36_ = semConstExpr__sem_611(c, (*it)._kind_6.sons->data[((NI) 0)]);
						e = forceBool__sem_2869(c, T36_);
						{
							if (!!(((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)))) goto LA39_;
						}
						goto LA37_;
						LA39_: ;
						{
							NIM_BOOL T42_;
							T42_ = (NIM_BOOL)0;
							T42_ = !(((*e)._kind_1.intVal == IL64(0)));
							if (!(T42_)) goto LA43_;
							T42_ = (result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
							LA43_: ;
							if (!T42_) goto LA44_;
							{
								if (!semCheck) goto LA48_;
								result = semExpr__sem_52(c, (*it)._kind_6.sons->data[((NI) 1)], 0);
							}
							goto LA46_;
							LA48_: ;
							{
								result = (*it)._kind_6.sons->data[((NI) 1)];
							}
							LA46_: ;
							goto BeforeRet_;
						}
						goto LA37_;
						LA44_: ;
						LA37_: ;
					}
					LA27_: ;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 50):
				{
					checkSonsLen__semdata_1077(it, ((NI) 1), (*(*c).graph).config);
					{
						NIM_BOOL T54_;
						T54_ = (NIM_BOOL)0;
						T54_ = (result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
						if (T54_) goto LA55_;
						T54_ = whenNimvm;
						LA55_: ;
						if (!T54_) goto LA56_;
						{
							if (!semCheck) goto LA60_;
							asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), semExpr__sem_52(c, (*it)._kind_6.sons->data[((NI) 0)], 0));
							typ = commonType__sem_237(c, typ, (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
						}
						LA60_: ;
						{
							if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA64_;
							result = (*it)._kind_6.sons->data[((NI) 0)];
						}
						LA64_: ;
					}
					LA56_: ;
				}
				break;
				default:
				{
					illFormedAst__semdata_1071(n, (*(*c).graph).config);
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA25: ;
		}
	}
	{
		if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA69_;
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
	}
	LA69_: ;
	{
		if (!whenNimvm) goto LA73_;
		asgnRef((void**) (&(*result).typ), typ);
	}
	LA73_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, semTypeIdent__sem_3474)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
{	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		result = getGenSym__semdata_408(c, (*n)._kind_4.sym);
	}
	goto LA1_;
	LA3_: ;
	{
		result = pickSym__lookups_1646(c, n, 152, 0);
		{
			if (!(result == 0)) goto LA8_;
			result = qualifiedLookUp__lookups_1233(c, n, 3);
		}
		LA8_: ;
		{
			if (!!((result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA12_;
			markUsed__sigmatch_85(c, (*n).info, result);
			{
				NIM_BOOL T16_;
				tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T32_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				if (!(T16_)) goto LA17_;
				T16_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
				LA17_: ;
				if (!T16_) goto LA18_;
				{
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* bound;
					if (!(((NI) 0) < (*c).inGenericInst)) goto LA22_;
					bound = (*(*(*result).typ).sons->data[((NI) 0)]).sym;
					{
						if (!!((bound == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA26_;
						result = bound;
						goto BeforeRet_;
					}
					LA26_: ;
					goto BeforeRet_;
				}
				LA22_: ;
				{
					if (!((*(*result).typ).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA30_;
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_512, NIM_FALSE);
					result = errorSym__lookups_506(c, n);
					goto BeforeRet_;
				}
				LA30_: ;
				T32_ = nextSymId__ast_3132((*c).Sup.idgen);
				result = copySym__ast_4054((*(*result).typ).sym, T32_);
				asgnRef((void**) (&(*result).typ), exactReplica__ast_4051((*result).typ));
				(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
			}
			LA18_: ;
			{
				if (!((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4))) goto LA35_;
				{
					NIM_BOOL T39_;
					NIM_BOOL T40_;
					NI T42_;
					T39_ = (NIM_BOOL)0;
					T40_ = (NIM_BOOL)0;
					T40_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12));
					if (!(T40_)) goto LA41_;
					T42_ = (NI)0;
					T42_ = len__ast_4002((*result).typ);
					T40_ = (T42_ == ((NI) 0));
					LA41_: ;
					T39_ = T40_;
					if (!(T39_)) goto LA43_;
					T39_ = (((*(*result).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0);
					LA43_: ;
					if (!T39_) goto LA44_;
					transitionGenericParamToType__ast_4390(result);
					(*(*result).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 30)) & 63));
					goto BeforeRet_;
				}
				goto LA37_;
				LA44_: ;
				{
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_513, NIM_FALSE);
					result = errorSym__lookups_506(c, n);
					goto BeforeRet_;
				}
				LA37_: ;
			}
			LA35_: ;
			{
				NIM_BOOL T49_;
				tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ ov;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* amb;
				T49_ = (NIM_BOOL)0;
				T49_ = !(((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7)));
				if (!(T49_)) goto LA50_;
				T49_ = !(((*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 24) || (*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 17) || (*result).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18)));
				LA50_: ;
				if (!T49_) goto LA51_;
				nimZeroMem((void*)(&ov), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
				amb = initOverloadIter__lookups_1374((&ov), c, n);
				{
					while (1) {
						NIM_BOOL T55_;
						T55_ = (NIM_BOOL)0;
						T55_ = !((amb == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
						if (!(T55_)) goto LA56_;
						T55_ = !(((*amb).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7)));
						LA56_: ;
						if (!T55_) goto LA54;
						amb = nextOverloadIter__lookups_1528((&ov), c, n);
					} LA54: ;
				}
				{
					if (!!((amb == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA59_;
					result = amb;
				}
				goto LA57_;
				LA59_: ;
				{
					{
						if (!!(((*result).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0)))) goto LA64_;
						liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_514, NIM_FALSE);
					}
					LA64_: ;
					result = errorSym__lookups_506(c, n);
					goto BeforeRet_;
				}
				LA57_: ;
			}
			LA51_: ;
			{
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q oldInfo;
				if (!!(((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)))) goto LA68_;
				oldInfo = (*n).info;
				reset__sem_3561(n);
				transitionNoneToSym__ast_4385(n);
				asgnRef((void**) (&(*n)._kind_4.sym), result);
				(*n).info = oldInfo;
				asgnRef((void**) (&(*n).typ), (*result).typ);
			}
			LA68_: ;
		}
		goto LA10_;
		LA12_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_515), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_516, NIM_FALSE);
			result = errorSym__lookups_506(c, n);
		}
		LA10_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, symFromExpectedTypeNode__sem_5854)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4))) goto LA3_;
		result = symFromType__sem_530(c, (*n).typ, (*n).info);
	}
	goto LA1_;
	LA3_: ;
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_517, NIM_FALSE);
		result = errorSym__lookups_506(c, n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semArrayIndex__sem_3367)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isRange__trees_213(n);
		if (!T3_) goto LA4_;
		result = semRangeAux__sem_3219(c, n, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
		e = semExprWithType__sem_56(c, n, 512);
		{
			if (!((*(*e).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61))) goto LA9_;
			result = makeRangeWithStaticExpr__semdata_979(c, (*(*e).typ).n);
		}
		goto LA7_;
		LA9_: ;
		{
			if (!((*e).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) && (*e).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA12_;
			{
				NimStringDesc* T18_;
				NimStringDesc* T19_;
				if (!((*e)._kind_1.intVal < IL64(0))) goto LA16_;
				T18_ = NIM_NIL;
				T19_ = NIM_NIL;
				T19_ = dollar___systemZdollars_6((*e)._kind_1.intVal);
				T18_ = rawNewString((T19_ ? T19_->Sup.len : 0) + 40);
appendString(T18_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_518));
appendString(T18_, T19_);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T18_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_519, NIM_FALSE);
			}
			LA16_: ;
			result = makeRangeType__semdata_1039(c, IL64(0), (NI64)((*e)._kind_1.intVal - IL64(1)), (*n).info, (*e).typ);
		}
		goto LA7_;
		LA12_: ;
		{
			NIM_BOOL T21_;
			T21_ = (NIM_BOOL)0;
			T21_ = ((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T21_)) goto LA22_;
			T21_ = ((*(*e).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
			LA22_: ;
			if (!T21_) goto LA23_;
			{
				if (!!(((*(*e)._kind_4.sym).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA27_;
				result = semArrayIndex__sem_3367(c, (*(*e)._kind_4.sym).ast);
				goto BeforeRet_;
			}
			LA27_: ;
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T31_;
				NIM_BOOL T32_;
				tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
				T31_ = NIM_NIL;
				T31_ = lastSon__ast_3743((*e).typ);
				T32_ = (NIM_BOOL)0;
				T32_ = isOrdinalType__types_299(T31_, NIM_FALSE);
				if (!!(T32_)) goto LA33_;
				{
					NI T37_;
					T37_ = (NI)0;
					T37_ = safeLen__ast_3191(n);
					if (!(((NI) 1) < T37_)) goto LA38_;
					info = (*(*n)._kind_6.sons->data[((NI) 1)]).info;
				}
				goto LA35_;
				LA38_: ;
				{
					info = (*n).info;
				}
				LA35_: ;
				liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_328), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_520, NIM_FALSE);
			}
			LA33_: ;
			result = makeRangeWithStaticExpr__semdata_979(c, e);
			{
				if (!(((NI) 0) < (*c).inGenericContext)) goto LA43_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9)) & 63);
			}
			LA43_: ;
		}
		goto LA7_;
		LA23_: ;
		{
			NIM_BOOL T46_;
			T46_ = (NIM_BOOL)0;
			T46_ = ((*e).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*e).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
			if (!(T46_)) goto LA47_;
			T46_ = hasUnresolvedArgs__sem_142(c, e);
			LA47_: ;
			if (!T46_) goto LA48_;
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T52_;
				NIM_BOOL T53_;
				T52_ = NIM_NIL;
				T52_ = skipTypes__ast_3735((*e).typ, TM__rF9caJawfOjYTjsgLVUSGFA_521);
				T53_ = (NIM_BOOL)0;
				T53_ = isOrdinalType__types_299(T52_, NIM_FALSE);
				if (!!(T53_)) goto LA54_;
				liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_328), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_522, NIM_FALSE);
			}
			LA54_: ;
			result = makeRangeWithStaticExpr__semdata_979(c, e);
		}
		goto LA7_;
		LA48_: ;
		{
			if (!((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA57_;
			result = skipTypes__ast_3735((*e).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123);
		}
		goto LA7_;
		LA57_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = semConstExpr__sem_611(c, e);
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T64_;
				if (!((*x).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6) && (*x).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA62_;
				T64_ = NIM_NIL;
				T64_ = skipTypes__ast_3735((*x).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123);
				result = makeRangeType__semdata_1039(c, IL64(0), (NI64)((*x)._kind_1.intVal - IL64(1)), (*n).info, T64_);
			}
			goto LA60_;
			LA62_: ;
			{
				result = skipTypes__ast_3735((*x).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123);
			}
			LA60_: ;
		}
		LA7_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semArray__sem_3419)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
	result = NIM_NIL;
	base = NIM_NIL;
	{
		NI T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* indx;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* indxB;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		indx = semArrayIndex__sem_3367(c, (*n)._kind_6.sons->data[((NI) 1)]);
		indxB = indx;
		{
			if (!((*indxB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11) || (*indxB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4) || (*indxB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46))) goto LA8_;
			indxB = lastSon__ast_3743(indxB);
		}
		LA8_: ;
		{
			if (!!(((*indxB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*indxB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60) || (*indxB).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61)))) goto LA12_;
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T16_;
				T16_ = NIM_NIL;
				T16_ = skipTypes__ast_3735(indxB, TM__rF9caJawfOjYTjsgLVUSGFA_31);
				if (!((*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) || (*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44))) goto LA17_;
			}
			goto LA14_;
			LA17_: ;
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = isOrdinalType__types_299(indxB, NIM_FALSE);
				if (!!(T20_)) goto LA21_;
				liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_328), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_523, NIM_FALSE);
			}
			goto LA14_;
			LA21_: ;
			{
				NIM_BOOL T24_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T27_;
				NimStringDesc* T28_;
				NimStringDesc* T29_;
				T24_ = (NIM_BOOL)0;
				T24_ = enumHasHoles__types_287(indxB);
				if (!T24_) goto LA25_;
				T27_ = NIM_NIL;
				T27_ = skipTypes__ast_3735(indxB, TM__rF9caJawfOjYTjsgLVUSGFA_31);
				T28_ = NIM_NIL;
				T28_ = typeToString__types_50(T27_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T29_ = NIM_NIL;
				T29_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_34), T28_);
				liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T29_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_524, NIM_FALSE);
			}
			goto LA14_;
			LA25_: ;
			LA14_: ;
		}
		LA12_: ;
		base = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), prev, c);
		rawAddSonNoPropagationOfTypeFlags__ast_4299(result, indx);
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_525), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_526, NIM_FALSE);
		result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semContainerArg__sem_3146)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* kindStr, tyObject_TType__facALICuu8zUj0hjvbTLFg* result) {
	{
		NI T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		base = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		{
			NimStringDesc* T10_;
			NimStringDesc* T11_;
			if (!((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA8_;
			T10_ = NIM_NIL;
			T10_ = typeToString__types_50(base, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T11_ = NIM_NIL;
			T11_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_527), T10_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T11_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_528, NIM_FALSE);
		}
		LA8_: ;
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T13_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T14_;
		T13_ = NIM_NIL;
		T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_529), kindStr);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_530, NIM_FALSE);
		T14_ = NIM_NIL;
		T14_ = errorType__semdata_1002(c);
		addSonSkipIntLit__magicsys_136(result, T14_, (*c).Sup.idgen);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semContainer__sem_3160)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NimStringDesc* kindStr, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2916(kind, prev, c);
	semContainerArg__sem_3146(c, n, kindStr, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semRange__sem_3307)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		{
			NIM_BOOL T8_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
			T8_ = (NIM_BOOL)0;
			T8_ = isRange__trees_213((*n)._kind_6.sons->data[((NI) 1)]);
			if (!T8_) goto LA9_;
			result = semRangeAux__sem_3219(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
			n_2 = (*result).n;
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = ((*(*n_2)._kind_6.sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*n_2)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
				if (!(T13_)) goto LA14_;
				T13_ = (IL64(0) < (*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_1.intVal);
				LA14_: ;
				if (!T13_) goto LA15_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
			}
			goto LA11_;
			LA15_: ;
			{
				NIM_BOOL T18_;
				T18_ = (NIM_BOOL)0;
				T18_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*n_2)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
				if (!(T18_)) goto LA19_;
				T18_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)])._kind_1.intVal < IL64(0));
				LA19_: ;
				if (!T18_) goto LA20_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
			}
			goto LA11_;
			LA20_: ;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = ((*(*n_2)._kind_6.sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*(*n_2)._kind_6.sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
				if (!(T23_)) goto LA24_;
				T23_ = (0.0 < (*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_2.floatVal);
				LA24_: ;
				if (!T23_) goto LA25_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
			}
			goto LA11_;
			LA25_: ;
			{
				NIM_BOOL T28_;
				T28_ = (NIM_BOOL)0;
				T28_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*(*n_2)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
				if (!(T28_)) goto LA29_;
				T28_ = ((*(*n_2)._kind_6.sons->data[((NI) 1)])._kind_2.floatVal < 0.0);
				LA29_: ;
				if (!T28_) goto LA30_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
			}
			goto LA11_;
			LA30_: ;
			LA11_: ;
		}
		goto LA6_;
		LA9_: ;
		{
			{
				NIM_BOOL T35_;
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T37_;
				T35_ = (NIM_BOOL)0;
				T35_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
				if (!(T35_)) goto LA36_;
				T37_ = NIM_NIL;
				T37_ = considerQuotedIdent__lookups_28(c, (*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				T35_ = eqStrings((*T37_).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_533));
				LA36_: ;
				if (!T35_) goto LA38_;
				liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_534), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_535, NIM_FALSE);
			}
			goto LA33_;
			LA38_: ;
			{
				liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_536), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_537, NIM_FALSE);
			}
			LA33_: ;
			result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T42_;
		T42_ = NIM_NIL;
		T42_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_529), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_538));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T42_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_539, NIM_FALSE);
		result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semSet__sem_3120)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), prev, c);
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3198(n);
		T3_ = (T4_ == ((NI) 2));
		if (!(T3_)) goto LA5_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA5_: ;
		if (!T3_) goto LA6_;
		base = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
		{
			if (!((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11) || (*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4) || (*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46))) goto LA10_;
			base = lastSon__ast_3743(base);
		}
		LA10_: ;
		{
			if (!!(((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9)))) goto LA14_;
			{
				NIM_BOOL T18_;
				T18_ = (NIM_BOOL)0;
				T18_ = isOrdinalType__types_299(base, NIM_TRUE);
				if (!!(T18_)) goto LA19_;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_328), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_540, NIM_FALSE);
			}
			goto LA16_;
			LA19_: ;
			{
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T22_;
				NIM_BOOL T23_;
				T22_ = lengthOrd__types_1661((*(*c).graph).config, base);
				T23_ = (NIM_BOOL)0;
				T23_ = lt___int495056_738(IL64(65536), T22_);
				if (!T23_) goto LA24_;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_541), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_542, NIM_FALSE);
			}
			goto LA16_;
			LA24_: ;
			LA16_: ;
		}
		LA14_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		NimStringDesc* T27_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T28_;
		T27_ = NIM_NIL;
		T27_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_529), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_543));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T27_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_544, NIM_FALSE);
		T28_ = NIM_NIL;
		T28_ = errorType__semdata_1002(c);
		addSonSkipIntLit__magicsys_136(result, T28_, (*c).Sup.idgen);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semOrdinal__sem_3459)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15), prev, c);
	{
		NI T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		base = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		{
			if (!!(((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)))) goto LA8_;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = isOrdinalType__types_299(base, NIM_FALSE);
				if (!!(T12_)) goto LA13_;
				liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_328), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_545, NIM_FALSE);
			}
			LA13_: ;
		}
		LA8_: ;
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T16_;
		T16_ = NIM_NIL;
		T16_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_529), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_546));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T16_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_547, NIM_FALSE);
		result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semIterableType__sem_3449)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64), prev, c);
	{
		NI T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		base = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T7_;
		T7_ = NIM_NIL;
		T7_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_529), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_548));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T7_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_549, NIM_FALSE);
		result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semVarargs__sem_3167)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48), prev, c);
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3198(n);
		T3_ = (T4_ == ((NI) 2));
		if (T3_) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__ast_3198(n);
		T3_ = (T6_ == ((NI) 3));
		LA5_: ;
		if (!T3_) goto LA7_;
		base = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
		{
			NI T11_;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T14_;
			T11_ = (NI)0;
			T11_ = len__ast_3198(n);
			if (!(T11_ == ((NI) 3))) goto LA12_;
			T14_ = NIM_NIL;
			T14_ = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
			asgnRef((void**) (&(*result).n), newIdentNode__ast_3712(T14_, (*(*n)._kind_6.sons->data[((NI) 2)]).info));
		}
		LA12_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		NimStringDesc* T16_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T17_;
		T16_ = NIM_NIL;
		T16_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_529), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_551));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T16_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_552, NIM_FALSE);
		T17_ = NIM_NIL;
		T17_ = errorType__semdata_1002(c);
		addSonSkipIntLit__magicsys_136(result, T17_, (*c).Sup.idgen);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTuple__sem_3578)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA check;
	NI counter;
	result = NIM_NIL;
	typ = NIM_NIL;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), prev, c);
	asgnRef((void**) (&(*result).n), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info));
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	initIntSet__pureZcollectionsZintsets_238((&check));
	counter = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI colontmp__2;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp__2 = (NI)0;
		colontmp_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		colontmp__2 = len__ast_3198(n);
		i_2 = colontmp_;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				if (!(i_2 < colontmp__2)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				{
					if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35)))) goto LA6_;
					illFormedAst__semdata_1071(a, (*(*c).graph).config);
				}
				LA6_: ;
				checkMinSonsLen__semdata_1084(a, ((NI) 3), (*(*c).graph).config);
				{
					NI T10_;
					NI T13_;
					T10_ = (NI)0;
					T10_ = len__ast_3198(a);
					if (!!(((*(*a)._kind_6.sons->data[(NI)(T10_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA11_;
					T13_ = (NI)0;
					T13_ = len__ast_3198(a);
					typ = semTypeNode__sem_80(c, (*a)._kind_6.sons->data[(NI)(T13_ - ((NI) 2))], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
				}
				goto LA8_;
				LA11_: ;
				{
					liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_555, NIM_FALSE);
					typ = errorType__semdata_1002(c);
				}
				LA8_: ;
				{
					NI T17_;
					NI T20_;
					T17_ = (NI)0;
					T17_ = len__ast_3198(a);
					if (!!(((*(*a)._kind_6.sons->data[(NI)(T17_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA18_;
					T20_ = (NI)0;
					T20_ = len__ast_3198(a);
					liMessage__msgs_1118((*(*c).graph).config, (*(*a)._kind_6.sons->data[(NI)(T20_ - ((NI) 1))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_469), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_556, NIM_FALSE);
				}
				LA18_: ;
				{
					NI j;
					NI colontmp__3;
					NI T22_;
					NI i_3;
					j = (NI)0;
					colontmp__3 = (NI)0;
					T22_ = (NI)0;
					T22_ = len__ast_3198(a);
					colontmp__3 = (NI)(T22_ - ((NI) 2));
					i_3 = ((NI) 0);
					{
						while (1) {
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field;
							if (!(i_3 < colontmp__3)) goto LA24;
							j = i_3;
							field = newSymG__sem_458(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19), (*a)._kind_6.sons->data[j], c);
							asgnRef((void**) (&(*field).typ), typ);
							(*field).position = counter;
							counter += ((NI) 1);
							{
								NIM_BOOL T27_;
								NimStringDesc* T30_;
								T27_ = (NIM_BOOL)0;
								T27_ = containsOrIncl__astalgo_402((&check), (*(*field).name).id);
								if (!T27_) goto LA28_;
								T30_ = NIM_NIL;
								T30_ = rawNewString(((*(*field).name).s ? (*(*field).name).s->Sup.len : 0) + 23);
appendString(T30_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_150));
appendString(T30_, (*(*field).name).s);
appendString(T30_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
								liMessage__msgs_1118((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T30_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_557, NIM_FALSE);
							}
							goto LA25_;
							LA28_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
								T32_ = NIM_NIL;
								T32_ = newSymNode__ast_3716(field);
								add__ast_4797((*result).n, T32_);
								addSonSkipIntLit__magicsys_136(result, typ, (*c).Sup.idgen);
							}
							LA25_: ;
							{
								NIM_BOOL T35_;
								T35_ = (NIM_BOOL)0;
								T35_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
								if (!(T35_)) goto LA36_;
								T35_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
								LA36_: ;
								if (!T35_) goto LA37_;
								nep1CheckDefImpl__linter_110((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, field, (*field).kind);
							}
							LA37_: ;
							i_3 += ((NI) 1);
						} LA24: ;
					}
				}
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI T41_;
		T41_ = (NI)0;
		T41_ = len__ast_3198((*result).n);
		if (!(T41_ == ((NI) 0))) goto LA42_;
		asgnRef((void**) (&(*result).n), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	}
	LA42_: ;
	{
		NIM_BOOL T46_;
		NimStringDesc* T49_;
		NimStringDesc* T50_;
		T46_ = (NIM_BOOL)0;
		T46_ = isTupleRecursive__types_3996(result);
		if (!T46_) goto LA47_;
		T49_ = NIM_NIL;
		T49_ = typeToString__types_50(result, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T50_ = NIM_NIL;
		T50_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_146), T49_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T50_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_558, NIM_FALSE);
	}
	LA47_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semGenericParamInInvocation__sem_5423)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = semTypeNode__sem_80(c, n, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	asgnRef((void**) (&(*n).typ), makeTypeDesc__concepts_49(c, result));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semObjectTypeForInheritedGenericInst__sem_5427)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA check;
	NI pos;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* realBase;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newf;
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	initIntSet__pureZcollectionsZintsets_238((&check));
	pos = ((NI) 0);
	realBase = (*t).sons->data[((NI) 0)];
	base = skipTypesOrNil__ast_4185(realBase, TM__rF9caJawfOjYTjsgLVUSGFA_53);
	{
		NimStringDesc* T5_;
		if (!(base == 0)) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_146), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_570));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T5_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_571, NIM_FALSE);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* concreteBase;
		concreteBase = skipGenericInvocation__sem_4428(base);
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
			if (!(T9_)) goto LA10_;
			T9_ = !((((*concreteBase).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0));
			LA10_: ;
			if (!T9_) goto LA11_;
			addInheritedFields__sem_4443(c, (&check), (&pos), concreteBase);
		}
		goto LA7_;
		LA11_: ;
		{
			{
				if (!!(((*concreteBase).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50)))) goto LA16_;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_572), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_573, NIM_FALSE);
			}
			LA16_: ;
		}
		LA7_: ;
	}
	LA1_: ;
	newf = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info);
	semRecordNodeAux__sem_3922(c, (*t).n, (&check), (&pos), newf, t, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semGeneric__sem_5453)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* tx;
{	result = NIM_NIL;
	{
		tyArray__Re75IspeoxXy2oCZHwcRrA T5_;
		NimStringDesc* T6_;
		if (!((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T5_[0] = copyString((*(*s).name).s);
		T5_[1] = toHumanStr__ast_5158((*s).kind);
		T6_ = NIM_NIL;
		T6_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_559), T5_, 2);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_560, NIM_FALSE);
		result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		goto BeforeRet_;
	}
	LA3_: ;
	t = skipTypes__ast_3735((*s).typ, TM__rF9caJawfOjYTjsgLVUSGFA_561);
	{
		NIM_BOOL T9_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T11_;
		T9_ = (NIM_BOOL)0;
		T9_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54));
		if (!(T9_)) goto LA10_;
		T11_ = NIM_NIL;
		T11_ = base__types_63(t);
		T9_ = ((*T11_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10));
		LA10_: ;
		if (!T9_) goto LA12_;
		t = base__types_63(t);
	}
	LA12_: ;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9), prev, c);
	addSonSkipIntLit__magicsys_136(result, t, (*c).Sup.idgen);
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30))) goto LA16_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* elem;
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					elem = semGenericParamInInvocation__sem_5423(c, (*n)._kind_6.sons->data[i]);
					{
						if (!(elem == 0)) goto LA23_;
						{
							NimStringDesc* argX60gensym1298_;
							if (!NIM_TRUE) goto LA27_;
							argX60gensym1298_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_562);
							internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym1298_, TM__rF9caJawfOjYTjsgLVUSGFA_562);
						}
						LA27_: ;
						rawAddSon__ast_4288(result, elem, NIM_TRUE);
					}
					goto LA21_;
					LA23_: ;
					{
						addSonSkipIntLit__magicsys_136(result, elem, (*c).Sup.idgen);
					}
					LA21_: ;
					i_2 += ((NI) 1);
				} LA20: ;
			}
		}
		goto BeforeRet_;
	}
	goto LA14_;
	LA16_: ;
	{
		NimStringDesc* T33_;
		if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10)))) goto LA31_;
		T33_ = NIM_NIL;
		T33_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_563), (*(*s).name).s);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T33_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_564, NIM_FALSE);
		result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		goto BeforeRet_;
	}
	goto LA14_;
	LA31_: ;
	{
		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
		NIM_BOOL isConcrete;
		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
		newCandidate__sigmatch_195(c, t, (&m));
		m.isNoCall = NIM_TRUE;
		T35_ = NIM_NIL;
		T35_ = copyTree__ast_4431(n);
		matches__sigmatch_4181(c, n, T35_, (&m));
		{
			NimStringDesc* err;
			tyArray__Re75IspeoxXy2oCZHwcRrA T40_;
			NimStringDesc* T41_;
			if (!!((m.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA38_;
			err = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_565));
			addTypeHeader__types_216((&err), (*(*c).graph).config, t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 7), NIM_TRUE);
			nimZeroMem((void*)T40_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T40_[0] = describeArgs__sigmatch_384(c, n, ((NI) 1), ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T40_[1] = describeArgs__sigmatch_384(c, (*t).n, ((NI) 0), ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T41_ = NIM_NIL;
			T41_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_566), T40_, 2);
			err = resizeString(err, (T41_ ? T41_->Sup.len : 0) + 0);
appendString(err, T41_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), err, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_567, NIM_FALSE);
			result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
			goto BeforeRet_;
		}
		LA38_: ;
		isConcrete = NIM_TRUE;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(m.call);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
					if (!(i_4 < colontmp__2)) goto LA44;
					i_3 = i_4;
					typ = (*(*m.call)._kind_6.sons->data[i_3]).typ;
					{
						NIM_BOOL T47_;
						NIM_BOOL T48_;
						NIM_BOOL T49_;
						T47_ = (NIM_BOOL)0;
						T48_ = (NIM_BOOL)0;
						T49_ = (NIM_BOOL)0;
						T49_ = ((*(*m.call)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
						if (!(T49_)) goto LA50_;
						T49_ = ((*(*(*m.call)._kind_6.sons->data[i_3])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
						LA50_: ;
						T48_ = T49_;
						if (!(T48_)) goto LA51_;
						T48_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
						LA51_: ;
						T47_ = T48_;
						if (!(T47_)) goto LA52_;
						T47_ = containsGenericType__types_3360(typ);
						LA52_: ;
						if (!T47_) goto LA53_;
						isConcrete = NIM_FALSE;
						{
							if (!(typ == 0)) goto LA57_;
							{
								NimStringDesc* argX60gensym1314_;
								if (!NIM_TRUE) goto LA61_;
								argX60gensym1314_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_562);
								internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym1314_, TM__rF9caJawfOjYTjsgLVUSGFA_562);
							}
							LA61_: ;
							rawAddSon__ast_4288(result, typ, NIM_TRUE);
						}
						goto LA55_;
						LA57_: ;
						{
							addSonSkipIntLit__magicsys_136(result, typ, (*c).Sup.idgen);
						}
						LA55_: ;
					}
					goto LA45_;
					LA53_: ;
					{
						typ = skipTypes__ast_3735(typ, TM__rF9caJawfOjYTjsgLVUSGFA_123);
						{
							NIM_BOOL T67_;
							T67_ = (NIM_BOOL)0;
							T67_ = containsGenericType__types_3360(typ);
							if (!T67_) goto LA68_;
							isConcrete = NIM_FALSE;
						}
						LA68_: ;
						{
							if (!(typ == 0)) goto LA72_;
							{
								NimStringDesc* argX60gensym1318_;
								if (!NIM_TRUE) goto LA76_;
								argX60gensym1318_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_562);
								internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym1318_, TM__rF9caJawfOjYTjsgLVUSGFA_562);
							}
							LA76_: ;
							rawAddSon__ast_4288(result, typ, NIM_TRUE);
						}
						goto LA70_;
						LA72_: ;
						{
							addSonSkipIntLit__magicsys_136(result, typ, (*c).Sup.idgen);
						}
						LA70_: ;
					}
					LA45_: ;
					i_4 += ((NI) 1);
				} LA44: ;
			}
		}
		{
			if (!isConcrete) goto LA81_;
			{
				NIM_BOOL T85_;
				NimStringDesc* T89_;
				T85_ = (NIM_BOOL)0;
				T85_ = ((*s).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				if (!(T85_)) goto LA86_;
				T85_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54)));
				LA86_: ;
				if (!T85_) goto LA87_;
				T89_ = NIM_NIL;
				T89_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_81), (*(*s).name).s);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T89_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_568, NIM_FALSE);
				result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
			}
			goto LA83_;
			LA87_: ;
			{
				result = instGenericContainer__sem_1125(c, (*n).info, result, NIM_FALSE);
			}
			LA83_: ;
		}
		LA81_: ;
	}
	LA14_: ;
	tx = skipTypes__ast_4168(result, TM__rF9caJawfOjYTjsgLVUSGFA_97, ((NI) 50));
	{
		NIM_BOOL T93_;
		NimStringDesc* T97_;
		NimStringDesc* T98_;
		T93_ = (NIM_BOOL)0;
		T93_ = (tx == 0);
		if (T93_) goto LA94_;
		T93_ = isTupleRecursive__types_3996(tx);
		LA94_: ;
		if (!T93_) goto LA95_;
		T97_ = NIM_NIL;
		T97_ = typeToString__types_50((*result).sons->data[((NI) 0)], ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T98_ = NIM_NIL;
		T98_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_146), T97_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T98_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_569, NIM_FALSE);
		result = errorType__semdata_1002(c);
		goto BeforeRet_;
	}
	LA95_: ;
	{
		NIM_BOOL T101_;
		NI position;
		T101_ = (NIM_BOOL)0;
		T101_ = !((tx == result));
		if (!(T101_)) goto LA102_;
		T101_ = ((*tx).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		LA102_: ;
		if (!T101_) goto LA103_;
		{
			if (!!(((*tx).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA107_;
			semObjectTypeForInheritedGenericInst__sem_5427(c, n, tx);
		}
		LA107_: ;
		position = ((NI) 0);
		recomputeFieldPositions__semtypinst_1006(tx, (*tx).n, (&position));
	}
	LA103_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isNewStyleConcept__ast_5226)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConceptBody__sem_2888)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w ctx;
	result = NIM_NIL;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_GenericCtx__ldEK1fsP9cZbQbUrs7bxs0w));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toMixin));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toBind));
	result = semGenericStmt__sem_8113(c, n, 8, (&ctx));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeClass__sem_5629)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inherited;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* candidateTypeSlot;
	tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T6_;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T15_;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isNewStyleConcept__ast_5226(n);
		if (!T3_) goto LA4_;
		result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62), prev, c);
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
		asgnRef((void**) (&(*result).n), semConceptDeclaration__concepts_97(c, n));
		goto BeforeRet_;
	}
	LA4_: ;
	pragmas = (*n)._kind_6.sons->data[((NI) 1)];
	inherited = (*n)._kind_6.sons->data[((NI) 2)];
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52), prev, c);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
	owner = getCurrOwner__semdata_315(c);
	T6_ = NIM_NIL;
	T6_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
	asgnRef((void**) (&T6_->data[0]), errorType__semdata_1002(c));
	candidateTypeSlot = newTypeWithSons__semdata_815(owner, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4), T6_, (*c).Sup.idgen);
	if ((*result).sons) { nimGCunrefRC1((*result).sons); (*result).sons = NIM_NIL; }
	(*result).sons = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeqRC1((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
	asgnRef((void**) (&(*result).sons->data[0]), candidateTypeSlot);
	asgnRef((void**) (&(*result).n), n);
	{
		if (!!(((*inherited).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA9_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n_2;
			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
			NI i;
			NI L;
			NI T12_;
			n_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
			colontmp_ = NIM_NIL;
			colontmp_ = (*inherited)._kind_6.sons;
			i = ((NI) 0);
			T12_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T12_;
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
					if (!(i < L)) goto LA14;
					n_2 = &colontmp_->data[i];
					typ = semTypeNode__sem_80(c, (*n_2), ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
					add__concepts_23(result, typ);
					i += ((NI) 1);
				} LA14: ;
			}
		}
	}
	LA9_: ;
	T15_ = NIM_NIL;
	T15_ = openScope__lookups_69(c);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* param;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__2;
		param = NIM_NIL;
		colontmp__2 = NIM_NIL;
		colontmp__2 = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NI i_2;
			NI colontmp__3;
			NI i_3;
			i_2 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = safeLen__ast_3191(colontmp__2);
			i_3 = ((NI) 0);
			{
				while (1) {
					if (!(i_3 < colontmp__3)) goto LA19;
					i_2 = i_3;
					param = (*colontmp__2)._kind_6.sons->data[i_2];
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dummyName;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* dummyType;
						tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag modifier;
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dummyParam;
						tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw T44_;
						tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T50_;
						dummyName = NIM_NIL;
						dummyType = NIM_NIL;
						switch ((*param).kind) {
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23);
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22);
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21);
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 137):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60);
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8);
						}
						break;
						default:
						{
							modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
						}
						break;
						}
						{
							if (!!((modifier == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)))) goto LA29_;
							dummyName = (*param)._kind_6.sons->data[((NI) 0)];
							dummyType = makeTypeWithModifier__semdata_746(c, modifier, candidateTypeSlot);
							{
								if (!(modifier == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA33_;
								(*dummyType).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 28)) & 63);
								(*dummyType).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
							}
							LA33_: ;
						}
						goto LA27_;
						LA29_: ;
						{
							dummyName = param;
							dummyType = candidateTypeSlot;
						}
						LA27_: ;
						{
							if (!((*dummyName).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA38_;
							goto LA20;
						}
						LA38_: ;
						{
							NimStringDesc* argX60gensym1348_;
							if (!!(((*dummyName).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2)))) goto LA42_;
							argX60gensym1348_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_584);
							internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym1348_, TM__rF9caJawfOjYTjsgLVUSGFA_584);
						}
						LA42_: ;
						T44_ = (tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw)0;
						{
							if (!(modifier == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA47_;
							T44_ = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7);
						}
						goto LA45_;
						LA47_: ;
						{
							T44_ = ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8);
						}
						LA45_: ;
						T50_ = nextSymId__ast_3132((*c).Sup.idgen);
						dummyParam = newSym__ast_3445(T44_, (*dummyName)._kind_5.ident, T50_, owner, (*param).info, 0);
						asgnRef((void**) (&(*dummyParam).typ), dummyType);
						(*dummyParam).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
						addDecl__lookups_845(c, dummyParam);
					} LA20: ;
					i_3 += ((NI) 1);
				} LA19: ;
			}
		}
	}
	asgnRef((void**) (&(*(*result).n)._kind_6.sons->data[((NI) 3)]), semConceptBody__sem_2888(c, (*n)._kind_6.sons->data[((NI) 3)]));
	closeScope__lookups_101(c);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isSelf__concepts_38)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
	if (!(T1_)) goto LA2_;
	T1_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 23))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semVarOutType__sem_3185)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	{
		NI T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 1))) goto LA4_;
		result = newOrPrevType__sem_2916(kind, prev, c);
		base = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		{
			NIM_BOOL T8_;
			NIM_BOOL T10_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			if (!(T8_)) goto LA9_;
			T10_ = (NIM_BOOL)0;
			T10_ = isSelf__concepts_38(base);
			T8_ = !(T10_);
			LA9_: ;
			if (!T8_) goto LA11_;
			base = (*base).sons->data[((NI) 0)];
		}
		LA11_: ;
		{
			if (!((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA15_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_553), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_585, NIM_FALSE);
			base = (*base).sons->data[((NI) 0)];
		}
		LA15_: ;
		addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
	}
	goto LA1_;
	LA4_: ;
	{
		result = newConstraint__sem_2929(c, kind);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semDistinct__sem_3206)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = newConstraint__sem_2929(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
		goto BeforeRet_;
	}
	LA4_: ;
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13), prev, c);
	T6_ = NIM_NIL;
	T6_ = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	addSonSkipIntLit__magicsys_136(result, T6_, (*c).Sup.idgen);
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = len__ast_3198(n);
		if (!(((NI) 1) < T9_)) goto LA10_;
		asgnRef((void**) (&(*result).n), (*n)._kind_6.sons->data[((NI) 1)]);
	}
	LA10_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyTypeSectionPragmas__sem_5714)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmas, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* operand) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
		p = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(pragmas);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					p = (*pragmas)._kind_6.sons->data[i];
					{
						NIM_BOOL T7_;
						NI T9_;
						T7_ = (NIM_BOOL)0;
						T7_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34) || (*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28));
						if (!(T7_)) goto LA8_;
						T9_ = (NI)0;
						T9_ = len__ast_3198(p);
						T7_ = (((NI) 1) <= T9_);
						LA8_: ;
						if (!T7_) goto LA10_;
						key = (*p)._kind_6.sons->data[((NI) 0)];
					}
					goto LA5_;
					LA10_: ;
					{
						key = p;
					}
					LA5_: ;
					{
						NIM_BOOL T15_;
						tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T17_;
						T15_ = (NIM_BOOL)0;
						T15_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
						if (T15_) goto LA16_;
						T17_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
						T17_ = whichPragma__trees_244(p);
						T15_ = !((T17_ == ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 0)));
						LA16_: ;
						if (!T15_) goto LA18_;
					}
					goto LA13_;
					LA18_: ;
					{
						tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
						ident = considerQuotedIdent__lookups_28(c, key, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T23_;
							T23_ = NIM_NIL;
							T23_ = strTableGet__astalgo_3383((*c).userPragmas, ident);
							if (!!((T23_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA24_;
						}
						goto LA21_;
						LA24_: ;
						{
							NIM_BOOL amb;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
							amb = NIM_FALSE;
							sym = searchInScopes__lookups_423(c, ident, (&amb));
							{
								NIM_BOOL T29_;
								T29_ = (NIM_BOOL)0;
								T29_ = !((sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
								if (!(T29_)) goto LA30_;
								T29_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0);
								LA30_: ;
								if (!T29_) goto LA31_;
							}
							goto LA27_;
							LA31_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r;
								x = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*key).info);
								add__ast_4797(x, key);
								{
									NIM_BOOL T36_;
									NI T38_;
									T36_ = (NIM_BOOL)0;
									T36_ = ((*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34) || (*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*p).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28));
									if (!(T36_)) goto LA37_;
									T38_ = (NI)0;
									T38_ = len__ast_3198(p);
									T36_ = (((NI) 1) < T38_);
									LA37_: ;
									if (!T36_) goto LA39_;
									{
										NI i_3;
										NI colontmp__2;
										NI i_4;
										i_3 = (NI)0;
										colontmp__2 = (NI)0;
										colontmp__2 = len__ast_3198(p);
										i_4 = ((NI) 1);
										{
											while (1) {
												if (!(i_4 < colontmp__2)) goto LA43;
												i_3 = i_4;
												add__ast_4797(x, (*p)._kind_6.sons->data[i_3]);
												i_4 += ((NI) 1);
											} LA43: ;
										}
									}
								}
								LA39_: ;
								T44_ = NIM_NIL;
								T44_ = copyTreeWithoutNode__ast_4459(operand, p);
								add__ast_4797(x, T44_);
								r = semOverloadedCall__sem_2498(c, x, x, 393216, 262144);
								{
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
									if (!!((r == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA47_;
									{
										if (!!(((*(*r)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA51_;
										failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_586));
									}
									LA51_: ;
									m = (*(*r)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
									switch ((*m).kind) {
									case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
									{
										result = semMacroExpr__sem_524(c, r, r, m, 8192);
										goto BeforeRet_;
									}
									break;
									case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
									{
										result = semTemplateExpr__sem_519(c, r, m, 8192);
										goto BeforeRet_;
									}
									break;
									default:
									{
										{
											if (!NIM_TRUE) goto LA58_;
											failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_587));
										}
										LA58_: ;
									}
									break;
									}
								}
								LA47_: ;
							}
							LA27_: ;
						}
						LA21_: ;
					}
					LA13_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semProcTypeWithScope__sem_5803)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T12_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T13_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
{	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	{
		NIM_BOOL T3_;
		NI T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* macroEval;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__ast_3198((*n)._kind_6.sons->data[((NI) 1)]);
		T3_ = (((NI) 0) < T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		macroEval = applyTypeSectionPragmas__sem_5714(c, (*n)._kind_6.sons->data[((NI) 1)], n);
		{
			if (!!((macroEval == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA10_;
			result = semTypeNode__sem_80(c, macroEval, prev);
			goto BeforeRet_;
		}
		LA10_: ;
	}
	LA6_: ;
	T12_ = NIM_NIL;
	T12_ = openScope__lookups_69(c);
	result = semProcTypeNode__sem_5067(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), prev, kind, NIM_TRUE);
	(*result).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9);
	T13_ = NIM_NIL;
	T13_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_474));
	T14_ = NIM_NIL;
	T14_ = newIdentNode__ast_3712(T13_, (*n).info);
	s = newSymS__sem_453(kind, T14_, c);
	asgnRef((void**) (&(*s).typ), result);
	{
		NIM_BOOL T17_;
		NI T19_;
		T17_ = (NIM_BOOL)0;
		T17_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		if (!(T17_)) goto LA18_;
		T19_ = (NI)0;
		T19_ = len__ast_3198((*n)._kind_6.sons->data[((NI) 1)]);
		T17_ = (((NI) 0) < T19_);
		LA18_: ;
		if (!T17_) goto LA20_;
		pragma__pragmas_123(c, s, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_588, NIM_FALSE);
		setEffectsForProcType__sempass50_4545((*c).graph, result, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
	}
	goto LA15_;
	LA20_: ;
	{
		NIM_BOOL T23_;
		NI T24_;
		tyArray__voNMFnIDThVNu9afe2zfZWA T28_;
		T23_ = (NIM_BOOL)0;
		T24_ = ((*c).optionStack ? (*c).optionStack->Sup.len : 0);
		T23_ = (((NI) 0) < T24_);
		if (!(T23_)) goto LA25_;
		T23_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 47))&63U)))!=0));
		LA25_: ;
		if (!T23_) goto LA26_;
		nimZeroMem((void*)T28_, sizeof(tyArray__voNMFnIDThVNu9afe2zfZWA));
		T28_[0] = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		T28_[1] = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		T28_[2] = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		T28_[3] = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		T28_[4] = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		asgnRef((void**) (&(*s).ast), newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79), T28_, 5));
		implicitPragmas__pragmas_2394(c, s, (*n).info, TM__rF9caJawfOjYTjsgLVUSGFA_589);
		setEffectsForProcType__sempass50_4545((*c).graph, result, (*(*s).ast)._kind_6.sons->data[((NI) 4)], ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
	}
	goto LA15_;
	LA26_: ;
	LA15_: ;
	closeScope__lookups_101(c);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, addInterfaceDecl__lookups_879)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym) {
	addInterfaceDeclAt__lookups_875(c, (*c).currentScope, sym);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semEnum__sem_2937)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	NI64 counter;
	NI64 x;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* e;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** identToReplace;
	NIM_BOOL isPure;
	NIM_BOOL T20_;
	tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA symbols;
	NIM_BOOL hasNull;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T148_;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = newConstraint__sem_2929(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
		goto BeforeRet_;
	}
	goto LA1_;
	LA4_: ;
	{
		NI T7_;
		T7_ = (NI)0;
		T7_ = len__ast_3198(n);
		if (!(T7_ == ((NI) 1))) goto LA8_;
		result = errorType__semdata_1002(c);
		goto BeforeRet_;
	}
	goto LA1_;
	LA8_: ;
	LA1_: ;
	counter = (NI64)0;
	x = (NI64)0;
	e = NIM_NIL;
	base = NIM_NIL;
	identToReplace = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
	counter = IL64(0);
	base = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
	result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14), prev, c);
	asgnRef((void**) (&(*result).n), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150), (*n).info));
	checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T18_;
		NI64 T19_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA12_;
		base = semTypeNode__sem_80(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		{
			if (!!(((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14)))) goto LA16_;
			liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_590), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_591, NIM_FALSE);
		}
		LA16_: ;
		T18_ = lastOrd__types_1470((*(*c).graph).config, base);
		T19_ = (NI64)0;
		T19_ = toInt64__int495056_88(T18_);
		counter = (NI64)(T19_ + IL64(1));
	}
	LA12_: ;
	rawAddSon__ast_4288(result, base, NIM_TRUE);
	T20_ = (NIM_BOOL)0;
	T20_ = !(((*result).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
	if (!(T20_)) goto LA21_;
	T20_ = (((*(*result).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0);
	LA21_: ;
	isPure = T20_;
	nimZeroMem((void*)(&symbols), sizeof(tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA));
	{
		if (!isPure) goto LA24_;
		initStrTable__ast_4088((&symbols));
	}
	LA24_: ;
	hasNull = NIM_FALSE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA28;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* symNode;
					{
						if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA32_;
						goto LA29;
					}
					LA32_: ;
					switch ((*(*n)._kind_6.sons->data[i]).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 151):
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* strVal;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
						{
							if (!((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA37_;
							e = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20), (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)], c);
							identToReplace = &(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
							pragma__pragmas_123(c, e, (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_592, NIM_FALSE);
						}
						goto LA35_;
						LA37_: ;
						{
							e = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20), (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], c);
							identToReplace = &(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)];
						}
						LA35_: ;
						v = semConstExpr__sem_611(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]);
						strVal = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
						T40_ = NIM_NIL;
						T40_ = skipTypes__ast_3735((*v).typ, TM__rF9caJawfOjYTjsgLVUSGFA_5);
						switch ((*T40_).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
						{
							{
								NI T44_;
								T44_ = (NI)0;
								T44_ = len__ast_3198(v);
								if (!(T44_ == ((NI) 2))) goto LA45_;
								strVal = (*v)._kind_6.sons->data[((NI) 1)];
								{
									tyObject_TType__facALICuu8zUj0hjvbTLFg* T49_;
									tyObject_Int128__9a9axPfb75jdWY25AamJewkA T59_;
									tyObject_TType__facALICuu8zUj0hjvbTLFg* T60_;
									T49_ = NIM_NIL;
									T49_ = skipTypes__ast_3735((*strVal).typ, TM__rF9caJawfOjYTjsgLVUSGFA_70);
									if (!((*T49_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*T49_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29))) goto LA50_;
									{
										NIM_BOOL T54_;
										NimStringDesc* T57_;
										NimStringDesc* T58_;
										T54_ = (NIM_BOOL)0;
										T54_ = isOrdinalType__types_299((*(*v)._kind_6.sons->data[((NI) 0)]).typ, NIM_TRUE);
										if (!!(T54_)) goto LA55_;
										T57_ = NIM_NIL;
										T58_ = NIM_NIL;
										T58_ = typeToString__types_50((*(*v)._kind_6.sons->data[((NI) 0)]).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
										T57_ = rawNewString((T58_ ? T58_->Sup.len : 0) + 30);
appendString(T57_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_593));
appendString(T57_, T58_);
										liMessage__msgs_1118((*(*c).graph).config, (*(*v)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T57_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_594, NIM_FALSE);
									}
									LA55_: ;
									T59_ = getOrdValue__types_161((*v)._kind_6.sons->data[((NI) 0)], Max__int495056_27);
									x = toInt64__int495056_88(T59_);
									T60_ = NIM_NIL;
									T60_ = getSysType__magicsys_60((*c).graph, unknownLineInfo__lineinfos_281, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
									asgnRef((void**) (&(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), newIntTypeNode__ast_3783(x, T60_));
								}
								goto LA47_;
								LA50_: ;
								{
									liMessage__msgs_1118((*(*c).graph).config, (*strVal).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_347), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_595, NIM_FALSE);
								}
								LA47_: ;
							}
							goto LA42_;
							LA45_: ;
							{
								liMessage__msgs_1118((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_596), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_597, NIM_FALSE);
							}
							LA42_: ;
						}
						break;
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
						{
							strVal = v;
							x = counter;
						}
						break;
						default:
						{
							tyObject_Int128__9a9axPfb75jdWY25AamJewkA T72_;
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T73_;
							{
								NIM_BOOL T67_;
								NimStringDesc* T70_;
								NimStringDesc* T71_;
								T67_ = (NIM_BOOL)0;
								T67_ = isOrdinalType__types_299((*v).typ, NIM_TRUE);
								if (!!(T67_)) goto LA68_;
								T70_ = NIM_NIL;
								T71_ = NIM_NIL;
								T71_ = typeToString__types_50((*v).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
								T70_ = rawNewString((T71_ ? T71_->Sup.len : 0) + 30);
appendString(T70_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_593));
appendString(T70_, T71_);
								liMessage__msgs_1118((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T70_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_598, NIM_FALSE);
							}
							LA68_: ;
							T72_ = getOrdValue__types_161(v, Max__int495056_27);
							x = toInt64__int495056_88(T72_);
							T73_ = NIM_NIL;
							T73_ = getSysType__magicsys_60((*c).graph, unknownLineInfo__lineinfos_281, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
							asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]), newIntTypeNode__ast_3783(x, T73_));
						}
						break;
						}
						{
							if (!!((i == ((NI) 1)))) goto LA76_;
							{
								if (!!((x == counter))) goto LA80_;
								(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 5)) & 63);
							}
							LA80_: ;
							{
								NimStringDesc* T86_;
								if (!(x < counter)) goto LA84_;
								T86_ = NIM_NIL;
								T86_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_599), (*(*e).name).s);
								liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T86_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_600, NIM_FALSE);
								x = counter;
							}
							LA84_: ;
						}
						LA76_: ;
						asgnRef((void**) (&(*e).ast), strVal);
						counter = x;
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
					{
						e = (*(*n)._kind_6.sons->data[i])._kind_4.sym;
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
					{
						e = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20), (*n)._kind_6.sons->data[i], c);
						identToReplace = &(*n)._kind_6.sons->data[i];
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
					{
						e = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20), (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], c);
						pragma__pragmas_123(c, e, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_592, NIM_FALSE);
						identToReplace = &(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)];
					}
					break;
					default:
					{
						illFormedAst__semdata_1071((*n)._kind_6.sons->data[i], (*(*c).graph).config);
					}
					break;
					}
					asgnRef((void**) (&(*e).typ), result);
					(*e).position = ((NI) (counter));
					symNode = newSymNode__ast_3716(e);
					{
						NIM_BOOL T93_;
						NIM_BOOL T94_;
						T93_ = (NIM_BOOL)0;
						T94_ = (NIM_BOOL)0;
						T94_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 47))&63U)))!=0));
						if (!(T94_)) goto LA95_;
						T94_ = !((identToReplace == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**) NIM_NIL)));
						LA95_: ;
						T93_ = T94_;
						if (!(T93_)) goto LA96_;
						T93_ = !(((3989504 &((NU32)1<<((NU)((*(*(*c).graph).config).cmd)&31U)))!=0));
						LA96_: ;
						if (!T93_) goto LA97_;
						unsureAsgnRef((void**) (&(*identToReplace)), symNode);
					}
					LA97_: ;
					{
						if (!((*e).position == ((NI) 0))) goto LA101_;
						hasNull = NIM_TRUE;
					}
					LA101_: ;
					{
						NIM_BOOL T105_;
						T105_ = (NIM_BOOL)0;
						T105_ = !(((*result).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
						if (!(T105_)) goto LA106_;
						T105_ = (((*(*result).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0);
						LA106_: ;
						if (!T105_) goto LA107_;
						(*e).flags = ((*e).flags | 3);
					}
					LA107_: ;
					add__ast_4797((*result).n, symNode);
					{
						NIM_BOOL T111_;
						T111_ = (NIM_BOOL)0;
						T111_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
						if (!(T111_)) goto LA112_;
						T111_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
						LA112_: ;
						if (!T111_) goto LA113_;
						nep1CheckDefImpl__linter_110((*(*c).graph).config, (*e).info, e, (*e).kind);
					}
					LA113_: ;
					{
						if (!!((((*e).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0))) goto LA117_;
						{
							if (!!(isPure)) goto LA121_;
							{
								if (!(((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 15))&31U)))!=0)) goto LA125_;
								addInterfaceOverloadableSymAt__lookups_899(c, (*c).currentScope, e);
							}
							goto LA123_;
							LA125_: ;
							{
								addInterfaceDecl__lookups_879(c, e);
							}
							LA123_: ;
						}
						goto LA119_;
						LA121_: ;
						{
							declarePureEnumField__importer_61(c, e);
						}
						LA119_: ;
					}
					LA117_: ;
					{
						NIM_BOOL T131_;
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* conflict;
						T131_ = (NIM_BOOL)0;
						T131_ = isPure;
						if (!(T131_)) goto LA132_;
						conflict = strTableInclReportConflict__astalgo_3335((&symbols), e, NIM_FALSE);
						T131_ = !((conflict == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
						LA132_: ;
						if (!T131_) goto LA133_;
						wrongRedefinition__lookups_805(c, (*e).info, (*(*e).name).s, (*conflict).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15));
					}
					LA133_: ;
					counter += ((NI) 1);
				} LA29: ;
				i_2 += ((NI) 1);
			} LA28: ;
		}
	}
	{
		NIM_BOOL T137_;
		tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA T141_;
		T137_ = (NIM_BOOL)0;
		T137_ = isPure;
		if (!(T137_)) goto LA138_;
		T137_ = (((*(*result).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 1))&63U)))!=0);
		LA138_: ;
		if (!T137_) goto LA139_;
		nimZeroMem((void*)(&T141_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
		nimZeroMem((void*)(&T141_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
		T141_.sym = (*result).sym;
		addPureEnum__semdata_674(c, T141_);
	}
	LA139_: ;
	{
		NIM_BOOL T144_;
		T144_ = (NIM_BOOL)0;
		T144_ = (((*(*e).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
		if (!(T144_)) goto LA145_;
		T144_ = !(hasNull);
		LA145_: ;
		if (!T144_) goto LA146_;
		(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 18)) & 63);
	}
	LA146_: ;
	T148_ = NIM_NIL;
	T148_ = genEnumToStrProc__enumtostr_6(result, (*n).info, (*c).graph, (*c).Sup.idgen);
	setToStringProc__modulegraphs_6035((*c).graph, result, T148_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semStmtListType__sem_5374)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__ast_3198(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semStmt__sem_84(c, (*n)._kind_6.sons->data[i], 0));
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NI T7_;
		NI T10_;
		NI T11_;
		T7_ = (NI)0;
		T7_ = len__ast_3198(n);
		if (!(((NI) 0) < T7_)) goto LA8_;
		T10_ = (NI)0;
		T10_ = len__ast_3198(n);
		result = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[(NI)(T10_ - ((NI) 1))], prev);
		asgnRef((void**) (&(*n).typ), result);
		T11_ = (NI)0;
		T11_ = len__ast_3198(n);
		asgnRef((void**) (&(*(*n)._kind_6.sons->data[(NI)(T11_ - ((NI) 1))]).typ), result);
	}
	goto LA5_;
	LA8_: ;
	{
		result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semBlockType__sem_5402)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	result = NIM_NIL;
	(*(*c).p).nestedBlockCounter += ((NI) 1);
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T6_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22), (*n)._kind_6.sons->data[((NI) 0)], c);
		addDecl__lookups_845(c, T6_);
	}
	LA4_: ;
	result = semStmtListType__sem_5374(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
	asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), result);
	asgnRef((void**) (&(*n).typ), result);
	closeScope__lookups_101(c);
	(*(*c).p).nestedBlockCounter -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, semTypeNode__sem_80)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
	(*c).inTypeContext += ((NI) 1);
	{
		if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 11))) goto LA3_;
		suggestExpr__sigmatch_6536(c, n);
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	{
		result = (*n).typ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	{
		checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
		result = semTypeOf__sem_5872(c, (*n)._kind_6.sons->data[((NI) 0)], prev);
		{
			if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA9_;
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 29)) & 63);
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	{
		{
			NI T14_;
			T14_ = (NI)0;
			T14_ = len__ast_3198(n);
			if (!(T14_ == ((NI) 1))) goto LA15_;
			result = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 0)], prev);
		}
		goto LA12_;
		LA15_: ;
		{
			result = semAnonTuple__sem_3569(c, n, prev);
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		result = semAnonTuple__sem_3569(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
		x = (*n)._kind_6.sons->data[((NI) 0)];
		switch ((*x).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			ident = (*x)._kind_5.ident;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			ident = (*(*x)._kind_4.sym).name;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57):
		{
			ident = (*(*(*x)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name;
		}
		break;
		default:
		{
			ident = ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL);
		}
		break;
		}
		{
			NIM_BOOL T26_;
			NIM_BOOL T27_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
			T26_ = (NIM_BOOL)0;
			T27_ = (NIM_BOOL)0;
			T27_ = eqeq___idents_220(ident, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
			T26_ = !(T27_);
			if (!(T26_)) goto LA28_;
			T26_ = eqStrings((*ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_27));
			LA28_: ;
			if (!T26_) goto LA29_;
			b = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3198(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA33;
						i = i_2;
						add__ast_4797(b, (*n)._kind_6.sons->data[i]);
						i_2 += ((NI) 1);
					} LA33: ;
				}
			}
			result = semTypeNode__sem_80(c, b, prev);
		}
		goto LA24_;
		LA29_: ;
		{
			NIM_BOOL T35_;
			NIM_BOOL T36_;
			T35_ = (NIM_BOOL)0;
			T36_ = (NIM_BOOL)0;
			T36_ = eqeq___idents_220(ident, ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL));
			T35_ = !(T36_);
			if (!(T35_)) goto LA37_;
			T35_ = ((*ident).id == ((NI) 71));
			LA37_: ;
			if (!T35_) goto LA38_;
			result = semRangeAux__sem_3219(c, n, prev);
		}
		goto LA24_;
		LA38_: ;
		{
			NIM_BOOL T41_;
			NI T43_;
			T41_ = (NIM_BOOL)0;
			T41_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
			if (!(T41_)) goto LA42_;
			T43_ = (NI)0;
			T43_ = len__ast_3198(n);
			T41_ = (T43_ == ((NI) 2));
			LA42_: ;
			if (!T41_) goto LA44_;
			result = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T48_;
				T48_ = NIM_NIL;
				T48_ = skipTypes__ast_3735(result, TM__rF9caJawfOjYTjsgLVUSGFA_39);
				if (!((*T48_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9) && (*T48_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10) || (*T48_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*T48_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) && (*T48_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T48_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25) && (*T48_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26) || (*T48_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29) || (*T48_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50))) goto LA49_;
				{
					if (!(((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0)) goto LA53_;
					result = freshType__sem_5619(c, result, prev);
					(*result).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17)) & 63));
				}
				LA53_: ;
			}
			goto LA46_;
			LA49_: ;
			{
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_40), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_41, NIM_FALSE);
			}
			LA46_: ;
		}
		goto LA24_;
		LA44_: ;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56)))) goto LA57_;
			result = semTypeExpr__sem_5593(c, n, prev);
		}
		goto LA24_;
		LA57_: ;
		{
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* op;
			op = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
			{
				NIM_BOOL T62_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* t1;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* t2;
				T62_ = (NIM_BOOL)0;
				T62_ = ((*op).id == ((NI) 2) || (*op).id == ((NI) 47));
				if (T62_) goto LA63_;
				T62_ = eqStrings((*op).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_44));
				LA63_: ;
				if (!T62_) goto LA64_;
				checkSonsLen__semdata_1077(n, ((NI) 3), (*(*c).graph).config);
				t1 = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
				t2 = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
				{
					if (!(t1 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA68_;
					liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_45, NIM_FALSE);
					result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
				}
				goto LA66_;
				LA68_: ;
				{
					if (!(t2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA71_;
					liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 2)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_46, NIM_FALSE);
					result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
				}
				goto LA66_;
				LA71_: ;
				{
					{
						if (!((*op).id == ((NI) 2))) goto LA76_;
						result = makeAndType__semdata_855(c, t1, t2);
					}
					goto LA74_;
					LA76_: ;
					{
						result = makeOrType__semdata_890(c, t1, t2);
					}
					LA74_: ;
				}
				LA66_: ;
			}
			goto LA60_;
			LA64_: ;
			{
				NI T82_;
				if (!((*op).id == ((NI) 43))) goto LA80_;
				T82_ = (NI)0;
				T82_ = len__ast_3198(n);
				switch (T82_) {
				case ((NI) 3):
				{
					tyObject_TType__facALICuu8zUj0hjvbTLFg* resolvedType;
					result = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
					{
						NIM_BOOL T86_;
						T86_ = (NIM_BOOL)0;
						T86_ = ((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
						if (!(T86_)) goto LA87_;
						T86_ = !((((*result).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0));
						LA87_: ;
						if (!T86_) goto LA88_;
						result = base__types_63(result);
					}
					LA88_: ;
					{
						if (!!(((*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)))) goto LA92_;
						liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_47), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_48, NIM_FALSE);
					}
					LA92_: ;
					{
						NIM_BOOL T96_;
						T96_ = (NIM_BOOL)0;
						T96_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 5))&31U)))!=0));
						if (!(T96_)) goto LA97_;
						T96_ = !((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 14))&31U)))!=0));
						LA97_: ;
						if (!T96_) goto LA98_;
						liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_49), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_50, NIM_FALSE);
					}
					LA98_: ;
					resolvedType = skipTypes__ast_3735(result, TM__rF9caJawfOjYTjsgLVUSGFA_39);
					switch ((*resolvedType).kind) {
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
					{
						tyArray__jlWPjgtbdjE069arIWHC9c9bg T101_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T102_;
						nimZeroMem((void*)T101_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
						T101_[0] = copyTree__ast_4431(n);
						T102_ = NIM_NIL;
						T102_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 128), T101_, 1);
						result = makeTypeFromExpr__semdata_804(c, T102_);
					}
					break;
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
					case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
					{
						result = freshType__sem_5619(c, result, prev);
						(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17)) & 63);
					}
					break;
					default:
					{
						liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_40), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_51, NIM_FALSE);
					}
					break;
					}
				}
				break;
				case ((NI) 2):
				{
					tyObject_TType__facALICuu8zUj0hjvbTLFg* negated;
					negated = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
					result = makeNotType__semdata_945(c, negated);
				}
				break;
				default:
				{
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_40), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_52, NIM_FALSE);
				}
				break;
				}
			}
			goto LA60_;
			LA80_: ;
			{
				if (!((*op).id == ((NI) 50))) goto LA108_;
				result = semAnyRef__sem_4568(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), prev);
			}
			goto LA60_;
			LA108_: ;
			{
				if (!((*op).id == ((NI) 52))) goto LA111_;
				result = semAnyRef__sem_4568(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22), prev);
			}
			goto LA60_;
			LA111_: ;
			{
				if (!((*op).id == ((NI) 60))) goto LA114_;
				checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
				result = semTypeOf__sem_5872(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
			}
			goto LA60_;
			LA114_: ;
			{
				NIM_BOOL T117_;
				NIM_BOOL T118_;
				T117_ = (NIM_BOOL)0;
				T118_ = (NIM_BOOL)0;
				T118_ = eqStrings((*op).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_509));
				if (!(T118_)) goto LA119_;
				T118_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				LA119_: ;
				T117_ = T118_;
				if (!(T117_)) goto LA120_;
				T117_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18));
				LA120_: ;
				if (!T117_) goto LA121_;
				result = semTypeOf2__sem_5878(c, n, prev);
			}
			goto LA60_;
			LA121_: ;
			{
				NIM_BOOL T124_;
				NIM_BOOL T125_;
				NI T128_;
				T124_ = (NIM_BOOL)0;
				T125_ = (NIM_BOOL)0;
				T125_ = eqStrings((*op).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_511));
				if (!(T125_)) goto LA126_;
				T125_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0));
				LA126_: ;
				T124_ = T125_;
				if (!(T124_)) goto LA127_;
				T128_ = (NI)0;
				T128_ = len__ast_3198(n);
				T124_ = (T128_ == ((NI) 2));
				LA127_: ;
				if (!T124_) goto LA129_;
				result = semTypeExpr__sem_5593(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
			}
			goto LA60_;
			LA129_: ;
			{
				{
					NIM_BOOL T134_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T138_;
					T134_ = (NIM_BOOL)0;
					T134_ = (((NI) 0) < (*c).inGenericContext);
					if (!(T134_)) goto LA135_;
					T134_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27));
					LA135_: ;
					if (!T134_) goto LA136_;
					T138_ = NIM_NIL;
					T138_ = copyTree__ast_4431(n);
					result = makeTypeFromExpr__semdata_804(c, T138_);
				}
				goto LA132_;
				LA136_: ;
				{
					result = semTypeExpr__sem_5593(c, n, prev);
				}
				LA132_: ;
			}
			LA60_: ;
		}
		LA24_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* whenResult;
		whenResult = semWhen__sem_515(c, n, NIM_FALSE);
		{
			if (!((*whenResult).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA143_;
			transitionSonsKind__ast_4359(whenResult, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 128));
		}
		LA143_: ;
		result = semTypeNode__sem_80(c, whenResult, prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* head;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*c).graph).config);
		head = (*n)._kind_6.sons->data[((NI) 0)];
		{
			if (!!(((*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*head).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)))) goto LA148_;
			s = semTypeIdent__sem_3474(c, head);
		}
		goto LA146_;
		LA148_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T151_;
			T151_ = NIM_NIL;
			T151_ = semExpr__sem_52(c, head, 0);
			s = symFromExpectedTypeNode__sem_5854(c, T151_);
		}
		LA146_: ;
		switch ((*s).magic) {
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 159):
		{
			result = semArray__sem_3419(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 160):
		{
			result = semContainer__sem_3160(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_531), prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 271):
		{
			result = semContainer__sem_3160(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_532), prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 161):
		{
			result = semRange__sem_3307(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 162):
		{
			result = semSet__sem_3120(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 171):
		{
			result = semOrdinal__sem_3459(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 172):
		{
			result = semIterableType__sem_3449(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 163):
		{
			result = semContainer__sem_3160(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_550), prev);
			{
				if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA162_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
			}
			LA162_: ;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 164):
		{
			result = semVarargs__sem_3167(c, n, prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 195):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 17):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18):
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T166_;
			T166_ = NIM_NIL;
			T166_ = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
			result = makeTypeDesc__concepts_49(c, T166_);
			(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 29)) & 63);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 24):
		{
			result = semStaticType__sem_128(c, (*n)._kind_6.sons->data[((NI) 1)], prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 193):
		{
			result = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* old;
				tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T173_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T174_;
				if (!!((result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA171_;
				old = result;
				T173_ = nextTypeId__ast_3151((*c).Sup.idgen);
				T174_ = NIM_NIL;
				T174_ = getCurrOwner__semdata_315(c);
				result = copyType__ast_4046(result, T173_, T174_);
				copyTypeProps__modulegraphs_8872((*c).graph, ((NI) ((*(*c).Sup.idgen).module)), result, old);
				{
					NI i_3;
					NI colontmp__2;
					NI i_4;
					i_3 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = len__ast_3198(n);
					i_4 = ((NI) 1);
					{
						while (1) {
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T178_;
							if (!(i_4 < colontmp__2)) goto LA177;
							i_3 = i_4;
							T178_ = NIM_NIL;
							T178_ = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[i_3], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
							rawAddSon__ast_4288(result, T178_, NIM_TRUE);
							i_4 += ((NI) 1);
						} LA177: ;
					}
				}
			}
			LA171_: ;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 168):
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T180_;
			result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13), prev, c);
			T180_ = NIM_NIL;
			T180_ = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
			addSonSkipIntLit__magicsys_136(result, T180_, (*c).Sup.idgen);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 167):
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
			result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23), prev, c);
			base = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
			{
				if (!((*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*base).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA184_;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_553), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_554, NIM_FALSE);
				base = (*base).sons->data[((NI) 0)];
			}
			LA184_: ;
			addSonSkipIntLit__magicsys_136(result, base, (*c).Sup.idgen);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 165):
		{
			result = semAnyRef__sem_4568(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22), prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 166):
		{
			result = semAnyRef__sem_4568(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), prev);
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 170):
		{
			result = semTuple__sem_3578(c, n, prev);
		}
		break;
		default:
		{
			result = semGeneric__sem_5453(c, n, s, prev);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeExpr;
		typeExpr = semExpr__sem_52(c, n, 0);
		{
			if (!((*typeExpr).typ == 0)) goto LA193_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_574), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_575, NIM_FALSE);
			result = errorType__semdata_1002(c);
		}
		goto LA191_;
		LA193_: ;
		{
			if (!((*(*typeExpr).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61))) goto LA196_;
			result = (*typeExpr).typ;
		}
		goto LA191_;
		LA196_: ;
		{
			if (!!(((*(*typeExpr).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA199_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_576, NIM_FALSE);
			result = errorType__semdata_1002(c);
		}
		goto LA191_;
		LA199_: ;
		{
			result = base__types_63((*typeExpr).typ);
			{
				NIM_BOOL T204_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* preprocessed;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T208_;
				T204_ = (NIM_BOOL)0;
				T204_ = isMetaType__ast_3495(result);
				if (!(T204_)) goto LA205_;
				T204_ = !(((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52)));
				LA205_: ;
				if (!T204_) goto LA206_;
				preprocessed = semGenericStmt__sem_2885(c, n);
				T208_ = NIM_NIL;
				T208_ = copyTree__ast_4431(preprocessed);
				result = makeTypeFromExpr__semdata_804(c, T208_);
			}
			goto LA202_;
			LA206_: ;
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* alias;
				alias = maybeAliasType__sem_5571(c, result, prev);
				{
					if (!!((alias == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA212_;
					result = alias;
				}
				LA212_: ;
			}
			LA202_: ;
		}
		LA191_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
		s_2 = semTypeIdent__sem_3474(c, n);
		{
			if (!((*s_2).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA217_;
			{
				if (!!(((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0)))) goto LA221_;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_577, NIM_FALSE);
			}
			LA221_: ;
			result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		}
		goto LA215_;
		LA217_: ;
		{
			NIM_BOOL T224_;
			T224_ = (NIM_BOOL)0;
			T224_ = ((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T224_)) goto LA225_;
			T224_ = ((*(*s_2).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			LA225_: ;
			if (!T224_) goto LA226_;
			{
				NIM_BOOL T230_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T231_;
				NimStringDesc* argX60gensym1486_;
				T230_ = (NIM_BOOL)0;
				T231_ = NIM_NIL;
				T231_ = base__types_63((*s_2).typ);
				T230_ = !(((*T231_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
				if (!(T230_)) goto LA232_;
				T230_ = (prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
				LA232_: ;
				if (!!(T230_)) goto LA233_;
				argX60gensym1486_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_578);
				internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym1486_, TM__rF9caJawfOjYTjsgLVUSGFA_578);
			}
			LA233_: ;
			result = base__types_63((*s_2).typ);
		}
		goto LA215_;
		LA226_: ;
		{
			if (!(prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA236_;
			result = (*s_2).typ;
		}
		goto LA215_;
		LA236_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* alias_2;
			alias_2 = maybeAliasType__sem_5571(c, (*s_2).typ, prev);
			{
				if (!!((alias_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA241_;
				result = alias_2;
			}
			goto LA239_;
			LA241_: ;
			{
				assignType__ast_3976(prev, (*s_2).typ);
				{
					if (!!(((*(*s_2).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*(*s_2).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*(*s_2).typ).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*(*s_2).typ).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*(*s_2).typ).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*(*s_2).typ).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*(*s_2).typ).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*(*s_2).typ).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44)))) goto LA246_;
					(*prev).Sup.itemId = (*(*s_2).typ).Sup.itemId;
				}
				LA246_: ;
				result = prev;
			}
			LA239_: ;
		}
		LA215_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_3;
		s_3 = getGenSym__semdata_408(c, (*n)._kind_4.sym);
		{
			NIM_BOOL T251_;
			NIM_BOOL T253_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* alias_3;
			T251_ = (NIM_BOOL)0;
			T251_ = !(((*s_3).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T251_)) goto LA252_;
			T253_ = (NIM_BOOL)0;
			T253_ = ((*s_3).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
			if (T253_) goto LA254_;
			T253_ = ((*(*s_3).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			LA254_: ;
			T251_ = T253_;
			LA252_: ;
			if (!T251_) goto LA255_;
			{
				if (!((*s_3).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7))) goto LA259_;
				t = (*s_3).typ;
			}
			goto LA257_;
			LA259_: ;
			{
				{
					NIM_BOOL T264_;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T265_;
					NimStringDesc* argX60gensym1493_;
					T264_ = (NIM_BOOL)0;
					T265_ = NIM_NIL;
					T265_ = base__types_63((*s_3).typ);
					T264_ = !(((*T265_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
					if (!(T264_)) goto LA266_;
					T264_ = (prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
					LA266_: ;
					if (!!(T264_)) goto LA267_;
					argX60gensym1493_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_579);
					internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym1493_, TM__rF9caJawfOjYTjsgLVUSGFA_579);
				}
				LA267_: ;
				t = base__types_63((*s_3).typ);
			}
			LA257_: ;
			alias_3 = maybeAliasType__sem_5571(c, t, prev);
			{
				if (!!((alias_3 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA271_;
				result = alias_3;
			}
			goto LA269_;
			LA271_: ;
			{
				if (!(prev == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA274_;
				result = t;
			}
			goto LA269_;
			LA274_: ;
			{
				assignType__ast_3976(prev, t);
				result = prev;
			}
			LA269_: ;
			markUsed__sigmatch_85(c, (*n).info, (*n)._kind_4.sym);
		}
		goto LA249_;
		LA255_: ;
		{
			{
				if (!!(((*s_3).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0)))) goto LA280_;
				{
					tyArray__nHXaesL0DJZHyVS07ARPRA T286_;
					NimStringDesc* T287_;
					if (!((*s_3).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA284_;
					nimZeroMem((void*)T286_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
					T286_[0] = copyString((*(*s_3).name).s);
					T287_ = NIM_NIL;
					T287_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_580), T286_, 1);
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T287_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_581, NIM_FALSE);
				}
				goto LA282_;
				LA284_: ;
				{
					tyArray__Re75IspeoxXy2oCZHwcRrA T289_;
					NimStringDesc* T290_;
					nimZeroMem((void*)T289_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T289_[0] = copyString((*(*s_3).name).s);
					T289_[1] = toHumanStr__ast_5158((*s_3).kind);
					T290_ = NIM_NIL;
					T290_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_582), T289_, 2);
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T290_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_583, NIM_FALSE);
				}
				LA282_: ;
			}
			LA280_: ;
			result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
		}
		LA249_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133):
	{
		result = semObjectNode__sem_4464(c, n, prev, 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134):
	{
		result = semTuple__sem_3578(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 135):
	{
		result = newConstraint__sem_2929(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 136):
	{
		result = semTypeClass__sem_5629(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141):
	{
		result = semAnyRef__sem_4568(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22), prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142):
	{
		result = semAnyRef__sem_4568(c, n, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143):
	{
		result = semVarOutType__sem_3185(c, n, prev, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 146):
	{
		result = semDistinct__sem_3206(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 137):
	{
		result = semStaticType__sem_128(c, (*n)._kind_6.sons->data[((NI) 0)], prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 148):
	{
		{
			NI T303_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* child;
			T303_ = (NI)0;
			T303_ = len__ast_3198(n);
			if (!(T303_ == ((NI) 0))) goto LA304_;
			result = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51), c);
			child = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25), c);
			(*child).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15)) & 63);
			addSonSkipIntLit__magicsys_136(result, child, (*c).Sup.idgen);
		}
		goto LA301_;
		LA304_: ;
		{
			result = semProcTypeWithScope__sem_5803(c, n, prev, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
			{
				if (!((*result).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25))) goto LA309_;
				(*result).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15)) & 63);
				{
					NIM_BOOL T313_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T314_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T316_;
					T313_ = (NIM_BOOL)0;
					T314_ = NIM_NIL;
					T314_ = lastSon__ast_4832(n);
					T313_ = ((*T314_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90));
					if (!(T313_)) goto LA315_;
					T316_ = NIM_NIL;
					T316_ = lastSon__ast_4832(n);
					T313_ = hasPragma__pragmas_2498(T316_, ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 147));
					LA315_: ;
					if (!T313_) goto LA317_;
					(*result).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5);
				}
				goto LA311_;
				LA317_: ;
				{
					(*result).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9);
				}
				LA311_: ;
			}
			LA309_: ;
		}
		LA301_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 147):
	{
		{
			NI T323_;
			T323_ = (NI)0;
			T323_ = len__ast_3198(n);
			if (!(T323_ == ((NI) 0))) goto LA324_;
			result = newConstraint__sem_2929(c, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		}
		goto LA321_;
		LA324_: ;
		{
			result = semProcTypeWithScope__sem_5803(c, n, prev, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
		}
		LA321_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150):
	{
		result = semEnum__sem_2937(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
	{
		result = (*n).typ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 128):
	{
		result = semStmtListType__sem_5374(c, n, prev);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 129):
	{
		result = semBlockType__sem_5402(c, n, prev);
	}
	break;
	default:
	{
		NimStringDesc* T332_;
		NimStringDesc* T333_;
		T332_ = NIM_NIL;
		T333_ = NIM_NIL;
		T333_ = renderTree__renderer_46(n, 0);
		T332_ = rawNewString((T333_ ? T333_->Sup.len : 0) + 24);
appendString(T332_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_601));
appendString(T332_, T333_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T332_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_602, NIM_FALSE);
		result = newOrPrevType__sem_2916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50), prev, c);
	}
	break;
	}
	asgnRef((void**) (&(*n).typ), result);
	(*c).inTypeContext -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAfterMacroCall__sem_2787)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* macroResult, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T5_;
	NI T6_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T53_;
	result = NIM_NIL;
	(*(*(*c).graph).config).evalTemplateCounter += ((NI) 1);
	{
		if (!(((NI) 1000) < (*(*(*c).graph).config).evalTemplateCounter)) goto LA3_;
		liMessage__msgs_1118((*(*c).graph).config, (*s).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_14), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_15, NIM_FALSE);
	}
	LA3_: ;
	T5_ = NIM_NIL;
	T5_ = getModule__astalgo_216((*s).owner);
	asgnRef((void**) (&(*c).friendModules), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*c).friendModules), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
	T6_ = (*c).friendModules->Sup.len++;
	asgnRef((void**) (&(*c).friendModules->data[T6_]), T5_);
	result = macroResult;
	resetSemFlag__sem_2771(result);
	{
		if (!((*(*s).typ).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA9_;
		result = semStmt__sem_84(c, result, flags);
	}
	goto LA7_;
	LA9_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* retType;
		retType = (*(*s).typ).sons->data[((NI) 0)];
		{
			NIM_BOOL T14_;
			NIM_BOOL T15_;
			NI T18_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*retType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			if (!(T15_)) goto LA16_;
			T15_ = (((*retType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0);
			LA16_: ;
			T14_ = T15_;
			if (!(T14_)) goto LA17_;
			T18_ = (NI)0;
			T18_ = len__ast_4002(retType);
			T14_ = (T18_ == ((NI) 1));
			LA17_: ;
			if (!T14_) goto LA19_;
			retType = (*retType).sons->data[((NI) 0)];
		}
		LA19_: ;
		switch ((*retType).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
		{
			result = semExpr__sem_52(c, result, flags);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
		{
			result = semExprWithType__sem_56(c, result, flags);
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA26_;
				transitionSonsKind__ast_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 128));
			}
			LA26_: ;
			typ = semTypeNode__sem_80(c, result, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
			{
				NimStringDesc* T32_;
				NimStringDesc* T33_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T34_;
				if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA30_;
				T32_ = NIM_NIL;
				T33_ = NIM_NIL;
				T33_ = renderTree__renderer_46(result, 4);
				T32_ = rawNewString((T33_ ? T33_->Sup.len : 0) + 24);
appendString(T32_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_68));
appendString(T32_, T33_);
				liMessage__msgs_1118((*(*c).graph).config, (*result).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T32_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_603, NIM_FALSE);
				T34_ = NIM_NIL;
				T34_ = errorSym__lookups_506(c, result);
				result = newSymNode__ast_3716(T34_);
			}
			goto LA28_;
			LA30_: ;
			{
				asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, typ));
			}
			LA28_: ;
		}
		break;
		default:
		{
			{
				NIM_BOOL T39_;
				tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q paramTypes;
				T39_ = (NIM_BOOL)0;
				T39_ = !(((*(*s).ast)._kind_6.sons->data[((NI) 2)] == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
				if (!(T39_)) goto LA40_;
				T39_ = isMetaType__ast_3495(retType);
				LA40_: ;
				if (!T39_) goto LA41_;
				nimZeroMem((void*)(&paramTypes), sizeof(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q));
				newIdTable__ast_4102((&paramTypes));
				{
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp;
					param = NIM_NIL;
					value = NIM_NIL;
					gp = (*(*s).ast)._kind_6.sons->data[((NI) 2)];
					{
						NI i;
						NI colontmp_;
						NI i_2;
						i = (NI)0;
						colontmp_ = (NI)0;
						colontmp_ = len__ast_3198(gp);
						i_2 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericParam;
								NI posInCall;
								NI T47_;
								if (!(i_2 < colontmp_)) goto LA46;
								i = i_2;
								genericParam = (*(*gp)._kind_6.sons->data[i])._kind_4.sym;
								T47_ = (NI)0;
								T47_ = len__ast_4002((*s).typ);
								posInCall = (NI)(T47_ + i);
								{
									NI T50_;
									T50_ = (NI)0;
									T50_ = len__ast_3198(call);
									if (!(posInCall < T50_)) goto LA51_;
									param = genericParam;
									value = (*call)._kind_6.sons->data[posInCall];
									idTablePut__astalgo_70((&paramTypes), (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&((*param).typ)))), (*((RootObj**) (&((*value).typ)))));
								}
								LA51_: ;
								i_2 += ((NI) 1);
							} LA46: ;
						}
					}
				}
				retType = generateTypeInstance__semtypinst_1050(c, paramTypes, (*macroResult).info, retType);
			}
			LA41_: ;
			result = semExpr__sem_52(c, result, flags);
			result = fitNode__sem_70(c, retType, result, (*result).info);
		}
		break;
		}
	}
	LA7_: ;
	(*(*(*c).graph).config).evalTemplateCounter -= ((NI) 1);
	T53_ = NIM_NIL;
	T53_ = pop__icZic_2460((&(*c).friendModules));
	(void)(T53_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMacroExpr__sem_524)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
	NI genericParams;
	NI suppliedParams;
	NI T6_;
	result = NIM_NIL;
	rememberExpansion__semdata_3656(c, (*nOrig).info, sym);
	pushInfoContext__msgs_490((*(*c).graph).config, (*nOrig).info, (*(*sym).name).s);
	info = getCallLineInfo__sem_2390(n);
	markUsed__sigmatch_85(c, info, sym);
	{
		NimStringDesc* T5_;
		if (!(sym == (*(*c).p).owner)) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_10), (*(*sym).name).s);
		liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T5_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_11, NIM_FALSE);
	}
	LA3_: ;
	genericParams = len__ast_3198((*(*sym).ast)._kind_6.sons->data[((NI) 2)]);
	T6_ = (NI)0;
	T6_ = safeLen__ast_3191(n);
	suppliedParams = (((NI)(T6_ - ((NI) 1)) >= ((NI) 0)) ? (NI)(T6_ - ((NI) 1)) : ((NI) 0));
	{
		NimStringDesc* T11_;
		NimStringDesc* T12_;
		if (!(suppliedParams < genericParams)) goto LA9_;
		T11_ = NIM_NIL;
		T11_ = renderTree__renderer_46(n, 0);
		T12_ = NIM_NIL;
		T12_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_12), T11_);
		liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T12_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_13, NIM_FALSE);
	}
	LA9_: ;
	result = evalMacroCall__vm_13857((*c).module, (*c).Sup.idgen, (*c).graph, (*c).templInstCounter, n, nOrig, sym);
	{
		if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 13))&31U)))!=0))) goto LA15_;
		result = semAfterMacroCall__sem_2787(c, n, result, sym, flags);
	}
	LA15_: ;
	{
		NIM_BOOL T19_;
		NimStringDesc* T22_;
		T19_ = (NIM_BOOL)0;
		T19_ = nsthasKey((*(*(*c).graph).config).macrosToExpand, (*(*sym).name).s);
		if (!T19_) goto LA20_;
		T22_ = NIM_NIL;
		T22_ = renderTree__renderer_46(result, 0);
		liMessage__msgs_1118((*(*c).graph).config, (*nOrig).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 98), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_604, NIM_FALSE);
	}
	LA20_: ;
	result = wrapInComesFrom__evaltempl_260((*nOrig).info, sym, result);
	popInfoContext__msgs_507((*(*c).graph).config);
	return result;
}
static N_INLINE(NIM_BOOL, hasWarn__options_557)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA note) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((*conf).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 13))&31U)))!=0);
	if (!(T1_)) goto LA2_;
	T1_ = (((*conf).notes[(NU)((note- 17))>>3] &(1U<<((NU)((note- 17))&7U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSym__sem_16971)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
{	result = NIM_NIL;
	s = getGenSym__semdata_408(c, sym);
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45)))) goto LA4_;
			markUsed__sigmatch_85(c, (*n).info, s);
		}
		LA4_: ;
		typ = skipTypes__ast_3735((*s).typ, TM__rF9caJawfOjYTjsgLVUSGFA_5);
		switch ((*typ).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
		{
			{
				if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA9_;
				result = inlineConst__sem_14004(c, n, s);
			}
			goto LA7_;
			LA9_: ;
			{
				result = newSymNode__ast_3719(s, (*n).info);
			}
			LA7_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				NI T15_;
				T15_ = (NI)0;
				T15_ = safeLen__ast_3191((*s).ast);
				if (!(T15_ == ((NI) 0))) goto LA16_;
				result = inlineConst__sem_14004(c, n, s);
			}
			goto LA13_;
			LA16_: ;
			{
				result = newSymNode__ast_3719(s, (*n).info);
			}
			LA13_: ;
		}
		break;
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
		{
			{
				if (!!(((*typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA22_;
				result = (*typ).n;
				asgnRef((void**) (&(*result).typ), base__types_63(typ));
			}
			goto LA20_;
			LA22_: ;
			{
				result = newSymNode__ast_3719(s, (*n).info);
			}
			LA20_: ;
		}
		break;
		default:
		{
			result = newSymNode__ast_3719(s, (*n).info);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
	{
		{
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			NI T32_;
			NIM_BOOL T34_;
			NI T36_;
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T30_ = ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 14))&31U)))!=0);
			if (!(T30_)) goto LA31_;
			T32_ = (NI)0;
			T32_ = len__ast_3198((*(*s).ast)._kind_6.sons->data[((NI) 2)]);
			T30_ = (((NI) 0) < T32_);
			LA31_: ;
			T29_ = T30_;
			if (T29_) goto LA33_;
			T34_ = (NIM_BOOL)0;
			T34_ = !(((*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)));
			if (!(T34_)) goto LA35_;
			T36_ = (NI)0;
			T36_ = requiredParams__ast_4714(s);
			T34_ = (((NI) 0) < T36_);
			LA35_: ;
			T29_ = T34_;
			LA33_: ;
			if (!T29_) goto LA37_;
			markUsed__sigmatch_85(c, (*n).info, s);
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
		}
		goto LA27_;
		LA37_: ;
		{
			result = semMacroExpr__sem_524(c, n, n, s, flags);
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		{
			NIM_BOOL T43_;
			NIM_BOOL T44_;
			NIM_BOOL T45_;
			NI T47_;
			NIM_BOOL T49_;
			NI T51_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
			T43_ = (NIM_BOOL)0;
			T44_ = (NIM_BOOL)0;
			T45_ = (NIM_BOOL)0;
			T45_ = ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 14))&31U)))!=0);
			if (!(T45_)) goto LA46_;
			T47_ = (NI)0;
			T47_ = len__ast_3198((*(*s).ast)._kind_6.sons->data[((NI) 2)]);
			T45_ = (((NI) 0) < T47_);
			LA46_: ;
			T44_ = T45_;
			if (T44_) goto LA48_;
			T49_ = (NIM_BOOL)0;
			T49_ = !(((*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)));
			if (!(T49_)) goto LA50_;
			T51_ = (NI)0;
			T51_ = requiredParams__ast_4714(s);
			T49_ = (((NI) 0) < T51_);
			LA50_: ;
			T44_ = T49_;
			LA48_: ;
			T43_ = T44_;
			if (T43_) goto LA52_;
			T43_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0);
			LA52_: ;
			if (!T43_) goto LA53_;
			info = getCallLineInfo__sem_2390(n);
			markUsed__sigmatch_85(c, info, s);
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
		}
		goto LA41_;
		LA53_: ;
		{
			result = semTemplateExpr__sem_519(c, n, s, flags);
		}
		LA41_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		{
			NIM_BOOL T59_;
			NIM_BOOL T60_;
			T59_ = (NIM_BOOL)0;
			T60_ = (NIM_BOOL)0;
			T60_ = !(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T60_)) goto LA61_;
			T60_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
			LA61_: ;
			T59_ = T60_;
			if (!(T59_)) goto LA62_;
			T59_ = !(((*(*s).typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			LA62_: ;
			if (!T59_) goto LA63_;
			result = (*(*s).typ).n;
			goto BeforeRet_;
		}
		goto LA57_;
		LA63_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0)) goto LA66_;
			{
				NimStringDesc* argX60gensym4437_;
				if (!!(!(((*s).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))))) goto LA70_;
				argX60gensym4437_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_605);
				internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym4437_, TM__rF9caJawfOjYTjsgLVUSGFA_605);
			}
			LA70_: ;
		}
		goto LA57_;
		LA66_: ;
		LA57_: ;
		result = newSymNode__ast_3719(s, (*n).info);
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21):
	{
		{
			if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263))) goto LA75_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_606), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_607, NIM_FALSE);
		}
		LA75_: ;
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45)))) goto LA79_;
			markUsed__sigmatch_85(c, (*n).info, s);
		}
		LA79_: ;
		result = newSymNode__ast_3719(s, (*n).info);
		{
			NIM_BOOL T83_;
			T83_ = (NIM_BOOL)0;
			T83_ = hasWarn__options_557((*(*c).graph).config, ((tyEnum_TMsgKind__0i9asqIc9c4yR029cWipkGoaA) 60));
			if (!T83_) goto LA84_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 60), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_608, NIM_FALSE);
		}
		LA84_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
	{
		{
			if (!((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA89_;
			result = newSymNode__ast_3719(s, (*n).info);
			asgnRef((void**) (&(*result).typ), (*s).typ);
		}
		goto LA87_;
		LA89_: ;
		{
			if (!!(((*s).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA92_;
			result = semExpr__sem_52(c, (*s).ast, 0);
		}
		goto LA87_;
		LA92_: ;
		{
			asgnRef((void**) (&(*n).typ), (*s).typ);
			result = n;
			goto BeforeRet_;
		}
		LA87_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
	{
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45)))) goto LA98_;
			markUsed__sigmatch_85(c, (*n).info, s);
		}
		LA98_: ;
		{
			NIM_BOOL T102_;
			NIM_BOOL T103_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T105_;
			T102_ = (NIM_BOOL)0;
			T103_ = (NIM_BOOL)0;
			T103_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
			if (!(T103_)) goto LA104_;
			T105_ = NIM_NIL;
			T105_ = base__types_63((*s).typ);
			T103_ = !(((*T105_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)));
			LA104_: ;
			T102_ = T103_;
			if (!(T102_)) goto LA106_;
			T102_ = !(((*(*s).typ).n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
			LA106_: ;
			if (!T102_) goto LA107_;
			result = (*(*s).typ).n;
			goto BeforeRet_;
		}
		LA107_: ;
		result = newSymNode__ast_3719(s, (*n).info);
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, (*s).typ));
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19):
	{
		tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
		p = (*c).p;
		{
			while (1) {
				NIM_BOOL T112_;
				T112_ = (NIM_BOOL)0;
				T112_ = !((p == ((tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*) NIM_NIL)));
				if (!(T112_)) goto LA113_;
				T112_ = ((*p).selfSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
				LA113_: ;
				if (!T112_) goto LA111;
				p = (*p).next;
			} LA111: ;
		}
		{
			NIM_BOOL T116_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* ty;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check;
			T116_ = (NIM_BOOL)0;
			T116_ = !((p == ((tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*) NIM_NIL)));
			if (!(T116_)) goto LA117_;
			T116_ = !(((*p).selfSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
			LA117_: ;
			if (!T116_) goto LA118_;
			ty = skipTypes__ast_3735((*(*p).selfSym).typ, TM__rF9caJawfOjYTjsgLVUSGFA_609);
			{
				while (1) {
					if (!(((*ty).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 32))&63U)))!=0)) goto LA121;
					ty = skipTypes__ast_3735(ty, TM__rF9caJawfOjYTjsgLVUSGFA_107);
				} LA121: ;
			}
			check = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			{
				if (!((*ty).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA124_;
				{
					while (1) {
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f;
						check = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
						f = lookupInRecordAndBuildCheck__sem_16773(c, n, (*ty).n, (*s).name, &check);
						{
							NIM_BOOL T130_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T138_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T139_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T140_;
							T130_ = (NIM_BOOL)0;
							T130_ = !((f == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
							if (!(T130_)) goto LA131_;
							T130_ = fieldVisible__sigmatch_4944(c, f);
							LA131_: ;
							if (!T130_) goto LA132_;
							{
								if (!!((f == s))) goto LA136_;
								failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_610));
							}
							LA136_: ;
							markUsed__sigmatch_85(c, (*n).info, f);
							result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*n).info, (*f).typ);
							T138_ = NIM_NIL;
							T138_ = newSymNode__ast_3716((*p).selfSym);
							T139_ = NIM_NIL;
							T139_ = makeDeref__sem_9873(T138_);
							add__ast_4797(result, T139_);
							T140_ = NIM_NIL;
							T140_ = newSymNode__ast_3716(f);
							add__ast_4797(result, T140_);
							{
								if (!!((check == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA143_;
								asgnRef((void**) (&(*check)._kind_6.sons->data[((NI) 0)]), result);
								asgnRef((void**) (&(*check).typ), (*result).typ);
								result = check;
							}
							LA143_: ;
							goto BeforeRet_;
						}
						LA132_: ;
						{
							if (!((*ty).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA147_;
							goto LA126;
						}
						LA147_: ;
						ty = skipTypes__ast_3735((*ty).sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_53);
					}
				} LA126: ;
			}
			LA124_: ;
		}
		LA118_: ;
		markUsed__sigmatch_85(c, (*n).info, s);
		result = newSymNode__ast_3719(s, (*n).info);
	}
	break;
	default:
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info_2;
		info_2 = getCallLineInfo__sem_2390(n);
		markUsed__sigmatch_85(c, info_2, s);
		result = newSymNode__ast_3719(s, info_2);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getNilType__sem_20208)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	result = NIM_NIL;
	result = (*c).nilTypeCache;
	{
		if (!(result == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
		result = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5), c);
		(*result).size = ((NI64) ((*(*(*c).graph).config).target.ptrSize));
		(*result).align = ((NI16) ((*(*(*c).graph).config).target.ptrSize));
		asgnRef((void**) (&(*c).nilTypeCache), result);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFieldAccess__sem_13895)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = builtinFieldAccess__sem_17195(c, n, flags);
	{
		if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
		result = dotTransformation__sem_17323(c, n);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStaticExpr__sem_125)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
{	result = NIM_NIL;
	(*c).inStaticContext += ((NI) 1);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	a = semExprWithType__sem_56(c, n, 0);
	closeScope__lookups_101(c);
	(*c).inStaticContext -= ((NI) 1);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		T4_ = NIM_NIL;
		T4_ = findUnresolvedStatic__ast_4956(a);
		if (!!((T4_ == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA5_;
		result = a;
		goto BeforeRet_;
	}
	LA5_: ;
	result = evalStaticExpr__vm_13752((*c).module, (*c).Sup.idgen, (*c).graph, a, (*(*c).p).owner);
	{
		NimStringDesc* T11_;
		NimStringDesc* T12_;
		if (!(result == 0)) goto LA9_;
		T11_ = NIM_NIL;
		T11_ = renderTree__renderer_46(n, 0);
		T12_ = NIM_NIL;
		T12_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_379), T11_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T12_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_616, NIM_FALSE);
		result = (*(*c).graph).emptyNode;
	}
	goto LA7_;
	LA9_: ;
	{
		result = fixupTypeAfterEval__sem_570(c, result, a);
	}
	LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, maybeLiftType__sem_14374)(tyObject_TType__facALICuu8zUj0hjvbTLFg** t, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* lifted;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	T2_ = NIM_NIL;
	T2_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 152), info);
	lifted = liftParamType__sem_4789(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T2_, (*t), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_617), info, NIM_FALSE);
	closeScope__lookups_101(c);
	{
		if (!!((lifted == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA5_;
		unsureAsgnRef((void**) (&(*t)), lifted);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedSym__sem_14383)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	s = qualifiedLookUp__lookups_1233(c, n, 0);
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
	if (!(T2_)) goto LA3_;
	T2_ = (((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_511));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, inferWithMetatype__sem_231)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NIM_BOOL coerceDistincts) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
	result = NIM_NIL;
	nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	newCandidate__sigmatch_195(c, formal, (&m));
	m.coerceDistincts = coerceDistincts;
	result = paramTypesMatch__sigmatch_3583((&m), formal, (*arg).typ, arg, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = m.genericConverter;
		if (!(T3_)) goto LA4_;
		T3_ = !((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		instGenericConvertersArg__sem_2292(c, result, (&m));
	}
	LA5_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T11_;
		if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA9_;
		T11_ = NIM_NIL;
		T11_ = skipTypes__ast_3735(formal, TM__rF9caJawfOjYTjsgLVUSGFA_620);
		asgnRef((void**) (&(*result).typ), generateTypeInstance__semtypinst_1050(c, m.bindings, (*arg).info, T11_));
	}
	goto LA7_;
	LA9_: ;
	{
		typeMismatch__types_3870((*(*c).graph).config, (*arg).info, formal, (*arg).typ, arg);
		result = copyTree__ast_4431(arg);
		asgnRef((void**) (&(*result).typ), formal);
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw, checkConversionBetweenObjects__sem_14020)(tyObject_TType__facALICuu8zUj0hjvbTLFg* castDest, tyObject_TType__facALICuu8zUj0hjvbTLFg* src, NI pointers) {
	tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw result;
	NI diff;
{	result = (tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw)0;
	diff = inheritanceDiff__types_2685(castDest, src);
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (diff == ((NI) IL64(9223372036854775807)));
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((NI) 1) < pointers);
		if (!(T5_)) goto LA6_;
		T5_ = !((diff == ((NI) 0)));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 2);
	}
	goto LA1_;
	LA7_: ;
	{
		result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 0);
	}
	LA1_: ;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, contains__sem_14179)(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ s, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (s.a <= value);
	if (!(T1_)) goto LA2_;
	T1_ = (value <= s.b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ, dotdot___sem_14158)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw a, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw b) {
	tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NIM_BOOL, contains__semfold_120)(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* s, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = lteq___int495056_309((*s).a, value);
	if (!(T1_)) goto LA2_;
	T1_ = lteq___int495056_309(value, (*s).b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(void, dotdot___semfold_99)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b, tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* Result) {
	nimZeroMem((void*)Result, sizeof(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw));
	(*Result).a = a;
	(*Result).b = b;
}
static N_INLINE(NIM_BOOL, contains__sem_14232)(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw* s, NI64 value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = lteq___int495056_745((*s).a, value);
	if (!(T1_)) goto LA2_;
	T1_ = lteq___int495056_752(value, (*s).b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, contains__semfold_938)(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA s, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (s.a <= value);
	if (!(T1_)) goto LA2_;
	T1_ = (value <= s.b);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA, dotdot___semfold_916)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag a, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag b) {
	tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA));
	result.a = a;
	result.b = b;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw, checkConvertible__sem_14040)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* targetTyp, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src) {
	tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* srcTyp;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* d;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* s;
	NI pointers;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* targetBaseTyp;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* srcBaseTyp;
{	result = (tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw)0;
	srcTyp = skipTypes__ast_3735((*src).typ, TM__rF9caJawfOjYTjsgLVUSGFA_30);
	result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 0);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameType__types_1824(targetTyp, srcTyp, 0);
		if (!(T3_)) goto LA4_;
		T3_ = ((*targetTyp).sym == (*srcTyp).sym);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!!(((*targetTyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) && (*targetTyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*targetTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*targetTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20) || (*targetTyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*targetTyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44)))) goto LA9_;
			result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 1);
		}
		LA9_: ;
		goto BeforeRet_;
	}
	LA5_: ;
	d = skipTypes__ast_3735(targetTyp, TM__rF9caJawfOjYTjsgLVUSGFA_228);
	s = srcTyp;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = ((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) || (*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53));
		if (!(T13_)) goto LA14_;
		T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
		LA14_: ;
		if (!T13_) goto LA15_;
		s = lastSon__ast_3743(s);
	}
	LA15_: ;
	s = skipTypes__ast_3735(s, TM__rF9caJawfOjYTjsgLVUSGFA_621);
	{
		NIM_BOOL T19_;
		T19_ = (NIM_BOOL)0;
		T19_ = ((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
		if (!(T19_)) goto LA20_;
		T19_ = !(((*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
		LA20_: ;
		if (!T19_) goto LA21_;
		s = lastSon__ast_3743(s);
	}
	LA21_: ;
	pointers = ((NI) 0);
	{
		while (1) {
			NIM_BOOL T25_;
			T25_ = (NIM_BOOL)0;
			T25_ = !((d == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T25_)) goto LA26_;
			T25_ = ((*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
			LA26_: ;
			if (!T25_) goto LA24;
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = ((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				if (!(T29_)) goto LA30_;
				T29_ = !(((*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				LA30_: ;
				if (!T29_) goto LA31_;
				s = lastSon__ast_3743(s);
			}
			goto LA27_;
			LA31_: ;
			{
				if (!!(((*d).kind == (*s).kind))) goto LA34_;
				goto LA23;
			}
			goto LA27_;
			LA34_: ;
			{
				d = lastSon__ast_3743(d);
				s = lastSon__ast_3743(s);
			}
			LA27_: ;
			pointers += ((NI) 1);
		} LA24: ;
	} LA23: ;
	targetBaseTyp = skipTypes__ast_3735(targetTyp, TM__rF9caJawfOjYTjsgLVUSGFA_622);
	srcBaseTyp = skipTypes__ast_3735(srcTyp, TM__rF9caJawfOjYTjsgLVUSGFA_459);
	{
		if (!(d == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA39_;
		result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 2);
	}
	goto LA37_;
	LA39_: ;
	{
		NIM_BOOL T42_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T43_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T45_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T48_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T49_;
		T42_ = (NIM_BOOL)0;
		T43_ = NIM_NIL;
		T43_ = skipTypes__ast_3735(d, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		T42_ = ((*T43_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		if (!(T42_)) goto LA44_;
		T45_ = NIM_NIL;
		T45_ = skipTypes__ast_3735(s, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		T42_ = ((*T45_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		LA44_: ;
		if (!T42_) goto LA46_;
		T48_ = NIM_NIL;
		T48_ = skipTypes__ast_3735(d, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		T49_ = NIM_NIL;
		T49_ = skipTypes__ast_3735(s, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		result = checkConversionBetweenObjects__sem_14020(T48_, T49_, pointers);
	}
	goto LA37_;
	LA46_: ;
	{
		NIM_BOOL T51_;
		T51_ = (NIM_BOOL)0;
		T51_ = ((*targetBaseTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*targetBaseTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*targetBaseTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*targetBaseTyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*targetBaseTyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
		if (!(T51_)) goto LA52_;
		T51_ = ((*srcBaseTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*srcBaseTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*srcBaseTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*srcBaseTyp).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*srcBaseTyp).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
		LA52_: ;
		if (!T51_) goto LA53_;
		{
			NIM_BOOL T57_;
			T57_ = (NIM_BOOL)0;
			T57_ = ((*targetTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
			if (!(T57_)) goto LA58_;
			T57_ = ((*srcBaseTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
			LA58_: ;
			if (!T57_) goto LA59_;
			liMessage__msgs_1118((*(*c).graph).config, (*src).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 63), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_623), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_624, NIM_FALSE);
		}
		LA59_: ;
		{
			if (!((*targetTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1))) goto LA63_;
		}
		goto LA61_;
		LA63_: ;
		{
			NIM_BOOL T66_;
			T66_ = (NIM_BOOL)0;
			T66_ = isOrdinalType__types_299(targetTyp, NIM_FALSE);
			if (!T66_) goto LA67_;
			{
				NIM_BOOL T71_;
				tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ T72_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T74_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T75_;
				tyObject_HSlice__fqLtJsaN5foHLgxLTScotw T76_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T77_;
				NIM_BOOL T78_;
				T71_ = (NIM_BOOL)0;
				T72_ = dotdot___sem_14158(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
				T71_ = contains__sem_14179(T72_, (*src).kind);
				if (!(T71_)) goto LA73_;
				T74_ = firstOrd__types_1353((*(*c).graph).config, targetTyp);
				T75_ = lastOrd__types_1470((*(*c).graph).config, targetTyp);
				nimZeroMem((void*)(&T76_), sizeof(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw));
				dotdot___semfold_99(T74_, T75_, (&T76_));
				T77_ = getInt__ast_4592(src);
				T78_ = (NIM_BOOL)0;
				T78_ = contains__semfold_120((&T76_), T77_);
				T71_ = !(T78_);
				LA73_: ;
				if (!T71_) goto LA79_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3);
			}
			goto LA69_;
			LA79_: ;
			{
				NIM_BOOL T82_;
				tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ T83_;
				NIM_BOOL T85_;
				tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA T86_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T88_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T89_;
				tyObject_HSlice__fqLtJsaN5foHLgxLTScotw T90_;
				NIM_BOOL T91_;
				T82_ = (NIM_BOOL)0;
				T83_ = dotdot___sem_14158(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
				T82_ = contains__sem_14179(T83_, (*src).kind);
				if (!(T82_)) goto LA84_;
				T85_ = (NIM_BOOL)0;
				T86_ = (tyEnum_FloatClass__pPga1yW9b8J9cwNnm9b1aPRnA)0;
				T86_ = classify__pureZmath_147((*src)._kind_2.floatVal);
				T85_ = ((112 &((NU8)1<<((NU)(T86_)&7U)))!=0);
				if (T85_) goto LA87_;
				T88_ = firstOrd__types_1353((*(*c).graph).config, targetTyp);
				T89_ = lastOrd__types_1470((*(*c).graph).config, targetTyp);
				nimZeroMem((void*)(&T90_), sizeof(tyObject_HSlice__fqLtJsaN5foHLgxLTScotw));
				dotdot___semfold_99(T88_, T89_, (&T90_));
				T91_ = (NIM_BOOL)0;
				T91_ = contains__sem_14232((&T90_), ((NI64) ((*src)._kind_2.floatVal)));
				T85_ = !(T91_);
				LA87_: ;
				T82_ = T85_;
				LA84_: ;
				if (!T82_) goto LA92_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3);
			}
			goto LA69_;
			LA92_: ;
			LA69_: ;
		}
		goto LA61_;
		LA67_: ;
		{
			tyObject_HSlice__HjDAjiFsTWGmlZ9cd8nEusA T95_;
			NIM_BOOL T96_;
			T95_ = dotdot___semfold_916(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36), ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38));
			T96_ = (NIM_BOOL)0;
			T96_ = contains__semfold_938(T95_, (*targetBaseTyp).kind);
			if (!T96_) goto LA97_;
			{
				NIM_BOOL T101_;
				tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ T102_;
				NIM_BOOL T104_;
				T101_ = (NIM_BOOL)0;
				T102_ = dotdot___sem_14158(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18));
				T101_ = contains__sem_14179(T102_, (*src).kind);
				if (!(T101_)) goto LA103_;
				T104_ = (NIM_BOOL)0;
				T104_ = floatRangeCheck__types_1613((*src)._kind_2.floatVal, targetTyp);
				T101_ = !(T104_);
				LA103_: ;
				if (!T101_) goto LA105_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3);
			}
			goto LA99_;
			LA105_: ;
			{
				NIM_BOOL T108_;
				tyObject_HSlice__Y6rFxyyPl2aa6Yog9bZj9c9bQ T109_;
				NIM_BOOL T111_;
				T108_ = (NIM_BOOL)0;
				T109_ = dotdot___sem_14158(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5), ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
				T108_ = contains__sem_14179(T109_, (*src).kind);
				if (!(T108_)) goto LA110_;
				T111_ = (NIM_BOOL)0;
				T111_ = floatRangeCheck__types_1613(((NF) ((*src)._kind_1.intVal)), targetTyp);
				T108_ = !(T111_);
				LA110_: ;
				if (!T108_) goto LA112_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3);
			}
			goto LA99_;
			LA112_: ;
			LA99_: ;
		}
		goto LA61_;
		LA97_: ;
		LA61_: ;
	}
	goto LA37_;
	LA53_: ;
	{
		tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T115_;
		T115_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
		T115_ = cmpTypes__sigmatch_3047(c, d, s);
		switch (T115_) {
		case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 0):
		case ((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 8):
		{
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T119_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T120_;
				NIM_BOOL T121_;
				T119_ = NIM_NIL;
				T119_ = skipTypes__ast_3735(targetTyp, TM__rF9caJawfOjYTjsgLVUSGFA_228);
				T120_ = NIM_NIL;
				T120_ = skipTypes__ast_3735(srcTyp, TM__rF9caJawfOjYTjsgLVUSGFA_625);
				T121_ = (NIM_BOOL)0;
				T121_ = compareTypes__types_2668(T119_, T120_, ((tyEnum_TDistinctCompare__9bNKHGs63atuMFXnAleTveg) 1), 0);
				if (!!(T121_)) goto LA122_;
				result = ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 2);
			}
			LA122_: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	LA37_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConv__sem_14396)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* targetType;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_613), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_614, NIM_FALSE);
		result = n;
		goto BeforeRet_;
	}
	LA4_: ;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60), (*n).info);
	targetType = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	switch ((*targetType).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	{
		{
			NI T9_;
			NimStringDesc* argX60gensym3724_;
			T9_ = (NI)0;
			T9_ = len__ast_4002(targetType);
			if (!!((((NI) 0) < T9_))) goto LA10_;
			argX60gensym3724_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_615);
			internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym3724_, TM__rF9caJawfOjYTjsgLVUSGFA_615);
		}
		LA10_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T14_;
			T14_ = NIM_NIL;
			T14_ = base__types_63(targetType);
			if (!((*T14_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA15_;
			result = semTypeOf__sem_132(c, n);
			goto BeforeRet_;
		}
		goto LA12_;
		LA15_: ;
		{
			targetType = base__types_63(targetType);
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated;
		evaluated = semStaticExpr__sem_125(c, (*n)._kind_6.sons->data[((NI) 1)]);
		{
			NIM_BOOL T21_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T25_;
			T21_ = (NIM_BOOL)0;
			T21_ = ((*evaluated).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4));
			if (T21_) goto LA22_;
			T21_ = ((*(*evaluated).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			LA22_: ;
			if (!T21_) goto LA23_;
			result = n;
			T25_ = NIM_NIL;
			T25_ = semStaticType__sem_128(c, evaluated, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
			asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, T25_));
			goto BeforeRet_;
		}
		goto LA19_;
		LA23_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T27_;
			T27_ = NIM_NIL;
			T27_ = base__types_63(targetType);
			if (!((*T27_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0))) goto LA28_;
			result = evaluated;
			goto BeforeRet_;
		}
		goto LA19_;
		LA28_: ;
		{
			targetType = base__types_63(targetType);
		}
		LA19_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	maybeLiftType__sem_14374(&targetType, c, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
	{
		NIM_BOOL T34_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T38_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		T34_ = (NIM_BOOL)0;
		T34_ = ((*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
		if (T34_) goto LA35_;
		T34_ = isOwnedSym__sem_14383(c, (*n)._kind_6.sons->data[((NI) 0)]);
		LA35_: ;
		if (!T34_) goto LA36_;
		T38_ = NIM_NIL;
		T38_ = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		baseType = skipTypes__ast_3735(T38_, TM__rF9caJawfOjYTjsgLVUSGFA_123);
		t = newTypeS__semdata_733((*targetType).kind, c);
		{
			if (!((*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA41_;
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63);
		}
		LA41_: ;
		rawAddSonNoPropagationOfTypeFlags__ast_4299(t, baseType);
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*n).info);
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, t));
		goto BeforeRet_;
	}
	LA36_: ;
	T43_ = NIM_NIL;
	T43_ = copyTree__ast_4431((*n)._kind_6.sons->data[((NI) 0)]);
	add__ast_4797(result, T43_);
	{
		NIM_BOOL T46_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T48_;
		T46_ = (NIM_BOOL)0;
		T46_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33));
		if (!(T46_)) goto LA47_;
		T48_ = NIM_NIL;
		T48_ = skipTypes__ast_3735(targetType, TM__rF9caJawfOjYTjsgLVUSGFA_97);
		T46_ = ((*T48_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
		LA47_: ;
		if (!T46_) goto LA49_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_618), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_619, NIM_FALSE);
	}
	LA49_: ;
	op = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NIM_BOOL T53_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* final;
		T53_ = (NIM_BOOL)0;
		T53_ = !(((*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12)));
		if (!(T53_)) goto LA54_;
		T53_ = isMetaType__ast_3495(targetType);
		LA54_: ;
		if (!T53_) goto LA55_;
		final = inferWithMetatype__sem_231(c, targetType, op, NIM_TRUE);
		add__ast_4797(result, final);
		asgnRef((void**) (&(*result).typ), (*final).typ);
		goto BeforeRet_;
	}
	LA55_: ;
	asgnRef((void**) (&(*result).typ), targetType);
	add__ast_4797(result, op);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T61_;
		if (!((*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA59_;
		T61_ = NIM_NIL;
		T61_ = copyTree__ast_4431(result);
		asgnRef((void**) (&(*result).typ), makeTypeFromExpr__semdata_804(c, T61_));
		goto BeforeRet_;
	}
	LA59_: ;
	{
		NIM_BOOL T64_;
		tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw status;
		T64_ = (NIM_BOOL)0;
		T64_ = isSymChoice__sem_14367(op);
		if (!!(T64_)) goto LA65_;
		status = checkConvertible__sem_14040(c, (*result).typ, op);
		switch (status) {
		case ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 0):
		{
			{
				NIM_BOOL T70_;
				T70_ = (NIM_BOOL)0;
				T70_ = ((*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T70_)) goto LA71_;
				T70_ = isGenericRoutine__ast_4646((*op)._kind_4.sym);
				LA71_: ;
				if (!T70_) goto LA72_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), fitNode__sem_70(c, (*result).typ, (*result)._kind_6.sons->data[((NI) 1)], (*result).info));
			}
			goto LA68_;
			LA72_: ;
			{
				NIM_BOOL T75_;
				T75_ = (NIM_BOOL)0;
				T75_ = ((*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*op).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160));
				if (!(T75_)) goto LA76_;
				T75_ = ((*targetType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
				LA76_: ;
				if (!T75_) goto LA77_;
				op = fitNode__sem_70(c, targetType, op, (*result).info);
			}
			goto LA68_;
			LA77_: ;
			LA68_: ;
		}
		break;
		case ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 1):
		{
			NimStringDesc* T80_;
			T80_ = NIM_NIL;
			T80_ = typeToString__types_50((*result).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 77), T80_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_626, NIM_FALSE);
		}
		break;
		case ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 2):
		{
			result = fitNode__sem_70(c, (*result).typ, (*result)._kind_6.sons->data[((NI) 1)], (*result).info);
			{
				tyArray__Re75IspeoxXy2oCZHwcRrA T86_;
				NimStringDesc* T87_;
				if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA84_;
				nimZeroMem((void*)T86_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T86_[0] = typeToString__types_50((*op).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T86_[1] = typeToString__types_50((*result).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T87_ = NIM_NIL;
				T87_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_627), T86_, 2);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T87_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_628, NIM_FALSE);
			}
			LA84_: ;
		}
		break;
		case ((tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw) 3):
		{
			NimStringDesc* value;
			NimStringDesc* T96_;
			NimStringDesc* T97_;
			{
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA T93_;
				if (!((*op).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*op).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA91_;
				T93_ = getInt__ast_4592(op);
				value = dollar___int495056_53(T93_);
			}
			goto LA89_;
			LA91_: ;
			{
				NF T95_;
				T95_ = (NF)0;
				T95_ = getFloat__ast_4607(op);
				value = dollar___system_3118(T95_);
			}
			LA89_: ;
			T96_ = NIM_NIL;
			T97_ = NIM_NIL;
			T97_ = typeToString__types_50((*result).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T96_ = rawNewString((value ? value->Sup.len : 0) + (T97_ ? T97_->Sup.len : 0) + 23);
appendString(T96_, value);
appendString(T96_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_629));
appendString(T96_, T97_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T96_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_630, NIM_FALSE);
		}
		break;
		}
	}
	goto LA62_;
	LA65_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(op);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					tyEnum_TConvStatus__GXWKwypnpPcXHHdgiz4mmw status_2;
					if (!(i_2 < colontmp_)) goto LA101;
					i = i_2;
					it = (*op)._kind_6.sons->data[i];
					status_2 = checkConvertible__sem_14040(c, (*result).typ, it);
					{
						if (!((3 &((NU8)1<<((NU)(status_2)&7U)))!=0)) goto LA104_;
						markUsed__sigmatch_85(c, (*n).info, (*it)._kind_4.sym);
						markIndirect__semdata_1060(c, (*it)._kind_4.sym);
						result = it;
						goto BeforeRet_;
					}
					LA104_: ;
					i_2 += ((NI) 1);
				} LA101: ;
			}
		}
		errorUseQualifier__lookups_1180(c, (*n).info, (*(*op)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
	}
	LA62_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semObjConstr__sem_16476)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw constrCtx;
	tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ initResult;
	NIM_BOOL hasError;
{	result = NIM_NIL;
	t = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38), (*n).info, t);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
		child = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					child = (*n)._kind_6.sons->data[i];
					add__ast_4797(result, child);
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n2X60gensym5239_;
		if (!(t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA7_;
		n2X60gensym5239_ = result;
		liMessage__msgs_1118((*(*c).graph).config, (*n2X60gensym5239_).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_631), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_632, NIM_FALSE);
		result = errorNode__semdata_1009(c, n2X60gensym5239_);
		goto BeforeRet_;
	}
	LA7_: ;
	t = skipTypes__ast_3735(t, TM__rF9caJawfOjYTjsgLVUSGFA_39);
	{
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA11_;
		t = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_39);
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA15_;
			asgnRef((void**) (&(*result).typ), makeVarType__semdata_766(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
			(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63);
		}
		LA15_: ;
	}
	LA11_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n2X60gensym5247_;
		NimStringDesc* dupResult;
		if (!!(((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA19_;
		n2X60gensym5247_ = result;
		dupResult = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_631));
		addDeclaredLoc__astmsgs_33((&dupResult), (*(*c).graph).config, t);
		liMessage__msgs_1118((*(*c).graph).config, (*n2X60gensym5247_).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), dupResult, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_633, NIM_FALSE);
		result = errorNode__semdata_1009(c, n2X60gensym5247_);
		goto BeforeRet_;
	}
	LA19_: ;
	nimZeroMem((void*)(&constrCtx), sizeof(tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw));
	initConstrContext__sem_19672(t, result, (&constrCtx));
	initResult = semConstructTypeAux__sem_19647(c, (&constrCtx), flags);
	hasError = NIM_FALSE;
	{
		NI T23_;
		tyArray__Re75IspeoxXy2oCZHwcRrA T26_;
		NimStringDesc* T27_;
		T23_ = (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0);
		if (!(((NI) 0) < T23_)) goto LA24_;
		hasError = NIM_TRUE;
		nimZeroMem((void*)T26_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T26_[0] = copyString((*(*(*t).sym).name).s);
		T26_[1] = listSymbolNames__astalgo_4303(constrCtx.missingFields->data, (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0));
		T27_ = NIM_NIL;
		T27_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_634), T26_, 2);
		liMessage__msgs_1118((*(*c).graph).config, (*result).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T27_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_635, NIM_FALSE);
	}
	LA24_: ;
	{
		NI i_3;
		NI colontmp__2;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_3198(result);
		i_4 = ((NI) 1);
		{
			while (1) {
				if (!(i_4 < colontmp__2)) goto LA30;
				i_3 = i_4;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
					field = (*result)._kind_6.sons->data[i_3];
					{
						tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* id;
						NimStringDesc* msg;
						NimStringDesc* T48_;
						NimStringDesc* T49_;
						NimStringDesc* T50_;
						if (!!((((*field).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0))) goto LA34_;
						{
							if (!!(((*field).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA38_;
							invalidObjConstr__sem_19125(c, field);
							hasError = NIM_TRUE;
							goto LA31;
						}
						LA38_: ;
						id = considerQuotedIdent__lookups_28(c, (*field)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
						{
							NI j;
							NI i_5;
							j = (NI)0;
							i_5 = ((NI) 1);
							{
								while (1) {
									tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* prevId;
									if (!(i_5 < i_3)) goto LA42;
									j = i_5;
									prevId = considerQuotedIdent__lookups_28(c, (*(*result)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
									{
										NimStringDesc* T47_;
										if (!((*prevId).id == (*id).id)) goto LA45_;
										T47_ = NIM_NIL;
										T47_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_636), (*id).s);
										liMessage__msgs_1118((*(*c).graph).config, (*field).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T47_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_637, NIM_FALSE);
										hasError = NIM_TRUE;
										goto LA40;
									}
									LA45_: ;
									i_5 += ((NI) 1);
								} LA42: ;
							}
						} LA40: ;
						T48_ = NIM_NIL;
						T49_ = NIM_NIL;
						T49_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_405), (*id).s);
						T50_ = NIM_NIL;
						T50_ = getProcHeader__types_222((*(*c).graph).config, (*t).sym, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
						T48_ = rawNewString((T49_ ? T49_->Sup.len : 0) + (T50_ ? T50_->Sup.len : 0) + 10);
appendString(T48_, T49_);
appendString(T48_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_403));
appendString(T48_, T50_);
						msg = T48_;
						liMessage__msgs_1118((*(*c).graph).config, (*field).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_638, NIM_FALSE);
						hasError = NIM_TRUE;
						goto LA28;
					}
					LA34_: ;
				} LA31: ;
				i_4 += ((NI) 1);
			} LA30: ;
		}
	} LA28: ;
	{
		if (!(initResult == ((tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ) 1))) goto LA53_;
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 1)) & 31);
	}
	LA53_: ;
	{
		if (!hasError) goto LA57_;
		result = errorNode__semdata_1009(c, result);
	}
	LA57_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDefined__sem_18124)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	NIM_BOOL T2_;
	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	result = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
	T1_ = NIM_NIL;
	T1_ = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[((NI) 1)], n);
	T2_ = (NIM_BOOL)0;
	T2_ = isDefined__options_2279((*(*c).graph).config, (*T1_).s);
	(*result)._kind_1.intVal = ((NI64) (T2_));
	(*result).info = (*n).info;
	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setMs__sem_18559)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(s));
	(*(*n)._kind_6.sons->data[((NI) 0)]).info = (*n).info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookUpForDeclared__sem_18132)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL onlyCurrentScope) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
{	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		NIM_BOOL amb;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
		amb = NIM_FALSE;
		ident = considerQuotedIdent__lookups_28(c, n, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		{
			if (!onlyCurrentScope) goto LA4_;
			result = localSearchInScope__lookups_142(c, ident);
		}
		goto LA2_;
		LA4_: ;
		{
			result = searchInScopes__lookups_423(c, ident, (&amb));
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
		result = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
		{
			if (!onlyCurrentScope) goto LA10_;
			goto BeforeRet_;
		}
		LA10_: ;
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
		m = lookUpForDeclared__sem_18132(c, (*n)._kind_6.sons->data[((NI) 0)], onlyCurrentScope);
		{
			NIM_BOOL T14_;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident_2;
			T14_ = (NIM_BOOL)0;
			T14_ = !((m == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
			if (!(T14_)) goto LA15_;
			T14_ = ((*m).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6));
			LA15_: ;
			if (!T14_) goto LA16_;
			ident_2 = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[((NI) 1)], n);
			{
				if (!(m == (*c).module)) goto LA20_;
				result = strTableGet__astalgo_3383((*(*c).topLevelScope).symbols, ident_2);
			}
			goto LA18_;
			LA20_: ;
			{
				result = someSym__modulegraphs_2817((*c).graph, m, ident_2);
			}
			LA18_: ;
		}
		LA16_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = (*n)._kind_4.sym;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56):
	{
		result = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	}
	break;
	default:
	{
		NimStringDesc* T26_;
		NimStringDesc* T27_;
		T26_ = NIM_NIL;
		T27_ = NIM_NIL;
		T27_ = renderTree__renderer_46(n, 0);
		T26_ = rawNewString((T27_ ? T27_->Sup.len : 0) + 30);
appendString(T26_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_639));
appendString(T26_, T27_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_640, NIM_FALSE);
		result = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDeclared__sem_18156)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL onlyCurrentScope) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T1_;
	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	result = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
	T1_ = NIM_NIL;
	T1_ = lookUpForDeclared__sem_18132(c, (*n)._kind_6.sons->data[((NI) 1)], onlyCurrentScope);
	(*result)._kind_1.intVal = ((NI64) (!((T1_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))));
	(*result).info = (*n).info;
	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tryExpr__sem_104)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* volatile result;
	NI oldErrorCount;
	NI oldErrorMax;
	NI oldCompilesId;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* oldScope;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T5_;
	NI oldOwnerLen;
	NI T6_;
	tySequence__jWKvSdankQPoT5bw9cBU9aiw* oldGenerics;
	tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA oldErrorOutputs;
	NI oldContextLen;
	NI oldInGenericContext;
	NI oldInUnrolledContext;
	NI oldInGenericInst;
	NI oldInStaticContext;
	tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* oldProcCon;
	NimStringDesc* err;
	TSafePoint TM__rF9caJawfOjYTjsgLVUSGFA_641;
	result = NIM_NIL;
	oldErrorCount = (*(*(*c).graph).config).errorCounter;
	oldErrorMax = (*(*(*c).graph).config).errorMax;
	oldCompilesId = (*c).compilesContextId;
	{
		if (!((*c).compilesContextId == ((NI) 0))) goto LA3_;
		(*c).compilesContextIdGenerator += ((NI) 1);
		(*c).compilesContextId = (*c).compilesContextIdGenerator;
	}
	LA3_: ;
	(*(*(*c).graph).config).errorMax = ((NI) IL64(9223372036854775807));
	oldScope = (*c).currentScope;
	T5_ = NIM_NIL;
	T5_ = openScope__lookups_69(c);
	T6_ = ((*(*c).graph).owners ? (*(*c).graph).owners->Sup.len : 0);
	oldOwnerLen = T6_;
	oldGenerics = (*c).generics;
	oldErrorOutputs = (*(*(*c).graph).config).m.errorOutputs;
	{
		if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0))) goto LA9_;
		(*(*(*c).graph).config).m.errorOutputs = 0;
	}
	LA9_: ;
	oldContextLen = getInfoContextLen__msgs_476((*(*c).graph).config);
	oldInGenericContext = (*c).inGenericContext;
	oldInUnrolledContext = (*c).inUnrolledContext;
	oldInGenericInst = (*c).inGenericInst;
	oldInStaticContext = (*c).inStaticContext;
	oldProcCon = (*c).p;
	if ((*c).generics) { nimGCunrefRC1((*c).generics); (*c).generics = NIM_NIL; }
	err = NIM_NIL;
	pushSafePoint(&TM__rF9caJawfOjYTjsgLVUSGFA_641);
	TM__rF9caJawfOjYTjsgLVUSGFA_641.status = _setjmp(TM__rF9caJawfOjYTjsgLVUSGFA_641.context);
	if (TM__rF9caJawfOjYTjsgLVUSGFA_641.status == 0) {
	result = semExpr__sem_52(c, n, flags);
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = !((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		if (!(T13_)) goto LA14_;
		T13_ = !(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 17))&31U)))!=0));
		LA14_: ;
		if (!T13_) goto LA15_;
		trackStmt__sempass50_4920(c, (*c).module, result, NIM_FALSE);
	}
	LA15_: ;
	{
		if (!!(((*(*(*c).graph).config).errorCounter == oldErrorCount))) goto LA19_;
		result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	}
	LA19_: ;
	popSafePoint();
	}
	else {
		popSafePoint();
		if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIerecoverableerror__IxbcvonC7TQkv166Uvdu1g_))) {
			TM__rF9caJawfOjYTjsgLVUSGFA_641.status = 0;
			popCurrentException();
		}
	}
	if (TM__rF9caJawfOjYTjsgLVUSGFA_641.status != 0) reraiseException();
	(*c).compilesContextId = oldCompilesId;
	genericSeqAssign((&(*c).generics), oldGenerics, (&NTIseqLtinstantiationpairT__jWKvSdankQPoT5bw9cBU9aiw_));
	(*c).inGenericContext = oldInGenericContext;
	(*c).inUnrolledContext = oldInUnrolledContext;
	(*c).inGenericInst = oldInGenericInst;
	(*c).inStaticContext = oldInStaticContext;
	asgnRef((void**) (&(*c).p), oldProcCon);
	setInfoContextLen__msgs_483((*(*c).graph).config, oldContextLen);
	asgnRef((void**) (&(*(*c).graph).owners), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) setLengthSeqV2(&((*(*c).graph).owners)->Sup, (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_), ((NI) (oldOwnerLen))));
	asgnRef((void**) (&(*c).currentScope), oldScope);
	(*(*(*c).graph).config).m.errorOutputs = oldErrorOutputs;
	(*(*(*c).graph).config).errorCounter = oldErrorCount;
	(*(*(*c).graph).config).errorMax = oldErrorMax;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCompiles__sem_18496)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		result = semDirectOp__sem_511(c, n, flags);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = NIM_NIL;
	T6_ = tryExpr__sem_104(c, (*n)._kind_6.sons->data[((NI) 1)], flags);
	result = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (!((T6_ == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))))));
	(*result).info = (*n).info;
	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, fixupStaticType__sem_14593)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T5_;
		tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T6_;
		if (!!(((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60)))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = getCurrOwner__semdata_315(c);
		T6_ = NIM_NIL;
		T6_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
		asgnRef((void**) (&T6_->data[0]), (*n).typ);
		asgnRef((void**) (&(*n).typ), newTypeWithSons__semdata_815(T5_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), T6_, (*c).Sup.idgen));
		asgnRef((void**) (&(*(*n).typ).n), n);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, isOpImpl__sem_14604)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL res;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t1;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t2;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T5_;
		NimStringDesc* argX60gensym3791_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NI)0;
		T5_ = len__ast_3198(n);
		T4_ = (T5_ == ((NI) 3));
		if (!(T4_)) goto LA6_;
		T4_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA6_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22) || (*(*n)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4));
		LA7_: ;
		if (!!(T3_)) goto LA8_;
		argX60gensym3791_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_644);
		internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym3791_, TM__rF9caJawfOjYTjsgLVUSGFA_644);
	}
	LA8_: ;
	res = NIM_FALSE;
	t1 = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	t2 = (*(*n)._kind_6.sons->data[((NI) 2)]).typ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*t1).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
		if (!(T12_)) goto LA13_;
		T12_ = !(((*t2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
		LA13_: ;
		if (!T12_) goto LA14_;
		t1 = base__types_63(t1);
	}
	LA14_: ;
	{
		NimStringDesc* T20_;
		if (!((*(*n)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA18_;
		T20_ = NIM_NIL;
		T20_ = nsuNormalize((*(*n)._kind_6.sons->data[((NI) 2)])._kind_3.strVal);
		if (eqStrings(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_645))) goto LA21_;
		if (eqStrings(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_646))) goto LA22_;
		goto LA23_;
		LA21_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
			NIM_BOOL T26_;
			t = skipTypes__ast_3735(t1, TM__rF9caJawfOjYTjsgLVUSGFA_461);
			T26_ = (NIM_BOOL)0;
			T26_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T26_)) goto LA27_;
			T26_ = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
			LA27_: ;
			res = T26_;
		}
		goto LA24_;
		LA22_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			t_2 = skipTypes__ast_3735(t1, TM__rF9caJawfOjYTjsgLVUSGFA_461);
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T30_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T30_)) goto LA31_;
			T30_ = ((*t_2).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
			LA31_: ;
			T29_ = T30_;
			if (!(T29_)) goto LA32_;
			T29_ = (((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
			LA32_: ;
			res = T29_;
		}
		goto LA24_;
		LA23_: ;
		{
			res = NIM_FALSE;
		}
		LA24_: ;
	}
	goto LA16_;
	LA18_: ;
	{
		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
		tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw T45_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T37_;
			T37_ = NIM_NIL;
			T37_ = skipTypes__ast_3735(t1, TM__rF9caJawfOjYTjsgLVUSGFA_85);
			if (!!(((*T37_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10)))) goto LA38_;
			maybeLiftType__sem_14374(&t2, c, (*n).info);
		}
		goto LA35_;
		LA38_: ;
		{
		}
		LA35_: ;
		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
		newCandidate__sigmatch_195(c, t2, (&m));
		{
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10))&31U)))!=0)) goto LA43_;
			m.diagnostics = NIM_NIL;
			m.diagnosticsEnabled = NIM_TRUE;
		}
		LA43_: ;
		T45_ = (tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw)0;
		T45_ = typeRel__sigmatch_202((&m), t2, t1, 0);
		res = (((tyEnum_TTypeRelation__aOBuAQCtB9ckUKPNKvVeAxw) 3) <= T45_);
	}
	LA16_: ;
	result = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (res)));
	asgnRef((void**) (&(*result).typ), (*n).typ);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIs__sem_14687)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* boolType;
	NIM_BOOL liftLhs;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* lhsType;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!!((T3_ == ((NI) 3)))) goto LA4_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_642), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_643, NIM_FALSE);
	}
	LA4_: ;
	boolType = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	result = n;
	asgnRef((void**) (&(*n).typ), boolType);
	liftLhs = NIM_TRUE;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], 514));
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t2;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._kind_6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22)))) goto LA8_;
		t2 = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*(*n)._kind_6.sons->data[((NI) 2)]).info, t2));
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* evaluated;
			if (!((*t2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA12_;
			evaluated = tryConstExpr__sem_582(c, (*n)._kind_6.sons->data[((NI) 1)]);
			{
				if (!!((evaluated == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA16_;
				fixupStaticType__sem_14593(c, evaluated);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), evaluated);
			}
			goto LA14_;
			LA16_: ;
			{
				result = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
				asgnRef((void**) (&(*result).typ), boolType);
				goto BeforeRet_;
			}
			LA14_: ;
		}
		goto LA10_;
		LA12_: ;
		{
			NIM_BOOL T20_;
			NIM_BOOL T22_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T23_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((*t2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			if (!(T20_)) goto LA21_;
			T22_ = (NIM_BOOL)0;
			T23_ = NIM_NIL;
			T23_ = base__types_63(t2);
			T22_ = ((*T23_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0));
			if (T22_) goto LA24_;
			T22_ = (((*t2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 29))&63U)))!=0);
			LA24_: ;
			T20_ = T22_;
			LA21_: ;
			if (!T20_) goto LA25_;
			liftLhs = NIM_FALSE;
		}
		goto LA10_;
		LA25_: ;
		LA10_: ;
	}
	goto LA6_;
	LA8_: ;
	{
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 2)], 0));
	}
	LA6_: ;
	lhsType = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		if (!!(((*lhsType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)))) goto LA30_;
		{
			if (!liftLhs) goto LA34_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), makeTypeSymNode__semdata_785(c, lhsType, (*(*n)._kind_6.sons->data[((NI) 1)]).info));
			lhsType = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
		}
		LA34_: ;
	}
	goto LA28_;
	LA30_: ;
	{
		{
			NIM_BOOL T39_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
			NIM_BOOL T42_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T44_;
			T39_ = (NIM_BOOL)0;
			T40_ = NIM_NIL;
			T40_ = base__types_63(lhsType);
			T39_ = ((*T40_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0));
			if (T39_) goto LA41_;
			T42_ = (NIM_BOOL)0;
			T42_ = (((NI) 0) < (*c).inGenericContext);
			if (!(T42_)) goto LA43_;
			T44_ = NIM_NIL;
			T44_ = base__types_63(lhsType);
			T42_ = containsGenericType__types_3360(T44_);
			LA43_: ;
			T39_ = T42_;
			LA41_: ;
			if (!T39_) goto LA45_;
			goto BeforeRet_;
		}
		LA45_: ;
	}
	LA28_: ;
	result = isOpImpl__sem_14604(c, n, flags);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpandToAst__sem_18200)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* macroCall;
	result = NIM_NIL;
	macroCall = (*n)._kind_6.sons->data[((NI) 1)];
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol;
		NI cands;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* cand;
		tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* symx;
		T3_ = (NIM_BOOL)0;
		T3_ = isCallExpr__ast_3176(macroCall);
		if (!T3_) goto LA4_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(macroCall);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					asgnRef((void**) (&(*macroCall)._kind_6.sons->data[i]), semExprWithType__sem_56(c, (*macroCall)._kind_6.sons->data[i], 0));
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
		headSymbol = (*macroCall)._kind_6.sons->data[((NI) 0)];
		cands = ((NI) 0);
		cand = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
		nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
		symx = initOverloadIter__lookups_1374((&o), c, headSymbol);
		{
			while (1) {
				if (!!((symx == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA10;
				{
					NIM_BOOL T13_;
					NI T15_;
					NI T16_;
					T13_ = (NIM_BOOL)0;
					T13_ = ((393216 &((NU32)1<<((NU)((*symx).kind)&31U)))!=0);
					if (!(T13_)) goto LA14_;
					T15_ = (NI)0;
					T15_ = len__ast_4002((*symx).typ);
					T16_ = (NI)0;
					T16_ = len__ast_3198(macroCall);
					T13_ = (T15_ == T16_);
					LA14_: ;
					if (!T13_) goto LA17_;
					cand = symx;
					cands += ((NI) 1);
				}
				LA17_: ;
				symx = nextOverloadIter__lookups_1528((&o), c, headSymbol);
			} LA10: ;
		}
		{
			NimStringDesc* T23_;
			NI T24_;
			NimStringDesc* T25_;
			if (!(cands == ((NI) 0))) goto LA21_;
			T23_ = NIM_NIL;
			T24_ = (NI)0;
			T24_ = len__ast_3198(macroCall);
			T25_ = NIM_NIL;
			T25_ = dollar___systemZdollars_3((NI)(T24_ - ((NI) 1)));
			T23_ = rawNewString((T25_ ? T25_->Sup.len : 0) + 41);
appendString(T23_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_647));
appendString(T23_, T25_);
appendString(T23_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_648));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T23_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_649, NIM_FALSE);
		}
		goto LA19_;
		LA21_: ;
		{
			NimStringDesc* T29_;
			NimStringDesc* T30_;
			if (!(((NI) 2) <= cands)) goto LA27_;
			T29_ = NIM_NIL;
			T30_ = NIM_NIL;
			T30_ = dollar___renderer_2106(macroCall);
			T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + 38);
appendString(T29_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_650));
appendString(T29_, T30_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T29_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_651, NIM_FALSE);
		}
		goto LA19_;
		LA27_: ;
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
			info = (*(*macroCall)._kind_6.sons->data[((NI) 0)]).info;
			asgnRef((void**) (&(*macroCall)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3719(cand, info));
			markUsed__sigmatch_85(c, info, cand);
		}
		LA19_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NimStringDesc* T33_;
		NimStringDesc* T34_;
		T33_ = NIM_NIL;
		T34_ = NIM_NIL;
		T34_ = renderTree__renderer_46(n, 0);
		T33_ = rawNewString((T34_ ? T34_->Sup.len : 0) + 29);
appendString(T33_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_652));
appendString(T33_, T34_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T33_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_653, NIM_FALSE);
	}
	LA1_: ;
	{
		NimStringDesc* argX60gensym4821_;
		if (!!(((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 27)))) goto LA37_;
		argX60gensym4821_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_654);
		internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym4821_, TM__rF9caJawfOjYTjsgLVUSGFA_654);
	}
	LA37_: ;
	{
		NIM_BOOL T41_;
		NI T43_;
		T41_ = (NIM_BOOL)0;
		T41_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
		if (!(T41_)) goto LA42_;
		T43_ = (NI)0;
		T43_ = len__ast_3198(n);
		T41_ = (T43_ == ((NI) 1));
		LA42_: ;
		if (!T41_) goto LA44_;
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA39_;
	LA44_: ;
	{
		result = n;
	}
	LA39_: ;
	asgnRef((void**) (&(*result).typ), sysTypeFromName__magicsys_55((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_99)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpandToAst__sem_18263)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* magicSym, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3719(magicSym, (*n).info));
		result = semExpandToAst__sem_18200(c, n);
	}
	goto LA1_;
	LA4_: ;
	{
		result = semDirectOp__sem_511(c, n, flags);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, expectString__sem_18186)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
{	result = NIM_NIL;
	n_2 = semConstExpr__sem_611(c, n);
	{
		if (!((*n_2).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*n_2).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA3_;
		result = copyString((*n_2)._kind_3.strVal);
		goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n_2).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_347), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_657, NIM_FALSE);
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newAnonSym__sem_18195)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T1_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T2_;
	result = NIM_NIL;
	T1_ = nextSymId__ast_3132((*c).Sup.idgen);
	T2_ = NIM_NIL;
	T2_ = getCurrOwner__semdata_315(c);
	result = newSym__ast_3445(kind, (*(*c).cache).idAnon, T1_, T2_, info, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, processQuotations__sem_18273)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, NimStringDesc* op, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** quotes, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** ids) {
{	{
		if (!((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30))) goto LA3_;
		checkSonsLen__semdata_1077((*n), ((NI) 2), (*(*c).graph).config);
		{
			NimStringDesc* examinedOpX60gensym4826_;
			if (!((*(*(*n))._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA7_;
			examinedOpX60gensym4826_ = (*(*(*(*n))._kind_6.sons->data[((NI) 0)])._kind_5.ident).s;
			{
				NI T13_;
				NI T14_;
				NimStringDesc* T15_;
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T16_;
				NI T17_;
				if (!eqStrings(examinedOpX60gensym4826_, op)) goto LA11_;
				unsureAsgnRef((void**) (&(*quotes)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*quotes)), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
				T13_ = (*quotes)->Sup.len++;
				asgnRef((void**) (&(*quotes)->data[T13_]), (*(*n))._kind_6.sons->data[((NI) 1)]);
				T14_ = ((*quotes) ? (*quotes)->Sup.len : 0);
				T15_ = NIM_NIL;
				T15_ = dollar___systemZdollars_3(T14_);
				T16_ = NIM_NIL;
				T16_ = getIdent__idents_143((*c).cache, T15_);
				unsureAsgnRef((void**) (&(*n)), newIdentNode__ast_3712(T16_, (*(*n)).info));
				unsureAsgnRef((void**) (&(*ids)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ids)), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
				T17_ = (*ids)->Sup.len++;
				asgnRef((void**) (&(*ids)->data[T17_]), (*n));
				goto BeforeRet_;
			}
			goto LA9_;
			LA11_: ;
			{
				NIM_BOOL T19_;
				NimStringDesc* T22_;
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T23_;
				T19_ = (NIM_BOOL)0;
				T19_ = nsuStartsWith(examinedOpX60gensym4826_, op);
				if (!T19_) goto LA20_;
				T22_ = NIM_NIL;
				T22_ = substr__system_7766(examinedOpX60gensym4826_, (op ? op->Sup.len : 0));
				T23_ = NIM_NIL;
				T23_ = getIdent__idents_143((*c).cache, T22_);
				asgnRef((void**) (&(*(*n))._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3712(T23_, (*(*n)).info));
			}
			goto LA9_;
			LA20_: ;
			LA9_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53))) goto LA25_;
		{
			NI T31_;
			NI T32_;
			NimStringDesc* T33_;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T34_;
			NI T35_;
			if (!eqStrings(op, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_658))) goto LA29_;
			unsureAsgnRef((void**) (&(*quotes)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*quotes)), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T31_ = (*quotes)->Sup.len++;
			asgnRef((void**) (&(*quotes)->data[T31_]), (*(*n))._kind_6.sons->data[((NI) 0)]);
			T32_ = ((*quotes) ? (*quotes)->Sup.len : 0);
			T33_ = NIM_NIL;
			T33_ = dollar___systemZdollars_3(T32_);
			T34_ = NIM_NIL;
			T34_ = getIdent__idents_143((*c).cache, T33_);
			unsureAsgnRef((void**) (&(*n)), newIdentNode__ast_3712(T34_, (*(*n)).info));
			unsureAsgnRef((void**) (&(*ids)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ids)), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T35_ = (*ids)->Sup.len++;
			asgnRef((void**) (&(*ids)->data[T35_]), (*n));
			goto BeforeRet_;
		}
		goto LA27_;
		LA29_: ;
		{
			{
				NIM_BOOL T39_;
				NI T40_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tempNode;
				tyArray__cypz0nHJsd9cnKgpO7fP5hQ T44_;
				T39_ = (NIM_BOOL)0;
				T40_ = (NI)0;
				T40_ = len__ast_3198((*n));
				T39_ = (T40_ == ((NI) 2));
				if (!(T39_)) goto LA41_;
				T39_ = eqStrings((*(*(*(*n))._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, op);
				LA41_: ;
				if (!T39_) goto LA42_;
				nimZeroMem((void*)T44_, sizeof(tyArray__cypz0nHJsd9cnKgpO7fP5hQ));
				tempNode = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30), T44_, 0);
				newSons__semtypinst_404(tempNode, ((NI) 2));
				asgnRef((void**) (&(*tempNode)._kind_6.sons->data[((NI) 0)]), (*(*n))._kind_6.sons->data[((NI) 0)]);
				asgnRef((void**) (&(*tempNode)._kind_6.sons->data[((NI) 1)]), (*(*n))._kind_6.sons->data[((NI) 1)]);
				{
					NimStringDesc* examinedOpX60gensym4839_;
					if (!((*(*tempNode)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA47_;
					examinedOpX60gensym4839_ = (*(*(*tempNode)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s;
					{
						NI T53_;
						NI T54_;
						NimStringDesc* T55_;
						tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T56_;
						NI T57_;
						if (!eqStrings(examinedOpX60gensym4839_, op)) goto LA51_;
						unsureAsgnRef((void**) (&(*quotes)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*quotes)), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T53_ = (*quotes)->Sup.len++;
						asgnRef((void**) (&(*quotes)->data[T53_]), (*tempNode)._kind_6.sons->data[((NI) 1)]);
						T54_ = ((*quotes) ? (*quotes)->Sup.len : 0);
						T55_ = NIM_NIL;
						T55_ = dollar___systemZdollars_3(T54_);
						T56_ = NIM_NIL;
						T56_ = getIdent__idents_143((*c).cache, T55_);
						unsureAsgnRef((void**) (&(*n)), newIdentNode__ast_3712(T56_, (*(*n)).info));
						unsureAsgnRef((void**) (&(*ids)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ids)), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T57_ = (*ids)->Sup.len++;
						asgnRef((void**) (&(*ids)->data[T57_]), (*n));
						goto BeforeRet_;
					}
					goto LA49_;
					LA51_: ;
					{
						NIM_BOOL T59_;
						NimStringDesc* T62_;
						tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T63_;
						T59_ = (NIM_BOOL)0;
						T59_ = nsuStartsWith(examinedOpX60gensym4839_, op);
						if (!T59_) goto LA60_;
						T62_ = NIM_NIL;
						T62_ = substr__system_7766(examinedOpX60gensym4839_, (op ? op->Sup.len : 0));
						T63_ = NIM_NIL;
						T63_ = getIdent__idents_143((*c).cache, T62_);
						asgnRef((void**) (&(*tempNode)._kind_6.sons->data[((NI) 0)]), newIdentNode__ast_3712(T63_, (*tempNode).info));
					}
					goto LA49_;
					LA60_: ;
					LA49_: ;
				}
				LA47_: ;
			}
			LA42_: ;
		}
		LA27_: ;
	}
	goto LA1_;
	LA25_: ;
	{
		if (!((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA65_;
		{
			if (!eqStrings((*(*(*n))._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102))) goto LA69_;
			unsureAsgnRef((void**) (&(*n)), (*ids)->data[((NI) 0)]);
		}
		LA69_: ;
	}
	goto LA1_;
	LA65_: ;
	LA1_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = safeLen__ast_3191((*n));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA73;
				i = i_2;
				processQuotations__sem_18273(c, &(*(*n))._kind_6.sons->data[i], op, quotes, ids);
				i_2 += ((NI) 1);
			} LA73: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodyDirty__sem_7597)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		s = qualifiedLookUp__lookups_1233((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA4_;
			{
				NIM_BOOL T8_;
				T8_ = (NIM_BOOL)0;
				T8_ = ((*s).owner == (*c).owner);
				if (!(T8_)) goto LA9_;
				T8_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA9_: ;
				if (!T8_) goto LA10_;
				result = newSymNode__ast_3719(s, (*n).info);
			}
			goto LA6_;
			LA10_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym1845_;
				NIM_BOOL T13_;
				xX60gensym1845_ = s;
				T13_ = (NIM_BOOL)0;
				T13_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1845_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1845_).Sup.itemId.item))));
				if (!T13_) goto LA14_;
				result = symChoice__sem_6586((*c).c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
			}
			goto LA6_;
			LA14_: ;
			LA6_: ;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55):
	{
		result = semTemplBodyDirty__sem_7597(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
	{
		result = semBindStmt__sem_6647((*c).c, n, (&(*c).toBind));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	default:
	{
		{
			NIM_BOOL T22_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
			T22_ = (NIM_BOOL)0;
			T22_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45));
			if (T22_) goto LA23_;
			T22_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53));
			LA23_: ;
			if (!T22_) goto LA24_;
			s_2 = qualifiedLookUp__lookups_1233((*c).c, n, 0);
			{
				NIM_BOOL T28_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym1848_;
				T28_ = (NIM_BOOL)0;
				T28_ = !((s_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
				if (!(T28_)) goto LA29_;
				xX60gensym1848_ = s_2;
				T28_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1848_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1848_).Sup.itemId.item))));
				LA29_: ;
				if (!T28_) goto LA30_;
				result = symChoice__sem_6586((*c).c, n, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
				goto BeforeRet_;
			}
			LA30_: ;
		}
		LA24_: ;
		result = n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA34;
					i = i_2;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), semTemplBodyDirty__sem_7597(c, (*n)._kind_6.sons->data[i]));
					i_2 += ((NI) 1);
				} LA34: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplSymbol__sem_6931)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, NIM_BOOL isField) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
	markOwnerModuleAsUsed__sigmatch_89(c, s);
	switch ((*s).kind) {
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6):
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12) ... ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
	{
		result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), isField);
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
	{
		{
			NIM_BOOL T6_;
			T6_ = (NIM_BOOL)0;
			T6_ = isField;
			if (!(T6_)) goto LA7_;
			T6_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0);
			LA7_: ;
			if (!T6_) goto LA8_;
			result = n;
		}
		goto LA4_;
		LA8_: ;
		{
			result = newSymNodeTypeDesc__semfold_835(s, (*c).Sup.idgen, (*n).info);
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
	{
		result = n;
	}
	break;
	case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
	{
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = isField;
			if (!(T15_)) goto LA16_;
			T15_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0);
			LA16_: ;
			if (!T15_) goto LA17_;
			result = n;
		}
		goto LA13_;
		LA17_: ;
		{
			result = newSymNodeTypeDesc__semfold_835(s, (*c).Sup.idgen, (*n).info);
		}
		LA13_: ;
	}
	break;
	default:
	{
		{
			NIM_BOOL T23_;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20));
			if (!(T23_)) goto LA24_;
			T23_ = (((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 15))&31U)))!=0);
			LA24_: ;
			if (!T23_) goto LA25_;
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), isField);
		}
		goto LA21_;
		LA25_: ;
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = isField;
			if (!(T28_)) goto LA29_;
			T28_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0);
			LA29_: ;
			if (!T28_) goto LA30_;
			result = n;
		}
		goto LA21_;
		LA30_: ;
		{
			result = newSymNode__ast_3719(s, (*n).info);
		}
		LA21_: ;
		{
			NIM_BOOL T35_;
			T35_ = (NIM_BOOL)0;
			T35_ = !(isField);
			if (!(T35_)) goto LA36_;
			T35_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
			LA36_: ;
			if (!T35_) goto LA37_;
			styleCheckUse__linter_192((*(*c).graph).config, (*n).info, s);
		}
		LA37_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodySons__sem_7133)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				asgnRef((void**) (&(*result)._kind_6.sons->data[i]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[i]));
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, openScope__sem_6791)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c) {
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69((*c).c);
}
N_LIB_PRIVATE N_NIMCALL(void, closeScope__sem_6793)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c) {
	closeScope__lookups_101((*c).c);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBodyScope__sem_6795)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	openScope__sem_6791(c);
	result = semTemplBody__sem_6788(c, n);
	closeScope__sem_6793(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw, symBinding__sem_6547)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw result;
{	result = (tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA6_;
					key = (*it)._kind_6.sons->data[((NI) 0)];
				}
				goto LA4_;
				LA6_: ;
				{
					key = it;
				}
				LA4_: ;
				{
					tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T13_;
					if (!((*key).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA11_;
					T13_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
					T13_ = whichKeyword__idents_214((*key)._kind_5.ident);
					switch (T13_) {
					case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 209):
					{
						result = ((tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw) 1);
						goto BeforeRet_;
					}
					break;
					case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 210):
					{
						result = ((tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw) 2);
						goto BeforeRet_;
					}
					break;
					default:
					{
					}
					break;
					}
				}
				LA11_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, onlyReplaceParams__sem_6799)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA3_;
		s = qualifiedLookUp__lookups_1233((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA7_;
			{
				NIM_BOOL T11_;
				T11_ = (NIM_BOOL)0;
				T11_ = ((*s).owner == (*c).owner);
				if (!(T11_)) goto LA12_;
				T11_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA12_: ;
				if (!T11_) goto LA13_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__ast_3719(s, (*n).info);
			}
			LA13_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA18;
					i = i_2;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), onlyReplaceParams__sem_6799(c, (*n)._kind_6.sons->data[i]));
					i_2 += ((NI) 1);
				} LA18: ;
			}
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getIdentNode__sem_6749)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		result = getIdentNode__sem_6749(c, (*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		result = getIdentNode__sem_6749(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		result = n;
		s = qualifiedLookUp__lookups_1233((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA6_;
			{
				NIM_BOOL T10_;
				T10_ = (NIM_BOOL)0;
				T10_ = ((*s).owner == (*c).owner);
				if (!(T10_)) goto LA11_;
				T10_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA11_: ;
				if (!T10_) goto LA12_;
				result = newSymNode__ast_3719(s, (*n).info);
			}
			LA12_: ;
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = n;
	}
	break;
	default:
	{
		illFormedAst__semdata_1071(n, (*(*(*c).c).graph).config);
		result = n;
	}
	break;
	}
	return result;
}
static N_INLINE(NIM_BOOL, isTemplParam__sem_6768)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T2_ = ((*(*n)._kind_4.sym).owner == (*c).owner);
	LA5_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA6_;
	T1_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 40))&63U)))!=0);
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, replaceIdentBySym__sem_6733)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s) {
	switch ((*(*n)).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		replaceIdentBySym__sem_6733(c, &(*(*n))._kind_6.sons->data[((NI) 1)], s);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		replaceIdentBySym__sem_6733(c, &(*(*n))._kind_6.sons->data[((NI) 0)], s);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		unsureAsgnRef((void**) (&(*n)), s);
	}
	break;
	default:
	{
		illFormedAst__semdata_1071((*n), (*(*c).graph).config);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newGenSym__sem_6831)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = considerQuotedIdent__lookups_28((*c).c, n, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	T2_ = nextSymId__ast_3132((*(*c).c).Sup.idgen);
	result = newSym__ast_3445(kind, T1_, T2_, (*c).owner, (*n).info, 0);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37)) & 63);
	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 25)) & 63);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addLocalDecl__sem_6844)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k) {
{	{
		NIM_BOOL T3_;
		tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ident;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43));
		if (!(T3_)) goto LA4_;
		T5_ = (tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw)0;
		T5_ = symBinding__sem_6547((*(*n))._kind_6.sons->data[((NI) 1)]);
		T3_ = (T5_ == ((tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw) 2));
		LA4_: ;
		if (!T3_) goto LA6_;
		x = (*(*n))._kind_6.sons->data[((NI) 0)];
		{
			while (1) {
				switch ((*x).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
				{
					x = (*x)._kind_6.sons->data[((NI) 1)];
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
				{
					x = (*x)._kind_6.sons->data[((NI) 0)];
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
				{
					goto LA8;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
				{
					unsureAsgnRef((void**) (&(*n)), onlyReplaceParams__sem_6799(c, (*n)));
					goto BeforeRet_;
				}
				break;
				default:
				{
					illFormedAst__semdata_1071(x, (*(*(*c).c).graph).config);
				}
				break;
				}
			}
		} LA8: ;
		ident = getIdentNode__sem_6749(c, x);
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = isTemplParam__sem_6768((&(*c)), ident);
			if (!!(T17_)) goto LA18_;
			incl__pureZcollectionsZintsets_55((&(*c).toInject), (*(*x)._kind_5.ident).id);
		}
		goto LA15_;
		LA18_: ;
		{
			replaceIdentBySym__sem_6733((*c).c, n, ident);
		}
		LA15_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ident_2;
		{
			NIM_BOOL T24_;
			NIM_BOOL T25_;
			NI T27_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmaNode;
			T24_ = (NIM_BOOL)0;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43));
			if (!(T25_)) goto LA26_;
			T27_ = (NI)0;
			T27_ = len__ast_3198((*n));
			T25_ = (((NI) 2) <= T27_);
			LA26_: ;
			T24_ = T25_;
			if (!(T24_)) goto LA28_;
			T24_ = ((*(*(*n))._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90));
			LA28_: ;
			if (!T24_) goto LA29_;
			pragmaNode = (*(*n))._kind_6.sons->data[((NI) 1)];
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3198(pragmaNode);
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ni;
						NIM_BOOL found;
						if (!(i_2 < colontmp_)) goto LA33;
						i = i_2;
						ni = (*pragmaNode)._kind_6.sons->data[i];
						found = NIM_FALSE;
						{
							if (!((*ni).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA36_;
							{
								tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw a;
								NI i_3;
								a = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
								i_3 = ((NI) 0);
								{
									while (1) {
										if (!(i_3 <= ((NI) 293))) goto LA40;
										{
											if (!((TM__rF9caJawfOjYTjsgLVUSGFA_671[(NU)(((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) (i_3)))>>3] &(1U<<((NU)(((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) (i_3)))&7U)))!=0)) goto LA43_;
											a = ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) (i_3));
											{
												tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T47_;
												NIM_BOOL T48_;
												T47_ = NIM_NIL;
												T47_ = getIdent__idents_143((*(*c).c).cache, reprEnum((NI)a, (&NTItspecialword__ycbpMCRV6Cd2eBh3X9biEiw_)));
												T48_ = (NIM_BOOL)0;
												T48_ = eqeq___idents_220((*ni)._kind_5.ident, T47_);
												if (!T48_) goto LA49_;
												found = NIM_TRUE;
												goto LA38;
											}
											LA49_: ;
										}
										LA43_: ;
										i_3 += ((NI) 1);
									} LA40: ;
								}
							} LA38: ;
						}
						LA36_: ;
						{
							if (!!(found)) goto LA53_;
							openScope__sem_6791(c);
							asgnRef((void**) (&(*pragmaNode)._kind_6.sons->data[i]), semTemplBody__sem_6788(c, (*pragmaNode)._kind_6.sons->data[i]));
							closeScope__sem_6793(c);
						}
						LA53_: ;
						i_2 += ((NI) 1);
					} LA33: ;
				}
			}
		}
		LA29_: ;
		ident_2 = getIdentNode__sem_6749(c, (*n));
		{
			NIM_BOOL T57_;
			T57_ = (NIM_BOOL)0;
			T57_ = isTemplParam__sem_6768((&(*c)), ident_2);
			if (!!(T57_)) goto LA58_;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* local;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T70_;
				if (!!(((*(*n)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA62_;
				local = newGenSym__sem_6831(k, ident_2, c);
				addPrelimDecl__lookups_848((*c).c, local);
				{
					NIM_BOOL T66_;
					T66_ = (NIM_BOOL)0;
					T66_ = !(((49152 & (*(*(*(*c).c).graph).config).globalOptions) == 0));
					if (!(T66_)) goto LA67_;
					T66_ = !((((*(*(*(*c).c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
					LA67_: ;
					if (!T66_) goto LA68_;
					nep1CheckDefImpl__linter_110((*(*(*c).c).graph).config, (*(*n)).info, local, (*local).kind);
				}
				LA68_: ;
				T70_ = NIM_NIL;
				T70_ = newSymNode__ast_3719(local, (*(*n)).info);
				replaceIdentBySym__sem_6733((*c).c, n, T70_);
				{
					NIM_BOOL T73_;
					T73_ = (NIM_BOOL)0;
					T73_ = (k == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
					if (!(T73_)) goto LA74_;
					T73_ = (((NI) 0) < (*c).inTemplateHeader);
					LA74_: ;
					if (!T73_) goto LA75_;
					(*local).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 40)) & 63);
				}
				LA75_: ;
			}
			LA62_: ;
		}
		goto LA55_;
		LA58_: ;
		{
			replaceIdentBySym__sem_6733((*c).c, n, ident_2);
		}
		LA55_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, semTemplSomeDecl__sem_7085)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, NI start) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = start;
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					a = (*n)._kind_6.sons->data[i];
					switch ((*a).kind) {
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
					{
						goto LA4;
					}
					break;
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36):
					case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102):
					{
						NI T7_;
						NI T8_;
						NI T9_;
						NI T10_;
						checkMinSonsLen__semdata_1084(a, ((NI) 3), (*(*(*c).c).graph).config);
						T7_ = (NI)0;
						T7_ = len__ast_3198(a);
						T8_ = (NI)0;
						T8_ = len__ast_3198(a);
						asgnRef((void**) (&(*a)._kind_6.sons->data[(NI)(T7_ - ((NI) 2))]), semTemplBody__sem_6788(c, (*a)._kind_6.sons->data[(NI)(T8_ - ((NI) 2))]));
						T9_ = (NI)0;
						T9_ = len__ast_3198(a);
						T10_ = (NI)0;
						T10_ = len__ast_3198(a);
						asgnRef((void**) (&(*a)._kind_6.sons->data[(NI)(T9_ - ((NI) 1))]), semTemplBody__sem_6788(c, (*a)._kind_6.sons->data[(NI)(T10_ - ((NI) 1))]));
						{
							NI j;
							NI colontmp__2;
							NI T12_;
							NI i_3;
							j = (NI)0;
							colontmp__2 = (NI)0;
							T12_ = (NI)0;
							T12_ = len__ast_3198(a);
							colontmp__2 = (NI)(T12_ - ((NI) 2));
							i_3 = ((NI) 0);
							{
								while (1) {
									if (!(i_3 < colontmp__2)) goto LA14;
									j = i_3;
									addLocalDecl__sem_6844(c, &(*a)._kind_6.sons->data[j], symKind);
									i_3 += ((NI) 1);
								} LA14: ;
							}
						}
					}
					break;
					default:
					{
						illFormedAst__semdata_1071(a, (*(*(*c).c).graph).config);
					}
					break;
					}
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRoutineInTemplName__sem_6973)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA3_;
		s = qualifiedLookUp__lookups_1233((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA7_;
			{
				NIM_BOOL T11_;
				NIM_BOOL T13_;
				T11_ = (NIM_BOOL)0;
				T11_ = ((*s).owner == (*c).owner);
				if (!(T11_)) goto LA12_;
				T13_ = (NIM_BOOL)0;
				T13_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				if (T13_) goto LA14_;
				T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0);
				LA14_: ;
				T11_ = T13_;
				LA12_: ;
				if (!T11_) goto LA15_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__ast_3719(s, (*n).info);
			}
			LA15_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), semRoutineInTemplName__sem_6973(c, (*n)._kind_6.sons->data[i]));
					i_2 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRoutineInTemplBody__sem_7009)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw k) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1077(n, ((NI) 7), (*(*(*c).c).graph).config);
	{
		NIM_BOOL T3_;
		tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ident;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52)));
		if (!(T3_)) goto LA4_;
		T5_ = (tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw)0;
		T5_ = symBinding__sem_6547((*n)._kind_6.sons->data[((NI) 4)]);
		T3_ = (T5_ == ((tyEnum_TSymBinding__djea3jD0GJNy3LfTycW4Gw) 1));
		LA4_: ;
		if (!T3_) goto LA6_;
		ident = getIdentNode__sem_6749(c, (*n)._kind_6.sons->data[((NI) 0)]);
		{
			NIM_BOOL T10_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
			T10_ = (NIM_BOOL)0;
			T10_ = isTemplParam__sem_6768((&(*c)), ident);
			if (!!(T10_)) goto LA11_;
			s = newGenSym__sem_6831(k, ident, c);
			asgnRef((void**) (&(*s).ast), n);
			addPrelimDecl__lookups_848((*c).c, s);
			{
				NIM_BOOL T15_;
				T15_ = (NIM_BOOL)0;
				T15_ = !(((49152 & (*(*(*(*c).c).graph).config).globalOptions) == 0));
				if (!(T15_)) goto LA16_;
				T15_ = !((((*(*(*(*c).c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
				LA16_: ;
				if (!T15_) goto LA17_;
				nep1CheckDefImpl__linter_110((*(*(*c).c).graph).config, (*n).info, s, (*s).kind);
			}
			LA17_: ;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3719(s, (*(*n)._kind_6.sons->data[((NI) 0)]).info));
		}
		goto LA8_;
		LA11_: ;
		{
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ident);
		}
		LA8_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semRoutineInTemplName__sem_6973(c, (*n)._kind_6.sons->data[((NI) 0)]));
	}
	LA1_: ;
	openScope__sem_6791(c);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= ((NI) 2))) goto LA23;
				i = res;
				asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[i]));
				res += ((NI) 1);
			} LA23: ;
		}
	}
	{
		if (!(k == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18))) goto LA26_;
		(*c).inTemplateHeader += ((NI) 1);
	}
	LA26_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 3)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 3)]));
	{
		if (!(k == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18))) goto LA30_;
		(*c).inTemplateHeader -= ((NI) 1);
	}
	LA30_: ;
	{
		NI i_2;
		NI res_2;
		i_2 = (NI)0;
		res_2 = ((NI) 4);
		{
			while (1) {
				if (!(res_2 <= ((NI) 5))) goto LA34;
				i_2 = res_2;
				asgnRef((void**) (&(*n)._kind_6.sons->data[i_2]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[i_2]));
				res_2 += ((NI) 1);
			} LA34: ;
		}
	}
	(*c).scopeN += ((NI) 1);
	openScope__sem_6791(c);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 6)]));
	closeScope__sem_6793(c);
	(*c).scopeN -= ((NI) 1);
	closeScope__sem_6793(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplBody__sem_6788)(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = contains__astalgo_3489((&(*c).toInject), (*(*n)._kind_5.ident).id);
			if (!T4_) goto LA5_;
			result = n;
			goto BeforeRet_;
		}
		LA5_: ;
		s = qualifiedLookUp__lookups_1233((*c).c, n, 0);
		{
			if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA9_;
			{
				NIM_BOOL T13_;
				NIM_BOOL T14_;
				T13_ = (NIM_BOOL)0;
				T14_ = (NIM_BOOL)0;
				T14_ = ((*s).owner == (*c).owner);
				if (!(T14_)) goto LA15_;
				T14_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA15_: ;
				T13_ = T14_;
				if (!(T13_)) goto LA16_;
				T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 40))&63U)))!=0);
				LA16_: ;
				if (!T13_) goto LA17_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__ast_3719(s, (*n).info);
			}
			goto LA11_;
			LA17_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym1721_;
				NIM_BOOL T20_;
				xX60gensym1721_ = s;
				T20_ = (NIM_BOOL)0;
				T20_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1721_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1721_).Sup.itemId.item))));
				if (!T20_) goto LA21_;
				result = symChoice__sem_6586((*c).c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), (((NI) 0) < (*c).noGenSym));
			}
			goto LA11_;
			LA21_: ;
			{
				NIM_BOOL T24_;
				T24_ = (NIM_BOOL)0;
				T24_ = contains__astalgo_3489((&(*c).toMixin), (*(*s).name).id);
				if (!T24_) goto LA25_;
				result = symChoice__sem_6586((*c).c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), (((NI) 0) < (*c).noGenSym));
			}
			goto LA11_;
			LA25_: ;
			{
				NIM_BOOL T28_;
				NIM_BOOL T29_;
				T28_ = (NIM_BOOL)0;
				T29_ = (NIM_BOOL)0;
				T29_ = ((*s).owner == (*c).owner);
				if (!(T29_)) goto LA30_;
				T29_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0);
				LA30_: ;
				T28_ = T29_;
				if (!(T28_)) goto LA31_;
				T28_ = ((*c).noGenSym == ((NI) 0));
				LA31_: ;
				if (!T28_) goto LA32_;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__ast_3719(s, (*n).info);
			}
			goto LA11_;
			LA32_: ;
			{
				result = semTemplSymbol__sem_6931((*c).c, n, s, (((NI) 0) < (*c).noGenSym));
			}
			LA11_: ;
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55):
	{
		result = semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
	{
		result = semBindStmt__sem_6647((*c).c, n, (&(*c).toBind));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
	{
		{
			if (!(((NI) 0) < (*c).scopeN)) goto LA40_;
			result = semTemplBodySons__sem_7133(c, n);
		}
		goto LA38_;
		LA40_: ;
		{
			result = semMixinStmt__sem_6701((*c).c, n, (&(*c).toMixin));
		}
		LA38_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					if (!(i_2 < colontmp_)) goto LA47;
					i = i_2;
					it = (*n)._kind_6.sons->data[i];
					{
						NI T50_;
						T50_ = (NI)0;
						T50_ = len__ast_3198(it);
						if (!(T50_ == ((NI) 2))) goto LA51_;
						openScope__sem_6791(c);
						asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_6788(c, (*it)._kind_6.sons->data[((NI) 0)]));
						asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_6788(c, (*it)._kind_6.sons->data[((NI) 1)]));
						closeScope__sem_6793(c);
					}
					goto LA48_;
					LA51_: ;
					{
						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semTemplBodyScope__sem_6795(c, it));
					}
					LA48_: ;
					i_2 += ((NI) 1);
				} LA47: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		openScope__sem_6791(c);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA57;
					i_3 = i_4;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[i_3]));
					i_4 += ((NI) 1);
				} LA57: ;
			}
		}
		closeScope__sem_6793(c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		openScope__sem_6791(c);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 0)]));
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3198(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					NI T66_;
					NI T67_;
					if (!(i_6 < colontmp__3)) goto LA61;
					i_5 = i_6;
					a = (*n)._kind_6.sons->data[i_5];
					checkMinSonsLen__semdata_1084(a, ((NI) 1), (*(*(*c).c).graph).config);
					{
						NI j;
						NI colontmp__4;
						NI T63_;
						NI i_7;
						j = (NI)0;
						colontmp__4 = (NI)0;
						T63_ = (NI)0;
						T63_ = len__ast_3198(a);
						colontmp__4 = (NI)(T63_ - ((NI) 1));
						i_7 = ((NI) 0);
						{
							while (1) {
								if (!(i_7 < colontmp__4)) goto LA65;
								j = i_7;
								asgnRef((void**) (&(*a)._kind_6.sons->data[j]), semTemplBody__sem_6788(c, (*a)._kind_6.sons->data[j]));
								i_7 += ((NI) 1);
							} LA65: ;
						}
					}
					T66_ = (NI)0;
					T66_ = len__ast_3198(a);
					T67_ = (NI)0;
					T67_ = len__ast_3198(a);
					asgnRef((void**) (&(*a)._kind_6.sons->data[(NI)(T66_ - ((NI) 1))]), semTemplBodyScope__sem_6795(c, (*a)._kind_6.sons->data[(NI)(T67_ - ((NI) 1))]));
					i_6 += ((NI) 1);
				} LA61: ;
			}
		}
		closeScope__sem_6793(c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		NI T69_;
		NI T70_;
		NI T84_;
		NI T85_;
		openScope__sem_6791(c);
		T69_ = (NI)0;
		T69_ = len__ast_3198(n);
		T70_ = (NI)0;
		T70_ = len__ast_3198(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T69_ - ((NI) 2))]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[(NI)(T70_ - ((NI) 2))]));
		{
			NI i_8;
			NI colontmp__5;
			NI T72_;
			NI i_9;
			i_8 = (NI)0;
			colontmp__5 = (NI)0;
			T72_ = (NI)0;
			T72_ = len__ast_3198(n);
			colontmp__5 = (NI)(T72_ - ((NI) 2));
			i_9 = ((NI) 0);
			{
				while (1) {
					if (!(i_9 < colontmp__5)) goto LA74;
					i_8 = i_9;
					{
						if (!((*(*n)._kind_6.sons->data[i_8]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA77_;
						{
							NI j_2;
							NI colontmp__6;
							NI T80_;
							NI i_10;
							j_2 = (NI)0;
							colontmp__6 = (NI)0;
							T80_ = (NI)0;
							T80_ = len__ast_3198((*n)._kind_6.sons->data[i_8]);
							colontmp__6 = (NI)(T80_ - ((NI) 1));
							i_10 = ((NI) 0);
							{
								while (1) {
									if (!(i_10 < colontmp__6)) goto LA82;
									j_2 = i_10;
									addLocalDecl__sem_6844(c, &(*(*n)._kind_6.sons->data[i_8])._kind_6.sons->data[j_2], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
									i_10 += ((NI) 1);
								} LA82: ;
							}
						}
					}
					goto LA75_;
					LA77_: ;
					{
						addLocalDecl__sem_6844(c, &(*n)._kind_6.sons->data[i_8], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
					}
					LA75_: ;
					i_9 += ((NI) 1);
				} LA74: ;
			}
		}
		openScope__sem_6791(c);
		T84_ = (NI)0;
		T84_ = len__ast_3198(n);
		T85_ = (NI)0;
		T85_ = len__ast_3198(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T84_ - ((NI) 1))]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[(NI)(T85_ - ((NI) 1))]));
		closeScope__sem_6793(c);
		closeScope__sem_6793(c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 129):
	{
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*(*c).c).graph).config);
		openScope__sem_6791(c);
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA89_;
			addLocalDecl__sem_6844(c, &(*n)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22));
		}
		LA89_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 1)]));
		closeScope__sem_6793(c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*(*c).c).graph).config);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semTemplBodyScope__sem_6795(c, (*n)._kind_6.sons->data[((NI) 0)]));
		{
			NI i_11;
			NI colontmp__7;
			NI i_12;
			i_11 = (NI)0;
			colontmp__7 = (NI)0;
			colontmp__7 = len__ast_3198(n);
			i_12 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
					NI T105_;
					NI T106_;
					if (!(i_12 < colontmp__7)) goto LA94;
					i_11 = i_12;
					a_2 = (*n)._kind_6.sons->data[i_11];
					checkMinSonsLen__semdata_1084(a_2, ((NI) 1), (*(*(*c).c).graph).config);
					openScope__sem_6791(c);
					{
						NI j_3;
						NI colontmp__8;
						NI T96_;
						NI i_13;
						j_3 = (NI)0;
						colontmp__8 = (NI)0;
						T96_ = (NI)0;
						T96_ = len__ast_3198(a_2);
						colontmp__8 = (NI)(T96_ - ((NI) 1));
						i_13 = ((NI) 0);
						{
							while (1) {
								if (!(i_13 < colontmp__8)) goto LA98;
								j_3 = i_13;
								{
									NIM_BOOL T101_;
									T101_ = (NIM_BOOL)0;
									T101_ = isInfixAs__ast_4935((*a_2)._kind_6.sons->data[j_3]);
									if (!T101_) goto LA102_;
									addLocalDecl__sem_6844(c, &(*(*a_2)._kind_6.sons->data[j_3])._kind_6.sons->data[((NI) 2)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
									asgnRef((void**) (&(*(*a_2)._kind_6.sons->data[j_3])._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_6788(c, (*(*a_2)._kind_6.sons->data[j_3])._kind_6.sons->data[((NI) 1)]));
								}
								goto LA99_;
								LA102_: ;
								{
									asgnRef((void**) (&(*a_2)._kind_6.sons->data[j_3]), semTemplBody__sem_6788(c, (*a_2)._kind_6.sons->data[j_3]));
								}
								LA99_: ;
								i_13 += ((NI) 1);
							} LA98: ;
						}
					}
					T105_ = (NI)0;
					T105_ = len__ast_3198(a_2);
					T106_ = (NI)0;
					T106_ = len__ast_3198(a_2);
					asgnRef((void**) (&(*a_2)._kind_6.sons->data[(NI)(T105_ - ((NI) 1))]), semTemplBodyScope__sem_6795(c, (*a_2)._kind_6.sons->data[(NI)(T106_ - ((NI) 1))]));
					closeScope__sem_6793(c);
					i_12 += ((NI) 1);
				} LA94: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	{
		semTemplSomeDecl__sem_7085(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8), ((NI) 0));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		semTemplSomeDecl__sem_7085(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), ((NI) 0));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76):
	{
		checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*(*c).c).graph).config);
		semTemplSomeDecl__sem_7085(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), ((NI) 1));
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 0)]));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
		semTemplSomeDecl__sem_7085(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10), ((NI) 0));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		{
			NI i_14;
			NI colontmp__9;
			NI i_15;
			i_14 = (NI)0;
			colontmp__9 = (NI)0;
			colontmp__9 = len__ast_3198(n);
			i_15 = ((NI) 0);
			{
				while (1) {
					if (!(i_15 < colontmp__9)) goto LA114;
					i_14 = i_15;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_3;
						a_3 = (*n)._kind_6.sons->data[i_14];
						{
							if (!((*a_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA118_;
							goto LA115;
						}
						LA118_: ;
						{
							if (!!(((*a_3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA122_;
							illFormedAst__semdata_1071(a_3, (*(*(*c).c).graph).config);
						}
						LA122_: ;
						checkSonsLen__semdata_1077(a_3, ((NI) 3), (*(*(*c).c).graph).config);
						addLocalDecl__sem_6844(c, &(*a_3)._kind_6.sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
					} LA115: ;
					i_15 += ((NI) 1);
				} LA114: ;
			}
		}
		{
			NI i_16;
			NI colontmp__10;
			NI i_17;
			i_16 = (NI)0;
			colontmp__10 = (NI)0;
			colontmp__10 = len__ast_3198(n);
			i_17 = ((NI) 0);
			{
				while (1) {
					if (!(i_17 < colontmp__10)) goto LA126;
					i_16 = i_17;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_4;
						a_4 = (*n)._kind_6.sons->data[i_16];
						{
							if (!((*a_4).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA130_;
							goto LA127;
						}
						LA130_: ;
						{
							if (!!(((*a_4).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA134_;
							illFormedAst__semdata_1071(a_4, (*(*(*c).c).graph).config);
						}
						LA134_: ;
						checkSonsLen__semdata_1077(a_4, ((NI) 3), (*(*(*c).c).graph).config);
						{
							if (!!(((*(*a_4)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA138_;
							openScope__sem_6791(c);
							asgnRef((void**) (&(*a_4)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_6788(c, (*a_4)._kind_6.sons->data[((NI) 1)]));
							asgnRef((void**) (&(*a_4)._kind_6.sons->data[((NI) 2)]), semTemplBody__sem_6788(c, (*a_4)._kind_6.sons->data[((NI) 2)]));
							closeScope__sem_6793(c);
						}
						goto LA136_;
						LA138_: ;
						{
							asgnRef((void**) (&(*a_4)._kind_6.sons->data[((NI) 2)]), semTemplBody__sem_6788(c, (*a_4)._kind_6.sons->data[((NI) 2)]));
						}
						LA136_: ;
					} LA127: ;
					i_17 += ((NI) 1);
				} LA126: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		result = semRoutineInTemplBody__sem_7009(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = semRoutineInTemplBody__sem_7009(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
	{
		result = semRoutineInTemplBody__sem_7009(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	{
		result = semRoutineInTemplBody__sem_7009(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	{
		result = semRoutineInTemplBody__sem_7009(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	{
		result = semRoutineInTemplBody__sem_7009(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	{
		result = semRoutineInTemplBody__sem_7009(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 0)]));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	{
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 1)]));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = NIM_NIL;
			{
				NI i_18;
				NI colontmp__11;
				NI i_19;
				i_18 = (NI)0;
				colontmp__11 = (NI)0;
				colontmp__11 = safeLen__ast_3191(n);
				i_19 = ((NI) 0);
				{
					while (1) {
						if (!(i_19 < colontmp__11)) goto LA154;
						i_18 = i_19;
						x = (*n)._kind_6.sons->data[i_18];
						{
							if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA157_;
							asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_6788(c, (*x)._kind_6.sons->data[((NI) 1)]));
						}
						LA157_: ;
						i_19 += ((NI) 1);
					} LA154: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T160_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T161_;
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		T160_ = NIM_NIL;
		T160_ = getIdent__idents_143((*(*c).c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_27));
		T161_ = NIM_NIL;
		T161_ = newIdentNode__ast_3712(T160_, (*n).info);
		add__ast_4797(result, T161_);
		{
			NI i_20;
			NI colontmp__12;
			NI i_21;
			i_20 = (NI)0;
			colontmp__12 = (NI)0;
			colontmp__12 = len__ast_3198(n);
			i_21 = ((NI) 0);
			{
				while (1) {
					if (!(i_21 < colontmp__12)) goto LA164;
					i_20 = i_21;
					add__ast_4797(result, (*n)._kind_6.sons->data[i_20]);
					i_21 += ((NI) 1);
				} LA164: ;
			}
		}
		result = semTemplBodySons__sem_7133(c, result);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T166_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T167_;
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		T166_ = NIM_NIL;
		T166_ = getIdent__idents_143((*(*c).c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_127));
		T167_ = NIM_NIL;
		T167_ = newIdentNode__ast_3712(T166_, (*n).info);
		add__ast_4797(result, T167_);
		{
			NI i_22;
			NI colontmp__13;
			NI i_23;
			i_22 = (NI)0;
			colontmp__13 = (NI)0;
			colontmp__13 = len__ast_3198(n);
			i_23 = ((NI) 0);
			{
				while (1) {
					if (!(i_23 < colontmp__13)) goto LA170;
					i_22 = i_23;
					add__ast_4797(result, (*n)._kind_6.sons->data[i_22]);
					i_23 += ((NI) 1);
				} LA170: ;
			}
		}
		result = semTemplBodySons__sem_7133(c, result);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_5;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k;
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*(*c).c).graph).config);
		a_5 = (*n)._kind_6.sons->data[((NI) 0)];
		b = (*n)._kind_6.sons->data[((NI) 1)];
		k = (*a_5).kind;
		switch (k) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		{
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T173_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T174_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a0;
			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
			T173_ = NIM_NIL;
			T173_ = getIdent__idents_143((*(*c).c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_132));
			T174_ = NIM_NIL;
			T174_ = newIdentNode__ast_3712(T173_, (*n).info);
			add__ast_4797(result, T174_);
			{
				NI i_24;
				NI colontmp__14;
				NI i_25;
				i_24 = (NI)0;
				colontmp__14 = (NI)0;
				colontmp__14 = len__ast_3198(a_5);
				i_25 = ((NI) 0);
				{
					while (1) {
						if (!(i_25 < colontmp__14)) goto LA177;
						i_24 = i_25;
						add__ast_4797(result, (*a_5)._kind_6.sons->data[i_24]);
						i_25 += ((NI) 1);
					} LA177: ;
				}
			}
			add__ast_4797(result, b);
			a0 = semTemplBody__sem_6788(c, (*a_5)._kind_6.sons->data[((NI) 0)]);
			result = semTemplBodySons__sem_7133(c, result);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
		{
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T179_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T180_;
			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
			T179_ = NIM_NIL;
			T179_ = getIdent__idents_143((*(*c).c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_131));
			T180_ = NIM_NIL;
			T180_ = newIdentNode__ast_3712(T179_, (*n).info);
			add__ast_4797(result, T180_);
			{
				NI i_26;
				NI colontmp__15;
				NI i_27;
				i_26 = (NI)0;
				colontmp__15 = (NI)0;
				colontmp__15 = len__ast_3198(a_5);
				i_27 = ((NI) 0);
				{
					while (1) {
						if (!(i_27 < colontmp__15)) goto LA183;
						i_26 = i_27;
						add__ast_4797(result, (*a_5)._kind_6.sons->data[i_26]);
						i_27 += ((NI) 1);
					} LA183: ;
				}
			}
			add__ast_4797(result, b);
			result = semTemplBodySons__sem_7133(c, result);
		}
		break;
		default:
		{
			result = semTemplBodySons__sem_7133(c, n);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			NIM_BOOL T188_;
			T188_ = (NIM_BOOL)0;
			T188_ = isRunnableExamples__ast_4698((*n)._kind_6.sons->data[((NI) 0)]);
			if (!!(T188_)) goto LA189_;
			result = semTemplBodySons__sem_7133(c, n);
		}
		LA189_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
		s_2 = qualifiedLookUp__lookups_1233((*c).c, n, 0);
		{
			if (!!((s_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA194_;
			{
				NIM_BOOL T198_;
				NIM_BOOL T199_;
				NIM_BOOL T200_;
				NI T204_;
				T198_ = (NIM_BOOL)0;
				T199_ = (NIM_BOOL)0;
				T200_ = (NIM_BOOL)0;
				T200_ = ((*s_2).owner == (*c).owner);
				if (!(T200_)) goto LA201_;
				T200_ = ((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
				LA201_: ;
				T199_ = T200_;
				if (!(T199_)) goto LA202_;
				T199_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53));
				LA202_: ;
				T198_ = T199_;
				if (!(T198_)) goto LA203_;
				T204_ = (NI)0;
				T204_ = len__ast_3198(n);
				T198_ = (T204_ == ((NI) 1));
				LA203_: ;
				if (!T198_) goto LA205_;
				(*s_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				result = newSymNode__ast_3719(s_2, (*n).info);
				goto BeforeRet_;
			}
			goto LA196_;
			LA205_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym1829_;
				NIM_BOOL T208_;
				xX60gensym1829_ = s_2;
				T208_ = (NIM_BOOL)0;
				T208_ = contains__astalgo_3489((&(*c).toBind), (NI)((NI)((NU64)(((NI) ((*xX60gensym1829_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym1829_).Sup.itemId.item))));
				if (!T208_) goto LA209_;
				result = symChoice__sem_6586((*c).c, n, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), (((NI) 0) < (*c).noGenSym));
				goto BeforeRet_;
			}
			goto LA196_;
			LA209_: ;
			{
				NIM_BOOL T212_;
				T212_ = (NIM_BOOL)0;
				T212_ = contains__astalgo_3489((&(*c).toMixin), (*(*s_2).name).id);
				if (!T212_) goto LA213_;
				result = symChoice__sem_6586((*c).c, n, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 2), (((NI) 0) < (*c).noGenSym));
				goto BeforeRet_;
			}
			goto LA196_;
			LA213_: ;
			{
				result = symChoice__sem_6586((*c).c, n, s_2, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 1), (((NI) 0) < (*c).noGenSym));
				goto BeforeRet_;
			}
			LA196_: ;
		}
		LA194_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA218_;
			result = n;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 0)]));
			(*c).noGenSym += ((NI) 1);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 1)]));
			(*c).noGenSym -= ((NI) 1);
		}
		goto LA216_;
		LA218_: ;
		{
			result = semTemplBodySons__sem_7133(c, n);
		}
		LA216_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	{
		{
			NI T224_;
			T224_ = (NI)0;
			T224_ = len__ast_3198(n);
			if (!(T224_ == ((NI) 2))) goto LA225_;
			(*c).noGenSym += ((NI) 1);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 0)]));
			(*c).noGenSym -= ((NI) 1);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semTemplBody__sem_6788(c, (*n)._kind_6.sons->data[((NI) 1)]));
		}
		goto LA222_;
		LA225_: ;
		{
			result = semTemplBodySons__sem_7133(c, n);
		}
		LA222_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 54):
	{
		{
			NI i_28;
			NI colontmp__16;
			NI i_29;
			i_28 = (NI)0;
			colontmp__16 = (NI)0;
			colontmp__16 = len__ast_3198(n);
			i_29 = ((NI) 0);
			{
				while (1) {
					if (!(i_29 < colontmp__16)) goto LA231;
					i_28 = i_29;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_28]), semTemplBodySons__sem_7133(c, (*n)._kind_6.sons->data[i_28]));
					i_29 += ((NI) 1);
				} LA231: ;
			}
		}
	}
	break;
	default:
	{
		result = semTemplBodySons__sem_7133(c, n);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTemplateDef__sem_7666)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T27_;
	NIM_BOOL allUntyped;
	tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw ctx;
	tyTuple__7rlNEhvBksZh9a9asniQIl9aQ T73_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* proto;
	NIM_BOOL comesFromShadowscope;
	result = NIM_NIL;
	result = n;
	s = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1091(c);
		if (!T3_) goto LA4_;
		s = semIdentVis__sem_471(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18), (*n)._kind_6.sons->data[((NI) 0)], 2);
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
	}
	goto LA1_;
	LA4_: ;
	{
		s = semIdentVis__sem_471(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18), (*n)._kind_6.sons->data[((NI) 0)], 0);
	}
	LA1_: ;
	{
		if (!!(((*s).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA9_;
		{
			NIM_BOOL T13_;
			NIM_BOOL T14_;
			NIM_BOOL T17_;
			T13_ = (NIM_BOOL)0;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*(*s).owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T14_ = contains__stdZenumutils_43(names__sem_7688, 8, (*(*s).name).s);
			LA15_: ;
			T13_ = T14_;
			if (T13_) goto LA16_;
			T17_ = (NIM_BOOL)0;
			T17_ = eqStrings((*(*(*s).owner).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_669));
			if (!(T17_)) goto LA18_;
			T17_ = eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_670));
			LA18_: ;
			T13_ = T17_;
			LA16_: ;
			if (!T13_) goto LA19_;
			(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 36)) & 63);
		}
		LA19_: ;
	}
	LA9_: ;
	{
		NIM_BOOL T23_;
		T23_ = (NIM_BOOL)0;
		T23_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
		if (!(T23_)) goto LA24_;
		T23_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
		LA24_: ;
		if (!T23_) goto LA25_;
		nep1CheckDefImpl__linter_110((*(*c).graph).config, (*s).info, s, (*s).kind);
	}
	LA25_: ;
	pushOwner__semdata_322(c, s);
	T27_ = NIM_NIL;
	T27_ = openScope__lookups_69(c);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(s));
	pragmaCallable__pragmas_2552(c, s, n, TM__rF9caJawfOjYTjsgLVUSGFA_671, NIM_FALSE);
	implicitPragmas__pragmas_2394(c, s, (*n).info, TM__rF9caJawfOjYTjsgLVUSGFA_671);
	setGenericParamsMisc__sem_6510(c, n);
	allUntyped = NIM_TRUE;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 3)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA30_;
		semParamList__sem_91(c, (*n)._kind_6.sons->data[((NI) 3)], (*n)._kind_6.sons->data[((NI) 2)], s);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198((*(*s).typ).n);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
					if (!(i_2 < colontmp_)) goto LA34;
					i = i_2;
					param = (*(*(*(*s).typ).n)._kind_6.sons->data[i])._kind_4.sym;
					(*param).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 40)) & 63);
					(*param).flags &= ~(((NU64)1) << ((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37)) & 63));
					{
						if (!!(((*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)))) goto LA37_;
						allUntyped = NIM_FALSE;
					}
					LA37_: ;
					i_2 += ((NI) 1);
				} LA34: ;
			}
		}
	}
	goto LA28_;
	LA30_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T40_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T41_;
		asgnRef((void**) (&(*s).typ), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25), c));
		asgnRef((void**) (&(*(*s).typ).n), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), (*n).info));
		T40_ = NIM_NIL;
		T40_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7), c);
		rawAddSon__ast_4288((*s).typ, T40_, NIM_TRUE);
		T41_ = NIM_NIL;
		T41_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*n).info, (*(*s).typ).sons->data[((NI) 0)]);
		add__ast_4797((*(*s).typ).n, T41_);
	}
	LA28_: ;
	{
		NI T44_;
		T44_ = (NI)0;
		T44_ = safeLen__ast_3191((*n)._kind_6.sons->data[((NI) 2)]);
		if (!(T44_ == ((NI) 0))) goto LA45_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 2)]), (*(*n)._kind_6.sons->data[((NI) 5)])._kind_6.sons->data[((NI) 1)]);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 5)]), (*(*c).graph).emptyNode);
	}
	LA45_: ;
	{
		if (!allUntyped) goto LA49_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9)) & 63);
	}
	LA49_: ;
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA53_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semPattern__sem_7129(c, (*n)._kind_6.sons->data[((NI) 1)], s));
	}
	LA53_: ;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_TemplCtx__nh9bf8hW4pDvkirLeE4rmdw));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toBind));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toMixin));
	initIntSet__pureZcollectionsZintsets_238((&ctx.toInject));
	ctx.c = c;
	ctx.owner = s;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0)) goto LA57_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semTemplBodyDirty__sem_7597((&ctx), (*n)._kind_6.sons->data[((NI) 6)]));
	}
	goto LA55_;
	LA57_: ;
	{
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), semTemplBody__sem_6788((&ctx), (*n)._kind_6.sons->data[((NI) 6)]));
	}
	LA55_: ;
	closeScope__lookups_101(c);
	popOwner__semdata_329(c);
	asgnRef((void**) (&(*s).ast), n);
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0)) goto LA62_;
		{
			NimStringDesc* T68_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA66_;
			T68_ = NIM_NIL;
			T68_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_218), (*(*s).name).s);
			liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 6)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T68_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_672, NIM_FALSE);
		}
		LA66_: ;
	}
	goto LA60_;
	LA62_: ;
	{
		NimStringDesc* T72_;
		if (!((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA70_;
		T72_ = NIM_NIL;
		T72_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_391), (*(*s).name).s);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T72_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_673, NIM_FALSE);
	}
	goto LA60_;
	LA70_: ;
	LA60_: ;
	nimZeroMem((void*)(&T73_), sizeof(tyTuple__7rlNEhvBksZh9a9asniQIl9aQ));
	searchForProc__procfind_73(c, (*c).currentScope, s, (&T73_));
	proto = NIM_NIL;
	proto = T73_.Field0;
	comesFromShadowscope = (NIM_BOOL)0;
	comesFromShadowscope = T73_.Field1;
	{
		if (!(proto == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA76_;
		addInterfaceOverloadableSymAt__lookups_899(c, (*c).currentScope, s);
	}
	goto LA74_;
	LA76_: ;
	{
		if (!!(comesFromShadowscope)) goto LA79_;
		symTabReplace__astalgo_3295((&(*(*c).currentScope).symbols), proto, s);
	}
	goto LA74_;
	LA79_: ;
	LA74_: ;
	{
		NI T85_;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA83_;
		asgnRef((void**) (&(*c).patterns), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*c).patterns), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
		T85_ = (*c).patterns->Sup.len++;
		asgnRef((void**) (&(*c).patterns->data[T85_]), s);
	}
	LA83_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semQuoteAst__sem_111)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* quotedBlock;
	NI T9_;
	NimStringDesc* op;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* quotes;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* ids;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T20_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dummyTemplate;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T21_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpl;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* identNodeSym;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* identNode;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T41_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T42_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T43_;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3198(n);
		T3_ = !((T4_ == ((NI) 2)));
		if (!(T3_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__ast_3198(n);
		T3_ = !((T6_ == ((NI) 3)));
		LA5_: ;
		if (!T3_) goto LA7_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_655), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_656, NIM_FALSE);
		result = n;
		goto BeforeRet_;
	}
	LA7_: ;
	T9_ = (NI)0;
	T9_ = len__ast_3198(n);
	quotedBlock = (*n)._kind_6.sons->data[(NI)(T9_ - ((NI) 1))];
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = len__ast_3198(n);
		if (!(T12_ == ((NI) 3))) goto LA13_;
		op = expectString__sem_18186(c, (*n)._kind_6.sons->data[((NI) 1)]);
	}
	goto LA10_;
	LA13_: ;
	{
		op = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_658));
	}
	LA10_: ;
	quotes = newSeq__sem_18394(((NI) 2));
	ids = newSeq__sem_18394(((NI) 1));
	{
		if (!!(((*quotedBlock).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115)))) goto LA18_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 5), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_659), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_660, NIM_FALSE);
	}
	LA18_: ;
	T20_ = NIM_NIL;
	T20_ = newAnonSym__sem_18195(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), (*n).info);
	asgnRef((void**) (&ids->data[((NI) 0)]), newSymNode__ast_3716(T20_));
	processQuotations__sem_18273(c, &quotedBlock, op, (&quotes), (&ids));
	T21_ = NIM_NIL;
	T21_ = newAnonSym__sem_18195(c, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18), (*n).info);
	T22_ = NIM_NIL;
	T22_ = newSymNode__ast_3716(T21_);
	dummyTemplate = newProcNode__ast_3821(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83), (*quotedBlock).info, quotedBlock, (*(*c).graph).emptyNode, T22_, (*(*c).graph).emptyNode, (*(*c).graph).emptyNode, (*(*c).graph).emptyNode, (*(*c).graph).emptyNode);
	{
		NI T25_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T28_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T30_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		NI T32_;
		NI T33_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
		T25_ = (ids ? ids->Sup.len : 0);
		if (!(((NI) 0) < T25_)) goto LA26_;
		asgnRef((void**) (&(*dummyTemplate)._kind_6.sons->data[((NI) 3)]), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76), (*n).info));
		T28_ = NIM_NIL;
		T28_ = getSysSym__magicsys_16((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_661));
		T29_ = NIM_NIL;
		T29_ = newSymNode__ast_3716(T28_);
		add__ast_4797((*dummyTemplate)._kind_6.sons->data[((NI) 3)], T29_);
		T30_ = NIM_NIL;
		T30_ = getSysSym__magicsys_16((*c).graph, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_661));
		T31_ = NIM_NIL;
		T31_ = newSymNode__ast_3716(T30_);
		ids = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(ids), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		T32_ = ids->Sup.len++;
		asgnRef((void**) (&ids->data[T32_]), T31_);
		ids = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(ids), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		T33_ = ids->Sup.len++;
		asgnRef((void**) (&ids->data[T33_]), (*(*c).graph).emptyNode);
		T34_ = NIM_NIL;
		T34_ = newTreeI__ast_3420(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*n).info, ids->data, (ids ? ids->Sup.len : 0));
		add__ast_4797((*dummyTemplate)._kind_6.sons->data[((NI) 3)], T34_);
	}
	LA26_: ;
	tmpl = semTemplateDef__sem_7666(c, dummyTemplate);
	asgnRef((void**) (&quotes->data[((NI) 0)]), (*tmpl)._kind_6.sons->data[((NI) 0)]);
	identNodeSym = getCompilerProc__magicsys_145((*c).graph, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_674));
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T39_;
		if (!(identNodeSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA37_;
		T39_ = NIM_NIL;
		T39_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_674));
		identNode = newIdentNode__ast_3712(T39_, (*n).info);
	}
	goto LA35_;
	LA37_: ;
	{
		identNode = newSymNode__ast_3716(identNodeSym);
	}
	LA35_: ;
	nimZeroMem((void*)T41_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T41_[0] = identNode;
	T41_[1] = newStrNode__ast_3813(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_102));
	asgnRef((void**) (&quotes->data[((NI) 1)]), newTreeI__ast_3420(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, T41_, 2));
	nimZeroMem((void*)T42_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T43_ = NIM_NIL;
	T43_ = createMagic__modulegraphs_9008((*c).graph, (*c).Sup.idgen, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_675), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 27));
	T42_[0] = newSymNode__ast_3716(T43_);
	T42_[1] = newTreeI__ast_3420(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, quotes->data, (quotes ? quotes->Sup.len : 0));
	result = newTreeI__ast_3420(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, T42_, 2);
	result = semExpandToAst__sem_18200(c, result);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, createFlowVar__sem_18530)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T1_;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T2_;
	result = NIM_NIL;
	T1_ = nextTypeId__ast_3151((*c).Sup.idgen);
	result = newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9), T1_, (*c).module);
	T2_ = NIM_NIL;
	T2_ = getCompilerProc__magicsys_145((*c).graph, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_680));
	addSonSkipIntLit__magicsys_136(result, (*T2_).typ, (*c).Sup.idgen);
	addSonSkipIntLit__magicsys_136(result, t, (*c).Sup.idgen);
	result = instGenericContainer__sem_1125(c, info, result, NIM_FALSE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, instantiateCreateFlowVarCall__sem_18535)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
	tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q bindings;
	result = NIM_NIL;
	sym = getCompilerProc__magicsys_145((*c).graph, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_681));
	{
		if (!(sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA3_;
		liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_682), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_683, NIM_FALSE);
	}
	LA3_: ;
	nimZeroMem((void*)(&bindings), sizeof(tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q));
	initIdTable__ast_4096((&bindings));
	idTablePut__astalgo_70((&bindings), (*((tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w**) (&((*(*(*(*sym).ast)._kind_6.sons->data[((NI) 2)])._kind_6.sons->data[((NI) 0)]).typ)))), &t->Sup.Sup);
	result = (*c).semGenerateInstance.ClE_0? (*c).semGenerateInstance.ClP_0(c, sym, bindings, info, (*c).semGenerateInstance.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_684)((*c).semGenerateInstance.ClP_0))(c, sym, bindings, info);
	{
		if (!(((*result).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 18))&63U)))!=0)) goto LA7_;
		(*result).flags = ((*result).flags & ~ 262336);
		asgnRef((void**) (&(*result).loc.r), ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL));
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSizeof__sem_18565)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* configX60gensym4900_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodeX60gensym4900_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typX60gensym4900_;
	NI64 sizeX60gensym4900_;
	result = NIM_NIL;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_340), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_685));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_686, NIM_FALSE);
	}
	goto LA1_;
	LA4_: ;
	{
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], 512));
	}
	LA1_: ;
	asgnRef((void**) (&(*n).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31)));
	configX60gensym4900_ = (*(*c).graph).config;
	nodeX60gensym4900_ = n;
	typX60gensym4900_ = (*(*nodeX60gensym4900_)._kind_6.sons->data[((NI) 1)]).typ;
	computeSizeAlign__types_2924(configX60gensym4900_, typX60gensym4900_);
	sizeX60gensym4900_ = (*typX60gensym4900_).size;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resX60gensym4900_;
		if (!(IL64(0) <= sizeX60gensym4900_)) goto LA10_;
		resX60gensym4900_ = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), sizeX60gensym4900_);
		(*resX60gensym4900_).info = (*nodeX60gensym4900_).info;
		asgnRef((void**) (&(*resX60gensym4900_).typ), (*nodeX60gensym4900_).typ);
		result = resX60gensym4900_;
	}
	goto LA8_;
	LA10_: ;
	{
		result = n;
	}
	LA8_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMagic__sem_18585)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*s).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 16):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3719(s, (*(*n)._kind_6.sons->data[((NI) 0)]).info));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semAddrArg__sem_15267(c, (*n)._kind_6.sons->data[((NI) 1)], eqStrings((*(*s).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_243))));
		asgnRef((void**) (&(*result).typ), makePtrType__semdata_742(c, (*(*result)._kind_6.sons->data[((NI) 1)]).typ));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 18):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = semTypeOf__sem_132(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 1):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T4_ = NIM_NIL;
		T4_ = setMs__sem_18559(n, s);
		result = semDefined__sem_18124(c, T4_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 2):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T6_ = NIM_NIL;
		T6_ = setMs__sem_18559(n, s);
		result = semDeclared__sem_18156(c, T6_, NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 3):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T8_ = NIM_NIL;
		T8_ = setMs__sem_18559(n, s);
		result = semDeclared__sem_18156(c, T8_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 4):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T10_ = NIM_NIL;
		T10_ = setMs__sem_18559(n, s);
		result = semCompiles__sem_18496(c, T10_, flags);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T12_ = NIM_NIL;
		T12_ = setMs__sem_18559(n, s);
		result = semIs__sem_14687(c, T12_, flags);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 21):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = semShallowCopy__sem_15758(c, n, flags);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 27):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = semExpandToAst__sem_18263(c, n, s, flags);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 28):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = semQuoteAst__sem_111(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 140):
	{
		NimStringDesc* T17_;
		markUsed__sigmatch_85(c, (*n).info, s);
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
		T17_ = NIM_NIL;
		T17_ = renderTree__renderer_46((*n)._kind_6.sons->data[((NI) 1)], 4);
		result = newStrNodeT__semfold_76(T17_, n, (*c).graph);
		asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28)));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 141):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		markUsed__sigmatch_85(c, (*n).info, s);
		{
			if (!!((((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 3))&31U)))!=0))) goto LA21_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_676), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_677, NIM_FALSE);
		}
		LA21_: ;
		result = setMs__sem_18559(n, s);
		x = lastSon__ast_4832(n);
		{
			if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52))) goto LA25_;
			x = (*x)._kind_6.sons->data[((NI) 6)];
		}
		LA25_: ;
		(*c).inParallelStmt += ((NI) 1);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semStmt__sem_84(c, x, 0));
		(*c).inParallelStmt -= ((NI) 1);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 198):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
		NI T40_;
		markUsed__sigmatch_85(c, (*n).info, s);
		result = setMs__sem_18559(n, s);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA30;
					i = i_2;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), semExpr__sem_52(c, (*n)._kind_6.sons->data[i], 0));
					i_2 += ((NI) 1);
				} LA30: ;
			}
		}
		{
			NIM_BOOL T33_;
			NI T34_;
			NimStringDesc* T38_;
			NimStringDesc* T39_;
			T33_ = (NIM_BOOL)0;
			T34_ = (NI)0;
			T34_ = len__ast_3198(n);
			T33_ = (((NI) 1) < T34_);
			if (!(T33_)) goto LA35_;
			T33_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)));
			LA35_: ;
			if (!T33_) goto LA36_;
			T38_ = NIM_NIL;
			T39_ = NIM_NIL;
			T39_ = dollar___renderer_2106((*n)._kind_6.sons->data[((NI) 1)]);
			T38_ = rawNewString((T39_ ? T39_->Sup.len : 0) + 38);
appendString(T38_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_678));
appendString(T38_, T39_);
			liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T38_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_679, NIM_FALSE);
			result = errorNode__semdata_1009(c, n);
			goto BeforeRet_;
		}
		LA36_: ;
		T40_ = (NI)0;
		T40_ = len__ast_3198(result);
		typ = (*(*result)._kind_6.sons->data[(NI)(T40_ - ((NI) 1))]).typ;
		{
			NIM_BOOL T43_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T52_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T53_;
			T43_ = (NIM_BOOL)0;
			T43_ = isEmptyType__ast_4779(typ);
			if (!!(T43_)) goto LA44_;
			{
				tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw T48_;
				T48_ = (tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw)0;
				T48_ = spawnResult__spawn_34(typ, (((NI) 0) < (*c).inParallelStmt));
				if (!(T48_ == ((tyEnum_TSpawnResult__YOcUu9brt5AKRflRWdxATPw) 1))) goto LA49_;
				asgnRef((void**) (&(*result).typ), createFlowVar__sem_18530(c, typ, (*n).info));
			}
			goto LA46_;
			LA49_: ;
			{
				asgnRef((void**) (&(*result).typ), typ);
			}
			LA46_: ;
			T52_ = NIM_NIL;
			T52_ = instantiateCreateFlowVarCall__sem_18535(c, typ, (*n).info);
			T53_ = NIM_NIL;
			T53_ = newSymNode__ast_3716(T52_);
			add__ast_4797(result, T53_);
		}
		goto LA41_;
		LA44_: ;
		{
			add__ast_4797(result, (*(*c).graph).emptyNode);
		}
		LA41_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 203):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		result = setMs__sem_18559(n, s);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 1)], 0));
		asgnRef((void**) (&(*result).typ), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 19):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig;
		markUsed__sigmatch_85(c, (*n).info, s);
		nOrig = copyTree__ast_4431(n);
		result = semOverloadedCallAnalyseEffects__sem_16425(c, n, nOrig, flags);
		{
			if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA59_;
			result = errorNode__semdata_1009(c, n);
		}
		goto LA57_;
		LA59_: ;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* callee;
			callee = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				if (!((*callee).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA64_;
				semFinishOperands__sigmatch_4162(c, result);
			}
			LA64_: ;
			activate__sem_108(c, result);
			fixAbstractType__sem_14967(c, result);
			analyseIfAddressTakenInCall__sem_15147(c, result);
			{
				if (!!(((*callee).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA68_;
				result = magicsAfterOverloadResolution__sem_16031(c, result, flags);
			}
			LA68_: ;
		}
		LA57_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 267):
	{
		markUsed__sigmatch_85(c, (*n).info, s);
		{
			NIM_BOOL T73_;
			NIM_BOOL T74_;
			NI T76_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
			T73_ = (NIM_BOOL)0;
			T74_ = (NIM_BOOL)0;
			T74_ = ((3989504 &((NU32)1<<((NU)((*(*(*c).graph).config).cmd)&31U)))!=0);
			if (!(T74_)) goto LA75_;
			T76_ = (NI)0;
			T76_ = len__ast_3198(n);
			T74_ = (((NI) 2) <= T76_);
			LA75_: ;
			T73_ = T74_;
			if (!(T73_)) goto LA77_;
			T78_ = NIM_NIL;
			T78_ = lastSon__ast_4832(n);
			T73_ = ((*T78_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
			LA77_: ;
			if (!T73_) goto LA79_;
			result = setMs__sem_18559(n, s);
		}
		goto LA71_;
		LA79_: ;
		{
			result = (*(*c).graph).emptyNode;
		}
		LA71_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 10):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T83_;
		markUsed__sigmatch_85(c, (*n).info, s);
		T83_ = NIM_NIL;
		T83_ = setMs__sem_18559(n, s);
		result = semSizeof__sem_18565(c, T83_);
	}
	break;
	default:
	{
		result = semDirectOp__sem_511(c, n, flags);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__lowerings_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info, (*(*n).typ).sons->data[((NI) 0)]);
	add__ast_4797(result, n);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, bracketedMacro__sem_16496)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3198(n);
		T3_ = (((NI) 1) <= T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA5_: ;
		if (!T3_) goto LA6_;
		result = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
		{
			if (!!(((393216 &((NU32)1<<((NU)((*result).kind)&31U)))!=0))) goto LA10_;
			result = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
		}
		LA10_: ;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setGenericParams__sem_16512)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[i]).typ), semTypeNode__sem_80(c, (*n)._kind_6.sons->data[i], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, resolveIndirectCall__sem_16480)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA* Result) {
	unsureAsgnRef((void**)&(*Result).c, NIM_NIL);
	(*Result).exactMatches = 0;
	(*Result).genericMatches = 0;
	(*Result).subtypeMatches = 0;
	(*Result).intConvMatches = 0;
	(*Result).convMatches = 0;
	(*Result).state = 0;
	unsureAsgnRef((void**)&(*Result).callee, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).calleeSym, NIM_NIL);
	(*Result).calleeScope = 0;
	unsureAsgnRef((void**)&(*Result).call, NIM_NIL);
	(*Result).bindings.counter = 0;
	unsureAsgnRef((void**)&(*Result).bindings.data, NIM_NIL);
	(*Result).magic = 0;
	(*Result).baseTypeMatch = 0;
	(*Result).fauxMatch = 0;
	(*Result).genericConverter = 0;
	(*Result).coerceDistincts = 0;
	(*Result).typedescMatched = 0;
	(*Result).isNoCall = 0;
	unsureAsgnRef((void**)&(*Result).inferredTypes, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).diagnostics, NIM_NIL);
	(*Result).inheritancePenalty = 0;
	(*Result).firstMismatch.kind = 0;
	(*Result).firstMismatch.arg = 0;
	unsureAsgnRef((void**)&(*Result).firstMismatch.formal, NIM_NIL);
	(*Result).diagnosticsEnabled = 0;
	initCandidate__sigmatch_116(c, Result, t);
	matches__sigmatch_4181(c, n, nOrig, Result);
	{
		if (!!(((*Result).state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = (((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 0))&31U)))!=0);
			if (!(T7_)) goto LA8_;
			T7_ = canDeref__sem_2474(n);
			LA8_: ;
			if (!T7_) goto LA9_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), tryDeref__sem_2490((*n)._kind_6.sons->data[((NI) 1)]));
			initCandidate__sigmatch_116(c, Result, t);
			matches__sigmatch_4181(c, n, nOrig, Result);
		}
		LA9_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, overloadedCallOpr__sem_14775)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* par;
	NIM_BOOL amb;
	result = NIM_NIL;
	par = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_215));
	amb = NIM_FALSE;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T3_;
		T3_ = NIM_NIL;
		T3_ = searchInScopes__lookups_423(c, par, (&amb));
		if (!(T3_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA4_;
		result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		T7_ = NIM_NIL;
		T7_ = newIdentNode__ast_3712(par, (*n).info);
		add__ast_4797(result, T7_);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					add__ast_4797(result, (*n)._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
		result = semExpr__sem_52(c, result, 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIndirectOp__sem_16553)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prc;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
{	result = NIM_NIL;
	result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
	prc = (*n)._kind_6.sons->data[((NI) 0)];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n0;
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA3_;
		checkSonsLen__semdata_1077((*n)._kind_6.sons->data[((NI) 0)], ((NI) 2), (*(*c).graph).config);
		n0 = semFieldAccess__sem_13895(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		{
			if (!((*n0).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25))) goto LA7_;
			result = n0;
			transitionSonsKind__ast_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 27));
			(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 11)) & 31);
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3198(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA11;
						i = i_2;
						add__ast_4797(result, (*n)._kind_6.sons->data[i]);
						i_2 += ((NI) 1);
					} LA11: ;
				}
			}
			result = semExpr__sem_52(c, result, flags);
			goto BeforeRet_;
		}
		goto LA5_;
		LA7_: ;
		{
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), n0);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], 32768));
		t = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			T16_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
			if (!(T16_)) goto LA17_;
			T16_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
			LA17_: ;
			if (!T16_) goto LA18_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newDeref__lowerings_11((*n)._kind_6.sons->data[((NI) 0)]));
		}
		goto LA14_;
		LA18_: ;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42))) goto LA21_;
			s = bracketedMacro__sem_16496((*n)._kind_6.sons->data[((NI) 0)]);
			{
				if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA25_;
				setGenericParams__sem_16512(c, (*n)._kind_6.sons->data[((NI) 0)]);
				result = semDirectOp__sem_511(c, n, flags);
				goto BeforeRet_;
			}
			LA25_: ;
		}
		goto LA14_;
		LA21_: ;
		LA14_: ;
	}
	LA1_: ;
	nOrig = copyTree__ast_4431(n);
	semOpAux__sem_88(c, n);
	t_2 = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA29_;
		t_2 = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_687);
	}
	LA29_: ;
	{
		NIM_BOOL T33_;
		tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA m;
		T33_ = (NIM_BOOL)0;
		T33_ = !((t_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T33_)) goto LA34_;
		T33_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA34_: ;
		if (!T33_) goto LA35_;
		nimZeroMem((void*)(&m), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
		resolveIndirectCall__sem_16480(c, n, nOrig, t_2, (&m));
		{
			if (!!((m.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1)))) goto LA39_;
			{
				if (!((*(*(*c).graph).config).m.errorOutputs == 0)) goto LA43_;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_267), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__rF9caJawfOjYTjsgLVUSGFA_688, NIM_FALSE);
				result = (*(*c).graph).emptyNode;
				goto BeforeRet_;
			}
			goto LA41_;
			LA43_: ;
			{
				NIM_BOOL hasErrorType;
				NimStringDesc* msg;
				hasErrorType = NIM_FALSE;
				msg = copyString(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_298));
				{
					NI i_3;
					NI colontmp__2;
					NI i_4;
					i_3 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = len__ast_3198(n);
					i_4 = ((NI) 1);
					{
						while (1) {
							tyObject_TType__facALICuu8zUj0hjvbTLFg* nt;
							NimStringDesc* T53_;
							if (!(i_4 < colontmp__2)) goto LA48;
							i_3 = i_4;
							{
								if (!(((NI) 1) < i_3)) goto LA51_;
								msg = resizeString(msg, 2);
appendString(msg, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_72));
							}
							LA51_: ;
							nt = (*(*n)._kind_6.sons->data[i_3]).typ;
							T53_ = NIM_NIL;
							T53_ = typeToString__types_50(nt, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
							msg = resizeString(msg, (T53_ ? T53_->Sup.len : 0) + 0);
appendString(msg, T53_);
							{
								if (!((*nt).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50))) goto LA56_;
								hasErrorType = NIM_TRUE;
								goto LA46;
							}
							LA56_: ;
							i_4 += ((NI) 1);
						} LA48: ;
					}
				} LA46: ;
				{
					tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
					NimStringDesc* T62_;
					NimStringDesc* T63_;
					if (!!(hasErrorType)) goto LA60_;
					typ = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
					T62_ = NIM_NIL;
					T63_ = NIM_NIL;
					T63_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
					T62_ = rawNewString((T63_ ? T63_->Sup.len : 0) + 23);
appendString(T62_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_689));
appendString(T62_, T63_);
					msg = resizeString(msg, (T62_ ? T62_->Sup.len : 0) + 0);
appendString(msg, T62_);
					{
						NIM_BOOL T66_;
						NIM_BOOL T67_;
						NimStringDesc* T72_;
						NimStringDesc* T73_;
						T66_ = (NIM_BOOL)0;
						T67_ = (NIM_BOOL)0;
						T67_ = !(((*typ).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
						if (!(T67_)) goto LA68_;
						T67_ = !((((*(*typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0));
						LA68_: ;
						T66_ = T67_;
						if (!(T66_)) goto LA69_;
						T66_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
						LA69_: ;
						if (!T66_) goto LA70_;
						T72_ = NIM_NIL;
						T73_ = NIM_NIL;
						T73_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
						T72_ = rawNewString((T73_ ? T73_->Sup.len : 0) + 3);
appendString(T72_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_690));
appendString(T72_, T73_);
						msg = resizeString(msg, (T72_ ? T72_->Sup.len : 0) + 0);
appendString(msg, T72_);
					}
					LA70_: ;
					addDeclaredLocMaybe__astmsgs_51((&msg), (*(*c).graph).config, typ);
					liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_691, NIM_FALSE);
				}
				LA60_: ;
				result = errorNode__semdata_1009(c, n);
				goto BeforeRet_;
			}
			LA41_: ;
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
		}
		goto LA37_;
		LA39_: ;
		{
			result = m.call;
			instGenericConvertersSons__sem_2316(c, result, (&m));
		}
		LA37_: ;
	}
	goto LA31_;
	LA35_: ;
	{
		NIM_BOOL T76_;
		T76_ = (NIM_BOOL)0;
		T76_ = !((t_2 == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T76_)) goto LA77_;
		T76_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
		LA77_: ;
		if (!T76_) goto LA78_;
		{
			NI T82_;
			T82_ = (NI)0;
			T82_ = len__ast_3198(n);
			if (!(T82_ == ((NI) 1))) goto LA83_;
			result = semObjConstr__sem_16476(c, n, flags);
			goto BeforeRet_;
		}
		LA83_: ;
		result = semConv__sem_14396(c, n);
		goto BeforeRet_;
	}
	goto LA31_;
	LA78_: ;
	{
		result = overloadedCallOpr__sem_14775(c, n);
		{
			if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA88_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), prc);
			asgnRef((void**) (&(*nOrig)._kind_6.sons->data[((NI) 0)]), prc);
			(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 12)) & 31);
			result = semOverloadedCallAnalyseEffects__sem_16425(c, n, nOrig, flags);
			{
				if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA92_;
				result = errorNode__semdata_1009(c, n);
				goto BeforeRet_;
			}
			LA92_: ;
		}
		goto LA86_;
		LA88_: ;
		{
			if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)))) goto LA95_;
			goto BeforeRet_;
		}
		goto LA86_;
		LA95_: ;
		LA86_: ;
	}
	LA31_: ;
	{
		if (!((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA99_;
		result = afterCallActions__sem_16525(c, result, nOrig, flags);
	}
	goto LA97_;
	LA99_: ;
	{
		fixAbstractType__sem_14967(c, result);
		analyseIfAddressTakenInCall__sem_15147(c, result);
	}
	LA97_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldBeBracketExpr__sem_20049)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
{	result = (NIM_BOOL)0;
	a = (*n)._kind_6.sons->data[((NI) 0)];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA3_;
		b = (*a)._kind_6.sons->data[((NI) 0)];
		{
			if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA7_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3198(b);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA11;
						i = i_2;
						{
							NIM_BOOL T14_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* be;
							T14_ = (NIM_BOOL)0;
							T14_ = ((*(*b)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
							if (!(T14_)) goto LA15_;
							T14_ = ((*(*(*b)._kind_6.sons->data[i])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5));
							LA15_: ;
							if (!T14_) goto LA16_;
							be = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = len__ast_3198(a);
								i_4 = ((NI) 1);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA20;
										i_3 = i_4;
										add__ast_4797(be, (*a)._kind_6.sons->data[i_3]);
										i_4 += ((NI) 1);
									} LA20: ;
								}
							}
							asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), be);
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA16_: ;
						i_2 += ((NI) 1);
					} LA11: ;
				}
			}
		}
		LA7_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGeneric__sem_20108)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		NIM_BOOL T5_;
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53))) goto LA3_;
		s = qualifiedLookUp__lookups_1233(c, n, 0);
		T5_ = (NIM_BOOL)0;
		T5_ = !((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		if (!(T5_)) goto LA6_;
		T5_ = isGenericRoutineStrict__ast_4639(s);
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, asBracketExpr__sem_20104)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3198(n);
		T3_ = (((NI) 1) < T4_);
		if (!(T3_)) goto LA5_;
		T3_ = isGeneric__sem_20108(c, (*n)._kind_6.sons->data[((NI) 1)]);
		LA5_: ;
		if (!T3_) goto LA6_;
		b = (*n)._kind_6.sons->data[((NI) 0)];
		{
			if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57))) goto LA10_;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3198(b);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA14;
						i = i_2;
						{
							NIM_BOOL T17_;
							T17_ = (NIM_BOOL)0;
							T17_ = ((*(*b)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
							if (!(T17_)) goto LA18_;
							T17_ = ((*(*(*b)._kind_6.sons->data[i])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 5));
							LA18_: ;
							if (!T17_) goto LA19_;
							result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
							{
								NI i_3;
								NI colontmp__2;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__2 = len__ast_3198(n);
								i_4 = ((NI) 1);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA23;
										i_3 = i_4;
										add__ast_4797(result, (*n)._kind_6.sons->data[i_3]);
										i_4 += ((NI) 1);
									} LA23: ;
								}
							}
							goto BeforeRet_;
						}
						LA19_: ;
						i_2 += ((NI) 1);
					} LA14: ;
				}
			}
		}
		LA10_: ;
	}
	LA6_: ;
	result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, hoistParamsUsedInDefault__sem_20169)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** call, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** letSection, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** defExpr) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI paramPos;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*(*defExpr)).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*(*defExpr))._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((*(*(*defExpr))._kind_4.sym).owner == (*(*(*call))._kind_6.sons->data[((NI) 0)])._kind_4.sym);
		LA6_: ;
		if (!T3_) goto LA7_;
		paramPos = (NI)((*(*(*defExpr))._kind_4.sym).position + ((NI) 1));
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* hoistedVarSym;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T13_;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T14_;
			tyArray__T6RKPw8xfAeNaoei9aZGzXg T15_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			if (!!(((*(*(*call))._kind_6.sons->data[paramPos]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA11_;
			T13_ = NIM_NIL;
			T13_ = getIdent__idents_143((*(*c).graph).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_692));
			T14_ = nextSymId__ast_3132((*c).Sup.idgen);
			hoistedVarSym = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), T13_, T14_, (*(*c).p).owner, (*(*letSection)).info, (*(*(*c).p).owner).options);
			asgnRef((void**) (&(*hoistedVarSym).typ), (*(*(*call))._kind_6.sons->data[paramPos]).typ);
			nimZeroMem((void*)T15_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
			T15_[0] = newSymNode__ast_3716(hoistedVarSym);
			T15_[1] = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*letSection)).info);
			T15_[2] = (*(*call))._kind_6.sons->data[paramPos];
			T16_ = NIM_NIL;
			T16_ = newTreeI__ast_3420(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*(*letSection)).info, T15_, 3);
			add__ast_4797((*letSection), T16_);
			asgnRef((void**) (&(*(*call))._kind_6.sons->data[paramPos]), newSymNode__ast_3716(hoistedVarSym));
		}
		LA11_: ;
		unsureAsgnRef((void**) (&(*defExpr)), (*(*call))._kind_6.sons->data[paramPos]);
	}
	goto LA1_;
	LA7_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191((*defExpr));
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					hoistParamsUsedInDefault__sem_20169(c, call, letSection, &(*(*defExpr))._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrayAccess__sem_17549)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = semSubscript__sem_15316(c, n, flags);
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_27));
		T6_ = NIM_NIL;
		T6_ = buildOverloadedSubscripts__sem_17363(n, T5_);
		result = semExpr__sem_52(c, T6_, flags);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg, checkPar__sem_18936)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg result;
{	result = (tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 3);
	}
	goto LA1_;
	LA4_: ;
	{
		NI T7_;
		T7_ = (NI)0;
		T7_ = len__ast_3198(n);
		if (!(T7_ == ((NI) 1))) goto LA8_;
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA12_;
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 2);
		}
		goto LA10_;
		LA12_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA15_;
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 3);
		}
		goto LA10_;
		LA15_: ;
		{
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 1);
		}
		LA10_: ;
	}
	goto LA1_;
	LA8_: ;
	{
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA21_;
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 2);
		}
		goto LA19_;
		LA21_: ;
		{
			result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 3);
		}
		LA19_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					{
						if (!(result == ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 2))) goto LA29_;
						{
							NIM_BOOL T33_;
							T33_ = (NIM_BOOL)0;
							T33_ = !(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)));
							if (T33_) goto LA34_;
							T33_ = !(((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2) || (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53)));
							LA34_: ;
							if (!T33_) goto LA35_;
							liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_693), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_694, NIM_FALSE);
							result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 0);
							goto BeforeRet_;
						}
						LA35_: ;
					}
					goto LA27_;
					LA29_: ;
					{
						{
							if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA40_;
							liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_695), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_696, NIM_FALSE);
							result = ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 0);
							goto BeforeRet_;
						}
						LA40_: ;
					}
					LA27_: ;
					i_2 += ((NI) 1);
				} LA26: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTuplePositionsConstr__sem_19059)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
	result = NIM_NIL;
	result = n;
	transitionSonsKind__ast_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 160));
	typ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), c);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[i], 0));
				addSonSkipIntLit__magicsys_136(typ, (*(*n)._kind_6.sons->data[i]).typ, (*c).Sup.idgen);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	asgnRef((void**) (&(*result).typ), typ);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTupleConstr__sem_20019)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tupexp;
	NIM_BOOL isTupleType;
{	result = NIM_NIL;
	tupexp = semTuplePositionsConstr__sem_19059(c, n, flags);
	isTupleType = (NIM_BOOL)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(tupexp);
		if (!(((NI) 0) < T3_)) goto LA4_;
		isTupleType = ((*(*(*tupexp)._kind_6.sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(tupexp);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					{
						if (!!((isTupleType == ((*(*(*tupexp)._kind_6.sons->data[i]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))))) goto LA11_;
						liMessage__msgs_1118((*(*c).graph).config, (*(*tupexp)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_697), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_698, NIM_FALSE);
						result = errorNode__semdata_1009(c, n);
						goto BeforeRet_;
					}
					LA11_: ;
					i_2 += ((NI) 1);
				} LA8: ;
			}
		}
	}
	LA4_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T17_;
		if (!isTupleType) goto LA15_;
		result = n;
		T17_ = NIM_NIL;
		T17_ = semTypeNode__sem_80(c, n, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		typ = skipTypes__ast_3735(T17_, TM__rF9caJawfOjYTjsgLVUSGFA_123);
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, typ));
	}
	goto LA13_;
	LA15_: ;
	{
		result = tupexp;
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTupleFieldsConstr__sem_19000)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA ids;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), (*n).info);
	typ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18), c);
	asgnRef((void**) (&(*typ).n), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138), (*n).info));
	nimZeroMem((void*)(&ids), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	initIntSet__pureZcollectionsZintsets_238((&ids));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* id;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					if (!!(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA6_;
					illFormedAst__semdata_1071((*n)._kind_6.sons->data[i], (*(*c).graph).config);
				}
				LA6_: ;
				id = considerQuotedIdent__lookups_28(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				{
					NIM_BOOL T10_;
					NimStringDesc* T13_;
					T10_ = (NIM_BOOL)0;
					T10_ = containsOrIncl__astalgo_402((&ids), (*id).id);
					if (!T10_) goto LA11_;
					T13_ = NIM_NIL;
					T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_636), (*id).s);
					liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_699, NIM_FALSE);
				}
				LA11_: ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_56(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], 0));
				{
					if (!((*(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA16_;
					liMessage__msgs_1118((*(*c).graph).config, (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_700), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_701, NIM_FALSE);
					asgnRef((void**) (&(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ), errorType__semdata_1002(c));
				}
				LA16_: ;
				f = newSymS__sem_453(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19), (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)], c);
				asgnRef((void**) (&(*f).typ), skipIntLit__magicsys_124((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ, (*c).Sup.idgen));
				(*f).position = i;
				rawAddSon__ast_4288(typ, (*f).typ, NIM_TRUE);
				T18_ = NIM_NIL;
				T18_ = newSymNode__ast_3716(f);
				add__ast_4797((*typ).n, T18_);
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(f));
				add__ast_4797(result, (*n)._kind_6.sons->data[i]);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	asgnRef((void**) (&(*result).typ), typ);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semSetConstr__sem_18776)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*n).info);
	asgnRef((void**) (&(*result).typ), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), c));
	(*(*result).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 43)) & 63);
	{
		NI T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3), c);
		rawAddSon__ast_4288((*result).typ, T6_, NIM_TRUE);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
		typ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					{
						NIM_BOOL T13_;
						T13_ = (NIM_BOOL)0;
						T13_ = isRange__trees_213((*n)._kind_6.sons->data[i]);
						if (!T13_) goto LA14_;
						checkSonsLen__semdata_1077((*n)._kind_6.sons->data[i], ((NI) 3), (*(*c).graph).config);
						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]), semExprWithType__sem_56(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], 0));
						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 2)]), semExprWithType__sem_56(c, (*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 2)], 0));
						{
							if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA18_;
							typ = skipTypes__ast_3735((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_702);
						}
						LA18_: ;
						asgnRef((void**) (&(*(*n)._kind_6.sons->data[i]).typ), (*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 2)]).typ);
					}
					goto LA11_;
					LA14_: ;
					{
						if (!((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA21_;
						{
							if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA25_;
							typ = skipTypes__ast_3735((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_702);
						}
						LA25_: ;
					}
					goto LA11_;
					LA21_: ;
					{
						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[i], 0));
						{
							if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA30_;
							typ = skipTypes__ast_3735((*(*n)._kind_6.sons->data[i]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_702);
						}
						LA30_: ;
					}
					LA11_: ;
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
		{
			NIM_BOOL T34_;
			T34_ = (NIM_BOOL)0;
			T34_ = isOrdinalType__types_299(typ, NIM_TRUE);
			if (!!(T34_)) goto LA35_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_328), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_703, NIM_FALSE);
			typ = makeRangeType__semdata_1039(c, IL64(0), IL64(65535), (*n).info, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		}
		goto LA32_;
		LA35_: ;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T38_;
			NIM_BOOL T39_;
			T38_ = lengthOrd__types_1661((*(*c).graph).config, typ);
			T39_ = (NIM_BOOL)0;
			T39_ = lt___int495056_738(IL64(65536), T38_);
			if (!T39_) goto LA40_;
			typ = makeRangeType__semdata_1039(c, IL64(0), IL64(65535), (*n).info, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		}
		goto LA32_;
		LA40_: ;
		LA32_: ;
		addSonSkipIntLit__magicsys_136((*result).typ, typ, (*c).Sup.idgen);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
					if (!(i_4 < colontmp__2)) goto LA44;
					i_3 = i_4;
					m = NIM_NIL;
					info = (*(*n)._kind_6.sons->data[i_3]).info;
					{
						NIM_BOOL T47_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T51_;
						T47_ = (NIM_BOOL)0;
						T47_ = isRange__trees_213((*n)._kind_6.sons->data[i_3]);
						if (!T47_) goto LA48_;
						m = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44), info);
						T50_ = NIM_NIL;
						T50_ = fitNode__sem_70(c, typ, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 1)], info);
						add__ast_4797(m, T50_);
						T51_ = NIM_NIL;
						T51_ = fitNode__sem_70(c, typ, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[((NI) 2)], info);
						add__ast_4797(m, T51_);
					}
					goto LA45_;
					LA48_: ;
					{
						if (!((*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA53_;
						m = (*n)._kind_6.sons->data[i_3];
					}
					goto LA45_;
					LA53_: ;
					{
						m = fitNode__sem_70(c, typ, (*n)._kind_6.sons->data[i_3], info);
					}
					LA45_: ;
					add__ast_4797(result, m);
					i_4 += ((NI) 1);
				} LA44: ;
			}
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semArrayConstr__sem_14894)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA firstIndex;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA lastIndex;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* indexType;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA lastValidIndex;
	NI64 T55_;
	NI64 T56_;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), (*n).info);
	asgnRef((void**) (&(*result).typ), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), c));
	rawAddSon__ast_4288((*result).typ, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL), NIM_TRUE);
	nimZeroMem((void*)(&firstIndex), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	nimZeroMem((void*)(&lastIndex), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	indexType = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	lastValidIndex = lastOrd__types_1470((*(*c).graph).config, indexType);
	{
		NI T3_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3), c);
		rawAddSon__ast_4288((*result).typ, T6_, NIM_TRUE);
		lastIndex = toInt128__types_1378(((NI) -1));
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* yy;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
		x = (*n)._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T10_;
			NI T12_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idx;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
			if (!(T10_)) goto LA11_;
			T12_ = (NI)0;
			T12_ = len__ast_3198(x);
			T10_ = (T12_ == ((NI) 2));
			LA11_: ;
			if (!T10_) goto LA13_;
			idx = semConstExpr__sem_611(c, (*x)._kind_6.sons->data[((NI) 0)]);
			{
				NIM_BOOL T17_;
				NimStringDesc* T20_;
				NimStringDesc* T21_;
				NimStringDesc* T22_;
				T17_ = (NIM_BOOL)0;
				T17_ = isOrdinalType__types_299((*idx).typ, NIM_FALSE);
				if (!!(T17_)) goto LA18_;
				T20_ = NIM_NIL;
				T21_ = NIM_NIL;
				T21_ = renderTree__renderer_46(idx, 0);
				T22_ = NIM_NIL;
				T22_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_705), T21_);
				T20_ = rawNewString((T22_ ? T22_->Sup.len : 0) + 33);
appendString(T20_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_704));
appendString(T20_, T22_);
				liMessage__msgs_1118((*(*c).graph).config, (*idx).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_706, NIM_FALSE);
			}
			goto LA15_;
			LA18_: ;
			{
				firstIndex = getOrdValue__types_161(idx, Max__int495056_27);
				lastIndex = firstIndex;
				indexType = (*idx).typ;
				lastValidIndex = lastOrd__types_1470((*(*c).graph).config, indexType);
				x = (*x)._kind_6.sons->data[((NI) 1)];
			}
			LA15_: ;
		}
		LA13_: ;
		yy = semExprWithType__sem_56(c, x, 0);
		typ = (*yy).typ;
		add__ast_4797(result, yy);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* xx;
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					{
						NIM_BOOL T29_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* validIndex;
						NI64 T32_;
						NI64 T33_;
						NimStringDesc* T34_;
						tyArray__Re75IspeoxXy2oCZHwcRrA T35_;
						NI T36_;
						NimStringDesc* T37_;
						T29_ = (NIM_BOOL)0;
						T29_ = eqeq___int495056_313(lastIndex, lastValidIndex);
						if (!T29_) goto LA30_;
						T32_ = (NI64)0;
						T32_ = toInt64__int495056_88(firstIndex);
						T33_ = (NI64)0;
						T33_ = toInt64__int495056_88(lastValidIndex);
						validIndex = makeRangeType__semdata_1039(c, T32_, T33_, (*n).info, indexType);
						T34_ = NIM_NIL;
						nimZeroMem((void*)T35_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
						T35_[0] = typeToString__types_50(validIndex, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
						T36_ = (NI)0;
						T36_ = len__ast_3198(n);
						T35_[1] = dollar___systemZdollars_3((NI)(T36_ - i));
						T37_ = NIM_NIL;
						T37_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_708), T35_, 2);
						T34_ = rawNewString((T37_ ? T37_->Sup.len : 0) + 37);
appendString(T34_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_707));
appendString(T34_, T37_);
						liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T34_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_709, NIM_FALSE);
					}
					LA30_: ;
					x = (*n)._kind_6.sons->data[i];
					{
						NIM_BOOL T40_;
						NI T42_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idx_2;
						T40_ = (NIM_BOOL)0;
						T40_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
						if (!(T40_)) goto LA41_;
						T42_ = (NI)0;
						T42_ = len__ast_3198(x);
						T40_ = (T42_ == ((NI) 2));
						LA41_: ;
						if (!T40_) goto LA43_;
						idx_2 = semConstExpr__sem_611(c, (*x)._kind_6.sons->data[((NI) 0)]);
						idx_2 = fitNode__sem_70(c, indexType, idx_2, (*x).info);
						{
							tyObject_Int128__9a9axPfb75jdWY25AamJewkA T47_;
							tyObject_Int128__9a9axPfb75jdWY25AamJewkA T48_;
							NIM_BOOL T49_;
							T47_ = plus___int495056_794(lastIndex, IL64(1));
							T48_ = getOrdValue__types_161(idx_2, Max__int495056_27);
							T49_ = (NIM_BOOL)0;
							T49_ = eqeq___int495056_313(T47_, T48_);
							if (!!(T49_)) goto LA50_;
							liMessage__msgs_1118((*(*c).graph).config, (*x).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_710), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_711, NIM_FALSE);
						}
						LA50_: ;
						x = (*x)._kind_6.sons->data[((NI) 1)];
					}
					LA43_: ;
					xx = semExprWithType__sem_56(c, x, 0);
					add__ast_4797(result, xx);
					typ = commonType__sem_237(c, typ, (*xx).typ);
					inc__int495056_251((&lastIndex), ((NU32) 1));
					i_2 += ((NI) 1);
				} LA26: ;
			}
		}
		addSonSkipIntLit__magicsys_136((*result).typ, typ, (*c).Sup.idgen);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(result);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA54;
					i_3 = i_4;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_3]), fitNode__sem_70(c, typ, (*result)._kind_6.sons->data[i_3], (*(*result)._kind_6.sons->data[i_3]).info));
					i_4 += ((NI) 1);
				} LA54: ;
			}
		}
	}
	LA1_: ;
	T55_ = (NI64)0;
	T55_ = toInt64__int495056_88(firstIndex);
	T56_ = (NI64)0;
	T56_ = toInt64__int495056_88(lastIndex);
	asgnRef((void**) (&(*(*result).typ).sons->data[((NI) 0)]), makeRangeType__semdata_1039(c, T55_, T56_, (*n).info, indexType));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCastable__sem_14278)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* dst, tyObject_TType__facALICuu8zUj0hjvbTLFg* src) {
	NIM_BOOL result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* src_2;
	tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf;
	NI64 dstSize;
	NI64 srcSize;
{	result = (NIM_BOOL)0;
	src_2 = skipTypes__ast_3735(src, TM__rF9caJawfOjYTjsgLVUSGFA_715);
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T3_;
		T3_ = NIM_NIL;
		T3_ = skipTypes__ast_3735(dst, TM__rF9caJawfOjYTjsgLVUSGFA_716);
		if (!((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27))) goto LA4_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T8_;
		T8_ = NIM_NIL;
		T8_ = skipTypes__ast_3735(src_2, TM__rF9caJawfOjYTjsgLVUSGFA_5);
		if (!((*T8_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA9_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA9_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T13_;
		T13_ = NIM_NIL;
		T13_ = skipTypes__ast_3735(dst, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		if (!((*T13_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51))) goto LA14_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA14_: ;
	conf = (*(*c).graph).config;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* d;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* s;
		if (!((48 &((NU16)1<<((NU)((*conf).selectedGC)&15U)))!=0)) goto LA18_;
		d = skipTypes__ast_3735(dst, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		s = skipTypes__ast_3735(src_2, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		{
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			NIM_BOOL T26_;
			NIM_BOOL T27_;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			if (!(T23_)) goto LA24_;
			T23_ = ((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			LA24_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA25_;
			T26_ = (NIM_BOOL)0;
			T26_ = isFinal__types_750((*s).sons->data[((NI) 0)]);
			T27_ = (NIM_BOOL)0;
			T27_ = isFinal__types_750((*d).sons->data[((NI) 0)]);
			T22_ = !((T26_ == T27_));
			LA25_: ;
			if (!T22_) goto LA28_;
			result = NIM_FALSE;
			goto BeforeRet_;
		}
		goto LA20_;
		LA28_: ;
		{
			NIM_BOOL T31_;
			T31_ = (NIM_BOOL)0;
			T31_ = ((*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*d).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*d).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*d).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
			if (!(T31_)) goto LA32_;
			T31_ = ((*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*s).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
			LA32_: ;
			if (!T31_) goto LA33_;
			result = NIM_FALSE;
			goto BeforeRet_;
		}
		goto LA20_;
		LA33_: ;
		LA20_: ;
	}
	LA18_: ;
	dstSize = (NI64)0;
	srcSize = (NI64)0;
	dstSize = computeSize__types_3317(conf, dst);
	srcSize = computeSize__types_3317(conf, src_2);
	{
		NIM_BOOL T37_;
		T37_ = (NIM_BOOL)0;
		T37_ = (dstSize == IL64(-3));
		if (T37_) goto LA38_;
		T37_ = (srcSize == IL64(-3));
		LA38_: ;
		if (!T37_) goto LA39_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA39_: ;
	{
		if (!(dstSize < IL64(0))) goto LA43_;
		result = NIM_FALSE;
	}
	goto LA41_;
	LA43_: ;
	{
		if (!(srcSize < IL64(0))) goto LA46_;
		result = NIM_FALSE;
	}
	goto LA41_;
	LA46_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T49_;
		T49_ = NIM_NIL;
		T49_ = typeAllowed__typeallowed_476(dst, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), c, 0);
		if (!!((T49_ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA50_;
		result = NIM_FALSE;
	}
	goto LA41_;
	LA50_: ;
	{
		NIM_BOOL T53_;
		NIM_BOOL T57_;
		T53_ = (NIM_BOOL)0;
		T53_ = ((*dst).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T53_)) goto LA54_;
		T53_ = ((*dst).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA54_: ;
		if (!T53_) goto LA55_;
		T57_ = (NIM_BOOL)0;
		T57_ = ((*src_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T57_)) goto LA58_;
		T57_ = ((*src_2).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA58_: ;
		result = T57_;
	}
	goto LA41_;
	LA55_: ;
	{
		NIM_BOOL T60_;
		NIM_BOOL T61_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T63_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T65_;
		T60_ = (NIM_BOOL)0;
		T61_ = (NIM_BOOL)0;
		T61_ = (srcSize <= dstSize);
		if (T61_) goto LA62_;
		T63_ = NIM_NIL;
		T63_ = skipTypes__ast_3735(dst, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		T61_ = ((*T63_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*T63_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*T63_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*T63_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T63_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
		LA62_: ;
		T60_ = T61_;
		if (T60_) goto LA64_;
		T65_ = NIM_NIL;
		T65_ = skipTypes__ast_3735(src_2, TM__rF9caJawfOjYTjsgLVUSGFA_5);
		T60_ = ((*T65_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*T65_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*T65_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*T65_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T65_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
		LA64_: ;
		result = T60_;
	}
	LA41_: ;
	{
		NIM_BOOL T68_;
		T68_ = (NIM_BOOL)0;
		T68_ = result;
		if (!(T68_)) goto LA69_;
		T68_ = ((*src_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5));
		LA69_: ;
		if (!T68_) goto LA70_;
		result = ((*dst).size <= ((NI64) ((*conf).target.ptrSize)));
	}
	LA70_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCast__sem_14525)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* targetType;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* castedExpr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	targetType = semTypeNode__sem_80(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	castedExpr = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!(((*targetType).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 21))&63U)))!=0)) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = typeToString__types_50(targetType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_713), T5_);
		liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_714, NIM_FALSE);
	}
	LA3_: ;
	{
		NIM_BOOL T9_;
		NimStringDesc* tar;
		NimStringDesc* alt;
		NimStringDesc* msg;
		NimStringDesc* T18_;
		T9_ = (NIM_BOOL)0;
		T9_ = isCastable__sem_14278(c, targetType, (*castedExpr).typ);
		if (!!(T9_)) goto LA10_;
		tar = typeToString__types_50(targetType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		alt = typeToString__types_50(targetType, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
		{
			NimStringDesc* T16_;
			if (!!(eqStrings(tar, alt))) goto LA14_;
			T16_ = NIM_NIL;
			T16_ = rawNewString((tar ? tar->Sup.len : 0) + (alt ? alt->Sup.len : 0) + 1);
appendString(T16_, tar);
appendString(T16_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_178));
appendString(T16_, alt);
			msg = T16_;
		}
		goto LA12_;
		LA14_: ;
		{
			msg = tar;
		}
		LA12_: ;
		T18_ = NIM_NIL;
		T18_ = rawNewString((msg ? msg->Sup.len : 0) + 29);
appendString(T18_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_717));
appendString(T18_, msg);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T18_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_718, NIM_FALSE);
	}
	LA10_: ;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61), (*n).info);
	asgnRef((void**) (&(*result).typ), targetType);
	T19_ = NIM_NIL;
	T19_ = copyTree__ast_4431((*n)._kind_6.sons->data[((NI) 0)]);
	add__ast_4797(result, T19_);
	add__ast_4797(result, castedExpr);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprBranch__sem_9264)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = semExpr__sem_52(c, n, flags);
	{
		if (!!(((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA3_;
		{
			if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA7_;
			result = newDeref__lowerings_11(result);
		}
		LA7_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endsInNoReturn__sem_416)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
	NIM_BOOL T6_;
	NIM_BOOL T8_;
	NIM_BOOL T9_;
	result = (NIM_BOOL)0;
	it = n;
	{
		while (1) {
			NIM_BOOL T3_;
			NI T5_;
			T3_ = (NIM_BOOL)0;
			T3_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
			if (!(T3_)) goto LA4_;
			T5_ = (NI)0;
			T5_ = len__ast_3198(it);
			T3_ = (((NI) 0) < T5_);
			LA4_: ;
			if (!T3_) goto LA2;
			it = lastSon__ast_4832(it);
		} LA2: ;
	}
	T6_ = (NIM_BOOL)0;
	T6_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
	if (T6_) goto LA7_;
	T8_ = (NIM_BOOL)0;
	T9_ = (NIM_BOOL)0;
	T9_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
	if (!(T9_)) goto LA10_;
	T9_ = ((*(*it)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	LA10_: ;
	T8_ = T9_;
	if (!(T8_)) goto LA11_;
	T8_ = (((*(*(*it)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 16))&63U)))!=0);
	LA11_: ;
	T6_ = T8_;
	LA7_: ;
	result = T6_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, commonType__sem_448)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = endsInNoReturn__sem_416(y);
		if (!T3_) goto LA4_;
		result = x;
		goto BeforeRet_;
	}
	LA4_: ;
	result = commonType__sem_237(c, x, (*y).typ);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprBranchScope__sem_9277)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	result = semExprBranch__sem_9264(c, n, 0);
	closeScope__lookups_101(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIf__sem_9366)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	NIM_BOOL hasElse;
	result = NIM_NIL;
	result = n;
	T1_ = NIM_NIL;
	T1_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*) newObj((&NTIptype__qt2Wh0elFEz5fH0l7yusLw_), sizeof(tyObject_TType__facALICuu8zUj0hjvbTLFg));
	(*T1_).Sup.Sup.m_type = (&NTIttype__facALICuu8zUj0hjvbTLFg_);
	(*T1_).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6);
	typ = T1_;
	hasElse = NIM_FALSE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI T7_;
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T10_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
					T7_ = (NI)0;
					T7_ = len__ast_3198(it);
					if (!(T7_ == ((NI) 2))) goto LA8_;
					T10_ = NIM_NIL;
					T10_ = openScope__lookups_69(c);
					T11_ = NIM_NIL;
					T11_ = semExprWithType__sem_56(c, (*it)._kind_6.sons->data[((NI) 0)], 0);
					asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), forceBool__sem_2869(c, T11_));
					asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 1)]), semExprBranch__sem_9264(c, (*it)._kind_6.sons->data[((NI) 1)], flags));
					typ = commonType__sem_448(c, typ, (*it)._kind_6.sons->data[((NI) 1)]);
					closeScope__lookups_101(c);
				}
				goto LA5_;
				LA8_: ;
				{
					NI T13_;
					T13_ = (NI)0;
					T13_ = len__ast_3198(it);
					if (!(T13_ == ((NI) 1))) goto LA14_;
					hasElse = NIM_TRUE;
					asgnRef((void**) (&(*it)._kind_6.sons->data[((NI) 0)]), semExprBranchScope__sem_9277(c, (*it)._kind_6.sons->data[((NI) 0)]));
					typ = commonType__sem_448(c, typ, (*it)._kind_6.sons->data[((NI) 0)]);
				}
				goto LA5_;
				LA14_: ;
				{
					illFormedAst__semdata_1071(it, (*(*c).graph).config);
				}
				LA5_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NIM_BOOL T19_;
		NIM_BOOL T20_;
		NIM_BOOL T23_;
		T19_ = (NIM_BOOL)0;
		T20_ = (NIM_BOOL)0;
		T20_ = isEmptyType__ast_4779(typ);
		if (T20_) goto LA21_;
		T20_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
		LA21_: ;
		T19_ = T20_;
		if (T19_) goto LA22_;
		T23_ = (NIM_BOOL)0;
		T23_ = !(hasElse);
		if (!(T23_)) goto LA24_;
		T23_ = !(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 3))&31U)))!=0));
		LA24_: ;
		T19_ = T23_;
		LA22_: ;
		if (!T19_) goto LA25_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_2;
			it_2 = NIM_NIL;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen__ast_3191(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
						if (!(i_4 < colontmp__2)) goto LA30;
						i_3 = i_4;
						it_2 = (*n)._kind_6.sons->data[i_3];
						T31_ = NIM_NIL;
						T31_ = lastSon__ast_4832(it_2);
						discardCheck__sem_9323(c, T31_, flags);
						i_4 += ((NI) 1);
					} LA30: ;
				}
			}
		}
		transitionSonsKind__ast_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 92));
		{
			if (!(typ == (*c).enforceVoidContext)) goto LA34_;
			asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
		}
		LA34_: ;
	}
	goto LA17_;
	LA25_: ;
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it_3;
			it_3 = NIM_NIL;
			{
				NI i_5;
				NI colontmp__3;
				NI i_6;
				i_5 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = safeLen__ast_3191(n);
				i_6 = ((NI) 0);
				{
					while (1) {
						NI j;
						NI T41_;
						if (!(i_6 < colontmp__3)) goto LA40;
						i_5 = i_6;
						it_3 = (*n)._kind_6.sons->data[i_5];
						T41_ = (NI)0;
						T41_ = len__ast_3198(it_3);
						j = (NI)(T41_ - ((NI) 1));
						{
							NIM_BOOL T44_;
							T44_ = (NIM_BOOL)0;
							T44_ = endsInNoReturn__sem_416((*it_3)._kind_6.sons->data[j]);
							if (!!(T44_)) goto LA45_;
							asgnRef((void**) (&(*it_3)._kind_6.sons->data[j]), fitNode__sem_70(c, typ, (*it_3)._kind_6.sons->data[j], (*(*it_3)._kind_6.sons->data[j]).info));
						}
						LA45_: ;
						i_6 += ((NI) 1);
					} LA40: ;
				}
			}
		}
		transitionSonsKind__ast_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 48));
		asgnRef((void**) (&(*result).typ), typ);
	}
	LA17_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTableConstr__sem_18868)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI lastKey;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), (*n).info);
	lastKey = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				x = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					NI T8_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pair_2;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
					if (!(T6_)) goto LA7_;
					T8_ = (NI)0;
					T8_ = len__ast_3198(x);
					T6_ = (T8_ == ((NI) 2));
					LA7_: ;
					if (!T6_) goto LA9_;
					{
						NI j;
						NI i_3;
						j = (NI)0;
						i_3 = lastKey;
						{
							while (1) {
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pair;
								if (!(i_3 < i)) goto LA13;
								j = i_3;
								pair = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), (*x).info);
								add__ast_4797(pair, (*n)._kind_6.sons->data[j]);
								add__ast_4797(pair, (*x)._kind_6.sons->data[((NI) 1)]);
								add__ast_4797(result, pair);
								i_3 += ((NI) 1);
							} LA13: ;
						}
					}
					pair_2 = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), (*x).info);
					add__ast_4797(pair_2, (*x)._kind_6.sons->data[((NI) 0)]);
					add__ast_4797(pair_2, (*x)._kind_6.sons->data[((NI) 1)]);
					add__ast_4797(result, pair_2);
					lastKey = (NI)(i + ((NI) 1));
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI T16_;
		T16_ = (NI)0;
		T16_ = len__ast_3198(n);
		if (!!((lastKey == T16_))) goto LA17_;
		illFormedAst__semdata_1071(n, (*(*c).graph).config);
	}
	LA17_: ;
	result = semExpr__sem_52(c, result, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBlock__sem_19822)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	result = NIM_NIL;
	result = n;
	(*(*c).p).nestedBlockCounter += ((NI) 1);
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* labl;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA4_;
		labl = newSymG__sem_458(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22), (*n)._kind_6.sons->data[((NI) 0)], c);
		{
			if (!!((((*labl).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0))) goto LA8_;
			addDecl__lookups_845(c, labl);
		}
		goto LA6_;
		LA8_: ;
		{
			if (!((*labl).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA11_;
			asgnRef((void**) (&(*labl).owner), (*(*c).p).owner);
		}
		goto LA6_;
		LA11_: ;
		LA6_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3719(labl, (*(*n)._kind_6.sons->data[((NI) 0)]).info));
		suggestSym__sigmatch_5375((*c).graph, (*(*n)._kind_6.sons->data[((NI) 0)]).info, labl, &(*(*c).graph).usageSym, NIM_TRUE);
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
			if (!(T15_)) goto LA16_;
			T15_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
			LA16_: ;
			if (!T15_) goto LA17_;
			nep1CheckDefImpl__linter_110((*(*c).graph).config, (*labl).info, labl, (*labl).kind);
		}
		LA17_: ;
	}
	LA4_: ;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 1)], flags));
	asgnRef((void**) (&(*n).typ), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	{
		NIM_BOOL T21_;
		T21_ = (NIM_BOOL)0;
		T21_ = isEmptyType__ast_4779((*n).typ);
		if (!T21_) goto LA22_;
		transitionSonsKind__ast_4359(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 112));
	}
	goto LA19_;
	LA22_: ;
	{
		transitionSonsKind__ast_4359(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 127));
	}
	LA19_: ;
	closeScope__lookups_101(c);
	(*(*c).p).nestedBlockCounter -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, inferConceptStaticParam__sem_13726)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* inferred, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res;
	typ = (*inferred).typ;
	res = semConstExpr__sem_611(c, n);
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T3_;
		NIM_BOOL T4_;
		NimStringDesc* T7_;
		tyArray__24KAM9afIUgUaqBaEBB6r9bg T8_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T9_;
		NimStringDesc* T10_;
		T3_ = NIM_NIL;
		T3_ = base__types_63(typ);
		T4_ = (NIM_BOOL)0;
		T4_ = sameType__types_1824((*res).typ, T3_, 0);
		if (!!(T4_)) goto LA5_;
		T7_ = NIM_NIL;
		nimZeroMem((void*)T8_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
		T8_[0] = renderTree__renderer_46(inferred, 0);
		T8_[1] = typeToString__types_50((*res).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T9_ = NIM_NIL;
		T9_ = base__types_63(typ);
		T8_[2] = typeToString__types_50(T9_, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T10_ = NIM_NIL;
		T10_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_721), T8_, 3);
		T7_ = rawNewString((T10_ ? T10_->Sup.len : 0) + 65);
appendString(T7_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_720));
appendString(T7_, T10_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T7_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_722, NIM_FALSE);
	}
	LA5_: ;
	asgnRef((void**) (&(*typ).n), res);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmtList__sem_13732)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL voidContext;
	NI last;
	NI T1_;
	result = NIM_NIL;
	result = n;
	transitionSonsKind__ast_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 115));
	voidContext = NIM_FALSE;
	T1_ = (NI)0;
	T1_ = len__ast_3198(n);
	last = (NI)(T1_ - ((NI) 1));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
					x = semExpr__sem_52(c, (*n)._kind_6.sons->data[i], flags);
					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), x);
					{
						NIM_BOOL T8_;
						NIM_BOOL T9_;
						NIM_BOOL T12_;
						T8_ = (NIM_BOOL)0;
						T9_ = (NIM_BOOL)0;
						T9_ = !(((*c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)));
						if (!(T9_)) goto LA10_;
						T9_ = !(((*x).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
						LA10_: ;
						T8_ = T9_;
						if (!(T8_)) goto LA11_;
						T12_ = (NIM_BOOL)0;
						T12_ = !((((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 17))&31U)))!=0));
						if (T12_) goto LA13_;
						T12_ = !((i == last));
						LA13_: ;
						T8_ = T12_;
						LA11_: ;
						if (!T8_) goto LA14_;
						switch ((*(*x).typ).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* verdict;
							{
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
								if (!(T20_)) goto LA21_;
								T20_ = ((*(*x)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
								LA21_: ;
								T19_ = T20_;
								if (!(T19_)) goto LA22_;
								T19_ = eqStrings((*(*(*(*x)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_719));
								LA22_: ;
								if (!T19_) goto LA23_;
								{
									NIM_BOOL T27_;
									T27_ = (NIM_BOOL)0;
									T27_ = isUnresolvedStatic__ast_3517((*(*x)._kind_6.sons->data[((NI) 1)]).typ);
									if (!T27_) goto LA28_;
									inferConceptStaticParam__sem_13726(c, (*x)._kind_6.sons->data[((NI) 1)], (*x)._kind_6.sons->data[((NI) 2)]);
									goto LA5;
								}
								goto LA25_;
								LA28_: ;
								{
									NIM_BOOL T31_;
									T31_ = (NIM_BOOL)0;
									T31_ = isUnresolvedStatic__ast_3517((*(*x)._kind_6.sons->data[((NI) 2)]).typ);
									if (!T31_) goto LA32_;
									inferConceptStaticParam__sem_13726(c, (*x)._kind_6.sons->data[((NI) 2)], (*x)._kind_6.sons->data[((NI) 1)]);
									goto LA5;
								}
								goto LA25_;
								LA32_: ;
								LA25_: ;
							}
							LA23_: ;
							verdict = semConstExpr__sem_611(c, (*n)._kind_6.sons->data[i]);
							{
								NIM_BOOL T36_;
								NIM_BOOL T37_;
								T36_ = (NIM_BOOL)0;
								T37_ = (NIM_BOOL)0;
								T37_ = (verdict == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
								if (T37_) goto LA38_;
								T37_ = !(((*verdict).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6)));
								LA38_: ;
								T36_ = T37_;
								if (T36_) goto LA39_;
								T36_ = ((*verdict)._kind_1.intVal == IL64(0));
								LA39_: ;
								if (!T36_) goto LA40_;
								liMessage__msgs_1118((*(*c).graph).config, (*result).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_723), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_724, NIM_FALSE);
							}
							LA40_: ;
						}
						break;
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
						{
							goto LA5;
						}
						break;
						default:
						{
						}
						break;
						}
					}
					LA14_: ;
					{
						if (!((*(*n)._kind_6.sons->data[i]).typ == (*c).enforceVoidContext)) goto LA46_;
						voidContext = NIM_TRUE;
						asgnRef((void**) (&(*n).typ), (*c).enforceVoidContext);
					}
					LA46_: ;
					{
						NIM_BOOL T50_;
						NIM_BOOL T52_;
						NI T53_;
						T50_ = (NIM_BOOL)0;
						T50_ = (i == last);
						if (!(T50_)) goto LA51_;
						T52_ = (NIM_BOOL)0;
						T53_ = (NI)0;
						T53_ = len__ast_3198(n);
						T52_ = (T53_ == ((NI) 1));
						if (T52_) goto LA54_;
						T52_ = !(((2056 & flags) == 0));
						LA54_: ;
						T50_ = T52_;
						LA51_: ;
						if (!T50_) goto LA55_;
						asgnRef((void**) (&(*n).typ), (*(*n)._kind_6.sons->data[i]).typ);
						{
							NIM_BOOL T59_;
							T59_ = (NIM_BOOL)0;
							T59_ = isEmptyType__ast_4779((*n).typ);
							if (!!(T59_)) goto LA60_;
							transitionSonsKind__ast_4359(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 126));
						}
						LA60_: ;
					}
					goto LA48_;
					LA55_: ;
					{
						NIM_BOOL T63_;
						T63_ = (NIM_BOOL)0;
						T63_ = !((i == last));
						if (T63_) goto LA64_;
						T63_ = voidContext;
						LA64_: ;
						if (!T63_) goto LA65_;
						discardCheck__sem_9323(c, (*n)._kind_6.sons->data[i], flags);
					}
					goto LA48_;
					LA65_: ;
					{
						asgnRef((void**) (&(*n).typ), (*(*n)._kind_6.sons->data[i]).typ);
						{
							NIM_BOOL T70_;
							T70_ = (NIM_BOOL)0;
							T70_ = isEmptyType__ast_4779((*n).typ);
							if (!!(T70_)) goto LA71_;
							transitionSonsKind__ast_4359(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 126));
						}
						LA71_: ;
					}
					LA48_: ;
					{
						NIM_BOOL T75_;
						NIM_BOOL T77_;
						NIM_BOOL T78_;
						T75_ = (NIM_BOOL)0;
						T75_ = ((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
						if (T75_) goto LA76_;
						T77_ = (NIM_BOOL)0;
						T78_ = (NIM_BOOL)0;
						T78_ = ((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
						if (!(T78_)) goto LA79_;
						T78_ = ((*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
						LA79_: ;
						T77_ = T78_;
						if (!(T77_)) goto LA80_;
						T77_ = (((*(*(*(*n)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 16))&63U)))!=0);
						LA80_: ;
						T75_ = T77_;
						LA76_: ;
						if (!T75_) goto LA81_;
						{
							NI j;
							NI colontmp__2;
							NI colontmp__3;
							NI i_3;
							j = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__3 = (NI)0;
							colontmp__2 = (NI)(i + ((NI) 1));
							colontmp__3 = len__ast_3198(n);
							i_3 = colontmp__2;
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA85;
									j = i_3;
									switch ((*(*n)._kind_6.sons->data[j]).kind) {
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
									case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157):
									{
									}
									break;
									default:
									{
										liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 46), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_725, NIM_FALSE);
									}
									break;
									}
									i_3 += ((NI) 1);
								} LA85: ;
							}
						}
					}
					goto LA73_;
					LA81_: ;
					{
					}
					LA73_: ;
				} LA5: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NIM_BOOL T91_;
		NIM_BOOL T92_;
		NIM_BOOL T93_;
		NI T94_;
		T91_ = (NIM_BOOL)0;
		T92_ = (NIM_BOOL)0;
		T93_ = (NIM_BOOL)0;
		T94_ = (NI)0;
		T94_ = len__ast_3198(result);
		T93_ = (T94_ == ((NI) 1));
		if (!(T93_)) goto LA95_;
		T93_ = ((*c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL));
		LA95_: ;
		T92_ = T93_;
		if (!(T92_)) goto LA96_;
		T92_ = !((((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 16))&31U)))!=0));
		LA96_: ;
		T91_ = T92_;
		if (!(T91_)) goto LA97_;
		T91_ = !(((*(*result)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105)));
		LA97_: ;
		if (!T91_) goto LA98_;
		result = (*result)._kind_6.sons->data[((NI) 0)];
	}
	LA98_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semRaise__sem_11563)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 0)], 0));
		typ = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = isImportedException__ast_4904(typ, (*(*c).graph).config);
			if (!!(T7_)) goto LA8_;
			typ = skipTypes__ast_3735(typ, TM__rF9caJawfOjYTjsgLVUSGFA_726);
			{
				if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)))) goto LA12_;
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_727), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_728, NIM_FALSE);
			}
			LA12_: ;
			{
				NIM_BOOL T16_;
				NI T17_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T19_;
				NIM_BOOL T20_;
				NimStringDesc* T23_;
				NimStringDesc* T24_;
				T16_ = (NIM_BOOL)0;
				T17_ = (NI)0;
				T17_ = len__ast_4002(typ);
				T16_ = (((NI) 0) < T17_);
				if (!(T16_)) goto LA18_;
				T19_ = NIM_NIL;
				T19_ = lastSon__ast_3743(typ);
				T20_ = (NIM_BOOL)0;
				T20_ = isException__types_4000(T19_);
				T16_ = !(T20_);
				LA18_: ;
				if (!T16_) goto LA21_;
				T23_ = NIM_NIL;
				T23_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T24_ = NIM_NIL;
				T24_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_729), T23_);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T24_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_730, NIM_FALSE);
			}
			LA21_: ;
		}
		LA8_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semLowerLetVarCustomPragma__sem_9950)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
{	result = NIM_NIL;
	b = (*a)._kind_6.sons->data[((NI) 0)];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nodePragma;
		NIM_BOOL amb;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lhs;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* clash;
		tyArray__cypz0nHJsd9cnKgpO7fP5hQ T41_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret;
		if (!((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA3_;
		{
			NI T7_;
			T7_ = (NI)0;
			T7_ = len__ast_3198((*b)._kind_6.sons->data[((NI) 1)]);
			if (!!((T7_ == ((NI) 1)))) goto LA8_;
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			goto BeforeRet_;
		}
		LA8_: ;
		nodePragma = (*(*b)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)];
		amb = NIM_FALSE;
		sym = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
		switch ((*nodePragma).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
		{
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* userPragma;
			tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw w;
			ident = considerQuotedIdent__lookups_28(c, nodePragma, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
			userPragma = strTableGet__astalgo_3383((*c).userPragmas, ident);
			{
				if (!!((userPragma == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA13_;
				result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
				goto BeforeRet_;
			}
			LA13_: ;
			w = whichPragma__trees_244(nodePragma);
			{
				NIM_BOOL T17_;
				NIM_BOOL T18_;
				NIM_BOOL T19_;
				NIM_BOOL T22_;
				NIM_BOOL T25_;
				T17_ = (NIM_BOOL)0;
				T18_ = (NIM_BOOL)0;
				T19_ = (NIM_BOOL)0;
				T19_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99));
				if (!(T19_)) goto LA20_;
				T19_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_120[(NU)(w)>>3] &(1U<<((NU)(w)&7U)))!=0);
				LA20_: ;
				T18_ = T19_;
				if (T18_) goto LA21_;
				T22_ = (NIM_BOOL)0;
				T22_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100));
				if (!(T22_)) goto LA23_;
				T22_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_120[(NU)(w)>>3] &(1U<<((NU)(w)&7U)))!=0);
				LA23_: ;
				T18_ = T22_;
				LA21_: ;
				T17_ = T18_;
				if (T17_) goto LA24_;
				T25_ = (NIM_BOOL)0;
				T25_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101));
				if (!(T25_)) goto LA26_;
				T25_ = ((TM__rF9caJawfOjYTjsgLVUSGFA_121[(NU)(w)>>3] &(1U<<((NU)(w)&7U)))!=0);
				LA26_: ;
				T17_ = T25_;
				LA24_: ;
				if (!T17_) goto LA27_;
				result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
				goto BeforeRet_;
			}
			LA27_: ;
			sym = searchInScopes__lookups_423(c, ident, (&amb));
			{
				NIM_BOOL T31_;
				T31_ = (NIM_BOOL)0;
				T31_ = (sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
				if (T31_) goto LA32_;
				T31_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0);
				LA32_: ;
				if (!T31_) goto LA33_;
				result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
				goto BeforeRet_;
			}
			LA33_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			sym = (*nodePragma)._kind_4.sym;
		}
		break;
		default:
		{
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
			goto BeforeRet_;
		}
		break;
		}
		lhs = (*b)._kind_6.sons->data[((NI) 0)];
		clash = strTableGet__astalgo_3383((*(*c).currentScope).symbols, (*lhs)._kind_5.ident);
		{
			if (!!((clash == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA39_;
			wrongRedefinition__lookups_805(c, (*lhs).info, (*(*lhs)._kind_5.ident).s, (*clash).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15));
		}
		LA39_: ;
		nimZeroMem((void*)T41_, sizeof(tyArray__cypz0nHJsd9cnKgpO7fP5hQ));
		result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T41_, 0);
		add__ast_4797(result, nodePragma);
		add__ast_4797(result, lhs);
		{
			if (!!(((*(*a)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA44_;
			add__ast_4797(result, (*a)._kind_6.sons->data[((NI) 1)]);
		}
		goto LA42_;
		LA44_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
			T47_ = NIM_NIL;
			T47_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), (*a).info, (*(*c).graph).sysTypes[(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5))- 0]);
			add__ast_4797(result, T47_);
		}
		LA42_: ;
		add__ast_4797(result, (*a)._kind_6.sons->data[((NI) 2)]);
		(*result).info = (*a).info;
		ret = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*a).info);
		add__ast_4797(ret, result);
		result = semExprNoType__sem_60(c, ret);
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, errorSymChoiceUseQualifier__sem_10048)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* err;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NI i;
	T1_ = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = dollar___renderer_2106((*n)._kind_6.sons->data[((NI) 0)]);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 24);
appendString(T1_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_731));
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
	err = T1_;
	i = ((NI) 0);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* child;
		child = NIM_NIL;
		{
			NI i_2;
			NI colontmp_;
			NI i_3;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_3 = ((NI) 0);
			{
				while (1) {
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* candidate;
					NimStringDesc* T12_;
					if (!(i_3 < colontmp_)) goto LA6;
					i_2 = i_3;
					child = (*n)._kind_6.sons->data[i_2];
					candidate = (*child)._kind_4.sym;
					{
						if (!(i == ((NI) 0))) goto LA9_;
						err = resizeString(err, 30);
appendString(err, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_732));
					}
					goto LA7_;
					LA9_: ;
					{
						err = resizeString(err, 1);
appendString(err, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_271));
					}
					LA7_: ;
					T12_ = NIM_NIL;
					T12_ = rawNewString(((*(*(*candidate).owner).name).s ? (*(*(*candidate).owner).name).s->Sup.len : 0) + ((*(*candidate).name).s ? (*(*candidate).name).s->Sup.len : 0) + 3);
appendString(T12_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_733));
appendString(T12_, (*(*(*candidate).owner).name).s);
appendString(T12_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_209));
appendString(T12_, (*(*candidate).name).s);
					err = resizeString(err, (T12_ ? T12_->Sup.len : 0) + 0);
appendString(err, T12_);
					i += ((NI) 1);
					i_3 += ((NI) 1);
				} LA6: ;
			}
		}
	}
	liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), err, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_734, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasEmpty__sem_9843)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = lastSon__ast_3743(typ);
		result = ((*T5_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3));
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA7_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg** s;
			NI i;
			NI L;
			NI T10_;
			s = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
			i = ((NI) 0);
			T10_ = ((*typ).sons ? (*typ).sons->Sup.len : 0);
			L = T10_;
			{
				while (1) {
					NIM_BOOL T13_;
					if (!(i < L)) goto LA12;
					s = &(*typ).sons->data[i];
					T13_ = (NIM_BOOL)0;
					T13_ = result;
					if (T13_) goto LA14_;
					T13_ = hasEmpty__sem_9843((*s));
					LA14_: ;
					result = T13_;
					i += ((NI) 1);
				} LA12: ;
			}
		}
	}
	goto LA1_;
	LA7_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addToVarSection__sem_9734)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* identDefs) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
	NI T1_;
	T1_ = (NI)0;
	T1_ = len__ast_3198(identDefs);
	value = (*identDefs)._kind_6.sons->data[(NI)(T1_ - ((NI) 1))];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* o;
		if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA4_;
		o = copyNode__ast_4336(orig);
		add__ast_4797(o, identDefs);
		add__ast_4797(result, o);
	}
	goto LA2_;
	LA4_: ;
	{
		add__ast_4797(result, identDefs);
	}
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, fillPartialObject__sem_9911)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* y;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* obj;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		x = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		y = considerQuotedIdent__lookups_28(c, (*n)._kind_6.sons->data[((NI) 1)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		obj = skipTypes__ast_3735((*x).typ, TM__rF9caJawfOjYTjsgLVUSGFA_97);
		{
			NIM_BOOL T8_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field;
			tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T12_;
			tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*obj).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
			if (!(T8_)) goto LA9_;
			T8_ = (((*obj).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 16))&63U)))!=0);
			LA9_: ;
			if (!T8_) goto LA10_;
			T12_ = NIM_NIL;
			T12_ = getIdent__idents_143((*c).cache, (*y).s);
			T13_ = nextSymId__ast_3132((*c).Sup.idgen);
			field = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19), T12_, T13_, (*obj).sym, (*(*n)._kind_6.sons->data[((NI) 1)]).info, 0);
			asgnRef((void**) (&(*field).typ), skipIntLit__magicsys_124(typ, (*c).Sup.idgen));
			(*field).position = len__ast_3198((*obj).n);
			T14_ = NIM_NIL;
			T14_ = newSymNode__ast_3716(field);
			add__ast_4797((*obj).n, T14_);
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), makeDeref__sem_9873(x));
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), newSymNode__ast_3716(field));
			asgnRef((void**) (&(*n).typ), (*field).typ);
		}
		goto LA6_;
		LA10_: ;
		{
			NimStringDesc* T16_;
			NimStringDesc* T17_;
			T16_ = NIM_NIL;
			T17_ = NIM_NIL;
			T17_ = typeToString__types_50(obj, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T16_ = rawNewString((T17_ ? T17_->Sup.len : 0) + 71);
appendString(T16_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_744));
appendString(T16_, T17_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T16_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_745, NIM_FALSE);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_746), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_747, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscardUnderscore__sem_9762)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!eqStrings((*(*v).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_748))) goto LA3_;
		(*v).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37)) & 63);
		result = NIM_TRUE;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, findShadowedVar__sem_9651)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
{	result = NIM_NIL;
	{
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* scope;
		scope = NIM_NIL;
		{
			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* s;
			tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* current;
			s = NIM_NIL;
			current = (*(*c).currentScope).parent;
			{
				while (1) {
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* shadowed;
					if (!!((current == ((tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw*) NIM_NIL)))) goto LA4;
					s = current;
					{
						if (!(s == (*c).topLevelScope)) goto LA7_;
						goto LA2;
					}
					LA7_: ;
					scope = s;
					shadowed = strTableGet__astalgo_3383((*scope).symbols, (*v).name);
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = !((shadowed == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
						if (!(T11_)) goto LA12_;
						T11_ = ((2099976 &((NU32)1<<((NU)((*shadowed).kind)&31U)))!=0);
						LA12_: ;
						if (!T11_) goto LA13_;
						result = shadowed;
						goto BeforeRet_;
					}
					LA13_: ;
					current = (*current).parent;
				} LA4: ;
			}
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setVarType__sem_9942)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NimStringDesc* T8_;
		NimStringDesc* T9_;
		NimStringDesc* T10_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*v).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = sameTypeOrNil__types_1848((*v).typ, typ, 0);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = NIM_NIL;
		T9_ = NIM_NIL;
		T9_ = typeToString__types_50((*v).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
		T10_ = NIM_NIL;
		T10_ = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 1));
		T8_ = rawNewString(((*(*v).name).s ? (*(*v).name).s->Sup.len : 0) + (T9_ ? T9_->Sup.len : 0) + (T10_ ? T10_->Sup.len : 0) + 82);
appendString(T8_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_752));
appendString(T8_, (*(*v).name).s);
appendString(T8_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_753));
appendString(T8_, T9_);
appendString(T8_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_754));
appendString(T8_, T10_);
		liMessage__msgs_1118((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T8_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_755, NIM_FALSE);
	}
	LA6_: ;
	asgnRef((void**) (&(*v).typ), typ);
}
N_LIB_PRIVATE N_NIMCALL(void, defaultConstructionError__sem_138)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* objType;
	objType = t;
	{
		while (1) {
			if (!!(((*objType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*objType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13)))) goto LA2;
			objType = lastSon__ast_3743(objType);
		} LA2: ;
	}
	{
		tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw constrCtx;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		tyEnum_InitStatus__smZpQZ1Iq7YmllUO9aDjzwQ initResult;
		if (!((*objType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA5_;
		nimZeroMem((void*)(&constrCtx), sizeof(tyObject_ObjConstrContext__9baThpYqCcrX9ahozMBSUCQw));
		T7_ = NIM_NIL;
		T7_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38), info);
		initConstrContext__sem_19672(objType, T7_, (&constrCtx));
		initResult = semConstructTypeAux__sem_19647(c, (&constrCtx), 0);
		{
			NI T10_;
			tyArray__Re75IspeoxXy2oCZHwcRrA T13_;
			NimStringDesc* T14_;
			T10_ = (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0);
			if (!(((NI) 0) < T10_)) goto LA11_;
			nimZeroMem((void*)T13_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
			T13_[0] = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T13_[1] = listSymbolNames__astalgo_4303(constrCtx.missingFields->data, (constrCtx.missingFields ? constrCtx.missingFields->Sup.len : 0));
			T14_ = NIM_NIL;
			T14_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_757), T13_, 2);
			liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T14_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_758, NIM_FALSE);
		}
		LA11_: ;
	}
	goto LA3_;
	LA5_: ;
	{
		NimStringDesc* T18_;
		NimStringDesc* T19_;
		if (!((*objType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA16_;
		T18_ = NIM_NIL;
		T18_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T19_ = NIM_NIL;
		T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_759), T18_);
		liMessage__msgs_1118((*(*c).graph).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_760, NIM_FALSE);
	}
	goto LA3_;
	LA16_: ;
	{
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, checkNilable__sem_9709)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((72 & (*v).flags) == 8);
		if (!(T3_)) goto LA4_;
		T3_ = requiresInit__typeallowed_582((*v).typ);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
			T9_ = NIM_NIL;
			T9_ = astdef__ast_3483(v);
			if (!(T9_ == 0)) goto LA10_;
			liMessage__msgs_1118((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 42), (*(*v).name).s, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_761, NIM_FALSE);
		}
		goto LA7_;
		LA10_: ;
		{
			NIM_BOOL T13_;
			NIM_BOOL T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
			T13_ = (NIM_BOOL)0;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*(*v).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T16_ = NIM_NIL;
			T16_ = astdef__ast_3483(v);
			T14_ = !(((*T16_).typ == 0));
			LA15_: ;
			T13_ = T14_;
			if (!(T13_)) goto LA17_;
			T18_ = NIM_NIL;
			T18_ = astdef__ast_3483(v);
			T13_ = !((((*(*T18_).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 17))&63U)))!=0));
			LA17_: ;
			if (!T13_) goto LA19_;
			liMessage__msgs_1118((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 42), (*(*v).name).s, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_762, NIM_FALSE);
		}
		goto LA7_;
		LA19_: ;
		LA7_: ;
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semVarOrLet__sem_10067)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symkind) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
{	result = NIM_NIL;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3198(n);
		if (!(T3_ == ((NI) 1))) goto LA4_;
		result = semLowerLetVarCustomPragma__sem_9950(c, (*n)._kind_6.sons->data[((NI) 0)], n);
		{
			if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA8_;
			goto BeforeRet_;
		}
		LA8_: ;
	}
	LA4_: ;
	b = NIM_NIL;
	result = copyNode__ast_4336(n);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA12;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
					tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg typFlags;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* tup;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 11))) goto LA16_;
						suggestStmt__sigmatch_6552(c, a);
					}
					LA16_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA20_;
						goto LA13;
					}
					LA20_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA24_;
						illFormedAst__semdata_1071(a, (*(*c).graph).config);
					}
					LA24_: ;
					checkMinSonsLen__semdata_1084(a, ((NI) 3), (*(*c).graph).config);
					typ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
					{
						NI T28_;
						NI T31_;
						T28_ = (NI)0;
						T28_ = len__ast_3198(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T28_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA29_;
						T31_ = (NI)0;
						T31_ = len__ast_3198(a);
						typ = semTypeNode__sem_80(c, (*a)._kind_6.sons->data[(NI)(T31_ - ((NI) 2))], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
					}
					LA29_: ;
					nimZeroMem((void*)(&typFlags), sizeof(tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg));
					def = (*(*c).graph).emptyNode;
					{
						NI T34_;
						NI T37_;
						T34_ = (NI)0;
						T34_ = len__ast_3198(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T34_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA35_;
						T37_ = (NI)0;
						T37_ = len__ast_3198(a);
						def = semExprWithType__sem_56(c, (*a)._kind_6.sons->data[(NI)(T37_ - ((NI) 1))], 0);
						{
							NIM_BOOL T40_;
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T42_;
							T40_ = (NIM_BOOL)0;
							T40_ = ((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57));
							if (!(T40_)) goto LA41_;
							T42_ = NIM_NIL;
							T42_ = skipTypes__ast_3735((*(*def)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_70);
							T40_ = ((*T42_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
							LA41_: ;
							if (!T40_) goto LA43_;
							errorSymChoiceUseQualifier__sem_10048(c, def);
						}
						goto LA38_;
						LA43_: ;
						{
							NIM_BOOL T46_;
							T46_ = (NIM_BOOL)0;
							T46_ = ((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
							if (!(T46_)) goto LA47_;
							T46_ = ((393216 &((NU32)1<<((NU)((*(*def)._kind_4.sym).kind)&31U)))!=0);
							LA47_: ;
							if (!T46_) goto LA48_;
							typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 5)) & 7);
						}
						goto LA38_;
						LA48_: ;
						{
							NIM_BOOL T51_;
							T51_ = (NIM_BOOL)0;
							T51_ = ((*(*def).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
							if (!(T51_)) goto LA52_;
							T51_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17)));
							LA52_: ;
							if (!T51_) goto LA53_;
							typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 6)) & 7);
						}
						goto LA38_;
						LA53_: ;
						LA38_: ;
						{
							if (!!((typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA57_;
							{
								NIM_BOOL T61_;
								T61_ = (NIM_BOOL)0;
								T61_ = isMetaType__ast_3495(typ);
								if (!T61_) goto LA62_;
								def = inferWithMetatype__sem_231(c, typ, def, NIM_FALSE);
								typ = (*def).typ;
							}
							goto LA59_;
							LA62_: ;
							{
								def = fitNodeConsiderViewType__sem_212(c, typ, def, (*def).info);
							}
							LA59_: ;
						}
						goto LA55_;
						LA57_: ;
						{
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T66_;
							T66_ = NIM_NIL;
							T66_ = skipTypes__ast_3735((*def).typ, TM__rF9caJawfOjYTjsgLVUSGFA_735);
							typ = skipIntLit__magicsys_124(T66_, (*c).Sup.idgen);
							{
								NIM_BOOL T69_;
								T69_ = (NIM_BOOL)0;
								T69_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53));
								if (!(T69_)) goto LA70_;
								T69_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
								LA70_: ;
								if (!T69_) goto LA71_;
								typ = lastSon__ast_3743(typ);
							}
							LA71_: ;
							{
								NIM_BOOL T75_;
								NimStringDesc* T78_;
								NimStringDesc* T79_;
								T75_ = (NIM_BOOL)0;
								T75_ = hasEmpty__sem_9843(typ);
								if (!T75_) goto LA76_;
								T78_ = NIM_NIL;
								T78_ = toHumanStr__ast_5188((*typ).kind);
								T79_ = NIM_NIL;
								T79_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_736), T78_);
								liMessage__msgs_1118((*(*c).graph).config, (*def).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T79_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_737, NIM_FALSE);
							}
							goto LA73_;
							LA76_: ;
							{
								NIM_BOOL T81_;
								NIM_BOOL T82_;
								NimStringDesc* T87_;
								NimStringDesc* T88_;
								T81_ = (NIM_BOOL)0;
								T82_ = (NIM_BOOL)0;
								T82_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
								if (!(T82_)) goto LA83_;
								T82_ = ((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
								LA83_: ;
								T81_ = T82_;
								if (!(T81_)) goto LA84_;
								T81_ = isGenericRoutine__ast_4627((*(*def)._kind_4.sym).ast);
								LA84_: ;
								if (!T81_) goto LA85_;
								T87_ = NIM_NIL;
								T87_ = renderTree__renderer_46(def, 0);
								T88_ = NIM_NIL;
								T88_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_738), T87_);
								liMessage__msgs_1118((*(*c).graph).config, (*def).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T88_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_739, NIM_FALSE);
							}
							goto LA73_;
							LA85_: ;
							LA73_: ;
						}
						LA55_: ;
					}
					LA35_: ;
					{
						if (!(typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA91_;
						goto LA13;
					}
					LA91_: ;
					{
						if (!!(((*c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)))) goto LA95_;
						typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 2)) & 7);
					}
					LA95_: ;
					typeAllowedCheck__sem_481(c, (*a).info, typ, symkind, typFlags);
					tup = skipTypes__ast_3735(typ, TM__rF9caJawfOjYTjsgLVUSGFA_137);
					{
						NI T110_;
						NI T111_;
						NI T112_;
						NI T113_;
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA99_;
						{
							if (!!(((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA103_;
							liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 5), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_740), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_741, NIM_FALSE);
						}
						goto LA101_;
						LA103_: ;
						{
							NI T106_;
							NI T107_;
							T106_ = (NI)0;
							T106_ = len__ast_3198(a);
							T107_ = (NI)0;
							T107_ = len__ast_4002(tup);
							if (!!(((NI)(T106_ - ((NI) 2)) == T107_))) goto LA108_;
							liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_596), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_742, NIM_FALSE);
						}
						goto LA101_;
						LA108_: ;
						LA101_: ;
						b = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36), (*a).info);
						T110_ = (NI)0;
						T110_ = len__ast_3198(a);
						newSons__semtypinst_404(b, T110_);
						T111_ = (NI)0;
						T111_ = len__ast_3198(b);
						T112_ = (NI)0;
						T112_ = len__ast_3198(a);
						asgnRef((void**) (&(*b)._kind_6.sons->data[(NI)(T111_ - ((NI) 2))]), (*a)._kind_6.sons->data[(NI)(T112_ - ((NI) 2))]);
						T113_ = (NI)0;
						T113_ = len__ast_3198(b);
						asgnRef((void**) (&(*b)._kind_6.sons->data[(NI)(T113_ - ((NI) 1))]), def);
						addToVarSection__sem_9734(c, result, n, b);
					}
					goto LA97_;
					LA99_: ;
					{
						NIM_BOOL T115_;
						NIM_BOOL T116_;
						NIM_BOOL T117_;
						NI T121_;
						T115_ = (NIM_BOOL)0;
						T116_ = (NIM_BOOL)0;
						T117_ = (NIM_BOOL)0;
						T117_ = ((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
						if (!(T117_)) goto LA118_;
						T117_ = ((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160));
						LA118_: ;
						T116_ = T117_;
						if (!(T116_)) goto LA119_;
						T116_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35));
						LA119_: ;
						T115_ = T116_;
						if (!(T115_)) goto LA120_;
						T121_ = (NI)0;
						T121_ = len__ast_3198(a);
						T115_ = (((NI) 3) < T121_);
						LA120_: ;
						if (!T115_) goto LA122_;
						liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 39), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_743, NIM_FALSE);
					}
					goto LA97_;
					LA122_: ;
					LA97_: ;
					{
						NI j;
						NI colontmp__2;
						NI T125_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T125_ = (NI)0;
						T125_ = len__ast_3198(a);
						colontmp__2 = (NI)(T125_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								if (!(i_3 < colontmp__2)) goto LA127;
								j = i_3;
								{
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v;
									{
										tyObject_TType__facALICuu8zUj0hjvbTLFg* T133_;
										if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA131_;
										T133_ = NIM_NIL;
										{
											if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA136_;
											T133_ = typ;
										}
										goto LA134_;
										LA136_: ;
										{
											T133_ = (*tup).sons->data[j];
										}
										LA134_: ;
										fillPartialObject__sem_9911(c, (*a)._kind_6.sons->data[j], T133_);
										addToVarSection__sem_9734(c, result, n, a);
										goto LA128;
									}
									LA131_: ;
									v = semIdentDef__sem_9679(c, (*a)._kind_6.sons->data[j], symkind, NIM_FALSE);
									{
										NIM_BOOL T141_;
										T141_ = (NIM_BOOL)0;
										T141_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
										if (!(T141_)) goto LA142_;
										T141_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
										LA142_: ;
										if (!T141_) goto LA143_;
										nep1CheckDefImpl__linter_110((*(*c).graph).config, (*v).info, v, (*v).kind);
									}
									LA143_: ;
									{
										if (!!((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0))) goto LA147_;
										{
											NIM_BOOL T151_;
											T151_ = (NIM_BOOL)0;
											T151_ = isDiscardUnderscore__sem_9762(v);
											if (!!(T151_)) goto LA152_;
											addInterfaceDecl__lookups_879(c, v);
										}
										LA152_: ;
									}
									goto LA145_;
									LA147_: ;
									{
										{
											if (!((*v).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA157_;
											asgnRef((void**) (&(*v).owner), (*(*c).p).owner);
										}
										LA157_: ;
									}
									LA145_: ;
									{
										if (!(((NI) 0) < (*c).inUnrolledContext)) goto LA161_;
										(*v).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 25)) & 63);
									}
									goto LA159_;
									LA161_: ;
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* shadowed;
										shadowed = findShadowedVar__sem_9651(c, v);
										{
											if (!!((shadowed == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA166_;
											(*shadowed).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 25)) & 63);
											{
												NIM_BOOL T170_;
												T170_ = (NIM_BOOL)0;
												T170_ = ((*shadowed).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11));
												if (!(T170_)) goto LA171_;
												T170_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0));
												LA171_: ;
												if (!T170_) goto LA172_;
												liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 54), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_749, NIM_FALSE);
											}
											LA172_: ;
										}
										LA166_: ;
									}
									LA159_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T192_;
										NI T193_;
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T194_;
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
										NI T203_;
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T204_;
										if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA176_;
										{
											if (!!(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA180_;
											{
												if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0)) goto LA184_;
												liMessage__msgs_1118((*(*c).graph).config, (*def).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_750), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_751, NIM_FALSE);
											}
											LA184_: ;
										}
										LA180_: ;
										setVarType__sem_9942(c, v, typ);
										b = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*a).info);
										{
											NIM_BOOL T188_;
											NimStringDesc* T191_;
											T188_ = (NIM_BOOL)0;
											T188_ = importantComments__options_3989((*(*c).graph).config);
											if (!T188_) goto LA189_;
											T191_ = NIM_NIL;
											T191_ = comment__ast_993(a);
											commenteq___ast_1361(b, T191_);
										}
										LA189_: ;
										T192_ = NIM_NIL;
										T192_ = newSymNode__ast_3716(v);
										add__ast_4797(b, T192_);
										T193_ = (NI)0;
										T193_ = len__ast_3198(a);
										add__ast_4797(b, (*a)._kind_6.sons->data[(NI)(T193_ - ((NI) 2))]);
										T194_ = NIM_NIL;
										T194_ = copyTree__ast_4431(def);
										add__ast_4797(b, T194_);
										addToVarSection__sem_9734(c, result, n, b);
										ast = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*a).info);
										{
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T199_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T200_;
											if (!((*(*a)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA197_;
											p = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43), (*a).info);
											T199_ = NIM_NIL;
											T199_ = newSymNode__ast_3716(v);
											add__ast_4797(p, T199_);
											T200_ = NIM_NIL;
											T200_ = copyTree__ast_4431((*(*a)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)]);
											add__ast_4797(p, T200_);
											add__ast_4797(ast, p);
										}
										goto LA195_;
										LA197_: ;
										{
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T202_;
											T202_ = NIM_NIL;
											T202_ = newSymNode__ast_3716(v);
											add__ast_4797(ast, T202_);
										}
										LA195_: ;
										T203_ = (NI)0;
										T203_ = len__ast_3198(a);
										T204_ = NIM_NIL;
										T204_ = copyTree__ast_4431((*a)._kind_6.sons->data[(NI)(T203_ - ((NI) 2))]);
										add__ast_4797(ast, T204_);
										add__ast_4797(ast, def);
										asgnRef((void**) (&(*v).ast), ast);
									}
									goto LA174_;
									LA176_: ;
									{
										{
											if (!((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA208_;
											asgnRef((void**) (&(*v).ast), (*def)._kind_6.sons->data[j]);
										}
										LA208_: ;
										{
											if (!((*tup).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA212_;
											setVarType__sem_9942(c, v, (*tup).sons->data[j]);
										}
										goto LA210_;
										LA212_: ;
										{
											asgnRef((void**) (&(*v).typ), tup);
										}
										LA210_: ;
										asgnRef((void**) (&(*b)._kind_6.sons->data[j]), newSymNode__ast_3716(v));
									}
									LA174_: ;
									{
										tyObject_TType__facALICuu8zUj0hjvbTLFg* actualType;
										if (!((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA217_;
										actualType = skipTypes__ast_3735((*v).typ, TM__rF9caJawfOjYTjsgLVUSGFA_756);
										{
											NIM_BOOL T221_;
											T221_ = (NIM_BOOL)0;
											T221_ = ((*actualType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*actualType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13));
											if (!(T221_)) goto LA222_;
											T221_ = requiresInit__typeallowed_582(actualType);
											LA222_: ;
											if (!T221_) goto LA223_;
											defaultConstructionError__sem_138(c, (*v).typ, (*v).info);
										}
										goto LA219_;
										LA223_: ;
										{
											checkNilable__sem_9709(c, v);
										}
										LA219_: ;
										{
											NIM_BOOL T228_;
											T228_ = (NIM_BOOL)0;
											T228_ = ((*v).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
											if (!(T228_)) goto LA229_;
											T228_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0));
											LA229_: ;
											if (!T228_) goto LA230_;
											liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_763), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_764, NIM_FALSE);
										}
										LA230_: ;
									}
									LA217_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
										if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0)) goto LA234_;
										x = newNodeI__ast_3356((*result).kind, (*v).info);
										add__ast_4797(x, (*result)._kind_6.sons->data[i]);
										setupCompileTimeVar__vm_13765((*c).module, (*c).Sup.idgen, (*c).graph, x);
									}
									LA234_: ;
									{
										if (!(((*v).flags & 67108872) == 8)) goto LA238_;
										liMessage__msgs_1118((*(*c).graph).config, (*v).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 97), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_765, NIM_FALSE);
									}
									LA238_: ;
									suggestSym__sigmatch_5375((*c).graph, (*v).info, v, &(*(*c).graph).usageSym, NIM_TRUE);
								} LA128: ;
								i_3 += ((NI) 1);
							} LA127: ;
						}
					}
				} LA13: ;
				i_2 += ((NI) 1);
			} LA12: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, fitRemoveHiddenConv__sem_9629)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = fitNode__sem_70(c, typ, n, (*n).info);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* r1;
		if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59))) goto LA3_;
		r1 = (*result)._kind_6.sons->data[((NI) 1)];
		{
			NIM_BOOL T7_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T9_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*r1).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*r1).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
			if (!(T7_)) goto LA8_;
			T9_ = NIM_NIL;
			T9_ = skipTypes__ast_3735(typ, TM__rF9caJawfOjYTjsgLVUSGFA_461);
			T7_ = ((*T9_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*T9_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39));
			LA8_: ;
			if (!T7_) goto LA10_;
			result = newFloatNode__ast_3809(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), ((NF) ((*r1)._kind_1.intVal)));
			(*result).info = (*n).info;
			asgnRef((void**) (&(*result).typ), typ);
			{
				NIM_BOOL T14_;
				tyArray__Re75IspeoxXy2oCZHwcRrA T17_;
				NimStringDesc* T18_;
				T14_ = (NIM_BOOL)0;
				T14_ = floatRangeCheck__types_1613((*result)._kind_2.floatVal, typ);
				if (!!(T14_)) goto LA15_;
				nimZeroMem((void*)T17_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
				T17_[0] = dollar___system_3118((*result)._kind_2.floatVal);
				T17_[1] = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
				T18_ = NIM_NIL;
				T18_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_95), T17_, 2);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T18_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_766, NIM_FALSE);
			}
			LA15_: ;
		}
		goto LA5_;
		LA10_: ;
		{
			changeType__sem_75(c, r1, typ, NIM_TRUE);
			result = r1;
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T21_;
		T21_ = (NIM_BOOL)0;
		T21_ = sameType__types_1824((*result).typ, typ, 0);
		if (!!(T21_)) goto LA22_;
		changeType__sem_75(c, result, typ, NIM_FALSE);
	}
	goto LA1_;
	LA22_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConst__sem_10430)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = copyNode__ast_4336(n);
	(*c).inStaticContext += ((NI) 1);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
					tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg typFlags;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					NI T23_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 11))) goto LA7_;
						suggestStmt__sigmatch_6552(c, a);
					}
					LA7_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA11_;
						goto LA4;
					}
					LA11_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA15_;
						illFormedAst__semdata_1071(a, (*(*c).graph).config);
					}
					LA15_: ;
					checkMinSonsLen__semdata_1084(a, ((NI) 3), (*(*c).graph).config);
					typ = ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL);
					{
						NI T19_;
						NI T22_;
						T19_ = (NI)0;
						T19_ = len__ast_3198(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T19_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA20_;
						T22_ = (NI)0;
						T22_ = len__ast_3198(a);
						typ = semTypeNode__sem_80(c, (*a)._kind_6.sons->data[(NI)(T22_ - ((NI) 2))], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
					}
					LA20_: ;
					nimZeroMem((void*)(&typFlags), sizeof(tySet_tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg));
					T23_ = (NI)0;
					T23_ = len__ast_3198(a);
					def = semExprWithType__sem_56(c, (*a)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))], 0);
					{
						NIM_BOOL T26_;
						T26_ = (NIM_BOOL)0;
						T26_ = ((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
						if (!(T26_)) goto LA27_;
						T26_ = ((393216 &((NU32)1<<((NU)((*(*def)._kind_4.sym).kind)&31U)))!=0);
						LA27_: ;
						if (!T26_) goto LA28_;
						typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 5)) & 7);
					}
					goto LA24_;
					LA28_: ;
					{
						NIM_BOOL T31_;
						T31_ = (NIM_BOOL)0;
						T31_ = ((*(*def).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
						if (!(T31_)) goto LA32_;
						T31_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17)));
						LA32_: ;
						if (!T31_) goto LA33_;
						typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 6)) & 7);
					}
					goto LA24_;
					LA33_: ;
					LA24_: ;
					{
						if (!!((typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA37_;
						{
							NIM_BOOL T41_;
							T41_ = (NIM_BOOL)0;
							T41_ = isMetaType__ast_3495(typ);
							if (!T41_) goto LA42_;
							def = inferWithMetatype__sem_231(c, typ, def, NIM_FALSE);
							typ = (*def).typ;
						}
						goto LA39_;
						LA42_: ;
						{
							def = fitRemoveHiddenConv__sem_9629(c, typ, def);
						}
						LA39_: ;
					}
					goto LA35_;
					LA37_: ;
					{
						typ = (*def).typ;
					}
					LA35_: ;
					def = semConstExpr__sem_611(c, def);
					{
						NI T50_;
						if (!(def == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA48_;
						T50_ = (NI)0;
						T50_ = len__ast_3198(a);
						liMessage__msgs_1118((*(*c).graph).config, (*(*a)._kind_6.sons->data[(NI)(T50_ - ((NI) 1))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_349), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_767, NIM_FALSE);
						goto LA4;
					}
					LA48_: ;
					{
						if (!!(((*def).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)))) goto LA53_;
						{
							if (!!(((*c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)))) goto LA57_;
							typFlags |= ((NU8)1)<<((((tyEnum_TTypeAllowedFlag__JBIyoJI1E5LVXKYAX3xeBg) 2)) & 7);
						}
						LA57_: ;
						typeAllowedCheck__sem_481(c, (*a).info, typ, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10), typFlags);
					}
					LA53_: ;
					b = NIM_NIL;
					{
						NI T72_;
						NI T73_;
						NI T74_;
						NI T75_;
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA61_;
						{
							if (!!(((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA65_;
							liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 5), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_740), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_768, NIM_FALSE);
						}
						goto LA63_;
						LA65_: ;
						{
							NI T68_;
							NI T69_;
							T68_ = (NI)0;
							T68_ = len__ast_3198(a);
							T69_ = (NI)0;
							T69_ = len__ast_4002(typ);
							if (!!(((NI)(T68_ - ((NI) 2)) == T69_))) goto LA70_;
							liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_596), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_769, NIM_FALSE);
						}
						goto LA63_;
						LA70_: ;
						LA63_: ;
						b = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36), (*a).info);
						T72_ = (NI)0;
						T72_ = len__ast_3198(a);
						newSons__semtypinst_404(b, T72_);
						T73_ = (NI)0;
						T73_ = len__ast_3198(b);
						T74_ = (NI)0;
						T74_ = len__ast_3198(a);
						asgnRef((void**) (&(*b)._kind_6.sons->data[(NI)(T73_ - ((NI) 2))]), (*a)._kind_6.sons->data[(NI)(T74_ - ((NI) 2))]);
						T75_ = (NI)0;
						T75_ = len__ast_3198(b);
						asgnRef((void**) (&(*b)._kind_6.sons->data[(NI)(T75_ - ((NI) 1))]), def);
					}
					LA61_: ;
					{
						NI j;
						NI colontmp__2;
						NI T77_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T77_ = (NI)0;
						T77_ = len__ast_3198(a);
						colontmp__2 = (NI)(T77_ - ((NI) 2));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v;
								if (!(i_3 < colontmp__2)) goto LA79;
								j = i_3;
								v = semIdentDef__sem_9679(c, (*a)._kind_6.sons->data[j], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10), NIM_TRUE);
								{
									if (!!((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0))) goto LA82_;
									addInterfaceDecl__lookups_879(c, v);
								}
								goto LA80_;
								LA82_: ;
								{
									if (!((*v).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA85_;
									asgnRef((void**) (&(*v).owner), getCurrOwner__semdata_315(c));
								}
								goto LA80_;
								LA85_: ;
								LA80_: ;
								{
									NIM_BOOL T89_;
									T89_ = (NIM_BOOL)0;
									T89_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
									if (!(T89_)) goto LA90_;
									T89_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
									LA90_: ;
									if (!T89_) goto LA91_;
									nep1CheckDefImpl__linter_110((*(*c).graph).config, (*v).info, v, (*v).kind);
								}
								LA91_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T103_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T104_;
									if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA95_;
									setVarType__sem_9942(c, v, typ);
									asgnRef((void**) (&(*v).ast), def);
									b = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102), (*a).info);
									{
										NIM_BOOL T99_;
										NimStringDesc* T102_;
										T99_ = (NIM_BOOL)0;
										T99_ = importantComments__options_3989((*(*c).graph).config);
										if (!T99_) goto LA100_;
										T102_ = NIM_NIL;
										T102_ = comment__ast_993(a);
										commenteq___ast_1361(b, T102_);
									}
									LA100_: ;
									T103_ = NIM_NIL;
									T103_ = newSymNode__ast_3716(v);
									add__ast_4797(b, T103_);
									add__ast_4797(b, (*a)._kind_6.sons->data[((NI) 1)]);
									T104_ = NIM_NIL;
									T104_ = copyTree__ast_4431(def);
									add__ast_4797(b, T104_);
								}
								goto LA93_;
								LA95_: ;
								{
									setVarType__sem_9942(c, v, (*typ).sons->data[j]);
									{
										if (!!(((*(*def)._kind_6.sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA108_;
										asgnRef((void**) (&(*v).ast), (*def)._kind_6.sons->data[j]);
									}
									goto LA106_;
									LA108_: ;
									{
										asgnRef((void**) (&(*v).ast), (*(*def)._kind_6.sons->data[j])._kind_6.sons->data[((NI) 1)]);
									}
									LA106_: ;
									asgnRef((void**) (&(*b)._kind_6.sons->data[j]), newSymNode__ast_3716(v));
								}
								LA93_: ;
								i_3 += ((NI) 1);
							} LA79: ;
						}
					}
					add__ast_4797(result, b);
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	(*c).inStaticContext -= ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, typeDefLeftSidePass__sem_11623)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeSection, NI i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typeDef_1;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* name;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
{	typeDef_1 = (*typeSection)._kind_6.sons->data[i];
	checkSonsLen__semdata_1077(typeDef_1, ((NI) 3), (*(*c).graph).config);
	name = (*typeDef_1)._kind_6.sons->data[((NI) 0)];
	s = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* pkgName;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* typName;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* pkg;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*name).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45));
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*typeDef_1)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133));
		LA4_: ;
		if (!T3_) goto LA5_;
		pkgName = considerQuotedIdent__lookups_28(c, (*name)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		typName = considerQuotedIdent__lookups_28(c, (*name)._kind_6.sons->data[((NI) 1)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		pkg = strTableGet__astalgo_3383((*(*c).graph).packageSyms, pkgName);
		{
			NIM_BOOL T9_;
			NimStringDesc* T13_;
			T9_ = (NIM_BOOL)0;
			T9_ = (pkg == 0);
			if (T9_) goto LA10_;
			T9_ = !(((*pkg).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 24)));
			LA10_: ;
			if (!T9_) goto LA11_;
			T13_ = NIM_NIL;
			T13_ = rawNewString(((*pkgName).s ? (*pkgName).s->Sup.len : 0) + 22);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_770));
appendString(T13_, (*pkgName).s);
			liMessage__msgs_1118((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_771, NIM_FALSE);
		}
		goto LA7_;
		LA11_: ;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* typsym;
			typsym = strTableGet__astalgo_3383((*(*c).graph).packageTypes, typName);
			{
				if (!(typsym == 0)) goto LA17_;
				s = semIdentDef__sem_9679(c, (*name)._kind_6.sons->data[((NI) 1)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), NIM_TRUE);
				asgnRef((void**) (&(*s).typ), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17), c));
				asgnRef((void**) (&(*(*s).typ).sym), s);
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4)) & 63);
				strTableAdd__astalgo_3325((&(*(*c).graph).packageTypes), s);
				addInterfaceDecl__lookups_879(c, s);
			}
			goto LA15_;
			LA17_: ;
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*typsym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
				if (!(T20_)) goto LA21_;
				T20_ = (((*typsym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
				LA21_: ;
				if (!T20_) goto LA22_;
				s = typsym;
				addInterfaceDecl__lookups_879(c, s);
			}
			goto LA15_;
			LA22_: ;
			{
				NimStringDesc* T25_;
				T25_ = NIM_NIL;
				T25_ = rawNewString(((*(*typsym).name).s ? (*(*typsym).name).s->Sup.len : 0) + 36);
appendString(T25_, (*(*typsym).name).s);
appendString(T25_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_772));
				liMessage__msgs_1118((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T25_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_773, NIM_FALSE);
				s = typsym;
			}
			LA15_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		s = semIdentDef__sem_9679(c, name, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), NIM_TRUE);
		asgnRef((void**) (&(*s).typ), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30), c));
		asgnRef((void**) (&(*(*s).typ).sym), s);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* rewritten;
			if (!((*name).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA29_;
			rewritten = applyTypeSectionPragmas__sem_5714(c, (*name)._kind_6.sons->data[((NI) 1)], typeDef_1);
			{
				if (!!((rewritten == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA33_;
				asgnRef((void**) (&(*typeSection)._kind_6.sons->data[i]), rewritten);
				typeDefLeftSidePass__sem_11623(c, typeSection, i);
				goto BeforeRet_;
			}
			LA33_: ;
			pragma__pragmas_123(c, s, (*name)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_475, NIM_FALSE);
		}
		LA29_: ;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* pkg_2;
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0)) goto LA37_;
			pkg_2 = (*(*c).module).owner;
			{
				NIM_BOOL T41_;
				NIM_BOOL T42_;
				T41_ = (NIM_BOOL)0;
				T42_ = (NIM_BOOL)0;
				T42_ = isTopLevel__semdata_1091(c);
				T41_ = !(T42_);
				if (T41_) goto LA43_;
				T41_ = (pkg_2 == 0);
				LA43_: ;
				if (!T41_) goto LA44_;
				liMessage__msgs_1118((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_774), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_775, NIM_FALSE);
			}
			goto LA39_;
			LA44_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* typsym_2;
				typsym_2 = strTableGet__astalgo_3383((*(*c).graph).packageTypes, (*s).name);
				{
					if (!!((typsym_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA49_;
					{
						NIM_BOOL T53_;
						T53_ = (NIM_BOOL)0;
						T53_ = !((((*typsym_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0));
						if (T53_) goto LA54_;
						T53_ = !((((*typsym_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0));
						LA54_: ;
						if (!T53_) goto LA55_;
						(*typsym_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10)) & 63);
						(*typsym_2).info = (*s).info;
					}
					goto LA51_;
					LA55_: ;
					{
						NimStringDesc* T58_;
						NimStringDesc* T59_;
						T58_ = NIM_NIL;
						T59_ = NIM_NIL;
						T59_ = dollar___msgs_624((*(*c).graph).config, (*typsym_2).info);
						T58_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + (T59_ ? T59_->Sup.len : 0) + 66);
appendString(T58_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_776));
appendString(T58_, (*(*s).name).s);
appendString(T58_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_777));
appendString(T58_, T59_);
						liMessage__msgs_1118((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T58_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_778, NIM_FALSE);
					}
					LA51_: ;
					s = typsym_2;
				}
				LA49_: ;
			}
			LA39_: ;
		}
		LA37_: ;
		{
			if (!!((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0))) goto LA62_;
			addInterfaceDecl__lookups_879(c, s);
		}
		goto LA60_;
		LA62_: ;
		{
			if (!((*s).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA65_;
			asgnRef((void**) (&(*s).owner), getCurrOwner__semdata_315(c));
		}
		goto LA60_;
		LA65_: ;
		LA60_: ;
	}
	LA1_: ;
	{
		if (!((*name).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA69_;
		asgnRef((void**) (&(*(*typeDef_1)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(s));
	}
	goto LA67_;
	LA69_: ;
	{
		asgnRef((void**) (&(*typeDef_1)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(s));
	}
	LA67_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, typeSectionLeftSidePass__sem_11723)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA11_;
						illFormedAst__semdata_1071(a, (*(*c).graph).config);
					}
					LA11_: ;
					typeDefLeftSidePass__sem_11623(c, n, i);
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, typeSectionTypeName__sem_11607)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA3_;
		{
			NI T7_;
			T7_ = (NI)0;
			T7_ = len__ast_3198(n);
			if (!(T7_ == ((NI) 0))) goto LA8_;
			illFormedAst__semdata_1071(n, (*(*c).graph).config);
		}
		LA8_: ;
		result = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		result = n;
	}
	LA1_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA13_;
		illFormedAst__semdata_1071(n, (*(*c).graph).config);
	}
	LA13_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setMagicType__sem_6266)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NI size) {
	(*(*m).typ).kind = kind;
	(*(*m).typ).size = ((NI64) (size));
	(*(*m).typ).align = ((NI16) (size));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38) || kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) || kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) || kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) || kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44));
		if (!(T3_)) goto LA4_;
		T3_ = (size == ((NI) 8));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*(*m).typ).align = floatInt64Align__options_4704(conf);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, setMagicIntegral__sem_6275)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, NI size) {
	setMagicType__sem_6266(conf, m, kind, size);
	(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
}
N_LIB_PRIVATE N_NIMCALL(void, processMagicType__sem_6284)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m) {
	switch ((*m).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 173):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31), (*(*(*c).graph).config).target.intSize);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 174):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32), ((NI) 1));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 175):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33), ((NI) 2));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 176):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34), ((NI) 4));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 177):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35), ((NI) 8));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 178):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40), (*(*(*c).graph).config).target.intSize);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 179):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41), ((NI) 1));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 180):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42), ((NI) 2));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 181):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43), ((NI) 4));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 182):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44), ((NI) 8));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 183):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36), (*(*(*c).graph).config).target.floatSize);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 184):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37), ((NI) 4));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 185):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38), ((NI) 8));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 186):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39), ((NI) 16));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 187):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1), ((NI) 1));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 188):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2), ((NI) 1));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 189):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T18_;
		setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28), ((NI) -1));
		T18_ = NIM_NIL;
		T18_ = getSysType__magicsys_60((*c).graph, (*m).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
		rawAddSon__ast_4288((*m).typ, T18_, NIM_TRUE);
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA21_;
			(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
		}
		LA21_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 190):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T24_;
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29), (*(*(*c).graph).config).target.ptrSize);
		T24_ = NIM_NIL;
		T24_ = getSysType__magicsys_60((*c).graph, (*m).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2));
		rawAddSon__ast_4288((*m).typ, T24_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 191):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26), (*(*(*c).graph).config).target.ptrSize);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 192):
	{
		setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5), (*(*(*c).graph).config).target.ptrSize);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 193):
	{
		{
			if (!eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_780))) goto LA30_;
			setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59), ((NI) 0));
		}
		goto LA28_;
		LA30_: ;
		{
			setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6), ((NI) 0));
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 194):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 195):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 17):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T35_;
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8), ((NI) 0));
		T35_ = NIM_NIL;
		T35_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		rawAddSon__ast_4288((*m).typ, T35_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 24):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T37_;
		setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60), ((NI) 0));
		T37_ = NIM_NIL;
		T37_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		rawAddSon__ast_4288((*m).typ, T37_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 196):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 159):
	{
		setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 160):
	{
		setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 164):
	{
		setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 161):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T43_;
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20), ((NI) -1));
		T43_ = NIM_NIL;
		T43_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		rawAddSon__ast_4288((*m).typ, T43_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 162):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 271):
	{
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49), ((NI) -1));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 163):
	{
		setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24), ((NI) -1));
		{
			if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA49_;
			(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
		}
		LA49_: ;
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = NIM_FALSE;
			if (T53_) goto LA54_;
			T53_ = ((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 8));
			LA54_: ;
			if (!T53_) goto LA55_;
		}
		goto LA51_;
		LA55_: ;
		{
		}
		LA51_: ;
		asgnRef((void**) (&(*(*c).graph).sysTypes[(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))- 0]), (*m).typ);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 171):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T59_;
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15), ((NI) -1));
		T59_ = NIM_NIL;
		T59_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		rawAddSon__ast_4288((*m).typ, T59_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 172):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T61_;
		setMagicIntegral__sem_6275((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64), ((NI) 0));
		T61_ = NIM_NIL;
		T61_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
		rawAddSon__ast_4288((*m).typ, T61_, NIM_TRUE);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 197):
	{
		(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 33)) & 63);
		(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 268):
	{
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 269):
	{
		if (eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_781))) goto LA65_;
		if (eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_782))) goto LA66_;
		if (eqStrings((*(*m).name).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_511))) goto LA67_;
		goto LA68_;
		LA65_: ;
		{
			setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47), (*(*(*c).graph).config).target.ptrSize);
		}
		goto LA69_;
		LA66_: ;
		{
			setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46), ((NI) -1));
		}
		goto LA69_;
		LA67_: ;
		{
			setMagicType__sem_6266((*(*c).graph).config, m, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45), (*(*(*c).graph).config).target.ptrSize);
			(*(*m).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4)) & 63);
		}
		goto LA69_;
		LA68_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_783, NIM_FALSE);
		}
		LA69_: ;
	}
	break;
	default:
	{
		liMessage__msgs_1118((*(*c).graph).config, (*m).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_784, NIM_FALSE);
	}
	break;
	}
}
static N_NIMCALL(void, Marker_tyRef__XNJoeAba9c9cA3kTvTEsgqEQ)(void* p, NI op) {
	tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ* a;
	a = (tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ*)p;
	nimGCvisit((void*)(*a).genericType1, op);
}
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, traverseSubTypes__sem_11753)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, void* ClE_0) {
	NIM_BOOL result;
	tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ* colonenvP_;
{	result = (NIM_BOOL)0;
	colonenvP_ = (tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ*) ClE_0;
	result = NIM_FALSE;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
	{
		(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 36)) & 63);
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
			field = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191((*t).n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NIM_BOOL subX60gensym3017_;
						tyProc__u9aP1I541s9an9cuSAzDOz9bTg T7_;
						NIM_BOOL T8_;
						if (!(i_2 < colontmp_)) goto LA6;
						i = i_2;
						field = (*(*t).n)._kind_6.sons->data[i];
						nimZeroMem((void*)(&T7_), sizeof(tyProc__u9aP1I541s9an9cuSAzDOz9bTg));
						T7_.ClP_0 = traverseSubTypes__sem_11753; T7_.ClE_0 = colonenvP_;
						subX60gensym3017_ = T7_.ClE_0? T7_.ClP_0(c, (*field).typ, T7_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_786)(T7_.ClP_0))(c, (*field).typ);
						T8_ = (NIM_BOOL)0;
						T8_ = result;
						if (T8_) goto LA9_;
						T8_ = subX60gensym3017_;
						LA9_: ;
						result = T8_;
						i_2 += ((NI) 1);
					} LA6: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyProc__u9aP1I541s9an9cuSAzDOz9bTg T11_;
		nimZeroMem((void*)(&T11_), sizeof(tyProc__u9aP1I541s9an9cuSAzDOz9bTg));
		T11_.ClP_0 = traverseSubTypes__sem_11753; T11_.ClE_0 = colonenvP_;
		result = T11_.ClE_0? T11_.ClP_0(c, (*t).sons->data[((NI) 1)], T11_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_787)(T11_.ClP_0))(c, (*t).sons->data[((NI) 1)]);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg** subType;
			NI i_3;
			NI L;
			NI T14_;
			subType = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
			i_3 = ((NI) 0);
			T14_ = ((*t).sons ? (*t).sons->Sup.len : 0);
			L = T14_;
			{
				while (1) {
					if (!(i_3 < L)) goto LA16;
					subType = &(*t).sons->data[i_3];
					{
						NIM_BOOL subX60gensym3020_;
						tyProc__u9aP1I541s9an9cuSAzDOz9bTg T21_;
						NIM_BOOL T22_;
						if (!!(((*subType) == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA19_;
						nimZeroMem((void*)(&T21_), sizeof(tyProc__u9aP1I541s9an9cuSAzDOz9bTg));
						T21_.ClP_0 = traverseSubTypes__sem_11753; T21_.ClE_0 = colonenvP_;
						subX60gensym3020_ = T21_.ClE_0? T21_.ClP_0(c, (*subType), T21_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_788)(T21_.ClP_0))(c, (*subType));
						T22_ = (NIM_BOOL)0;
						T22_ = result;
						if (T22_) goto LA23_;
						T22_ = subX60gensym3020_;
						LA23_: ;
						result = T22_;
					}
					LA19_: ;
					i_3 += ((NI) 1);
				} LA16: ;
			}
		}
		{
			NimStringDesc* T28_;
			NimStringDesc* T29_;
			if (!result) goto LA26_;
			T28_ = NIM_NIL;
			T29_ = NIM_NIL;
			T29_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T28_ = rawNewString((T29_ ? T29_->Sup.len : 0) + 46);
appendString(T28_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_789));
appendString(T28_, T29_);
			liMessage__msgs_1118((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T28_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_790, NIM_FALSE);
		}
		LA26_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyProc__u9aP1I541s9an9cuSAzDOz9bTg T31_;
		nimZeroMem((void*)(&T31_), sizeof(tyProc__u9aP1I541s9an9cuSAzDOz9bTg));
		T31_.ClP_0 = traverseSubTypes__sem_11753; T31_.ClE_0 = colonenvP_;
		result = T31_.ClE_0? T31_.ClP_0(c, (*t).sons->data[((NI) 0)], T31_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_791)(T31_.ClP_0))(c, (*t).sons->data[((NI) 0)]);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* targetBody;
		targetBody = (*t).sons->data[((NI) 0)];
		{
			NI i_4;
			NI colontmp__2;
			NI i_5;
			i_4 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_4002(t);
			i_5 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* param;
					if (!(i_5 < colontmp__2)) goto LA35;
					i_4 = i_5;
					param = (*t).sons->data[i_4];
					{
						if (!((*param).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA38_;
						{
							tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw formalFlags;
							if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35))&63U)))!=0)) goto LA42_;
							formalFlags = (*(*targetBody).sons->data[(NI)(i_4 - ((NI) 1))]).flags;
							{
								NimStringDesc* T48_;
								if (!!(((formalFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35))&63U)))!=0))) goto LA46_;
								T48_ = NIM_NIL;
								T48_ = rawNewString(((*(*(*param).sym).name).s ? (*(*(*param).sym).name).s->Sup.len : 0) + 51);
appendString(T48_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_792));
appendString(T48_, (*(*(*param).sym).name).s);
appendString(T48_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_793));
								liMessage__msgs_1118((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T48_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_794, NIM_FALSE);
							}
							goto LA44_;
							LA46_: ;
							{
								if (!((formalFlags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 36))&63U)))!=0)) goto LA50_;
								(*param).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 36)) & 63);
							}
							goto LA44_;
							LA50_: ;
							LA44_: ;
							result = NIM_TRUE;
						}
						goto LA40_;
						LA42_: ;
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* formalParam;
							if (!(((*param).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 37))&63U)))!=0)) goto LA53_;
							formalParam = (*(*targetBody).sons->data[(NI)(i_4 - ((NI) 1))]).sym;
							{
								NimStringDesc* T59_;
								if (!!((((*(*formalParam).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 37))&63U)))!=0))) goto LA57_;
								T59_ = NIM_NIL;
								T59_ = rawNewString(((*(*(*param).sym).name).s ? (*(*(*param).sym).name).s->Sup.len : 0) + 59);
appendString(T59_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_795));
appendString(T59_, (*(*(*param).sym).name).s);
appendString(T59_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_796));
								liMessage__msgs_1118((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T59_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_797, NIM_FALSE);
							}
							LA57_: ;
							result = NIM_TRUE;
						}
						goto LA40_;
						LA53_: ;
						LA40_: ;
					}
					goto LA36_;
					LA38_: ;
					{
						NIM_BOOL subX60gensym3044_;
						tyProc__u9aP1I541s9an9cuSAzDOz9bTg T61_;
						NIM_BOOL T62_;
						nimZeroMem((void*)(&T61_), sizeof(tyProc__u9aP1I541s9an9cuSAzDOz9bTg));
						T61_.ClP_0 = traverseSubTypes__sem_11753; T61_.ClE_0 = colonenvP_;
						subX60gensym3044_ = T61_.ClE_0? T61_.ClP_0(c, param, T61_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_798)(T61_.ClP_0))(c, param);
						T62_ = (NIM_BOOL)0;
						T62_ = result;
						if (T62_) goto LA63_;
						T62_ = subX60gensym3044_;
						LA63_: ;
						result = T62_;
					}
					LA36_: ;
					i_5 += ((NI) 1);
				} LA35: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
	{
		NimStringDesc* T65_;
		NimStringDesc* T66_;
		T65_ = NIM_NIL;
		T66_ = NIM_NIL;
		T66_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T65_ = rawNewString((T66_ ? T66_->Sup.len : 0) + 63);
appendString(T65_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_799));
appendString(T65_, T66_);
appendString(T65_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_128));
		liMessage__msgs_1118((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T65_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_800, NIM_FALSE);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		liMessage__msgs_1118((*(*c).graph).config, (*(*(*colonenvP_).genericType1).sym).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_801), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_802, NIM_FALSE);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg** fieldType;
			NI i_6;
			NI L_2;
			NI T70_;
			fieldType = (tyObject_TType__facALICuu8zUj0hjvbTLFg**)0;
			i_6 = ((NI) 0);
			T70_ = ((*t).sons ? (*t).sons->Sup.len : 0);
			L_2 = T70_;
			{
				while (1) {
					NIM_BOOL subX60gensym3054_;
					tyProc__u9aP1I541s9an9cuSAzDOz9bTg T73_;
					NIM_BOOL T74_;
					if (!(i_6 < L_2)) goto LA72;
					fieldType = &(*t).sons->data[i_6];
					nimZeroMem((void*)(&T73_), sizeof(tyProc__u9aP1I541s9an9cuSAzDOz9bTg));
					T73_.ClP_0 = traverseSubTypes__sem_11753; T73_.ClE_0 = colonenvP_;
					subX60gensym3054_ = T73_.ClE_0? T73_.ClP_0(c, (*fieldType), T73_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_803)(T73_.ClP_0))(c, (*fieldType));
					T74_ = (NIM_BOOL)0;
					T74_ = result;
					if (T74_) goto LA75_;
					T74_ = subX60gensym3054_;
					LA75_: ;
					result = T74_;
					i_6 += ((NI) 1);
				} LA72: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyProc__u9aP1I541s9an9cuSAzDOz9bTg T82_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T83_;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T79_;
			T79_ = NIM_NIL;
			T79_ = base__types_63(t);
			if (!((*T79_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12))) goto LA80_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA80_: ;
		nimZeroMem((void*)(&T82_), sizeof(tyProc__u9aP1I541s9an9cuSAzDOz9bTg));
		T82_.ClP_0 = traverseSubTypes__sem_11753; T82_.ClE_0 = colonenvP_;
		T83_ = NIM_NIL;
		T83_ = base__types_63(t);
		result = T82_.ClE_0? T82_.ClP_0(c, T83_, T82_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_804)(T82_.ClP_0))(c, T83_);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyProc__u9aP1I541s9an9cuSAzDOz9bTg T85_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T86_;
		nimZeroMem((void*)(&T85_), sizeof(tyProc__u9aP1I541s9an9cuSAzDOz9bTg));
		T85_.ClP_0 = traverseSubTypes__sem_11753; T85_.ClE_0 = colonenvP_;
		T86_ = NIM_NIL;
		T86_ = lastSon__ast_3743(t);
		result = T85_.ClE_0? T85_.ClP_0(c, T86_, T85_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_805)(T85_.ClP_0))(c, T86_);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
	{
		{
			NimStringDesc* argX60gensym3056_;
			if (!NIM_TRUE) goto LA90_;
			argX60gensym3056_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_806);
			internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym3056_, TM__rF9caJawfOjYTjsgLVUSGFA_806);
		}
		LA90_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkCovariantParamsUsages__sem_11744)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* genericType) {
	tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ* colonenv_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* body;
	NI T1_;
	tyProc__u9aP1I541s9an9cuSAzDOz9bTg T2_;
	NIM_BOOL T3_;
	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ*) newObj((&NTIrefobject__XNJoeAba9c9cA3kTvTEsgqEQ_), sizeof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ));
	(*colonenv_).Sup.m_type = (&NTIobject__pOSGedHS6i9aexCYZEItHgQ_);
	asgnRef((void**) (&(*colonenv_).genericType1), genericType);
	T1_ = (NI)0;
	T1_ = len__ast_4002((*colonenv_).genericType1);
	body = (*(*colonenv_).genericType1).sons->data[(NI)(T1_ - ((NI) 1))];
	nimZeroMem((void*)(&T2_), sizeof(tyProc__u9aP1I541s9an9cuSAzDOz9bTg));
	T2_.ClP_0 = traverseSubTypes__sem_11753; T2_.ClE_0 = colonenv_;
	T3_ = (NIM_BOOL)0;
	T3_ = T2_.ClE_0? T2_.ClP_0(c, body, T2_.ClE_0):((TM__rF9caJawfOjYTjsgLVUSGFA_807)(T2_.ClP_0))(c, body);
	(void)(T3_);
}
N_LIB_PRIVATE N_NIMCALL(void, typeSectionRightSidePass__sem_11844)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* name;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aa;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 103)))) goto LA11_;
						illFormedAst__semdata_1071(a, (*(*c).graph).config);
					}
					LA11_: ;
					checkSonsLen__semdata_1077(a, ((NI) 3), (*(*c).graph).config);
					name = typeSectionTypeName__sem_11607(c, (*a)._kind_6.sons->data[((NI) 0)]);
					s = (*name)._kind_4.sym;
					{
						NIM_BOOL T15_;
						NimStringDesc* T19_;
						T15_ = (NIM_BOOL)0;
						T15_ = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
						if (!(T15_)) goto LA16_;
						T15_ = ((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
						LA16_: ;
						if (!T15_) goto LA17_;
						T19_ = NIM_NIL;
						T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_391), (*(*s).name).s);
						liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_779, NIM_FALSE);
					}
					LA17_: ;
					{
						if (!!(((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA22_;
						processMagicType__sem_6284(c, s);
					}
					LA22_: ;
					{
						tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T28_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T33_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* body;
						if (!!(((*(*a)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA26_;
						T28_ = NIM_NIL;
						T28_ = openScope__lookups_69(c);
						pushOwner__semdata_322(c, s);
						{
							if (!((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA31_;
							(*(*s).typ).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10);
						}
						LA31_: ;
						asgnRef((void**) (&(*(*s).typ).n), semGenericParamList__sem_6334(c, (*a)._kind_6.sons->data[((NI) 1)], (*s).typ));
						asgnRef((void**) (&(*a)._kind_6.sons->data[((NI) 1)]), (*(*s).typ).n);
						(*(*s).typ).size = IL64(-1);
						T33_ = NIM_NIL;
						T33_ = newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0), c);
						rawAddSon__ast_4288((*s).typ, T33_, NIM_TRUE);
						asgnRef((void**) (&(*s).ast), a);
						(*c).inGenericContext += ((NI) 1);
						body = semTypeNode__sem_80(c, (*a)._kind_6.sons->data[((NI) 2)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
						(*c).inGenericContext -= ((NI) 1);
						{
							NI T38_;
							if (!!((body == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA36_;
							asgnRef((void**) (&(*body).sym), s);
							(*body).size = IL64(-1);
							T38_ = (NI)0;
							T38_ = len__ast_4002((*s).typ);
							asgnRef((void**) (&(*(*s).typ).sons->data[(NI)(T38_ - ((NI) 1))]), body);
							{
								if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 35))&63U)))!=0)) goto LA41_;
								checkCovariantParamsUsages__sem_11744(c, (*s).typ);
								{
									tyObject_TType__facALICuu8zUj0hjvbTLFg* body_2;
									if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0)) goto LA45_;
									body_2 = lastSon__ast_3743((*s).typ);
									{
										if (!((*body_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA49_;
										if ((*(*body_2).n)._kind_6.sons) { nimGCunrefRC1((*(*body_2).n)._kind_6.sons); (*(*body_2).n)._kind_6.sons = NIM_NIL; }
									}
									LA49_: ;
								}
								LA45_: ;
							}
							LA41_: ;
						}
						LA36_: ;
						popOwner__semdata_329(c);
						closeScope__lookups_101(c);
					}
					goto LA24_;
					LA26_: ;
					{
						tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
						if (!!(((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA52_;
						pushOwner__semdata_322(c, s);
						t = semTypeNode__sem_80(c, (*a)._kind_6.sons->data[((NI) 2)], (*s).typ);
						{
							if (!((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA56_;
							asgnRef((void**) (&(*s).typ), t);
						}
						goto LA54_;
						LA56_: ;
						{
							NIM_BOOL T59_;
							NIM_BOOL T61_;
							T59_ = (NIM_BOOL)0;
							T59_ = !((t == (*s).typ));
							if (!(T59_)) goto LA60_;
							T61_ = (NIM_BOOL)0;
							T61_ = ((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
							if (T61_) goto LA62_;
							T61_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4)));
							LA62_: ;
							T59_ = T61_;
							LA60_: ;
							if (!T59_) goto LA63_;
							assignType__ast_3976((*s).typ, t);
						}
						goto LA54_;
						LA63_: ;
						LA54_: ;
						asgnRef((void**) (&(*s).ast), a);
						popOwner__semdata_329(c);
						{
							if (!((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA67_;
							(*(*a)._kind_6.sons->data[((NI) 2)]).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31);
						}
						LA67_: ;
					}
					goto LA24_;
					LA52_: ;
					LA24_: ;
					{
						NIM_BOOL T71_;
						T71_ = (NIM_BOOL)0;
						T71_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0);
						if (!(T71_)) goto LA72_;
						T71_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4));
						LA72_: ;
						if (!T71_) goto LA73_;
						liMessage__msgs_1118((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_808), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_809, NIM_FALSE);
					}
					LA73_: ;
					{
						NIM_BOOL T77_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T79_;
						T77_ = (NIM_BOOL)0;
						T77_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 32))&63U)))!=0);
						if (!(T77_)) goto LA78_;
						T79_ = NIM_NIL;
						T79_ = skipTypes__ast_3735((*s).typ, TM__rF9caJawfOjYTjsgLVUSGFA_810);
						T77_ = !(((*T79_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13)));
						LA78_: ;
						if (!T77_) goto LA80_;
						(*(*s).typ).flags &= ~(((NU64)1) << ((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 32)) & 63));
						liMessage__msgs_1118((*(*c).graph).config, (*name).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_811), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_812, NIM_FALSE);
					}
					LA80_: ;
					aa = (*a)._kind_6.sons->data[((NI) 2)];
					{
						NIM_BOOL T84_;
						NIM_BOOL T85_;
						NI T87_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* st;
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* obj;
						NimStringDesc* T104_;
						tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T105_;
						tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T106_;
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T107_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* symNode;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T115_;
						T84_ = (NIM_BOOL)0;
						T85_ = (NIM_BOOL)0;
						T85_ = ((*aa).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141) || (*aa).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142));
						if (!(T85_)) goto LA86_;
						T87_ = (NI)0;
						T87_ = len__ast_3198(aa);
						T85_ = (T87_ == ((NI) 1));
						LA86_: ;
						T84_ = T85_;
						if (!(T84_)) goto LA88_;
						T84_ = ((*(*aa)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133));
						LA88_: ;
						if (!T84_) goto LA89_;
						st = (*s).typ;
						{
							if (!((*st).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10))) goto LA93_;
							st = lastSon__ast_3743(st);
						}
						LA93_: ;
						{
							NimStringDesc* argX60gensym3101_;
							if (!!(((*st).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*st).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)))) goto LA97_;
							argX60gensym3101_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_813);
							internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym3101_, TM__rF9caJawfOjYTjsgLVUSGFA_813);
						}
						LA97_: ;
						{
							tyObject_TType__facALICuu8zUj0hjvbTLFg* T101_;
							NimStringDesc* argX60gensym3104_;
							T101_ = NIM_NIL;
							T101_ = lastSon__ast_3743(st);
							if (!!(((*T101_).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA102_;
							argX60gensym3104_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_814);
							internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym3104_, TM__rF9caJawfOjYTjsgLVUSGFA_814);
						}
						LA102_: ;
						(*st).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 34)) & 63);
						T104_ = NIM_NIL;
						T104_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 11);
appendString(T104_, (*(*s).name).s);
appendString(T104_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_815));
						T105_ = NIM_NIL;
						T105_ = getIdent__idents_143((*c).cache, T104_);
						T106_ = nextSymId__ast_3132((*c).Sup.idgen);
						T107_ = NIM_NIL;
						T107_ = getCurrOwner__semdata_315(c);
						obj = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7), T105_, T106_, T107_, (*s).info, 0);
						symNode = newSymNode__ast_3716(obj);
						asgnRef((void**) (&(*obj).ast), shallowCopy__ast_4413(a));
						switch ((*(*a)._kind_6.sons->data[((NI) 0)]).kind) {
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
						{
							asgnRef((void**) (&(*(*obj).ast)._kind_6.sons->data[((NI) 0)]), symNode);
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
						{
							asgnRef((void**) (&(*(*obj).ast)._kind_6.sons->data[((NI) 0)]), shallowCopy__ast_4413((*a)._kind_6.sons->data[((NI) 0)]));
							asgnRef((void**) (&(*(*(*obj).ast)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]), symNode);
							asgnRef((void**) (&(*(*(*obj).ast)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]), (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]);
						}
						break;
						default:
						{
						}
						break;
						}
						asgnRef((void**) (&(*(*obj).ast)._kind_6.sons->data[((NI) 1)]), (*a)._kind_6.sons->data[((NI) 1)]);
						asgnRef((void**) (&(*(*obj).ast)._kind_6.sons->data[((NI) 2)]), (*(*a)._kind_6.sons->data[((NI) 2)])._kind_6.sons->data[((NI) 0)]);
						{
							if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0)) goto LA113_;
							(*obj).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11)) & 63);
						}
						LA113_: ;
						asgnRef((void**) (&(*obj).typ), lastSon__ast_3743(st));
						T115_ = NIM_NIL;
						T115_ = lastSon__ast_3743(st);
						asgnRef((void**) (&(*T115_).sym), obj);
					}
					LA89_: ;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, checkMeta__sem_12066)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		T4_ = isMetaType__ast_3495(t);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = !((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 25))&63U)))!=0));
		LA6_: ;
		if (!T3_) goto LA7_;
		{
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NI T14_;
			NimStringDesc* T18_;
			NimStringDesc* T19_;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T12_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51));
			if (!(T12_)) goto LA13_;
			T14_ = (NI)0;
			T14_ = len__ast_4002(t);
			T12_ = (T14_ == ((NI) 1));
			LA13_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA15_;
			T11_ = ((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			LA15_: ;
			if (!T11_) goto LA16_;
			T18_ = NIM_NIL;
			T18_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T19_ = NIM_NIL;
			T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_816), T18_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_817, NIM_FALSE);
		}
		goto LA9_;
		LA16_: ;
		{
			NimStringDesc* T21_;
			NimStringDesc* T22_;
			T21_ = NIM_NIL;
			T21_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
			T22_ = NIM_NIL;
			T22_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_527), T21_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_818, NIM_FALSE);
		}
		LA9_: ;
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForMetaFields__sem_12063)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
{	{
		if (!(n == 0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
			s = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA9;
						i = i_2;
						s = (*n)._kind_6.sons->data[i];
						checkForMetaFields__sem_12063(c, s);
						i_2 += ((NI) 1);
					} LA9: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		T11_ = NIM_NIL;
		T11_ = lastSon__ast_4832(n);
		checkForMetaFields__sem_12063(c, T11_);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		t = (*(*n)._kind_4.sym).typ;
		switch ((*t).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
		{
			NI start;
			start = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_4002(t);
				i_4 = start;
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA16;
						i_3 = i_4;
						checkMeta__sem_12066(c, n, (*t).sons->data[i_3]);
						i_4 += ((NI) 1);
					} LA16: ;
				}
			}
		}
		break;
		default:
		{
			checkMeta__sem_12066(c, n, t);
		}
		break;
		}
	}
	break;
	default:
	{
		{
			NimStringDesc* argX60gensym3136_;
			if (!NIM_TRUE) goto LA21_;
			argX60gensym3136_ = toFileLineCol__msgs_615(TM__rF9caJawfOjYTjsgLVUSGFA_819);
			internalErrorImpl__msgs_1431((*(*c).graph).config, unknownLineInfo__lineinfos_281, argX60gensym3136_, TM__rF9caJawfOjYTjsgLVUSGFA_819);
		}
		LA21_: ;
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, typeSectionFinalPass__sem_12119)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* name;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA7_;
						goto LA4;
					}
					LA7_: ;
					name = typeSectionTypeName__sem_11607(c, (*a)._kind_6.sons->data[((NI) 0)]);
					s = (*name)._kind_4.sym;
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
						if (!(T11_)) goto LA12_;
						T11_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
						LA12_: ;
						if (!T11_) goto LA13_;
						nep1CheckDefImpl__linter_110((*(*c).graph).config, (*s).info, s, (*s).kind);
					}
					LA13_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
						if (!((*(*a)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA17_;
						x = (*a)._kind_6.sons->data[((NI) 2)];
						{
							NIM_BOOL T21_;
							T21_ = (NIM_BOOL)0;
							T21_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
							if (!(T21_)) goto LA22_;
							T21_ = (((*x).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0);
							LA22_: ;
							if (!T21_) goto LA23_;
						}
						goto LA19_;
						LA23_: ;
						{
							{
								while (1) {
									NIM_BOOL T28_;
									NI T30_;
									T28_ = (NIM_BOOL)0;
									T28_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
									if (!(T28_)) goto LA29_;
									T30_ = (NI)0;
									T30_ = len__ast_3198(x);
									T28_ = (((NI) 0) < T30_);
									LA29_: ;
									if (!T28_) goto LA27;
									x = lastSon__ast_4832(x);
								} LA27: ;
							}
							{
								NIM_BOOL T33_;
								tyObject_TType__facALICuu8zUj0hjvbTLFg* T35_;
								tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
								T33_ = (NIM_BOOL)0;
								T33_ = !(((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 133) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 146) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
								if (!(T33_)) goto LA34_;
								T35_ = NIM_NIL;
								T35_ = safeSkipTypes__types_3552((*s).typ, TM__rF9caJawfOjYTjsgLVUSGFA_97);
								T33_ = !(((*T35_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*T35_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14)));
								LA34_: ;
								if (!T33_) goto LA36_;
								t = semTypeNode__sem_80(c, x, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
								{
									NIM_BOOL T40_;
									T40_ = (NIM_BOOL)0;
									T40_ = !(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
									if (!(T40_)) goto LA41_;
									T40_ = !(((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4) || (*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46)));
									LA41_: ;
									if (!T40_) goto LA42_;
									{
										NIM_BOOL T46_;
										NIM_BOOL T48_;
										T46_ = (NIM_BOOL)0;
										T46_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11));
										if (!(T46_)) goto LA47_;
										T48_ = (NIM_BOOL)0;
										T48_ = isMetaType__ast_3495(t);
										T46_ = !(T48_);
										LA47_: ;
										if (!T46_) goto LA49_;
										assignType__ast_3976((*s).typ, t);
										(*(*s).typ).Sup.itemId = (*t).Sup.itemId;
									}
									goto LA44_;
									LA49_: ;
									{
										if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA52_;
										assignType__ast_3976((*s).typ, t);
										(*(*s).typ).Sup.itemId = (*t).Sup.itemId;
									}
									goto LA44_;
									LA52_: ;
									LA44_: ;
								}
								LA42_: ;
							}
							LA36_: ;
							checkConstructedType__semtypinst_26((*(*c).graph).config, (*s).info, (*s).typ);
							{
								NIM_BOOL T56_;
								T56_ = (NIM_BOOL)0;
								T56_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
								if (!(T56_)) goto LA57_;
								T56_ = !(((*(*s).typ).n == 0));
								LA57_: ;
								if (!T56_) goto LA58_;
								checkForMetaFields__sem_12063(c, (*(*s).typ).n);
							}
							LA58_: ;
							{
								NIM_BOOL T62_;
								NIM_BOOL T64_;
								T62_ = (NIM_BOOL)0;
								T62_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
								if (!(T62_)) goto LA63_;
								T64_ = (NIM_BOOL)0;
								T64_ = isTopLevel__semdata_1091(c);
								T62_ = !(T64_);
								LA63_: ;
								if (!T62_) goto LA65_;
								(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37)) & 63);
							}
							LA65_: ;
						}
						LA19_: ;
					}
					LA17_: ;
				} LA4: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTypeSection__sem_12313)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0));
		if (T3_) goto LA4_;
		T3_ = !((((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*c).inTypeContext += ((NI) 1);
		typeSectionLeftSidePass__sem_11723(c, n);
		typeSectionRightSidePass__sem_11844(c, n);
		typeSectionFinalPass__sem_12119(c, n);
		(*c).inTypeContext -= ((NI) 1);
	}
	LA5_: ;
	result = n;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semDiscard__sem_9153)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* sonType;
		tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw sonKind;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 0)], 0));
		sonType = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
		sonKind = (*(*n)._kind_6.sons->data[((NI) 0)]).kind;
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = isEmptyType__ast_4779(sonType);
			if (T8_) goto LA9_;
			T8_ = ((*sonType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0) || (*sonType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8));
			LA9_: ;
			T7_ = T8_;
			if (T7_) goto LA10_;
			T7_ = (sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132));
			LA10_: ;
			if (!T7_) goto LA11_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_820), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_821, NIM_FALSE);
		}
		LA11_: ;
		{
			NIM_BOOL T15_;
			NimStringDesc* T19_;
			NimStringDesc* T20_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*sonType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T15_)) goto LA16_;
			T15_ = !((sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || sonKind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)));
			LA16_: ;
			if (!T15_) goto LA17_;
			T19_ = NIM_NIL;
			T20_ = NIM_NIL;
			T20_ = dollar___renderer_2106((*n)._kind_6.sons->data[((NI) 0)]);
			T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + 38);
appendString(T19_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_822));
appendString(T19_, T20_);
appendString(T19_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_215));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_823, NIM_FALSE);
		}
		LA17_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semWhile__sem_9234)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	T2_ = NIM_NIL;
	T2_ = semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), forceBool__sem_2869(c, T2_));
	(*(*c).p).nestedLoopCounter += ((NI) 1);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semStmt__sem_84(c, (*n)._kind_6.sons->data[((NI) 1)], flags));
	(*(*c).p).nestedLoopCounter -= ((NI) 1);
	closeScope__lookups_101(c);
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 1)]).typ == (*c).enforceVoidContext)) goto LA5_;
		asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
	}
	goto LA3_;
	LA5_: ;
	{
		if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 3))&31U)))!=0)) goto LA8_;
		asgnRef((void**) (&(*result).typ), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	}
	goto LA3_;
	LA8_: ;
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semTry__sem_9422)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA check;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	NI last;
	NI T2_;
	NI catchAllExcepts;
	result = NIM_NIL;
	nimZeroMem((void*)(&check), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	initIntSet__pureZcollectionsZintsets_238((&check));
	result = n;
	checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*) newObj((&NTIptype__qt2Wh0elFEz5fH0l7yusLw_), sizeof(tyObject_TType__facALICuu8zUj0hjvbTLFg));
	(*T1_).Sup.Sup.m_type = (&NTIttype__facALICuu8zUj0hjvbTLFg_);
	(*T1_).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6);
	typ = T1_;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprBranchScope__sem_9277(c, (*n)._kind_6.sons->data[((NI) 0)]));
	typ = commonType__sem_237(c, typ, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	T2_ = (NI)0;
	T2_ = len__ast_3198(n);
	last = (NI)(T2_ - ((NI) 1));
	catchAllExcepts = ((NI) 0);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T6_;
				NI T98_;
				NI T99_;
				if (!(res <= last)) goto LA5;
				i = res;
				a = (*n)._kind_6.sons->data[i];
				checkMinSonsLen__semdata_1084(a, ((NI) 1), (*(*c).graph).config);
				T6_ = NIM_NIL;
				T6_ = openScope__lookups_69(c);
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87))) goto LA9_;
					{
						NIM_BOOL T13_;
						NI T14_;
						tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA T18_;
						T13_ = (NIM_BOOL)0;
						T14_ = (NI)0;
						T14_ = len__ast_3198(a);
						T13_ = (T14_ == ((NI) 2));
						if (!(T13_)) goto LA15_;
						T13_ = ((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
						LA15_: ;
						if (!T13_) goto LA16_;
						T18_ = dotdot___pureZunicode_840(((NI) 0), ((NI) 0));
						X5BX5Deq___pragmas_1672((&(*a)._kind_6.sons), T18_, (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data, ((*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons ? (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->Sup.len : 0));
					}
					LA16_: ;
					{
						NIM_BOOL T21_;
						NI T22_;
						NIM_BOOL isImported;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* typX60gensym2355_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* T26_;
						NIM_BOOL isImportedX60gensym2355_;
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* symbol;
						T21_ = (NIM_BOOL)0;
						T22_ = (NI)0;
						T22_ = len__ast_3198(a);
						T21_ = (T22_ == ((NI) 2));
						if (!(T21_)) goto LA23_;
						T21_ = isInfixAs__ast_4935((*a)._kind_6.sons->data[((NI) 0)]);
						LA23_: ;
						if (!T21_) goto LA24_;
						T26_ = NIM_NIL;
						T26_ = semTypeNode__sem_80(c, (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
						typX60gensym2355_ = toObject__ast_4879(T26_);
						isImportedX60gensym2355_ = NIM_FALSE;
						{
							NIM_BOOL T29_;
							T29_ = (NIM_BOOL)0;
							T29_ = isImportedException__ast_4904(typX60gensym2355_, (*(*c).graph).config);
							if (!T29_) goto LA30_;
							isImportedX60gensym2355_ = NIM_TRUE;
						}
						goto LA27_;
						LA30_: ;
						{
							NIM_BOOL T33_;
							T33_ = (NIM_BOOL)0;
							T33_ = isException__types_4000(typX60gensym2355_);
							if (!!(T33_)) goto LA34_;
							liMessage__msgs_1118((*(*c).graph).config, (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_727), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_824, NIM_FALSE);
						}
						goto LA27_;
						LA34_: ;
						LA27_: ;
						{
							tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym2360_;
							NIM_BOOL T38_;
							xX60gensym2360_ = typX60gensym2355_;
							T38_ = (NIM_BOOL)0;
							T38_ = containsOrIncl__astalgo_402((&check), (NI)((NI)((NU64)(((NI) ((*xX60gensym2360_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2360_).Sup.itemId.item))));
							if (!T38_) goto LA39_;
							liMessage__msgs_1118((*(*c).graph).config, (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_825), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_826, NIM_FALSE);
						}
						LA39_: ;
						asgnRef((void**) (&(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]), newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).info, typX60gensym2355_));
						isImported = isImportedX60gensym2355_;
						symbol = newSymG__sem_458(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), (*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 2)], c);
						{
							if (!isImported) goto LA43_;
							asgnRef((void**) (&(*symbol).typ), (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).typ);
						}
						goto LA41_;
						LA43_: ;
						{
							asgnRef((void**) (&(*symbol).typ), toRef__ast_4871((*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).typ, (*c).Sup.idgen));
						}
						LA41_: ;
						addDecl__lookups_845(c, symbol);
						asgnRef((void**) (&(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 2)]), newSymNode__ast_3719(symbol, (*(*(*a)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 2)]).info));
					}
					goto LA19_;
					LA24_: ;
					{
						NI T47_;
						T47_ = (NI)0;
						T47_ = len__ast_3198(a);
						if (!(T47_ == ((NI) 1))) goto LA48_;
						catchAllExcepts += ((NI) 1);
					}
					goto LA19_;
					LA48_: ;
					{
						NIM_BOOL isNative;
						NIM_BOOL isImported_2;
						{
							if (!(((NI) 0) < catchAllExcepts)) goto LA53_;
							catchAllExcepts += ((NI) 1);
						}
						LA53_: ;
						isNative = (NIM_BOOL)0;
						isImported_2 = (NIM_BOOL)0;
						{
							NI j;
							NI colontmp_;
							NI T56_;
							NI i_2;
							j = (NI)0;
							colontmp_ = (NI)0;
							T56_ = (NI)0;
							T56_ = len__ast_3198(a);
							colontmp_ = (NI)(T56_ - ((NI) 1));
							i_2 = ((NI) 0);
							{
								while (1) {
									NIM_BOOL tmp;
									tyObject_TType__facALICuu8zUj0hjvbTLFg* typX60gensym2376_;
									tyObject_TType__facALICuu8zUj0hjvbTLFg* T59_;
									NIM_BOOL isImportedX60gensym2376_;
									if (!(i_2 < colontmp_)) goto LA58;
									j = i_2;
									T59_ = NIM_NIL;
									T59_ = semTypeNode__sem_80(c, (*a)._kind_6.sons->data[j], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
									typX60gensym2376_ = toObject__ast_4879(T59_);
									isImportedX60gensym2376_ = NIM_FALSE;
									{
										NIM_BOOL T62_;
										T62_ = (NIM_BOOL)0;
										T62_ = isImportedException__ast_4904(typX60gensym2376_, (*(*c).graph).config);
										if (!T62_) goto LA63_;
										isImportedX60gensym2376_ = NIM_TRUE;
									}
									goto LA60_;
									LA63_: ;
									{
										NIM_BOOL T66_;
										T66_ = (NIM_BOOL)0;
										T66_ = isException__types_4000(typX60gensym2376_);
										if (!!(T66_)) goto LA67_;
										liMessage__msgs_1118((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_727), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_824, NIM_FALSE);
									}
									goto LA60_;
									LA67_: ;
									LA60_: ;
									{
										tyObject_TType__facALICuu8zUj0hjvbTLFg* xX60gensym2381_;
										NIM_BOOL T71_;
										xX60gensym2381_ = typX60gensym2376_;
										T71_ = (NIM_BOOL)0;
										T71_ = containsOrIncl__astalgo_402((&check), (NI)((NI)((NU64)(((NI) ((*xX60gensym2381_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2381_).Sup.itemId.item))));
										if (!T71_) goto LA72_;
										liMessage__msgs_1118((*(*c).graph).config, (*(*a)._kind_6.sons->data[j]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_825), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_826, NIM_FALSE);
									}
									LA72_: ;
									asgnRef((void**) (&(*a)._kind_6.sons->data[j]), newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*(*a)._kind_6.sons->data[j]).info, typX60gensym2376_));
									tmp = isImportedX60gensym2376_;
									{
										if (!tmp) goto LA76_;
										isImported_2 = NIM_TRUE;
									}
									goto LA74_;
									LA76_: ;
									{
										isNative = NIM_TRUE;
									}
									LA74_: ;
									i_2 += ((NI) 1);
								} LA58: ;
							}
						}
						{
							NIM_BOOL T81_;
							T81_ = (NIM_BOOL)0;
							T81_ = isNative;
							if (!(T81_)) goto LA82_;
							T81_ = isImported_2;
							LA82_: ;
							if (!T81_) goto LA83_;
							liMessage__msgs_1118((*(*c).graph).config, (*(*a)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_827), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_828, NIM_FALSE);
						}
						LA83_: ;
					}
					LA19_: ;
				}
				goto LA7_;
				LA9_: ;
				{
					if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA86_;
					{
						NI T90_;
						T90_ = (NI)0;
						T90_ = len__ast_3198(n);
						if (!!((i == (NI)(T90_ - ((NI) 1))))) goto LA91_;
						liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_829), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_830, NIM_FALSE);
					}
					LA91_: ;
				}
				goto LA7_;
				LA86_: ;
				{
					illFormedAst__semdata_1071(n, (*(*c).graph).config);
				}
				LA7_: ;
				{
					if (!(((NI) 1) < catchAllExcepts)) goto LA96_;
					liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_831), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_832, NIM_FALSE);
				}
				LA96_: ;
				T98_ = (NI)0;
				T98_ = len__ast_3198(a);
				T99_ = (NI)0;
				T99_ = len__ast_3198(a);
				asgnRef((void**) (&(*a)._kind_6.sons->data[(NI)(T98_ - ((NI) 1))]), semExprBranchScope__sem_9277(c, (*a)._kind_6.sons->data[(NI)(T99_ - ((NI) 1))]));
				{
					NI T104_;
					if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107)))) goto LA102_;
					T104_ = (NI)0;
					T104_ = len__ast_3198(a);
					typ = commonType__sem_448(c, typ, (*a)._kind_6.sons->data[(NI)(T104_ - ((NI) 1))]);
				}
				goto LA100_;
				LA102_: ;
				{
					last -= ((NI) 1);
				}
				LA100_: ;
				closeScope__lookups_101(c);
				res += ((NI) 1);
			} LA5: ;
		}
	}
	{
		NIM_BOOL T108_;
		T108_ = (NIM_BOOL)0;
		T108_ = isEmptyType__ast_4779(typ);
		if (T108_) goto LA109_;
		T108_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
		LA109_: ;
		if (!T108_) goto LA110_;
		discardCheck__sem_9323(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T115_;
					if (!(i_4 < colontmp__2)) goto LA114;
					i_3 = i_4;
					T115_ = NIM_NIL;
					T115_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_3]);
					discardCheck__sem_9323(c, T115_, flags);
					i_4 += ((NI) 1);
				} LA114: ;
			}
		}
		{
			if (!(typ == (*c).enforceVoidContext)) goto LA118_;
			asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
		}
		LA118_: ;
	}
	goto LA106_;
	LA110_: ;
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T123_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T126_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T127_;
			T123_ = NIM_NIL;
			T123_ = lastSon__ast_4832(n);
			if (!((*T123_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA124_;
			T126_ = NIM_NIL;
			T126_ = lastSon__ast_4832(n);
			T127_ = NIM_NIL;
			T127_ = lastSon__ast_4832(T126_);
			discardCheck__sem_9323(c, T127_, flags);
		}
		LA124_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), fitNode__sem_70(c, typ, (*n)._kind_6.sons->data[((NI) 0)], (*(*n)._kind_6.sons->data[((NI) 0)]).info));
		{
			NI i_5;
			NI res_2;
			i_5 = (NI)0;
			res_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					NI j_2;
					NI T131_;
					if (!(res_2 <= last)) goto LA130;
					i_5 = res_2;
					it = (*n)._kind_6.sons->data[i_5];
					T131_ = (NI)0;
					T131_ = len__ast_3198(it);
					j_2 = (NI)(T131_ - ((NI) 1));
					{
						NIM_BOOL T134_;
						T134_ = (NIM_BOOL)0;
						T134_ = endsInNoReturn__sem_416((*it)._kind_6.sons->data[j_2]);
						if (!!(T134_)) goto LA135_;
						asgnRef((void**) (&(*it)._kind_6.sons->data[j_2]), fitNode__sem_70(c, typ, (*it)._kind_6.sons->data[j_2], (*(*it)._kind_6.sons->data[j_2]).info));
					}
					LA135_: ;
					res_2 += ((NI) 1);
				} LA130: ;
			}
		}
		asgnRef((void**) (&(*result).typ), typ);
	}
	LA106_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semBreakOrContinue__sem_9185)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
			if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111)))) goto LA7_;
			s = NIM_NIL;
			switch ((*(*n)._kind_6.sons->data[((NI) 0)]).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
			{
				s = lookUp__lookups_1211(c, (*n)._kind_6.sons->data[((NI) 0)]);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
			{
				s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			}
			break;
			default:
			{
				illFormedAst__semdata_1071(n, (*(*c).graph).config);
			}
			break;
			}
			s = getGenSym__semdata_408(c, s);
			{
				NIM_BOOL T14_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym2275_;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym2276_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
				T14_ = (NIM_BOOL)0;
				T14_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22));
				if (!(T14_)) goto LA15_;
				xX60gensym2275_ = (*s).owner;
				xX60gensym2276_ = (*(*c).p).owner;
				T14_ = ((NI)((NI)((NU64)(((NI) ((*xX60gensym2275_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2275_).Sup.itemId.item))) == (NI)((NI)((NU64)(((NI) ((*xX60gensym2276_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym2276_).Sup.itemId.item))));
				LA15_: ;
				if (!T14_) goto LA16_;
				x = newSymNode__ast_3716(s);
				(*x).info = (*n).info;
				(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0)) & 63);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), x);
				suggestSym__sigmatch_5375((*c).graph, (*x).info, s, &(*(*c).graph).usageSym, NIM_TRUE);
			}
			goto LA12_;
			LA16_: ;
			{
				NimStringDesc* T19_;
				T19_ = NIM_NIL;
				T19_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_833), (*(*s).name).s);
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T19_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_834, NIM_FALSE);
			}
			LA12_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_835), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_836, NIM_FALSE);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T22_;
		NIM_BOOL T24_;
		NimStringDesc* T28_;
		NimStringDesc* T29_;
		T22_ = (NIM_BOOL)0;
		T22_ = ((*(*c).p).nestedLoopCounter <= ((NI) 0));
		if (!(T22_)) goto LA23_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*(*c).p).nestedBlockCounter <= ((NI) 0));
		if (T24_) goto LA25_;
		T24_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111));
		LA25_: ;
		T22_ = T24_;
		LA23_: ;
		if (!T22_) goto LA26_;
		T28_ = NIM_NIL;
		T28_ = renderTree__renderer_46(n, 4);
		T29_ = NIM_NIL;
		T29_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_833), T28_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T29_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_837, NIM_FALSE);
	}
	goto LA1_;
	LA26_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleStmtMacro__sem_11248)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* selector, NimStringDesc* magicType, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* maType;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* headSymbol;
		tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* match;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* symx;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callExpr;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		if (!((*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*selector).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA3_;
		maType = getCompilerProc__magicsys_145((*c).graph, magicType);
		{
			if (!(maType == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA7_;
			goto BeforeRet_;
		}
		LA7_: ;
		headSymbol = (*selector)._kind_6.sons->data[((NI) 0)];
		nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
		match = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
		symx = initOverloadIter__lookups_1374((&o), c, headSymbol);
		{
			while (1) {
				if (!!((symx == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA10;
				{
					if (!((393216 &((NU32)1<<((NU)((*symx).kind)&31U)))!=0)) goto LA13_;
					{
						NIM_BOOL T17_;
						NI T18_;
						T17_ = (NIM_BOOL)0;
						T18_ = (NI)0;
						T18_ = len__ast_4002((*symx).typ);
						T17_ = (T18_ == ((NI) 2));
						if (!(T17_)) goto LA19_;
						T17_ = ((*(*symx).typ).sons->data[((NI) 1)] == (*maType).typ);
						LA19_: ;
						if (!T17_) goto LA20_;
						{
							if (!(match == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA24_;
							match = symx;
						}
						goto LA22_;
						LA24_: ;
						{
							tyArray__24KAM9afIUgUaqBaEBB6r9bg T27_;
							NimStringDesc* T28_;
							nimZeroMem((void*)T27_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
							T27_[0] = getProcHeader__types_222((*(*c).graph).config, match, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
							T27_[1] = getProcHeader__types_222((*(*c).graph).config, symx, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0), NIM_TRUE);
							T27_[2] = dollar___renderer_2106(selector);
							T28_ = NIM_NIL;
							T28_ = nsuFormatOpenArray(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_415), T27_, 3);
							liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T28_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_838, NIM_FALSE);
						}
						LA22_: ;
					}
					LA20_: ;
				}
				LA13_: ;
				symx = nextOverloadIter__lookups_1528((&o), c, headSymbol);
			} LA10: ;
		}
		{
			if (!(match == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA31_;
			goto BeforeRet_;
		}
		LA31_: ;
		callExpr = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
		T33_ = NIM_NIL;
		T33_ = newSymNode__ast_3716(match);
		add__ast_4797(callExpr, T33_);
		add__ast_4797(callExpr, n);
		switch ((*match).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
		{
			result = semMacroExpr__sem_524(c, callExpr, callExpr, match, flags);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
		{
			result = semTemplateExpr__sem_519(c, callExpr, match, flags);
		}
		break;
		default:
		{
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
		}
		break;
		}
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleForLoopMacro__sem_11302)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI T1_;
	result = NIM_NIL;
	T1_ = (NI)0;
	T1_ = len__ast_3198(n);
	result = handleStmtMacro__sem_11248(c, n, (*n)._kind_6.sons->data[(NI)(T1_ - ((NI) 2))], ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_839), flags);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprNoDeref__sem_63)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = semExprCheck__sem_13934(c, n, flags);
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = renderTree__renderer_46(result, 4);
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_840), T5_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_841, NIM_FALSE);
		asgnRef((void**) (&(*result).typ), errorType__semdata_1002(c));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrivalStmtExpr__sem_11232)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__ast_3198(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					if (!!(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125)))) goto LA7_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, symForVar__sem_10946)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA3_;
		m = (*n)._kind_6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		m = n;
	}
	LA1_: ;
	result = newSymG__sem_458(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21), m, c);
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
		if (!(T8_)) goto LA9_;
		T8_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
		LA9_: ;
		if (!T8_) goto LA10_;
		nep1CheckDefImpl__linter_110((*(*c).graph).config, (*result).info, result, (*result).kind);
	}
	LA10_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43))) goto LA14_;
		pragma__pragmas_123(c, result, (*n)._kind_6.sons->data[((NI) 1)], TM__rF9caJawfOjYTjsgLVUSGFA_844, NIM_FALSE);
	}
	LA14_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semForVars__sem_10973)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* iterBase;
	NI T1_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* iter;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* iterAfterVarLent;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T138_;
	NI T139_;
	NI T140_;
{	result = NIM_NIL;
	result = n;
	T1_ = (NI)0;
	T1_ = len__ast_3198(n);
	iterBase = (*(*n)._kind_6.sons->data[(NI)(T1_ - ((NI) 2))]).typ;
	iter = skipTypes__ast_3735(iterBase, TM__rF9caJawfOjYTjsgLVUSGFA_39);
	iterAfterVarLent = skipTypes__ast_3735(iter, TM__rF9caJawfOjYTjsgLVUSGFA_842);
	{
		NIM_BOOL T4_;
		NI T6_;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*iterAfterVarLent).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18)));
		if (T4_) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__ast_3198(n);
		T4_ = (T6_ == ((NI) 3));
		LA5_: ;
		if (!T4_) goto LA7_;
		{
			NI T11_;
			T11_ = (NI)0;
			T11_ = len__ast_3198(n);
			if (!(T11_ == ((NI) 3))) goto LA12_;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA16_;
				{
					NI T20_;
					NI T21_;
					T20_ = (NI)0;
					T20_ = len__ast_3198((*n)._kind_6.sons->data[((NI) 0)]);
					T21_ = (NI)0;
					T21_ = len__ast_4002(iterAfterVarLent);
					if (!!(((NI)(T20_ - ((NI) 1)) == T21_))) goto LA22_;
					liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_596), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_843, NIM_FALSE);
					result = errorNode__semdata_1009(c, n);
					goto BeforeRet_;
				}
				LA22_: ;
				{
					NI i;
					NI colontmp_;
					NI T25_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					T25_ = (NI)0;
					T25_ = len__ast_3198((*n)._kind_6.sons->data[((NI) 0)]);
					colontmp_ = (NI)(T25_ - ((NI) 1));
					i_2 = ((NI) 0);
					{
						while (1) {
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v;
							if (!(i_2 < colontmp_)) goto LA27;
							i = i_2;
							v = symForVar__sem_10946(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[i]);
							{
								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T30_;
								T30_ = NIM_NIL;
								T30_ = getCurrOwner__semdata_315(c);
								if (!((*T30_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA31_;
								(*v).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
							}
							LA31_: ;
							switch ((*iter).kind) {
							case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
							case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
							{
								asgnRef((void**) (&(*v).typ), newTypeS__semdata_733((*iter).kind, c));
								add__concepts_23((*v).typ, (*iterAfterVarLent).sons->data[i]);
								{
									if (!(((*iter).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20))&63U)))!=0)) goto LA36_;
									(*(*v).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
								}
								LA36_: ;
							}
							break;
							default:
							{
								asgnRef((void**) (&(*v).typ), (*iter).sons->data[i]);
							}
							break;
							}
							asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[i]), newSymNode__ast_3716(v));
							{
								NIM_BOOL T41_;
								NIM_BOOL T43_;
								T41_ = (NIM_BOOL)0;
								T41_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0));
								if (!(T41_)) goto LA42_;
								T43_ = (NIM_BOOL)0;
								T43_ = isDiscardUnderscore__sem_9762(v);
								T41_ = !(T43_);
								LA42_: ;
								if (!T41_) goto LA44_;
								addDecl__lookups_845(c, v);
							}
							goto LA39_;
							LA44_: ;
							{
								if (!((*v).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA47_;
								asgnRef((void**) (&(*v).owner), getCurrOwner__semdata_315(c));
							}
							goto LA39_;
							LA47_: ;
							LA39_: ;
							i_2 += ((NI) 1);
						} LA27: ;
					}
				}
			}
			goto LA14_;
			LA16_: ;
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v_2;
				v_2 = symForVar__sem_10946(c, (*n)._kind_6.sons->data[((NI) 0)]);
				{
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T52_;
					T52_ = NIM_NIL;
					T52_ = getCurrOwner__semdata_315(c);
					if (!((*T52_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA53_;
					(*v_2).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
				}
				LA53_: ;
				asgnRef((void**) (&(*v_2).typ), iterBase);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(v_2));
				{
					NIM_BOOL T57_;
					NIM_BOOL T59_;
					T57_ = (NIM_BOOL)0;
					T57_ = !((((*v_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0));
					if (!(T57_)) goto LA58_;
					T59_ = (NIM_BOOL)0;
					T59_ = isDiscardUnderscore__sem_9762(v_2);
					T57_ = !(T59_);
					LA58_: ;
					if (!T57_) goto LA60_;
					addDecl__lookups_845(c, v_2);
				}
				goto LA55_;
				LA60_: ;
				{
					if (!((*v_2).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA63_;
					asgnRef((void**) (&(*v_2).owner), getCurrOwner__semdata_315(c));
				}
				goto LA55_;
				LA63_: ;
				LA55_: ;
			}
			LA14_: ;
		}
		goto LA9_;
		LA12_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_596), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_845, NIM_FALSE);
		}
		LA9_: ;
	}
	goto LA2_;
	LA7_: ;
	{
		NI T67_;
		NI T68_;
		T67_ = (NI)0;
		T67_ = len__ast_3198(n);
		T68_ = (NI)0;
		T68_ = len__ast_4002(iterAfterVarLent);
		if (!!(((NI)(T67_ - ((NI) 2)) == T68_))) goto LA69_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_596), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_846, NIM_FALSE);
	}
	goto LA2_;
	LA69_: ;
	{
		{
			NI i_3;
			NI colontmp__2;
			NI T73_;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T73_ = (NI)0;
			T73_ = len__ast_3198(n);
			colontmp__2 = (NI)(T73_ - ((NI) 2));
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA75;
					i_3 = i_4;
					{
						NIM_BOOL mutable_1;
						NIM_BOOL isLent;
						if (!((*(*n)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA78_;
						mutable_1 = NIM_FALSE;
						isLent = NIM_FALSE;
						switch ((*(*iter).sons->data[i_3]).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
						{
							mutable_1 = NIM_TRUE;
							asgnRef((void**) (&(*iter).sons->data[i_3]), skipTypes__ast_3735((*iter).sons->data[i_3], TM__rF9caJawfOjYTjsgLVUSGFA_182));
						}
						break;
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
						{
							isLent = NIM_TRUE;
							asgnRef((void**) (&(*iter).sons->data[i_3]), skipTypes__ast_3735((*iter).sons->data[i_3], TM__rF9caJawfOjYTjsgLVUSGFA_847));
						}
						break;
						default:
						{
						}
						break;
						}
						{
							NI T85_;
							NI T86_;
							T85_ = (NI)0;
							T85_ = len__ast_3198((*n)._kind_6.sons->data[i_3]);
							T86_ = (NI)0;
							T86_ = len__ast_4002((*iter).sons->data[i_3]);
							if (!!(((NI)(T85_ - ((NI) 1)) == T86_))) goto LA87_;
							liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[i_3]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_596), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_848, NIM_FALSE);
						}
						LA87_: ;
						{
							NI j;
							NI colontmp__3;
							NI T90_;
							NI i_5;
							j = (NI)0;
							colontmp__3 = (NI)0;
							T90_ = (NI)0;
							T90_ = len__ast_3198((*n)._kind_6.sons->data[i_3]);
							colontmp__3 = (NI)(T90_ - ((NI) 1));
							i_5 = ((NI) 0);
							{
								while (1) {
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v_3;
									if (!(i_5 < colontmp__3)) goto LA92;
									j = i_5;
									v_3 = symForVar__sem_10946(c, (*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[j]);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T95_;
										T95_ = NIM_NIL;
										T95_ = getCurrOwner__semdata_315(c);
										if (!((*T95_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA96_;
										(*v_3).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
									}
									LA96_: ;
									{
										if (!mutable_1) goto LA100_;
										asgnRef((void**) (&(*v_3).typ), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23), c));
										add__concepts_23((*v_3).typ, (*(*iter).sons->data[i_3]).sons->data[j]);
									}
									goto LA98_;
									LA100_: ;
									{
										if (!isLent) goto LA103_;
										asgnRef((void**) (&(*v_3).typ), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47), c));
										add__concepts_23((*v_3).typ, (*(*iter).sons->data[i_3]).sons->data[j]);
									}
									goto LA98_;
									LA103_: ;
									{
										asgnRef((void**) (&(*v_3).typ), (*(*iter).sons->data[i_3]).sons->data[j]);
									}
									LA98_: ;
									asgnRef((void**) (&(*(*n)._kind_6.sons->data[i_3])._kind_6.sons->data[j]), newSymNode__ast_3716(v_3));
									{
										NIM_BOOL T108_;
										T108_ = (NIM_BOOL)0;
										T108_ = isDiscardUnderscore__sem_9762(v_3);
										if (!!(T108_)) goto LA109_;
										addDecl__lookups_845(c, v_3);
									}
									goto LA106_;
									LA109_: ;
									{
										if (!((*v_3).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA112_;
										asgnRef((void**) (&(*v_3).owner), getCurrOwner__semdata_315(c));
									}
									goto LA106_;
									LA112_: ;
									LA106_: ;
									i_5 += ((NI) 1);
								} LA92: ;
							}
						}
					}
					goto LA76_;
					LA78_: ;
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v_4;
						v_4 = symForVar__sem_10946(c, (*n)._kind_6.sons->data[i_3]);
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T117_;
							T117_ = NIM_NIL;
							T117_ = getCurrOwner__semdata_315(c);
							if (!((*T117_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA118_;
							(*v_4).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3)) & 63);
						}
						LA118_: ;
						switch ((*iter).kind) {
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
						case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
						{
							asgnRef((void**) (&(*v_4).typ), newTypeS__semdata_733((*iter).kind, c));
							add__concepts_23((*v_4).typ, (*iterAfterVarLent).sons->data[i_3]);
							{
								if (!(((*iter).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20))&63U)))!=0)) goto LA123_;
								(*(*v_4).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
							}
							LA123_: ;
						}
						break;
						default:
						{
							asgnRef((void**) (&(*v_4).typ), (*iter).sons->data[i_3]);
						}
						break;
						}
						asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), newSymNode__ast_3716(v_4));
						{
							if (!!((((*v_4).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 37))&63U)))!=0))) goto LA128_;
							{
								NIM_BOOL T132_;
								T132_ = (NIM_BOOL)0;
								T132_ = isDiscardUnderscore__sem_9762(v_4);
								if (!!(T132_)) goto LA133_;
								addDecl__lookups_845(c, v_4);
							}
							LA133_: ;
						}
						goto LA126_;
						LA128_: ;
						{
							if (!((*v_4).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA136_;
							asgnRef((void**) (&(*v_4).owner), getCurrOwner__semdata_315(c));
						}
						goto LA126_;
						LA136_: ;
						LA126_: ;
					}
					LA76_: ;
					i_4 += ((NI) 1);
				} LA75: ;
			}
		}
	}
	LA2_: ;
	(*(*c).p).nestedLoopCounter += ((NI) 1);
	T138_ = NIM_NIL;
	T138_ = openScope__lookups_69(c);
	T139_ = (NI)0;
	T139_ = len__ast_3198(n);
	T140_ = (NI)0;
	T140_ = len__ast_3198(n);
	asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T139_ - ((NI) 1))]), semExprBranch__sem_9264(c, (*n)._kind_6.sons->data[(NI)(T140_ - ((NI) 1))], flags));
	{
		NI T145_;
		if (!!(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 3))&31U)))!=0))) goto LA143_;
		T145_ = (NI)0;
		T145_ = len__ast_3198(n);
		discardCheck__sem_9323(c, (*n)._kind_6.sons->data[(NI)(T145_ - ((NI) 1))], flags);
	}
	LA143_: ;
	closeScope__lookups_101(c);
	(*(*c).p).nestedLoopCounter -= ((NI) 1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, instFieldLoopBody__sem_10640)(tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* forLoop) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).field == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = isEmptyType__ast_4779((*(*c).field).typ);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newNode__ast_3332(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		goto BeforeRet_;
	}
	LA5_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		result = copyNode__ast_4336(n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
		result = n;
		ident = considerQuotedIdent__lookups_28((*c).c, n, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		{
			if (!(*c).replaceByFieldName) goto LA11_;
			{
				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T15_;
				NimStringDesc* fieldName;
				T15_ = NIM_NIL;
				T15_ = considerQuotedIdent__lookups_28((*c).c, (*forLoop)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				if (!((*ident).id == (*T15_).id)) goto LA16_;
				{
					if (!((*c).tupleType == 0)) goto LA20_;
					fieldName = (*(*(*c).field).name).s;
				}
				goto LA18_;
				LA20_: ;
				{
					NimStringDesc* T25_;
					NimStringDesc* T26_;
					if (!((*(*c).tupleType).n == 0)) goto LA23_;
					T25_ = NIM_NIL;
					T26_ = NIM_NIL;
					T26_ = dollar___systemZdollars_3((*c).tupleIndex);
					T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + 5);
appendString(T25_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_857));
appendString(T25_, T26_);
					fieldName = T25_;
				}
				goto LA18_;
				LA23_: ;
				{
					fieldName = (*(*(*(*(*(*c).tupleType).n)._kind_6.sons->data[(*c).tupleIndex])._kind_4.sym).name).s;
				}
				LA18_: ;
				result = newStrNode__ast_3813(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), fieldName);
				goto BeforeRet_;
			}
			LA16_: ;
		}
		LA11_: ;
		{
			NI i;
			NI colontmp_;
			NI colontmp__2;
			NI T29_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp__2 = (NI)0;
			colontmp_ = (*c).replaceByFieldName;
			T29_ = (NI)0;
			T29_ = len__ast_3198(forLoop);
			colontmp__2 = (NI)(T29_ - ((NI) 2));
			i_2 = colontmp_;
			{
				while (1) {
					if (!(i_2 < colontmp__2)) goto LA31;
					i = i_2;
					{
						tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T34_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
						NI T37_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tupl;
						T34_ = NIM_NIL;
						T34_ = considerQuotedIdent__lookups_28((*c).c, (*forLoop)._kind_6.sons->data[i], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
						if (!((*ident).id == (*T34_).id)) goto LA35_;
						T37_ = (NI)0;
						T37_ = len__ast_3198(forLoop);
						call = (*forLoop)._kind_6.sons->data[(NI)(T37_ - ((NI) 2))];
						tupl = (*call)._kind_6.sons->data[(NI)((NI)(i + ((NI) 1)) - (*c).replaceByFieldName)];
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
							if (!((*c).field == 0)) goto LA40_;
							result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*n).info);
							add__ast_4797(result, tupl);
							T42_ = NIM_NIL;
							T42_ = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*c).tupleIndex)));
							add__ast_4797(result, T42_);
						}
						goto LA38_;
						LA40_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
							result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*n).info);
							add__ast_4797(result, tupl);
							T44_ = NIM_NIL;
							T44_ = newSymNode__ast_3719((*c).field, (*n).info);
							add__ast_4797(result, T44_);
						}
						LA38_: ;
						goto LA28;
					}
					LA35_: ;
					i_2 += ((NI) 1);
				} LA31: ;
			}
		} LA28: ;
	}
	break;
	default:
	{
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111))) goto LA48_;
			liMessage__msgs_1118((*(*(*c).c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_858), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_859, NIM_FALSE);
		}
		LA48_: ;
		result = shallowCopy__ast_4413(n);
		{
			NI i_3;
			NI colontmp__3;
			NI i_4;
			i_3 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3198(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__3)) goto LA52;
					i_3 = i_4;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_3]), instFieldLoopBody__sem_10640(c, (*n)._kind_6.sons->data[i_3], forLoop));
					i_4 += ((NI) 1);
				} LA52: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semForObjectFields__sem_10726)(tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* forLoop, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father) {
{	switch ((*typ).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA fc;
		tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T2_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		nimZeroMem((void*)(&fc), sizeof(tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA));
		fc.c = c.c;
		fc.field = (*typ)._kind_4.sym;
		fc.replaceByFieldName = (c.m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 129));
		T2_ = NIM_NIL;
		T2_ = openScope__lookups_69(c.c);
		(*c.c).inUnrolledContext += ((NI) 1);
		T3_ = NIM_NIL;
		T3_ = lastSon__ast_4832(forLoop);
		body = instFieldLoopBody__sem_10640((&fc), T3_, forLoop);
		T4_ = NIM_NIL;
		T4_ = semStmt__sem_84(c.c, body, 0);
		add__ast_4797(father, T4_);
		(*c.c).inUnrolledContext -= ((NI) 1);
		closeScope__lookups_101(c.c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
		NI T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseStmt;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* access;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
		T7_ = (NI)0;
		T7_ = len__ast_3198(forLoop);
		call = (*forLoop)._kind_6.sons->data[(NI)(T7_ - ((NI) 2))];
		{
			NI T10_;
			T10_ = (NI)0;
			T10_ = len__ast_3198(call);
			if (!(((NI) 2) < T10_)) goto LA11_;
			liMessage__msgs_1118((*(*c.c).graph).config, (*forLoop).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_860), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_861, NIM_FALSE);
			goto BeforeRet_;
		}
		LA11_: ;
		semForObjectFields__sem_10726(c, (*typ)._kind_6.sons->data[((NI) 0)], forLoop, father);
		caseStmt = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97), (*forLoop).info);
		access = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*forLoop).info, ((NI) 2));
		asgnRef((void**) (&(*access)._kind_6.sons->data[((NI) 0)]), (*call)._kind_6.sons->data[((NI) 1)]);
		asgnRef((void**) (&(*access)._kind_6.sons->data[((NI) 1)]), newSymNode__ast_3719((*(*typ)._kind_6.sons->data[((NI) 0)])._kind_4.sym, (*forLoop).info));
		T13_ = NIM_NIL;
		T13_ = semExprWithType__sem_56(c.c, access, 0);
		add__ast_4797(caseStmt, T13_);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(typ);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
					NI T17_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					NI T19_;
					if (!(i_2 < colontmp_)) goto LA16;
					i = i_2;
					branch = copyTree__ast_4431((*typ)._kind_6.sons->data[i]);
					T17_ = (NI)0;
					T17_ = len__ast_3198(branch);
					asgnRef((void**) (&(*branch)._kind_6.sons->data[(NI)(T17_ - ((NI) 1))]), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*forLoop).info));
					T18_ = NIM_NIL;
					T18_ = lastSon__ast_4832((*typ)._kind_6.sons->data[i]);
					T19_ = (NI)0;
					T19_ = len__ast_3198(branch);
					semForObjectFields__sem_10726(c, T18_, forLoop, (*branch)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))]);
					add__ast_4797(caseStmt, branch);
					i_2 += ((NI) 1);
				} LA16: ;
			}
		}
		add__ast_4797(father, caseStmt);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t;
			t = NIM_NIL;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen__ast_3191(typ);
				i_4 = ((NI) 0);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA24;
						i_3 = i_4;
						t = (*typ)._kind_6.sons->data[i_3];
						semForObjectFields__sem_10726(c, t, forLoop, father);
						i_4 += ((NI) 1);
					} LA24: ;
				}
			}
		}
	}
	break;
	default:
	{
		illFormedAstLocal__semdata_1074(typ, (*(*c.c).graph).config);
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semForFields__sem_10814)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* trueSymbol;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* stmts;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
	NI T9_;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* tupleTypeA;
{	result = NIM_NIL;
	result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96), (*n).info, ((NI) 2));
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_849));
	trueSymbol = systemModuleSym__modulegraphs_2829((*c).graph, T1_);
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T6_;
		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T7_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T8_;
		if (!(trueSymbol == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA4_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_850), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_851, NIM_FALSE);
		T6_ = NIM_NIL;
		T6_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_849));
		T7_ = nextSymId__ast_3132((*c).Sup.idgen);
		T8_ = NIM_NIL;
		T8_ = getCurrOwner__semdata_315(c);
		trueSymbol = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 0), T6_, T7_, T8_, (*n).info, 0);
		asgnRef((void**) (&(*trueSymbol).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
	}
	LA4_: ;
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3719(trueSymbol, (*n).info));
	stmts = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), stmts);
	T9_ = (NI)0;
	T9_ = len__ast_3198(n);
	call = (*n)._kind_6.sons->data[(NI)(T9_ - ((NI) 2))];
	{
		NI T12_;
		NI T13_;
		T12_ = (NI)0;
		T12_ = len__ast_3198(n);
		T13_ = (NI)0;
		T13_ = len__ast_3198(call);
		if (!!(((NI)(T12_ - ((NI) 2)) == (NI)((NI)(T13_ - ((NI) 1)) + (m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 129)))))) goto LA14_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_596), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_853, NIM_FALSE);
		goto BeforeRet_;
	}
	LA14_: ;
	tupleTypeA = skipTypes__ast_3735((*(*call)._kind_6.sons->data[((NI) 1)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_854);
	{
		if (!!(((*tupleTypeA).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*tupleTypeA).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA18_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_855), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_856, NIM_FALSE);
		goto BeforeRet_;
	}
	LA18_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(call);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* calli;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* tupleTypeB;
				if (!(i_2 < colontmp_)) goto LA22;
				i = i_2;
				calli = (*call)._kind_6.sons->data[i];
				tupleTypeB = skipTypes__ast_3735((*calli).typ, TM__rF9caJawfOjYTjsgLVUSGFA_854);
				{
					NIM_BOOL T25_;
					T25_ = (NIM_BOOL)0;
					T25_ = sameType__types_1824(tupleTypeA, tupleTypeB, 0);
					if (!!(T25_)) goto LA26_;
					typeMismatch__types_3870((*(*c).graph).config, (*calli).info, tupleTypeA, tupleTypeB, calli);
				}
				LA26_: ;
				i_2 += ((NI) 1);
			} LA22: ;
		}
	}
	(*(*c).p).nestedLoopCounter += ((NI) 1);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loopBody;
		NI T32_;
		if (!((*tupleTypeA).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA30_;
		T32_ = (NI)0;
		T32_ = len__ast_3198(n);
		loopBody = (*n)._kind_6.sons->data[(NI)(T32_ - ((NI) 1))];
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_4002(tupleTypeA);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T36_;
					tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA fc;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
					if (!(i_4 < colontmp__2)) goto LA35;
					i_3 = i_4;
					T36_ = NIM_NIL;
					T36_ = openScope__lookups_69(c);
					nimZeroMem((void*)(&fc), sizeof(tyObject_TFieldInstCtx__GtjfcSJJiOiQ0USEydDBBA));
					fc.tupleType = tupleTypeA;
					fc.tupleIndex = i_3;
					fc.c = c;
					fc.replaceByFieldName = (m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 129));
					body = instFieldLoopBody__sem_10640((&fc), loopBody, n);
					(*c).inUnrolledContext += ((NI) 1);
					T37_ = NIM_NIL;
					T37_ = semStmt__sem_84(c, body, 0);
					add__ast_4797(stmts, T37_);
					(*c).inUnrolledContext -= ((NI) 1);
					closeScope__lookups_101(c);
					i_4 += ((NI) 1);
				} LA35: ;
			}
		}
	}
	goto LA28_;
	LA30_: ;
	{
		tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw fc_2;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		nimZeroMem((void*)(&fc_2), sizeof(tyObject_TFieldsCtx__Oumniq9anVI0B7eyXhL1U9cw));
		fc_2.m = m;
		fc_2.c = c;
		t = tupleTypeA;
		{
			while (1) {
				if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA40;
				semForObjectFields__sem_10726(fc_2, (*t).n, n, stmts);
				{
					if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA43_;
					goto LA39;
				}
				LA43_: ;
				t = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_53);
			} LA40: ;
		} LA39: ;
	}
	LA28_: ;
	(*(*c).p).nestedLoopCounter -= ((NI) 1);
	{
		NIM_BOOL T47_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
		T47_ = (NIM_BOOL)0;
		T47_ = containsNode__ast_4545(stmts, TM__rF9caJawfOjYTjsgLVUSGFA_862);
		if (!T47_) goto LA48_;
		b = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110), (*n).info);
		T50_ = NIM_NIL;
		T50_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
		add__ast_4797(b, T50_);
		add__ast_4797(stmts, b);
	}
	goto LA45_;
	LA48_: ;
	{
		result = stmts;
	}
	LA45_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isClosureIterator__ast_5004)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, implicitIterator__sem_11207)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, NimStringDesc* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*arg).info);
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_143((*c).cache, it);
	T2_ = NIM_NIL;
	T2_ = newIdentNode__ast_3712(T1_, (*arg).info);
	add__ast_4797(result, T2_);
	{
		NIM_BOOL T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*arg).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T5_)) goto LA6_;
		T5_ = ((*(*arg).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*arg).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47));
		LA6_: ;
		if (!T5_) goto LA7_;
		T9_ = NIM_NIL;
		T9_ = newDeref__lowerings_11(arg);
		add__ast_4797(result, T9_);
	}
	goto LA3_;
	LA7_: ;
	{
		add__ast_4797(result, arg);
	}
	LA3_: ;
	result = semExprNoDeref__sem_63(c, result, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFor__sem_11338)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T5_;
	NI T6_;
	NI T7_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
	NI T8_;
	NIM_BOOL isCallExpr;
{	result = NIM_NIL;
	checkMinSonsLen__semdata_1084(n, ((NI) 3), (*(*c).graph).config);
	result = handleForLoopMacro__sem_11302(c, n, flags);
	{
		if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = NIM_NIL;
	T5_ = openScope__lookups_69(c);
	result = n;
	T6_ = (NI)0;
	T6_ = len__ast_3198(n);
	T7_ = (NI)0;
	T7_ = len__ast_3198(n);
	asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T6_ - ((NI) 2))]), semExprNoDeref__sem_63(c, (*n)._kind_6.sons->data[(NI)(T7_ - ((NI) 2))], 2));
	T8_ = (NI)0;
	T8_ = len__ast_3198(n);
	call = (*n)._kind_6.sons->data[(NI)(T8_ - ((NI) 2))];
	{
		NIM_BOOL T11_;
		NI T15_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126));
		if (!(T11_)) goto LA12_;
		T11_ = isTrivalStmtExpr__sem_11232(call);
		LA12_: ;
		if (!T11_) goto LA13_;
		call = lastSon__ast_4832(call);
		T15_ = (NI)0;
		T15_ = len__ast_3198(n);
		asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T15_ - ((NI) 2))]), call);
	}
	LA13_: ;
	isCallExpr = ((*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*call).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
	{
		NIM_BOOL T18_;
		NIM_BOOL T19_;
		T18_ = (NIM_BOOL)0;
		T19_ = (NIM_BOOL)0;
		T19_ = isCallExpr;
		if (!(T19_)) goto LA20_;
		T19_ = ((*(*call)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA20_: ;
		T18_ = T19_;
		if (!(T18_)) goto LA21_;
		T18_ = ((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 128) || (*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 129) || (*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 130));
		LA21_: ;
		if (!T18_) goto LA22_;
		{
			if (!((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 130))) goto LA26_;
			result = semForVars__sem_10973(c, n, flags);
			transitionSonsKind__ast_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 95));
		}
		goto LA24_;
		LA26_: ;
		{
			result = semForFields__sem_10814(c, n, (*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic);
		}
		LA24_: ;
	}
	goto LA16_;
	LA22_: ;
	{
		NIM_BOOL T30_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T32_;
		T30_ = (NIM_BOOL)0;
		T30_ = isCallExpr;
		if (!(T30_)) goto LA31_;
		T32_ = NIM_NIL;
		T32_ = skipTypes__ast_3735((*(*call)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		T30_ = isClosureIterator__ast_5004(T32_);
		LA31_: ;
		if (!T30_) goto LA33_;
		result = semForVars__sem_10973(c, n, flags);
	}
	goto LA16_;
	LA33_: ;
	{
		NIM_BOOL T36_;
		NIM_BOOL T37_;
		T36_ = (NIM_BOOL)0;
		T37_ = (NIM_BOOL)0;
		T37_ = !(isCallExpr);
		if (T37_) goto LA38_;
		T37_ = !(((*(*call)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		LA38_: ;
		T36_ = T37_;
		if (T36_) goto LA39_;
		T36_ = !(((*(*(*call)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15)));
		LA39_: ;
		if (!T36_) goto LA40_;
		{
			NI T44_;
			NI T47_;
			NI T48_;
			T44_ = (NI)0;
			T44_ = len__ast_3198(n);
			if (!(T44_ == ((NI) 3))) goto LA45_;
			T47_ = (NI)0;
			T47_ = len__ast_3198(n);
			T48_ = (NI)0;
			T48_ = len__ast_3198(n);
			asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T47_ - ((NI) 2))]), implicitIterator__sem_11207(c, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_863), (*n)._kind_6.sons->data[(NI)(T48_ - ((NI) 2))]));
		}
		goto LA42_;
		LA45_: ;
		{
			NI T50_;
			NI T53_;
			NI T54_;
			T50_ = (NI)0;
			T50_ = len__ast_3198(n);
			if (!(T50_ == ((NI) 4))) goto LA51_;
			T53_ = (NI)0;
			T53_ = len__ast_3198(n);
			T54_ = (NI)0;
			T54_ = len__ast_3198(n);
			asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T53_ - ((NI) 2))]), implicitIterator__sem_11207(c, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_864), (*n)._kind_6.sons->data[(NI)(T54_ - ((NI) 2))]));
		}
		goto LA42_;
		LA51_: ;
		{
			NI T56_;
			T56_ = (NI)0;
			T56_ = len__ast_3198(n);
			liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[(NI)(T56_ - ((NI) 2))]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_865), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_866, NIM_FALSE);
		}
		LA42_: ;
		result = semForVars__sem_10973(c, n, flags);
	}
	goto LA16_;
	LA40_: ;
	{
		result = semForVars__sem_10973(c, n, flags);
	}
	LA16_: ;
	{
		NI T60_;
		T60_ = (NI)0;
		T60_ = len__ast_3198(n);
		if (!((*(*n)._kind_6.sons->data[(NI)(T60_ - ((NI) 1))]).typ == (*c).enforceVoidContext)) goto LA61_;
		asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
	}
	goto LA58_;
	LA61_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T66_;
		if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 3))&31U)))!=0)) goto LA64_;
		T66_ = NIM_NIL;
		T66_ = lastSon__ast_4832(result);
		asgnRef((void**) (&(*result).typ), (*T66_).typ);
	}
	goto LA58_;
	LA64_: ;
	LA58_: ;
	closeScope__lookups_101(c);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, handleCaseStmtMacro__sem_11312)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toResolve;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tySequence__0dpGN6F4ocevqUQGsaf41w* errors;
	tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA r;
	result = NIM_NIL;
	toResolve = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_867));
	T2_ = NIM_NIL;
	T2_ = newIdentNode__ast_3712(T1_, (*n).info);
	add__ast_4797(toResolve, T2_);
	add__ast_4797(toResolve, (*n)._kind_6.sons->data[((NI) 0)]);
	errors = NIM_NIL;
	nimZeroMem((void*)(&r), sizeof(tyObject_TCandidate__B8Gf2sSWgQ79bLZ9bYWrLHaA));
	resolveOverloads__sem_1997(c, toResolve, toResolve, 393216, 0, (&errors), NIM_FALSE, (&r));
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* match;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toExpand;
		if (!(r.state == ((tyEnum_TCandidateState__C8RXb59bvbxaTzDOqx49aVVg) 1))) goto LA5_;
		match = r.calleeSym;
		markUsed__sigmatch_85(c, (*(*n)._kind_6.sons->data[((NI) 0)]).info, match);
		asgnRef((void**) (&(*r.call)._kind_6.sons->data[((NI) 1)]), n);
		toExpand = semResolvedCall__sem_2401(c, (&r), r.call, 0);
		switch ((*match).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
		{
			result = semMacroExpr__sem_524(c, toExpand, toExpand, match, flags);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
		{
			result = semTemplateExpr__sem_519(c, toExpand, match, flags);
		}
		break;
		default:
		{
			result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
		}
		break;
		}
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semCase__sem_11454)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	NIM_BOOL chckCovered;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA covered;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
	NIM_BOOL hasElse;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* caseTyp;
{	result = NIM_NIL;
	result = n;
	checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*c).graph).config);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	pushCaseContext__semdata_1105(c, n);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 0)], 0));
	chckCovered = NIM_FALSE;
	covered = toInt128__types_1378(((NI) 0));
	T2_ = NIM_NIL;
	T2_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*) newObj((&NTIptype__qt2Wh0elFEz5fH0l7yusLw_), sizeof(tyObject_TType__facALICuu8zUj0hjvbTLFg));
	(*T2_).Sup.Sup.m_type = (&NTIttype__facALICuu8zUj0hjvbTLFg_);
	(*T2_).kind = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6);
	typ = T2_;
	hasElse = NIM_FALSE;
	caseTyp = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_448);
	switch ((*caseTyp).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43):
	{
		chckCovered = NIM_TRUE;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T7_;
			T7_ = NIM_NIL;
			T7_ = skipTypes__ast_3735((*caseTyp).sons->data[((NI) 0)], TM__rF9caJawfOjYTjsgLVUSGFA_70);
			if (!((*T7_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T7_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*T7_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*T7_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*T7_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*T7_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43) || (*T7_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1))) goto LA8_;
			chckCovered = NIM_TRUE;
		}
		LA8_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
	{
	}
	break;
	default:
	{
		popCaseContext__semdata_1121(c);
		closeScope__lookups_101(c);
		{
			if (!(((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 8))&31U)))!=0)) goto LA14_;
			result = handleCaseStmtMacro__sem_11312(c, n, flags);
			{
				if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA18_;
				goto BeforeRet_;
			}
			LA18_: ;
		}
		LA14_: ;
		liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_868), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_869, NIM_FALSE);
		goto BeforeRet_;
	}
	break;
	}
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
				if (!(i_2 < colontmp_)) goto LA22;
				i = i_2;
				setCaseContextIdx__semdata_1136(c, i);
				x = (*n)._kind_6.sons->data[i];
				switch ((*x).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
				{
					NI last;
					NI T24_;
					checkMinSonsLen__semdata_1084(x, ((NI) 2), (*(*c).graph).config);
					semCaseBranch__sem_3791(c, n, x, i, (&covered));
					T24_ = (NI)0;
					T24_ = len__ast_3198(x);
					last = (NI)(T24_ - ((NI) 1));
					asgnRef((void**) (&(*x)._kind_6.sons->data[last]), semExprBranchScope__sem_9277(c, (*x)._kind_6.sons->data[last]));
					typ = commonType__sem_448(c, typ, (*x)._kind_6.sons->data[last]);
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
				{
					tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T26_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
					chckCovered = NIM_FALSE;
					checkSonsLen__semdata_1077(x, ((NI) 2), (*(*c).graph).config);
					T26_ = NIM_NIL;
					T26_ = openScope__lookups_69(c);
					T27_ = NIM_NIL;
					T27_ = semExprWithType__sem_56(c, (*x)._kind_6.sons->data[((NI) 0)], 0);
					asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 0)]), forceBool__sem_2869(c, T27_));
					asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 1)]), semExprBranch__sem_9264(c, (*x)._kind_6.sons->data[((NI) 1)], 0));
					typ = commonType__sem_448(c, typ, (*x)._kind_6.sons->data[((NI) 1)]);
					closeScope__lookups_101(c);
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
				{
					checkSonsLen__semdata_1077(x, ((NI) 1), (*(*c).graph).config);
					asgnRef((void**) (&(*x)._kind_6.sons->data[((NI) 0)]), semExprBranchScope__sem_9277(c, (*x)._kind_6.sons->data[((NI) 0)]));
					typ = commonType__sem_448(c, typ, (*x)._kind_6.sons->data[((NI) 0)]);
					{
						NIM_BOOL T31_;
						NIM_BOOL T32_;
						tyObject_Int128__9a9axPfb75jdWY25AamJewkA T34_;
						T31_ = (NIM_BOOL)0;
						T32_ = (NIM_BOOL)0;
						T32_ = chckCovered;
						if (!(T32_)) goto LA33_;
						T34_ = toCover__sem_3884(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
						T32_ = eqeq___int495056_313(covered, T34_);
						LA33_: ;
						T31_ = T32_;
						if (T31_) goto LA35_;
						T31_ = hasElse;
						LA35_: ;
						if (!T31_) goto LA36_;
						liMessage__msgs_1118((*(*c).graph).config, (*x).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 45), ((NimStringDesc*) NIM_NIL), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_870, NIM_FALSE);
					}
					LA36_: ;
					hasElse = NIM_TRUE;
					chckCovered = NIM_FALSE;
				}
				break;
				default:
				{
					illFormedAst__semdata_1071(x, (*(*c).graph).config);
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA22: ;
		}
	}
	{
		if (!chckCovered) goto LA41_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T45_;
			NIM_BOOL T46_;
			T45_ = toCover__sem_3884(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			T46_ = (NIM_BOOL)0;
			T46_ = eqeq___int495056_313(covered, T45_);
			if (!T46_) goto LA47_;
			hasElse = NIM_TRUE;
		}
		goto LA43_;
		LA47_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T50_;
			NimStringDesc* T53_;
			NimStringDesc* T54_;
			T50_ = NIM_NIL;
			T50_ = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_461);
			if (!((*T50_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*T50_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA51_;
			T53_ = NIM_NIL;
			T53_ = formatMissingEnums__sem_4020(c, n);
			T54_ = NIM_NIL;
			T54_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_462), T53_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T54_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_871, NIM_FALSE);
		}
		goto LA43_;
		LA51_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_467), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_872, NIM_FALSE);
		}
		LA43_: ;
	}
	LA41_: ;
	popCaseContext__semdata_1121(c);
	closeScope__lookups_101(c);
	{
		NIM_BOOL T58_;
		NIM_BOOL T59_;
		NIM_BOOL T62_;
		T58_ = (NIM_BOOL)0;
		T59_ = (NIM_BOOL)0;
		T59_ = isEmptyType__ast_4779(typ);
		if (T59_) goto LA60_;
		T59_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5) || (*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
		LA60_: ;
		T58_ = T59_;
		if (T58_) goto LA61_;
		T62_ = (NIM_BOOL)0;
		T62_ = !(hasElse);
		if (!(T62_)) goto LA63_;
		T62_ = !(((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 3))&31U)))!=0));
		LA63_: ;
		T58_ = T62_;
		LA61_: ;
		if (!T58_) goto LA64_;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T69_;
					if (!(i_4 < colontmp__2)) goto LA68;
					i_3 = i_4;
					T69_ = NIM_NIL;
					T69_ = lastSon__ast_4832((*n)._kind_6.sons->data[i_3]);
					discardCheck__sem_9323(c, T69_, flags);
					i_4 += ((NI) 1);
				} LA68: ;
			}
		}
		{
			if (!(typ == (*c).enforceVoidContext)) goto LA72_;
			asgnRef((void**) (&(*result).typ), (*c).enforceVoidContext);
		}
		LA72_: ;
	}
	goto LA56_;
	LA64_: ;
	{
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len__ast_3198(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
					NI j;
					NI T78_;
					if (!(i_6 < colontmp__3)) goto LA77;
					i_5 = i_6;
					it = (*n)._kind_6.sons->data[i_5];
					T78_ = (NI)0;
					T78_ = len__ast_3198(it);
					j = (NI)(T78_ - ((NI) 1));
					{
						NIM_BOOL T81_;
						T81_ = (NIM_BOOL)0;
						T81_ = endsInNoReturn__sem_416((*it)._kind_6.sons->data[j]);
						if (!!(T81_)) goto LA82_;
						asgnRef((void**) (&(*it)._kind_6.sons->data[j]), fitNode__sem_70(c, typ, (*it)._kind_6.sons->data[j], (*(*it)._kind_6.sons->data[j]).info));
					}
					LA82_: ;
					i_6 += ((NI) 1);
				} LA77: ;
			}
		}
		asgnRef((void**) (&(*result).typ), typ);
	}
	LA56_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semReturn__sem_17891)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((225280 &((NU32)1<<((NU)((*(*(*c).p).owner).kind)&31U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*(*(*c).p).owner).typ == 0));
		if (!(T5_)) goto LA6_;
		T5_ = isClosureIterator__ast_5004((*(*(*c).p).owner).typ);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		{
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA11_;
			{
				NIM_BOOL T15_;
				NIM_BOOL T16_;
				T15_ = (NIM_BOOL)0;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73));
				if (!(T16_)) goto LA17_;
				T16_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				LA17_: ;
				T15_ = T16_;
				if (!(T15_)) goto LA18_;
				T15_ = ((*(*c).p).resultSym == (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)])._kind_4.sym);
				LA18_: ;
				if (!T15_) goto LA19_;
			}
			goto LA13_;
			LA19_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
				if (!!(((*(*c).p).resultSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA22_;
				a = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				T24_ = NIM_NIL;
				T24_ = newSymNode__ast_3716((*(*c).p).resultSym);
				add__ast_4797(a, T24_);
				add__ast_4797(a, (*n)._kind_6.sons->data[((NI) 0)]);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), a);
			}
			goto LA13_;
			LA22_: ;
			{
				liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_873), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_874, NIM_FALSE);
				goto BeforeRet_;
			}
			LA13_: ;
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semAsgn__sem_15312(c, (*n)._kind_6.sons->data[((NI) 0)], ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 0)));
			{
				NIM_BOOL T28_;
				T28_ = (NIM_BOOL)0;
				T28_ = ((*(*(*result)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T28_)) goto LA29_;
				T28_ = ((*(*(*result)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)])._kind_4.sym == (*(*c).p).resultSym);
				LA29_: ;
				if (!T28_) goto LA30_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), (*(*c).graph).emptyNode);
			}
			LA30_: ;
		}
		LA11_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_875), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_876, NIM_FALSE);
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semUsing__sem_9769)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = (*(*c).graph).emptyNode;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1091(c);
		if (!!(T3_)) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_877));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_878, NIM_FALSE);
	}
	LA4_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* def;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 11))) goto LA13_;
						suggestStmt__sigmatch_6552(c, a);
					}
					LA13_: ;
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA17_;
						goto LA10;
					}
					LA17_: ;
					{
						if (!!(((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102)))) goto LA21_;
						illFormedAst__semdata_1071(a, (*(*c).graph).config);
					}
					LA21_: ;
					checkMinSonsLen__semdata_1084(a, ((NI) 3), (*(*c).graph).config);
					{
						NI T25_;
						tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
						NI T28_;
						T25_ = (NI)0;
						T25_ = len__ast_3198(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T25_ - ((NI) 2))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA26_;
						T28_ = (NI)0;
						T28_ = len__ast_3198(a);
						typ = semTypeNode__sem_80(c, (*a)._kind_6.sons->data[(NI)(T28_ - ((NI) 2))], ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
						{
							NI j;
							NI colontmp__2;
							NI T30_;
							NI i_3;
							j = (NI)0;
							colontmp__2 = (NI)0;
							T30_ = (NI)0;
							T30_ = len__ast_3198(a);
							colontmp__2 = (NI)(T30_ - ((NI) 2));
							i_3 = ((NI) 0);
							{
								while (1) {
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* v;
									NIM_BOOL T39_;
									if (!(i_3 < colontmp__2)) goto LA32;
									j = i_3;
									v = semIdentDef__sem_9679(c, (*a)._kind_6.sons->data[j], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), NIM_TRUE);
									{
										NIM_BOOL T35_;
										T35_ = (NIM_BOOL)0;
										T35_ = !(((49152 & (*(*(*c).graph).config).globalOptions) == 0));
										if (!(T35_)) goto LA36_;
										T35_ = !((((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0));
										LA36_: ;
										if (!T35_) goto LA37_;
										nep1CheckDefImpl__linter_110((*(*c).graph).config, (*v).info, v, (*v).kind);
									}
									LA37_: ;
									asgnRef((void**) (&(*v).typ), typ);
									T39_ = (NIM_BOOL)0;
									T39_ = strTableIncl__astalgo_3374((&(*c).signatures), v, NIM_FALSE);
									i_3 += ((NI) 1);
								} LA32: ;
							}
						}
					}
					goto LA23_;
					LA26_: ;
					{
						liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_879), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_880, NIM_FALSE);
					}
					LA23_: ;
					def = NIM_NIL;
					{
						NI T43_;
						T43_ = (NI)0;
						T43_ = len__ast_3198(a);
						if (!!(((*(*a)._kind_6.sons->data[(NI)(T43_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA44_;
						liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_881), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_882, NIM_FALSE);
					}
					LA44_: ;
				} LA10: ;
				i_2 += ((NI) 1);
			} LA9: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAsm__sem_9228)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_CHAR marker;
	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	marker = pragmaAsm__pragmas_201(c, (*n)._kind_6.sons->data[((NI) 0)]);
	{
		if (!((NU8)(marker) == (NU8)(0))) goto LA3_;
		marker = 96;
	}
	LA3_: ;
	result = semAsmOrEmit__pragmas_1133(c, n, marker);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, semYieldVarResult__sem_17997)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* restype) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	t = skipTypes__ast_3735(restype, TM__rF9caJawfOjYTjsgLVUSGFA_137);
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59))) goto LA4_;
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]);
		}
		LA4_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), takeImplicitAddr__sem_17582(c, (*n)._kind_6.sons->data[((NI) 0)], ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_4002(t);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* e;
					if (!(i_2 < colontmp_)) goto LA9;
					i = i_2;
					e = skipTypes__ast_3735((*t).sons->data[i], TM__rF9caJawfOjYTjsgLVUSGFA_137);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tupleConstr;
						if (!((*e).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*e).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA12_;
						(*e).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 20)) & 63);
						{
							if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59))) goto LA16_;
							tupleConstr = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
						}
						goto LA14_;
						LA16_: ;
						{
							tupleConstr = (*n)._kind_6.sons->data[((NI) 0)];
						}
						LA14_: ;
						{
							if (!((*tupleConstr).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*tupleConstr).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA21_;
							{
								if (!((*(*tupleConstr)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA25_;
								asgnRef((void**) (&(*(*tupleConstr)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)]), takeImplicitAddr__sem_17582(c, (*(*tupleConstr)._kind_6.sons->data[i])._kind_6.sons->data[((NI) 1)], ((*e).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))));
							}
							goto LA23_;
							LA25_: ;
							{
								asgnRef((void**) (&(*tupleConstr)._kind_6.sons->data[i]), takeImplicitAddr__sem_17582(c, (*tupleConstr)._kind_6.sons->data[i], ((*e).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))));
							}
							LA23_: ;
						}
						goto LA19_;
						LA21_: ;
						{
							liMessage__msgs_1118((*(*c).graph).config, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 5), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_887), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_888, NIM_FALSE);
						}
						LA19_: ;
					}
					LA12_: ;
					i_2 += ((NI) 1);
				} LA9: ;
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semYield__sem_18071)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*c).p).owner == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15)));
		LA4_: ;
		if (!T3_) goto LA5_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_883), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_884, NIM_FALSE);
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* iterType;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* restype;
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA8_;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExprWithType__sem_56(c, (*n)._kind_6.sons->data[((NI) 0)], 0));
		iterType = (*(*(*c).p).owner).typ;
		restype = (*iterType).sons->data[((NI) 0)];
		{
			if (!!((restype == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA12_;
			{
				if (!!(((*restype).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)))) goto LA16_;
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), fitNode__sem_70(c, restype, (*n)._kind_6.sons->data[((NI) 0)], (*n).info));
			}
			LA16_: ;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA20_;
				internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_885), TM__rF9caJawfOjYTjsgLVUSGFA_886);
			}
			LA20_: ;
			{
				NIM_BOOL T24_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* inferred;
				T24_ = (NIM_BOOL)0;
				T24_ = isMetaType__ast_3495(restype);
				if (!(T24_)) goto LA25_;
				T24_ = !(((*restype).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8)));
				LA25_: ;
				if (!T24_) goto LA26_;
				inferred = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
				asgnRef((void**) (&(*iterType).sons->data[((NI) 0)]), inferred);
				{
					if (!!(((*(*c).p).resultSym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA30_;
					asgnRef((void**) (&(*(*(*c).p).resultSym).typ), inferred);
				}
				LA30_: ;
			}
			LA26_: ;
			semYieldVarResult__sem_17997(c, n, restype);
		}
		goto LA10_;
		LA12_: ;
		{
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_889), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_890, NIM_FALSE);
		}
		LA10_: ;
	}
	goto LA1_;
	LA8_: ;
	{
		if (!!(((*(*(*(*c).p).owner).typ).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA34_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_891), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_892, NIM_FALSE);
	}
	goto LA1_;
	LA34_: ;
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semIterator__sem_13401)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
{	result = NIM_NIL;
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		asgnRef((void**) (&(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).owner), getCurrOwner__semdata_315(c));
		transitionRoutineSymKind__ast_4393((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym, ((tyEnum_TSymKind__uwRDzlpaGW5WJzgBn4R8Eg) 15));
	}
	LA3_: ;
	result = semProcAux__sem_13030(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15), TM__rF9caJawfOjYTjsgLVUSGFA_894, 0);
	{
		if (!!(((*result).kind == (*n).kind))) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	s = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	t = (*s).typ;
	{
		NIM_BOOL T11_;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		if (!(T11_)) goto LA12_;
		T11_ = !(((*(*s).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)));
		LA12_: ;
		if (!T11_) goto LA13_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_895), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_896, NIM_FALSE);
	}
	LA13_: ;
	{
		if (!((*(*s).typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9))) goto LA17_;
		(*(*s).typ).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 12)) & 63);
	}
	goto LA15_;
	LA17_: ;
	{
		(*(*s).typ).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 5);
	}
	LA15_: ;
	{
		NIM_BOOL T22_;
		NIM_BOOL T23_;
		NimStringDesc* T28_;
		T22_ = (NIM_BOOL)0;
		T23_ = (NIM_BOOL)0;
		T23_ = ((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (!(T23_)) goto LA24_;
		T23_ = ((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
		LA24_: ;
		T22_ = T23_;
		if (!(T22_)) goto LA25_;
		T22_ = ((*c).inConceptDecl == ((NI) 0));
		LA25_: ;
		if (!T22_) goto LA26_;
		T28_ = NIM_NIL;
		T28_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_391), (*(*s).name).s);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T28_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_897, NIM_FALSE);
	}
	LA26_: ;
	{
		NIM_BOOL T31_;
		T31_ = (NIM_BOOL)0;
		T31_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
		if (!(T31_)) goto LA32_;
		T31_ = !(((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA32_: ;
		if (!T31_) goto LA33_;
		asgnRef((void**) (&(*result).typ), makeVarType__semdata_766(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
		(*(*result).typ).callConv = ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9);
	}
	LA33_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semProc__sem_9261)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = semProcAux__sem_13030(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12), TM__rF9caJawfOjYTjsgLVUSGFA_898, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semFunc__sem_13457)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw validPragmas;
	result = NIM_NIL;
	nimZeroMem((void*)validPragmas, sizeof(tySet_tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw));
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		nimCopyMem((void*)validPragmas, (NIM_CONST void*)TM__rF9caJawfOjYTjsgLVUSGFA_898, 37);
	}
	goto LA1_;
	LA3_: ;
	{
		nimCopyMem((void*)validPragmas, (NIM_CONST void*)TM__rF9caJawfOjYTjsgLVUSGFA_899, 37);
	}
	LA1_: ;
	result = semProcAux__sem_13030(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13), validPragmas, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMethod__sem_13467)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* disp;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1091(c);
		if (!!(T3_)) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_900));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_901, NIM_FALSE);
	}
	LA4_: ;
	result = semProcAux__sem_13030(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14), TM__rF9caJawfOjYTjsgLVUSGFA_902, 0);
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = safeLen__ast_3191(result);
		if (!(T9_ <= ((NI) 0))) goto LA10_;
		goto BeforeRet_;
	}
	LA10_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80)))) goto LA14_;
		goto BeforeRet_;
	}
	LA14_: ;
	s = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	disp = getDispatcher__cgmeth_42(s);
	{
		NIM_BOOL T18_;
		NIM_BOOL T19_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* ret;
		T18_ = (NIM_BOOL)0;
		T19_ = (NIM_BOOL)0;
		T19_ = !((disp == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		if (!(T19_)) goto LA20_;
		T19_ = !(((*(*disp).typ).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA20_: ;
		T18_ = T19_;
		if (!(T18_)) goto LA21_;
		T18_ = ((*(*(*disp).typ).sons->data[((NI) 0)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6));
		LA21_: ;
		if (!T18_) goto LA22_;
		ret = (*(*s).typ).sons->data[((NI) 0)];
		asgnRef((void**) (&(*(*disp).typ).sons->data[((NI) 0)]), ret);
		{
			if (!((*(*(*disp).ast)._kind_6.sons->data[((NI) 7)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA26_;
			{
				NIM_BOOL T30_;
				T30_ = (NIM_BOOL)0;
				T30_ = isEmptyType__ast_4779(ret);
				if (!T30_) goto LA31_;
				asgnRef((void**) (&(*(*disp).ast)._kind_6.sons->data[((NI) 7)]), (*(*c).graph).emptyNode);
			}
			goto LA28_;
			LA31_: ;
			{
				asgnRef((void**) (&(*(*(*(*disp).ast)._kind_6.sons->data[((NI) 7)])._kind_4.sym).typ), ret);
			}
			LA28_: ;
		}
		LA26_: ;
	}
	LA22_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConverterDef__sem_13502)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA T26_;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTopLevel__semdata_1091(c);
		if (!!(T3_)) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_903));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T6_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_904, NIM_FALSE);
	}
	LA4_: ;
	checkSonsLen__semdata_1077(n, ((NI) 7), (*(*c).graph).config);
	result = semProcAux__sem_13030(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16), TM__rF9caJawfOjYTjsgLVUSGFA_898, 0);
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = safeLen__ast_3191(result);
		if (!(T9_ <= ((NI) 0))) goto LA10_;
		goto BeforeRet_;
	}
	LA10_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81)))) goto LA14_;
		goto BeforeRet_;
	}
	LA14_: ;
	s = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	t = (*s).typ;
	{
		NimStringDesc* T20_;
		if (!((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA18_;
		T20_ = NIM_NIL;
		T20_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_905), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_903));
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_906, NIM_FALSE);
	}
	LA18_: ;
	{
		NI T23_;
		T23_ = (NI)0;
		T23_ = len__ast_4002(t);
		if (!!((T23_ == ((NI) 2)))) goto LA24_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_907), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_908, NIM_FALSE);
	}
	LA24_: ;
	nimZeroMem((void*)(&T26_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
	nimZeroMem((void*)(&T26_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
	T26_.sym = s;
	addConverterDef__semdata_667(c, T26_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semMacroDef__sem_13521)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	NIM_BOOL allUntyped;
{	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 7), (*(*c).graph).config);
	result = semProcAux__sem_13030(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17), TM__rF9caJawfOjYTjsgLVUSGFA_909, 0);
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = safeLen__ast_3191(result);
		if (!(T3_ <= ((NI) 0))) goto LA4_;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82)))) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	s = (*(*result)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	t = (*s).typ;
	allUntyped = NIM_TRUE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198((*t).n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param;
				if (!(i_2 < colontmp_)) goto LA12;
				i = i_2;
				param = (*(*(*t).n)._kind_6.sons->data[i])._kind_4.sym;
				{
					if (!!(((*(*param).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6)))) goto LA15_;
					allUntyped = NIM_FALSE;
				}
				LA15_: ;
				i_2 += ((NI) 1);
			} LA12: ;
		}
	}
	{
		if (!allUntyped) goto LA19_;
		(*s).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 9)) & 63);
	}
	LA19_: ;
	{
		NimStringDesc* T25_;
		if (!((*(*n)._kind_6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA23_;
		T25_ = NIM_NIL;
		T25_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_391), (*(*s).name).s);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T25_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_910, NIM_FALSE);
	}
	LA23_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, incMod__sem_13556)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* includeStmtResult) {
	NI32 f;
	f = checkModuleName__modulepaths_21((*(*c).graph).config, it, NIM_TRUE);
	{
		if (!!((f == ((NI32) -1)))) goto LA3_;
		addIncludeFileDep__semdata_604(c, f);
		onProcessing__modulegraphs_11274((*c).graph, f, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_920), (*c).module);
		{
			NIM_BOOL T7_;
			NimStringDesc* T10_;
			NimStringDesc* T11_;
			T7_ = (NIM_BOOL)0;
			T7_ = containsOrIncl__astalgo_402((&(*c).includedFiles), ((NI) (f)));
			if (!T7_) goto LA8_;
			T10_ = NIM_NIL;
			T10_ = toMsgFilename__msgs_602((*(*c).graph).config, f);
			T11_ = NIM_NIL;
			T11_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_10), T10_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T11_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_921, NIM_FALSE);
		}
		goto LA5_;
		LA8_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
			T13_ = NIM_NIL;
			T13_ = (*(*c).graph).includeFileCallback((*c).graph, (*c).module, f);
			T14_ = NIM_NIL;
			T14_ = semStmt__sem_84(c, T13_, 0);
			add__ast_4797(includeStmtResult, T14_);
			excl__reorder_264((&(*c).includedFiles), ((NI) (f)));
		}
		LA5_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, evalInclude__sem_13576)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	add__ast_4797(result, n);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* imp;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				imp = NIM_NIL;
				it = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T6_;
					NIM_BOOL T7_;
					NI T9_;
					NimStringDesc* T13_;
					T6_ = (NIM_BOOL)0;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
					if (!(T7_)) goto LA8_;
					T9_ = (NI)0;
					T9_ = len__ast_3198(it);
					T7_ = (T9_ == ((NI) 3));
					LA8_: ;
					T6_ = T7_;
					if (!(T6_)) goto LA10_;
					T6_ = !(eqStrings((*(*(*it)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_916)));
					LA10_: ;
					if (!T6_) goto LA11_;
					T13_ = NIM_NIL;
					T13_ = rawNewString(((*(*(*it)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s ? (*(*(*it)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s->Sup.len : 0) + 27);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_917));
appendString(T13_, (*(*(*it)._kind_6.sons->data[((NI) 0)])._kind_5.ident).s);
appendString(T13_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_918));
					liMessage__msgs_1118((*(*c).graph).config, (*it).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_919, NIM_FALSE);
				}
				LA11_: ;
				{
					NIM_BOOL T16_;
					NIM_BOOL T17_;
					NI T19_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sep;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dir;
					T16_ = (NIM_BOOL)0;
					T17_ = (NIM_BOOL)0;
					T17_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29));
					if (!(T17_)) goto LA18_;
					T19_ = (NI)0;
					T19_ = len__ast_3198(it);
					T17_ = (T19_ == ((NI) 3));
					LA18_: ;
					T16_ = T17_;
					if (!(T16_)) goto LA20_;
					T16_ = ((*(*it)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
					LA20_: ;
					if (!T16_) goto LA21_;
					sep = (*it)._kind_6.sons->data[((NI) 0)];
					dir = (*it)._kind_6.sons->data[((NI) 1)];
					imp = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*it).info);
					add__ast_4797(imp, sep);
					add__ast_4797(imp, dir);
					add__ast_4797(imp, sep);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp__2;
						x = NIM_NIL;
						colontmp__2 = NIM_NIL;
						colontmp__2 = (*it)._kind_6.sons->data[((NI) 2)];
						{
							NI i_3;
							NI colontmp__3;
							NI i_4;
							i_3 = (NI)0;
							colontmp__3 = (NI)0;
							colontmp__3 = safeLen__ast_3191(colontmp__2);
							i_4 = ((NI) 0);
							{
								while (1) {
									if (!(i_4 < colontmp__3)) goto LA26;
									i_3 = i_4;
									x = (*colontmp__2)._kind_6.sons->data[i_3];
									asgnRef((void**) (&(*imp)._kind_6.sons->data[((NI) 2)]), x);
									incMod__sem_13556(c, n, imp, result);
									i_4 += ((NI) 1);
								} LA26: ;
							}
						}
					}
				}
				goto LA14_;
				LA21_: ;
				{
					incMod__sem_13556(c, n, it, result);
				}
				LA14_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2697)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = ((*g).packed_0 ? (*g).packed_0->Sup.len : 0);
	T1_ = (module < T2_);
	if (!(T1_)) goto LA3_;
	T1_ = ((*g).packed_0->data[module].status == ((tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q) 3));
	LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isCachedModule__modulegraphs_2709)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = isCachedModule__modulegraphs_2697(g, (*m).position);
	return result;
}
static N_INLINE(void, specialSyms__sem_19912)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	{
		tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA T5_;
		if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16))) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
		nimZeroMem((void*)(&T5_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
		T5_.sym = s;
		addConverter__semdata_653(c, T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA T15_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
		if (!(T9_)) goto LA10_;
		T9_ = !(((*s).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA11_;
		T8_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
		LA11_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA12_;
		T7_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0);
		LA12_: ;
		if (!T7_) goto LA13_;
		nimZeroMem((void*)(&T15_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
		nimZeroMem((void*)(&T15_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
		T15_.sym = s;
		addPureEnum__semdata_674(c, T15_);
	}
	goto LA1_;
	LA13_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExport__sem_19908)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118), (*n).info);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ o;
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				a = (*n)._kind_6.sons->data[i];
				nimZeroMem((void*)(&o), sizeof(tyObject_TOverloadIter__5JoRhlHqSIiHe1n9a5m6IAQ));
				s = initOverloadIter__lookups_1374((&o), c, a);
				{
					NimStringDesc* T8_;
					NimStringDesc* T9_;
					if (!(s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA6_;
					T8_ = NIM_NIL;
					T9_ = NIM_NIL;
					T9_ = renderTree__renderer_46(a, 0);
					T8_ = rawNewString((T9_ ? T9_->Sup.len : 0) + 15);
appendString(T8_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_923));
appendString(T8_, T9_);
					liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T8_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_924, NIM_FALSE);
				}
				goto LA4_;
				LA6_: ;
				{
					if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6))) goto LA11_;
					reexportSym__semdata_717(c, s);
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* it;
						NIM_BOOL importHidden;
						it = NIM_NIL;
						importHidden = (((*s).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0);
						{
							NIM_BOOL T16_;
							tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* r;
							T16_ = (NIM_BOOL)0;
							T16_ = isCachedModule__modulegraphs_2709((*c).graph, s);
							if (!T16_) goto LA17_;
							nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg));
							r = initRodIterAllSyms__icZic_8667((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*s).position)), importHidden);
							{
								while (1) {
									if (!!((r == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA20;
									it = r;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
										if (!((43513792 &((NU32)1<<((NU)((*it).kind)&31U)))!=0)) goto LA23_;
										reexportSym__semdata_717(c, it);
										T25_ = NIM_NIL;
										T25_ = newSymNode__ast_3719(it, (*a).info);
										add__ast_4797(result, T25_);
										specialSyms__sem_19912(c, it);
									}
									LA23_: ;
									r = nextRodIter__icZic_8962((&rodIt), (&(*(*c).graph).packed_0));
								} LA20: ;
							}
						}
						goto LA14_;
						LA17_: ;
						{
							{
								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** s_2;
								tySequence__eHqUwlHGGaPw0TDPDeL79cQ* colontmp__2;
								tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* retX60gensym17_;
								NI i_3;
								NI L;
								NI T32_;
								s_2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
								colontmp__2 = NIM_NIL;
								retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*s).position].interf);
								{
									if (!importHidden) goto LA30_;
									retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*s).position].interfHidden);
								}
								LA30_: ;
								colontmp__2 = (*retX60gensym17_).data;
								i_3 = ((NI) 0);
								T32_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
								L = T32_;
								{
									while (1) {
										if (!(i_3 < L)) goto LA34;
										s_2 = &colontmp__2->data[i_3];
										{
											if (!!(((*s_2) == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA37_;
											it = (*s_2);
											{
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
												if (!((*it).kind >= ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6) && (*it).kind <= ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10) || (*it).kind >= ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12) && (*it).kind <= ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18) || (*it).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20) || (*it).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 23) || (*it).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 25))) goto LA41_;
												reexportSym__semdata_717(c, it);
												T43_ = NIM_NIL;
												T43_ = newSymNode__ast_3719(it, (*a).info);
												add__ast_4797(result, T43_);
												specialSyms__sem_19912(c, it);
											}
											LA41_: ;
										}
										LA37_: ;
										i_3 += ((NI) 1);
									} LA34: ;
								}
							}
						}
						LA14_: ;
					}
					markUsed__sigmatch_85(c, (*n).info, s);
				}
				goto LA4_;
				LA11_: ;
				{
					{
						while (1) {
							if (!!((s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA46;
							{
								NimStringDesc* T51_;
								NimStringDesc* T52_;
								if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20))) goto LA49_;
								T51_ = NIM_NIL;
								T52_ = NIM_NIL;
								T52_ = renderTree__renderer_46(a, 0);
								T51_ = rawNewString((T52_ ? T52_->Sup.len : 0) + 59);
appendString(T51_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_923));
appendString(T51_, T52_);
appendString(T51_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_925));
								liMessage__msgs_1118((*(*c).graph).config, (*a).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T51_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_926, NIM_FALSE);
							}
							LA49_: ;
							{
								NIM_BOOL T55_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T59_;
								T55_ = (NIM_BOOL)0;
								T55_ = ((43513792 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
								if (!(T55_)) goto LA56_;
								T55_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
								LA56_: ;
								if (!T55_) goto LA57_;
								T59_ = NIM_NIL;
								T59_ = newSymNode__ast_3719(s, (*a).info);
								add__ast_4797(result, T59_);
								reexportSym__semdata_717(c, s);
								markUsed__sigmatch_85(c, (*n).info, s);
								specialSyms__sem_19912(c, s);
								{
									NIM_BOOL T62_;
									tyObject_TType__facALICuu8zUj0hjvbTLFg* etyp;
									T62_ = (NIM_BOOL)0;
									T62_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7));
									if (!(T62_)) goto LA63_;
									T62_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0));
									LA63_: ;
									if (!T62_) goto LA64_;
									etyp = (*s).typ;
									{
										if (!((*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*etyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14))) goto LA68_;
										{
											NI j;
											NI colontmp__3;
											NI i_4;
											j = (NI)0;
											colontmp__3 = (NI)0;
											colontmp__3 = len__ast_3198((*etyp).n);
											i_4 = ((NI) 0);
											{
												while (1) {
													tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* e;
													if (!(i_4 < colontmp__3)) goto LA72;
													j = i_4;
													e = (*(*(*etyp).n)._kind_6.sons->data[j])._kind_4.sym;
													{
														if (!!(((*e).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20)))) goto LA75_;
														internalErrorImpl__msgs_1431((*(*c).graph).config, (*s).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_927), TM__rF9caJawfOjYTjsgLVUSGFA_928);
													}
													LA75_: ;
													reexportSym__semdata_717(c, e);
													i_4 += ((NI) 1);
												} LA72: ;
											}
										}
									}
									LA68_: ;
								}
								LA64_: ;
							}
							LA57_: ;
							s = nextOverloadIter__lookups_1528((&o), c, a);
						} LA46: ;
					}
				}
				LA4_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExportExcept__sem_19869)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* moduleName;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA exceptSet;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* exported;
{	result = NIM_NIL;
	moduleName = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*moduleName).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T3_) goto LA4_;
		T3_ = !(((*(*moduleName)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
		LA4_: ;
		if (!T3_) goto LA5_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_930), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_931, NIM_FALSE);
		result = n;
		goto BeforeRet_;
	}
	LA5_: ;
	nimZeroMem((void*)(&exceptSet), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	readExceptSet__importer_17(c, n, (&exceptSet));
	exported = (*moduleName)._kind_4.sym;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118), (*n).info);
	reexportSym__semdata_717(c, exported);
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		NIM_BOOL importHidden;
		s = NIM_NIL;
		importHidden = (((*exported).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0);
		{
			NIM_BOOL T10_;
			tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg rodIt;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* r;
			T10_ = (NIM_BOOL)0;
			T10_ = isCachedModule__modulegraphs_2709((*c).graph, exported);
			if (!T10_) goto LA11_;
			nimZeroMem((void*)(&rodIt), sizeof(tyObject_RodIter__Y6aA9bUtpfLvVVtyih9aAbQg));
			r = initRodIterAllSyms__icZic_8667((&rodIt), (*(*c).graph).config, (*(*c).graph).cache, (&(*(*c).graph).packed_0), ((NI32) ((*exported).position)), importHidden);
			{
				while (1) {
					if (!!((r == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA14;
					s = r;
					{
						NIM_BOOL T17_;
						NIM_BOOL T18_;
						NIM_BOOL T20_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
						T17_ = (NIM_BOOL)0;
						T18_ = (NIM_BOOL)0;
						T18_ = ((43513792 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
						if (!(T18_)) goto LA19_;
						T20_ = (NIM_BOOL)0;
						T20_ = contains__astalgo_3489((&exceptSet), (*(*s).name).id);
						T18_ = !(T20_);
						LA19_: ;
						T17_ = T18_;
						if (!(T17_)) goto LA21_;
						T17_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
						LA21_: ;
						if (!T17_) goto LA22_;
						reexportSym__semdata_717(c, s);
						T24_ = NIM_NIL;
						T24_ = newSymNode__ast_3719(s, (*n).info);
						add__ast_4797(result, T24_);
					}
					LA22_: ;
					r = nextRodIter__icZic_8962((&rodIt), (&(*(*c).graph).packed_0));
				} LA14: ;
			}
		}
		goto LA8_;
		LA11_: ;
		{
			{
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** s_2;
				tySequence__eHqUwlHGGaPw0TDPDeL79cQ* colontmp_;
				tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA* retX60gensym17_;
				NI i;
				NI L;
				NI T31_;
				s_2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
				colontmp_ = NIM_NIL;
				retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*exported).position].interf);
				{
					if (!importHidden) goto LA29_;
					retX60gensym17_ = (&(*(*c).graph).ifaces->data[(*exported).position].interfHidden);
				}
				LA29_: ;
				colontmp_ = (*retX60gensym17_).data;
				i = ((NI) 0);
				T31_ = (colontmp_ ? colontmp_->Sup.len : 0);
				L = T31_;
				{
					while (1) {
						if (!(i < L)) goto LA33;
						s_2 = &colontmp_->data[i];
						{
							if (!!(((*s_2) == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA36_;
							s = (*s_2);
							{
								NIM_BOOL T40_;
								NIM_BOOL T41_;
								NIM_BOOL T43_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
								T40_ = (NIM_BOOL)0;
								T41_ = (NIM_BOOL)0;
								T41_ = ((*s).kind >= ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6) && (*s).kind <= ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10) || (*s).kind >= ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12) && (*s).kind <= ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18) || (*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20) || (*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 23) || (*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 25));
								if (!(T41_)) goto LA42_;
								T43_ = (NIM_BOOL)0;
								T43_ = contains__astalgo_3489((&exceptSet), (*(*s).name).id);
								T41_ = !(T43_);
								LA42_: ;
								T40_ = T41_;
								if (!(T40_)) goto LA44_;
								T40_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
								LA44_: ;
								if (!T40_) goto LA45_;
								reexportSym__semdata_717(c, s);
								T47_ = NIM_NIL;
								T47_ = newSymNode__ast_3719(s, (*n).info);
								add__ast_4797(result, T47_);
							}
							LA45_: ;
						}
						LA36_: ;
						i += ((NI) 1);
					} LA33: ;
				}
			}
		}
		LA8_: ;
	}
	markUsed__sigmatch_85(c, (*n).info, exported);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setLine__sem_13635)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	{
		if (!!((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					setLine__sem_13635((*n)._kind_6.sons->data[i], info);
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
		(*n).info = info;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semPragmaBlock__sem_13648)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragmaList;
	NI inUncheckedAssignSection;
	result = NIM_NIL;
	checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
	pragmaList = (*n)._kind_6.sons->data[((NI) 0)];
	pragma__pragmas_123(c, ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL), pragmaList, TM__rF9caJawfOjYTjsgLVUSGFA_932, NIM_TRUE);
	inUncheckedAssignSection = ((NI) 0);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
		p = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3191(pragmaList);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					p = (*pragmaList)._kind_6.sons->data[i];
					{
						tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T7_;
						tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T10_;
						T7_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
						T7_ = whichPragma__trees_244(p);
						if (!(T7_ == ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 9))) goto LA8_;
						T10_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
						T10_ = whichPragma__trees_244((*p)._kind_6.sons->data[((NI) 1)]);
						switch (T10_) {
						case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 110):
						case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 109):
						case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 179):
						case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 174):
						{
						}
						break;
						case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 86):
						{
							inUncheckedAssignSection = ((NI) 1);
						}
						break;
						default:
						{
							NimStringDesc* T14_;
							NimStringDesc* T15_;
							T14_ = NIM_NIL;
							T15_ = NIM_NIL;
							T15_ = dollar___renderer_2106(p);
							T14_ = rawNewString((T15_ ? T15_->Sup.len : 0) + 22);
appendString(T14_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_933));
appendString(T14_, T15_);
							liMessage__msgs_1118((*(*c).graph).config, (*p).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T14_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_934, NIM_FALSE);
						}
						break;
						}
					}
					LA8_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	(*c).inUncheckedAssignSection += inUncheckedAssignSection;
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 1)], 0));
	(*c).inUncheckedAssignSection -= inUncheckedAssignSection;
	result = n;
	asgnRef((void**) (&(*result).typ), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	{
		NI i_3;
		NI colontmp__2;
		NI i_4;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_3198(pragmaList);
		i_4 = ((NI) 0);
		{
			while (1) {
				tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T19_;
				if (!(i_4 < colontmp__2)) goto LA18;
				i_3 = i_4;
				T19_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
				T19_ = whichPragma__trees_244((*pragmaList)._kind_6.sons->data[i_3]);
				switch (T19_) {
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 127):
				{
					setLine__sem_13635(result, (*(*pragmaList)._kind_6.sons->data[i_3]).info);
				}
				break;
				case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 190):
				{
					(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 6)) & 31);
				}
				break;
				default:
				{
				}
				break;
				}
				i_4 += ((NI) 1);
			} LA18: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStaticStmt__sem_13686)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
	result = NIM_NIL;
	(*c).inStaticContext += ((NI) 1);
	T1_ = NIM_NIL;
	T1_ = openScope__lookups_69(c);
	a = semStmt__sem_84(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	closeScope__lookups_101(c);
	(*c).inStaticContext -= ((NI) 1);
	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), a);
	evalStaticStmt__vm_13759((*c).module, (*c).Sup.idgen, (*c).graph, a, (*(*c).p).owner);
	result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114), (*n).info, ((NI) 1));
	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), (*(*c).graph).emptyNode);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExpr__sem_52)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	result = n;
	{
		if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 11))) goto LA3_;
		suggestExpr__sigmatch_6536(c, n);
	}
	LA3_: ;
	{
		if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7))&31U)))!=0)) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
	{
		tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ checks;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
		{
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 14))&31U)))!=0)) goto LA12_;
			checks = 10;
		}
		goto LA10_;
		LA12_: ;
		{
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 15))&31U)))!=0)) goto LA15_;
			checks = 14;
		}
		goto LA10_;
		LA15_: ;
		{
			checks = 15;
		}
		LA10_: ;
		s = qualifiedLookUp__lookups_1233(c, n, checks);
		{
			if (!((*c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL))) goto LA20_;
			semCaptureSym__lambdalifting_4991(s, (*(*c).p).owner);
		}
		LA20_: ;
		switch ((*s).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
		{
			result = symChoice__sem_6586(c, n, s, ((tyEnum_TSymChoiceRule__lH3J6G7FTKg8Ow3uXV36OA) 0), NIM_FALSE);
			{
				if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA25_;
				markIndirect__semdata_1060(c, (*result)._kind_4.sym);
			}
			LA25_: ;
			{
				if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA29_;
				asgnRef((void**) (&(*result).typ), makeVarType__semdata_766(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
			}
			LA29_: ;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20):
		{
			{
				if (!(((*c).features &((NU32)1<<((NU)(((tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ) 15))&31U)))!=0)) goto LA34_;
				result = enumFieldSymChoice__sem_20215(c, n, s);
			}
			goto LA32_;
			LA34_: ;
			{
				result = semSym__sem_16971(c, n, s, flags);
			}
			LA32_: ;
		}
		break;
		default:
		{
			result = semSym__sem_16971(c, n, s, flags);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = semSym__sem_16971(c, n, (*n)._kind_4.sym, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA43_;
			asgnRef((void**) (&(*result).typ), getNilType__sem_20208(c));
		}
		LA43_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA48_;
			setIntLitType__semdata_245(c, result);
		}
		LA48_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 7):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA53_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 32)));
		}
		LA53_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 8):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA58_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33)));
		}
		LA58_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 9):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA63_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 34)));
		}
		LA63_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA68_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35)));
		}
		LA68_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA73_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40)));
		}
		LA73_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 12):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA78_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 41)));
		}
		LA78_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 13):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA83_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 42)));
		}
		LA83_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 14):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA88_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 43)));
		}
		LA88_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA93_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44)));
		}
		LA93_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 17):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA98_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37)));
		}
		LA98_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA103_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 38)));
		}
		LA103_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 19):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA108_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39)));
		}
		LA108_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA113_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28)));
		}
		LA113_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5):
	{
		{
			if (!((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA118_;
			asgnRef((void**) (&(*result).typ), getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2)));
		}
		LA118_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		result = semFieldAccess__sem_13895(c, n, flags);
		{
			if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 25))) goto LA123_;
			transitionSonsKind__ast_4359(result, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 27));
			result = semExpr__sem_52(c, result, flags);
		}
		LA123_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 55):
	{
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 21), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_611), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_612, NIM_FALSE);
		result = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 135):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 150):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 137):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T147_;
		{
			NIM_BOOL T129_;
			NI T131_;
			tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag modifier;
			T129_ = (NIM_BOOL)0;
			T129_ = !(((*c).matchedConcept == ((tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg*) NIM_NIL)));
			if (!(T129_)) goto LA130_;
			T131_ = (NI)0;
			T131_ = len__ast_3198(n);
			T129_ = (T131_ == ((NI) 1));
			LA130_: ;
			if (!T129_) goto LA132_;
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 137):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8);
			}
			break;
			default:
			{
				modifier = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
			}
			break;
			}
			{
				tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T144_;
				tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* T145_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T146_;
				if (!!((modifier == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0)))) goto LA142_;
				T144_ = NIM_NIL;
				T144_ = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
				baseType = skipTypes__ast_3735((*T144_).typ, TM__rF9caJawfOjYTjsgLVUSGFA_123);
				T145_ = NIM_NIL;
				T145_ = (tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A*) newSeq((&NTIttypeseq__9aZVGG5Gtti9cC9bqRpXCtA3A_), 1);
				asgnRef((void**) (&T145_->data[0]), baseType);
				T146_ = NIM_NIL;
				T146_ = newTypeWithSons__semdata_821(c, modifier, T145_);
				asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, T146_));
				goto BeforeRet_;
			}
			LA142_: ;
		}
		LA132_: ;
		T147_ = NIM_NIL;
		T147_ = semTypeNode__sem_80(c, n, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		typ = skipTypes__ast_3735(T147_, TM__rF9caJawfOjYTjsgLVUSGFA_123);
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, typ));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 128):
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* typ_2;
		typ_2 = semTypeNode__sem_80(c, n, ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		asgnRef((void**) (&(*result).typ), makeTypeDesc__concepts_49(c, typ_2));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28):
	{
		tySet_tyEnum_TLookupFlag__ObWMY5GMSl1GiMcrKaAhKQ mode;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s_2;
		checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
		{
			if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 9))&31U)))!=0)) goto LA152_;
			mode = 0;
		}
		goto LA150_;
		LA152_: ;
		{
			mode = 2;
		}
		LA150_: ;
		(*c).isAmbiguous = NIM_FALSE;
		s_2 = qualifiedLookUp__lookups_1233(c, (*n)._kind_6.sons->data[((NI) 0)], mode);
		{
			if (!!((s_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA157_;
			switch ((*s_2).kind) {
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
			{
				result = semDirectOp__sem_511(c, n, flags);
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
			{
				NIM_BOOL ambig;
				ambig = (*c).isAmbiguous;
				{
					NIM_BOOL T163_;
					NIM_BOOL T164_;
					NI T167_;
					T163_ = (NIM_BOOL)0;
					T164_ = (NIM_BOOL)0;
					T164_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2));
					if (!(T164_)) goto LA165_;
					T164_ = ambig;
					LA165_: ;
					T163_ = !(T164_);
					if (!(T163_)) goto LA166_;
					T167_ = (NI)0;
					T167_ = len__ast_3198(n);
					T163_ = (T167_ == ((NI) 2));
					LA166_: ;
					if (!T163_) goto LA168_;
					result = semConv__sem_14396(c, n);
				}
				goto LA161_;
				LA168_: ;
				{
					NIM_BOOL T171_;
					NI T173_;
					T171_ = (NIM_BOOL)0;
					T171_ = ambig;
					if (!(T171_)) goto LA172_;
					T173_ = (NI)0;
					T173_ = len__ast_3198(n);
					T171_ = (T173_ == ((NI) 1));
					LA172_: ;
					if (!T171_) goto LA174_;
					errorUseQualifier__lookups_1180(c, (*n).info, s_2);
				}
				goto LA161_;
				LA174_: ;
				{
					NI T177_;
					T177_ = (NI)0;
					T177_ = len__ast_3198(n);
					if (!(T177_ == ((NI) 1))) goto LA178_;
					result = semObjConstr__sem_16476(c, n, flags);
				}
				goto LA161_;
				LA178_: ;
				{
					if (!((*s_2).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA181_;
					result = semDirectOp__sem_511(c, n, flags);
				}
				goto LA161_;
				LA181_: ;
				{
					result = semMagic__sem_18585(c, n, s_2, flags);
				}
				LA161_: ;
			}
			break;
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
			case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
			{
				{
					if (!((*s_2).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0))) goto LA187_;
					result = semDirectOp__sem_511(c, n, flags);
				}
				goto LA185_;
				LA187_: ;
				{
					result = semMagic__sem_18585(c, n, s_2, flags);
				}
				LA185_: ;
			}
			break;
			default:
			{
				result = semIndirectOp__sem_16553(c, n, flags);
			}
			break;
			}
		}
		goto LA155_;
		LA157_: ;
		{
			NIM_BOOL T192_;
			NIM_BOOL T193_;
			T192_ = (NIM_BOOL)0;
			T193_ = (NIM_BOOL)0;
			T193_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
			if (T193_) goto LA194_;
			T193_ = shouldBeBracketExpr__sem_20049(n);
			LA194_: ;
			T192_ = T193_;
			if (!(T192_)) goto LA195_;
			T192_ = isSymChoice__sem_14367((*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]);
			LA195_: ;
			if (!T192_) goto LA196_;
			setGenericParams__sem_16512(c, (*n)._kind_6.sons->data[((NI) 0)]);
			result = semDirectOp__sem_511(c, n, flags);
		}
		goto LA155_;
		LA196_: ;
		{
			if (!(((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 9))&31U)))!=0)) goto LA199_;
			result = semDirectOp__sem_511(c, n, flags);
		}
		goto LA155_;
		LA199_: ;
		{
			NIM_BOOL T202_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
			T202_ = (NIM_BOOL)0;
			T202_ = isSymChoice__sem_14367((*n)._kind_6.sons->data[((NI) 0)]);
			if (!T202_) goto LA203_;
			b = asBracketExpr__sem_20104(c, n);
			{
				if (!!((b == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA207_;
				result = semExpr__sem_52(c, b, flags);
			}
			goto LA205_;
			LA207_: ;
			{
				result = semDirectOp__sem_511(c, n, flags);
			}
			LA205_: ;
		}
		goto LA155_;
		LA203_: ;
		{
			result = semIndirectOp__sem_16553(c, n, flags);
		}
		LA155_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* hoistedParams;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T218_;
			if (!(((*result).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 19))&31U)))!=0)) goto LA213_;
			result = copyTree__ast_4431(result);
			hoistedParams = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100), (*result).info);
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3198(result);
				i_2 = ((NI) 1);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA217;
						i = i_2;
						hoistParamsUsedInDefault__sem_20169(c, &result, &hoistedParams, &(*result)._kind_6.sons->data[i]);
						i_2 += ((NI) 1);
					} LA217: ;
				}
			}
			nimZeroMem((void*)T218_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T218_[0] = hoistedParams;
			T218_[1] = result;
			result = newTreeIT__ast_3431(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*result).info, (*result).typ, T218_, 2);
		}
		LA213_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		{
			if (!((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 7))&31U)))!=0)) goto LA222_;
			result = semWhen__sem_515(c, n, NIM_TRUE);
		}
		goto LA220_;
		LA222_: ;
		{
			result = semWhen__sem_515(c, n, NIM_FALSE);
			{
				if (!(result == n)) goto LA227_;
				result = semWhen__sem_515(c, n, NIM_TRUE);
			}
			goto LA225_;
			LA227_: ;
			{
				result = semExpr__sem_52(c, result, flags);
			}
			LA225_: ;
		}
		LA220_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		checkMinSonsLen__semdata_1084(n, ((NI) 1), (*(*c).graph).config);
		result = semArrayAccess__sem_17549(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 40):
	{
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T232_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T233_;
		T232_ = NIM_NIL;
		T232_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_127));
		T233_ = NIM_NIL;
		T233_ = buildOverloadedSubscripts__sem_17363(n, T232_);
		result = semExpr__sem_52(c, T233_, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* pragma;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* pragmaName;
		tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags_2;
		tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg finalNodeFlags;
		tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T235_;
		pragma = (*n)._kind_6.sons->data[((NI) 1)];
		pragmaName = considerQuotedIdent__lookups_28(c, (*pragma)._kind_6.sons->data[((NI) 0)], ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
		flags_2 = flags;
		finalNodeFlags = 0;
		T235_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
		T235_ = whichKeyword__idents_214(pragmaName);
		switch (T235_) {
		case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 223):
		{
			flags_2 |= ((NU32)1)<<((((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 10)) & 31);
		}
		break;
		case ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 166):
		{
			finalNodeFlags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 20)) & 31);
		}
		break;
		default:
		{
			invalidPragma__pragmas_148(c, n);
		}
		break;
		}
		result = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], flags_2);
		(*result).flags = ((*result).flags | finalNodeFlags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg T240_;
		T240_ = (tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg)0;
		T240_ = checkPar__sem_18936(c, n);
		switch (T240_) {
		case ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 0):
		{
			result = errorNode__semdata_1009(c, n);
		}
		break;
		case ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 3):
		{
			result = semTupleConstr__sem_20019(c, n, flags);
		}
		break;
		case ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 2):
		{
			result = semTupleFieldsConstr__sem_19000(c, n, flags);
		}
		break;
		case ((tyEnum_TParKind__halZ9aqjYDH0l2n5E6sCJdg) 1):
		{
			result = semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		result = semSetConstr__sem_18776(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		result = semArrayConstr__sem_14894(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		result = semObjConstr__sem_16476(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		result = semProcAux__sem_13030(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12), TM__rF9caJawfOjYTjsgLVUSGFA_712, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	{
		result = semDeref__sem_17376(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	{
		result = n;
		checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), semAddrArg__sem_15267(c, (*n)._kind_6.sons->data[((NI) 0)], NIM_FALSE));
		asgnRef((void**) (&(*result).typ), makePtrType__semdata_742(c, (*(*result)._kind_6.sons->data[((NI) 0)]).typ));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], flags));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		result = semCast__sem_14525(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		result = semIf__sem_9366(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		checkSonsLen__semdata_1077(n, ((NI) 2), (*(*c).graph).config);
		considerGenSyms__semdata_425(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		checkSonsLen__semdata_1077(n, ((NI) 1), (*(*c).graph).config);
		considerGenSyms__semdata_425(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		checkSonsLen__semdata_1077(n, ((NI) 3), (*(*c).graph).config);
		considerGenSyms__semdata_425(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		checkMinSonsLen__semdata_1084(n, ((NI) 2), (*(*c).graph).config);
		considerGenSyms__semdata_425(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 54):
	{
		result = semTableConstr__sem_18868(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 62):
	{
		result = semStaticExpr__sem_125(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	{
		result = semAsgn__sem_15312(c, n, ((tyEnum_SemAsgnMode__e9aTobe3zFbbfTs9bHC7XMIQ) 0));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	{
		result = semBlock__sem_19822(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		result = semStmtList__sem_13732(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		result = semRaise__sem_11563(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	{
		result = semVarOrLet__sem_10067(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		result = semVarOrLet__sem_10067(c, n, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
		result = semConst__sem_10430(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		result = semTypeSection__sem_12313(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		result = semDiscard__sem_9153(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		result = semWhile__sem_9234(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		result = semTry__sem_9422(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111):
	{
		result = semBreakOrContinue__sem_9185(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		result = semFor__sem_11338(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		result = semCase__sem_11454(c, n, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		result = semReturn__sem_17891(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 124):
	{
		result = semUsing__sem_9769(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89):
	{
		result = semAsm__sem_9228(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104):
	{
		result = semYield__sem_18071(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	{
		pragma__pragmas_123(c, (*(*c).p).owner, n, TM__rF9caJawfOjYTjsgLVUSGFA_893, NIM_TRUE);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	{
		result = semIterator__sem_13401(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
	{
		result = semProc__sem_9261(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = semFunc__sem_13457(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
	{
		result = semMethod__sem_13467(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	{
		result = semConverterDef__sem_13502(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	{
		result = semMacroDef__sem_13521(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	{
		result = semTemplateDef__sem_7666(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	{
		{
			NimStringDesc* T292_;
			if (!((NI)(((NI) 2) + (*c).compilesContextId) < (*(*c).currentScope).depthLevel)) goto LA290_;
			T292_ = NIM_NIL;
			T292_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_911));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T292_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_912, NIM_FALSE);
		}
		LA290_: ;
		result = evalImport__importer_3830(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 117):
	{
		{
			NIM_BOOL T296_;
			NimStringDesc* T299_;
			T296_ = (NIM_BOOL)0;
			T296_ = isTopLevel__semdata_1091(c);
			if (!!(T296_)) goto LA297_;
			T299_ = NIM_NIL;
			T299_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_911));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T299_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_913, NIM_FALSE);
		}
		LA297_: ;
		result = evalImportExcept__importer_3911(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120):
	{
		{
			NIM_BOOL T303_;
			NimStringDesc* T306_;
			T303_ = (NIM_BOOL)0;
			T303_ = isTopLevel__semdata_1091(c);
			if (!!(T303_)) goto LA304_;
			T306_ = NIM_NIL;
			T306_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_914));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T306_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_915, NIM_FALSE);
		}
		LA304_: ;
		result = evalFrom__importer_3885(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
	{
		result = evalInclude__sem_13576(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
	{
		{
			NIM_BOOL T311_;
			NimStringDesc* T314_;
			T311_ = (NIM_BOOL)0;
			T311_ = isTopLevel__semdata_1091(c);
			if (!!(T311_)) goto LA312_;
			T314_ = NIM_NIL;
			T314_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_115));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T314_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_922, NIM_FALSE);
		}
		LA312_: ;
		result = semExport__sem_19908(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 119):
	{
		{
			NIM_BOOL T318_;
			NimStringDesc* T321_;
			T318_ = (NIM_BOOL)0;
			T318_ = isTopLevel__semdata_1091(c);
			if (!!(T318_)) goto LA319_;
			T321_ = NIM_NIL;
			T321_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_114), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_115));
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T321_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_929, NIM_FALSE);
		}
		LA319_: ;
		result = semExportExcept__sem_19869(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		result = semPragmaBlock__sem_13648(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	{
		result = semStaticStmt__sem_13686(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105):
	{
		{
			if (!((*c).currentScope == (*c).topLevelScope)) goto LA327_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_935), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_936, NIM_FALSE);
		}
		LA327_: ;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), semExpr__sem_52(c, (*n)._kind_6.sons->data[((NI) 0)], 0));
		{
			NIM_BOOL T331_;
			NIM_BOOL T332_;
			NIM_BOOL T334_;
			T331_ = (NIM_BOOL)0;
			T332_ = (NIM_BOOL)0;
			T332_ = isEmptyType__ast_4779((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			T331_ = !(T332_);
			if (!(T331_)) goto LA333_;
			T334_ = (NIM_BOOL)0;
			T334_ = implicitlyDiscardable__sem_9282((*n)._kind_6.sons->data[((NI) 0)]);
			T331_ = !(T334_);
			LA333_: ;
			if (!T331_) goto LA335_;
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_937), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_938, NIM_FALSE);
		}
		LA335_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157):
	{
		{
			NIM_BOOL T340_;
			NI T341_;
			NI T343_;
			T340_ = (NIM_BOOL)0;
			T341_ = (NI)0;
			T341_ = len__ast_3198(n);
			T340_ = !((T341_ == ((NI) 1)));
			if (!(T340_)) goto LA342_;
			T343_ = (NI)0;
			T343_ = len__ast_3198(n);
			T340_ = !((T343_ == ((NI) 2)));
			LA342_: ;
			if (!T340_) goto LA344_;
			illFormedAst__semdata_1071(n, (*(*c).graph).config);
		}
		LA344_: ;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA348;
					i_3 = i_4;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), semExpr__sem_52(c, (*n)._kind_6.sons->data[i_3], 0));
					i_4 += ((NI) 1);
				} LA348: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
	{
		{
			if (!!(((*c).p == ((tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*) NIM_NIL)))) goto LA354_;
			{
				NIM_BOOL T358_;
				NI T359_;
				NI T363_;
				T358_ = (NIM_BOOL)0;
				T359_ = (NI)0;
				T359_ = len__ast_3198(n);
				T358_ = (((NI) 0) < T359_);
				if (!(T358_)) goto LA360_;
				T358_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				LA360_: ;
				if (!T358_) goto LA361_;
				asgnRef((void**) (&(*(*c).p).localBindStmts), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*(*c).p).localBindStmts), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
				T363_ = (*(*c).p).localBindStmts->Sup.len++;
				asgnRef((void**) (&(*(*c).p).localBindStmts->data[T363_]), n);
			}
			LA361_: ;
		}
		goto LA352_;
		LA354_: ;
		{
			NimStringDesc* T365_;
			NimStringDesc* T366_;
			T365_ = NIM_NIL;
			T366_ = NIM_NIL;
			T366_ = renderTree__renderer_46(n, 4);
			T365_ = rawNewString((T366_ ? T366_->Sup.len : 0) + 38);
appendString(T365_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_939));
appendString(T365_, T366_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T365_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_940, NIM_FALSE);
		}
		LA352_: ;
	}
	break;
	default:
	{
		NimStringDesc* T368_;
		NimStringDesc* T369_;
		T368_ = NIM_NIL;
		T369_ = NIM_NIL;
		T369_ = renderTree__renderer_46(n, 4);
		T368_ = rawNewString((T369_ ? T369_->Sup.len : 0) + 20);
appendString(T368_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_941));
appendString(T368_, T369_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T368_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_942, NIM_FALSE);
	}
	break;
	}
	{
		if (!!((result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA372_;
		(*result).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31);
	}
	LA372_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprCheck__sem_13934)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NIM_BOOL isEmpty;
	NIM_BOOL isTypeError;
	NIM_BOOL T5_;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA3_;
		illFormedAst__semdata_1071(n, (*(*c).graph).config);
	}
	LA3_: ;
	result = semExpr__sem_52(c, n, (flags | 2048));
	isEmpty = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
	T5_ = (NIM_BOOL)0;
	T5_ = !(((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
	if (!(T5_)) goto LA6_;
	T5_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50));
	LA6_: ;
	isTypeError = T5_;
	{
		NIM_BOOL T9_;
		NimStringDesc* T13_;
		NimStringDesc* T14_;
		T9_ = (NIM_BOOL)0;
		T9_ = isEmpty;
		if (T9_) goto LA10_;
		T9_ = isTypeError;
		LA10_: ;
		if (!T9_) goto LA11_;
		T13_ = NIM_NIL;
		T13_ = renderTree__renderer_46(result, 4);
		T14_ = NIM_NIL;
		T14_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_840), T13_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T14_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_943, NIM_FALSE);
	}
	LA11_: ;
	{
		if (!isEmpty) goto LA17_;
		result = errorNode__semdata_1009(c, n);
	}
	LA17_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semExprWithType__sem_56)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = semExprCheck__sem_13934(c, n, flags);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((flags &((NU32)1<<((NU)(((tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ) 3))&31U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		asgnRef((void**) (&(*result).typ), (*c).voidType);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		NimStringDesc* T12_;
		NimStringDesc* T13_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
		if (T8_) goto LA9_;
		T8_ = ((*result).typ == (*c).enforceVoidContext);
		LA9_: ;
		if (!T8_) goto LA10_;
		T12_ = NIM_NIL;
		T12_ = renderTree__renderer_46(result, 4);
		T13_ = NIM_NIL;
		T13_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_840), T12_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T13_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_944, NIM_FALSE);
		asgnRef((void**) (&(*result).typ), errorType__semdata_1002(c));
	}
	goto LA1_;
	LA10_: ;
	{
		if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50))) goto LA15_;
		asgnRef((void**) (&(*result).typ), errorType__semdata_1002(c));
	}
	goto LA1_;
	LA15_: ;
	{
		{
			if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA20_;
			result = newDeref__lowerings_11(result);
		}
		LA20_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semConstExpr__sem_611)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
{	result = NIM_NIL;
	e = semExprWithType__sem_56(c, n, 0);
	{
		if (!(e == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_349), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_945, NIM_FALSE);
		result = n;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T9_;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*e).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57));
		if (!(T7_)) goto LA8_;
		T9_ = NIM_NIL;
		T9_ = skipTypes__ast_3735((*(*e)._kind_6.sons->data[((NI) 0)]).typ, TM__rF9caJawfOjYTjsgLVUSGFA_70);
		T7_ = ((*T9_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14));
		LA8_: ;
		if (!T7_) goto LA10_;
		result = e;
		goto BeforeRet_;
	}
	LA10_: ;
	result = getConstExpr__semfold_81((*c).module, e, (*c).Sup.idgen, (*c).graph);
	{
		if (!(result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA14_;
		result = evalConstExpr__vm_13746((*c).module, (*c).Sup.idgen, (*c).graph, e);
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = (result == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
			if (T18_) goto LA19_;
			T18_ = ((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA19_: ;
			if (!T18_) goto LA20_;
			{
				NIM_BOOL T24_;
				T24_ = (NIM_BOOL)0;
				T24_ = eqeq___msgs_993((*e).info, (*n).info);
				if (!!(T24_)) goto LA25_;
				pushInfoContext__msgs_490((*(*c).graph).config, (*n).info, ((NimStringDesc*) NIM_NIL));
				liMessage__msgs_1118((*(*c).graph).config, (*e).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_349), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_946, NIM_FALSE);
				popInfoContext__msgs_507((*(*c).graph).config);
			}
			goto LA22_;
			LA25_: ;
			{
				liMessage__msgs_1118((*(*c).graph).config, (*e).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_349), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_947, NIM_FALSE);
			}
			LA22_: ;
			result = e;
		}
		goto LA16_;
		LA20_: ;
		{
			result = fixupTypeAfterEval__sem_570(c, result, e);
		}
		LA16_: ;
	}
	LA14_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasUnresolvedParams__sem_9865)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((*(*n).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 9))&63U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semOperand__sem_13901)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA3_;
		illFormedAst__semdata_1071(n, (*(*c).graph).config);
	}
	LA3_: ;
	result = semExpr__sem_52(c, n, (flags | 4096));
	{
		if (!!(((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA7_;
		{
			NIM_BOOL T11_;
			NimStringDesc* T15_;
			NimStringDesc* T16_;
			T11_ = (NIM_BOOL)0;
			T11_ = ((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T11_)) goto LA12_;
			T11_ = hasUnresolvedParams__sem_9865(result, 4096);
			LA12_: ;
			if (!T11_) goto LA13_;
			T15_ = NIM_NIL;
			T15_ = renderTree__renderer_46(n, 0);
			T16_ = NIM_NIL;
			T16_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_738), T15_);
			liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T16_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_948, NIM_FALSE);
		}
		LA13_: ;
		{
			if (!((*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*result).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA19_;
			result = newDeref__lowerings_11(result);
		}
		LA19_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		if (!!(((384 & flags) == 0))) goto LA22_;
		asgnRef((void**) (&(*result).typ), newTypeS__semdata_733(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63), c));
	}
	goto LA5_;
	LA22_: ;
	{
		NimStringDesc* T25_;
		NimStringDesc* T26_;
		T25_ = NIM_NIL;
		T25_ = renderTree__renderer_46(result, 4);
		T26_ = NIM_NIL;
		T26_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_840), T25_);
		liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T26_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_949, NIM_FALSE);
		asgnRef((void**) (&(*result).typ), errorType__semdata_1002(c));
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semInferredLambda__sem_12602)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* original;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
	tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* T9_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
	result = NIM_NIL;
	n_2 = n;
	original = (*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	s = original;
	n_2 = replaceTypesInBody__semtypinst_988(c, pt, n_2, original, NIM_FALSE);
	result = n_2;
	asgnRef((void**) (&(*s).ast), result);
	asgnRef((void**) (&(*(*n_2)._kind_6.sons->data[((NI) 0)])._kind_4.sym), s);
	asgnRef((void**) (&(*n_2)._kind_6.sons->data[((NI) 2)]), (*(*c).graph).emptyNode);
	params = copyTree__ast_4431((*(*n_2).typ).n);
	asgnRef((void**) (&(*n_2)._kind_6.sons->data[((NI) 3)]), params);
	asgnRef((void**) (&(*s).typ), (*n_2).typ);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(params);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NimStringDesc* T8_;
					if (!((*(*(*params)._kind_6.sons->data[i]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*(*(*params)._kind_6.sons->data[i]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12) || (*(*(*params)._kind_6.sons->data[i]).typ).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51) && (*(*(*params)._kind_6.sons->data[i]).typ).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54) || (*(*(*params)._kind_6.sons->data[i]).typ).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56) && (*(*(*params)._kind_6.sons->data[i]).typ).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59) || (*(*(*params)._kind_6.sons->data[i]).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61))) goto LA6_;
					T8_ = NIM_NIL;
					T8_ = rawNewString(((*(*(*(*params)._kind_6.sons->data[i])._kind_4.sym).name).s ? (*(*(*(*params)._kind_6.sons->data[i])._kind_4.sym).name).s->Sup.len : 0) + 32);
appendString(T8_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_950));
appendString(T8_, (*(*(*(*params)._kind_6.sons->data[i])._kind_4.sym).name).s);
					liMessage__msgs_1118((*(*c).graph).config, (*(*params)._kind_6.sons->data[i]).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T8_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_951, NIM_FALSE);
				}
				LA6_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	T9_ = NIM_NIL;
	T9_ = openScope__lookups_69(c);
	pushOwner__semdata_322(c, s);
	addParams__sem_96(c, params, ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
	pushProcCon__sem_898(c, s);
	addResult__sem_12396(c, n_2, (*(*n_2).typ).sons->data[((NI) 0)], ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
	T10_ = NIM_NIL;
	T10_ = semProcBody__sem_67(c, (*n_2)._kind_6.sons->data[((NI) 6)]);
	asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 6)]), hloBody__sem_783(c, T10_));
	trackProc__sempass50_4697(c, s, (*(*s).ast)._kind_6.sons->data[((NI) 6)]);
	popProcCon__semdata_389(c);
	popOwner__semdata_329(c);
	closeScope__lookups_101(c);
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
		if (!(T13_)) goto LA14_;
		T13_ = !(((*result).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA14_: ;
		if (!T13_) goto LA15_;
		asgnRef((void**) (&(*result).typ), makeVarType__semdata_766(c, (*result).typ, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
	}
	LA15_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, myOpen__sem_20578)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
	tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* result;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T1_;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
	tyProc__3cacbJ4la9bDJNibHybQSnA T7_;
	tyProc__fMj9boIZZOt9cLWRnD3rtKhA T8_;
	tyProc__7JwrY3AhkVNlleAJXClX9cw T9_;
	result = NIM_NIL;
	c = newContext__semdata_503(graph, module);
	asgnRef((void**) (&(*c).Sup.idgen), idgen);
	T1_ = nextTypeId__ast_3151(idgen);
	asgnRef((void**) (&(*c).enforceVoidContext), newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7), T1_, ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
	T2_ = nextTypeId__ast_3151(idgen);
	asgnRef((void**) (&(*c).voidType), newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63), T2_, ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
	{
		if (!!(((*c).p == ((tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*) NIM_NIL)))) goto LA5_;
		internalErrorImpl__msgs_1431((*graph).config, (*module).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_2), TM__rF9caJawfOjYTjsgLVUSGFA_3);
	}
	LA5_: ;
	(*c).semConstExpr = semConstExpr__sem_611;
	(*c).semExpr = semExpr__sem_52;
	(*c).semTryExpr = tryExpr__sem_104;
	(*c).semTryConstExpr = tryConstExpr__sem_582;
	(*c).computeRequiresInit = computeRequiresInit__sem_135;
	(*c).semOperand = semOperand__sem_13901;
	(*c).semConstBoolExpr = semConstBoolExpr__sem_2877;
	(*c).semOverloadedCall = semOverloadedCall__sem_2498;
	nimZeroMem((void*)(&T7_), sizeof(tyProc__3cacbJ4la9bDJNibHybQSnA));
	T7_.ClP_0 = ((TM__rF9caJawfOjYTjsgLVUSGFA_952) (semInferredLambda__sem_12602)); T7_.ClE_0 = NIM_NIL;
	asgnRef((void**) (&(*c).semInferredLambda.ClE_0), T7_.ClE_0);
	(*c).semInferredLambda.ClP_0 = T7_.ClP_0;
	nimZeroMem((void*)(&T8_), sizeof(tyProc__fMj9boIZZOt9cLWRnD3rtKhA));
	T8_.ClP_0 = ((TM__rF9caJawfOjYTjsgLVUSGFA_953) (generateInstance__sem_1295)); T8_.ClE_0 = NIM_NIL;
	asgnRef((void**) (&(*c).semGenerateInstance.ClE_0), T8_.ClE_0);
	(*c).semGenerateInstance.ClP_0 = T8_.ClP_0;
	(*c).semTypeNode = semTypeNode__sem_80;
	(*c).instTypeBoundOp = instTypeBoundOp__sigmatch_4327;
	nimZeroMem((void*)(&T9_), sizeof(tyProc__7JwrY3AhkVNlleAJXClX9cw));
	T9_.ClP_0 = ((TM__rF9caJawfOjYTjsgLVUSGFA_954) (hasUnresolvedArgs__sem_142)); T9_.ClE_0 = NIM_NIL;
	asgnRef((void**) (&(*c).hasUnresolvedArgs.ClE_0), T9_.ClE_0);
	(*c).hasUnresolvedArgs.ClP_0 = T9_.ClP_0;
	asgnRef((void**) (&(*c).templInstCounter), new__sem_20588());
	pushProcCon__sem_898(c, module);
	pushOwner__semdata_322(c, (*c).module);
	asgnRef((void**) (&(*c).moduleScope), openScope__lookups_69(c));
	strTableAdd__astalgo_3325((&(*(*c).moduleScope).symbols), module);
	{
		if (!(((*module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0)) goto LA12_;
		asgnRef((void**) (&(*graph).systemModule), module);
	}
	LA12_: ;
	asgnRef((void**) (&(*c).topLevelScope), openScope__lookups_69(c));
	result = &c->Sup;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportSystemStmt__sem_20700)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!((*g).systemModule == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA9;
						i = i_2;
						x = (*n)._kind_6.sons->data[i];
						{
							NI32 f;
							if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA12_;
							f = checkModuleName__modulepaths_21((*g).config, x, NIM_FALSE);
							{
								if (!(f == (*(*g).systemModule).info.fileIndex)) goto LA16_;
								result = NIM_TRUE;
								goto BeforeRet_;
							}
							LA16_: ;
						}
						LA12_: ;
						i_2 += ((NI) 1);
					} LA9: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 117):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120):
	{
		{
			NI32 f_2;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2))) goto LA21_;
			f_2 = checkModuleName__modulepaths_21((*g).config, (*n)._kind_6.sons->data[((NI) 0)], NIM_FALSE);
			{
				if (!(f_2 == (*(*g).systemModule).info.fileIndex)) goto LA25_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			LA25_: ;
		}
		LA21_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyTree__sem_20721)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
			it = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3191(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA5;
						i = i_2;
						it = (*n)._kind_6.sons->data[i];
						{
							NIM_BOOL T8_;
							T8_ = (NIM_BOOL)0;
							T8_ = isEmptyTree__sem_20721(it);
							if (!!(T8_)) goto LA9_;
							result = NIM_FALSE;
							goto BeforeRet_;
						}
						LA9_: ;
						i_2 += ((NI) 1);
					} LA5: ;
				}
			}
		}
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	{
		result = NIM_TRUE;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gatherStmts__sem_12234)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3198(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI32 f;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					f = checkModuleName__modulepaths_21((*(*c).graph).config, (*n)._kind_6.sons->data[i], NIM_TRUE);
					{
						if (!!((f == ((NI32) -1)))) goto LA7_;
						{
							NIM_BOOL T11_;
							NimStringDesc* T14_;
							NimStringDesc* T15_;
							T11_ = (NIM_BOOL)0;
							T11_ = containsOrIncl__astalgo_402((&(*c).includedFiles), ((NI) (f)));
							if (!T11_) goto LA12_;
							T14_ = NIM_NIL;
							T14_ = toMsgFilename__msgs_602((*(*c).graph).config, f);
							T15_ = NIM_NIL;
							T15_ = nsuFormatSingleElem(((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_10), T14_);
							liMessage__msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), T15_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_955, NIM_FALSE);
						}
						goto LA9_;
						LA12_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* code;
							code = (*(*c).graph).includeFileCallback((*c).graph, (*c).module, f);
							gatherStmts__sem_12234(c, code, result);
							excl__reorder_264((&(*c).includedFiles), ((NI) (f)));
						}
						LA9_: ;
					}
					LA7_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3198(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA20;
					i_3 = i_4;
					gatherStmts__sem_12234(c, (*n)._kind_6.sons->data[i_3], result);
					i_4 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 7)) & 31);
		typeSectionLeftSidePass__sem_11723(c, n);
		add__ast_4797(result, n);
	}
	break;
	default:
	{
		add__ast_4797(result, n);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semAllTypeSections__sem_12230)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	gatherStmts__sem_12234(c, n, result);
	{
		NI iX60gensym3174_;
		NI colontmp_;
		NI i;
		iX60gensym3174_ = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3198(result);
		i = ((NI) 0);
		{
			while (1) {
				if (!(i < colontmp_)) goto LA3;
				iX60gensym3174_ = i;
				{
					if (!((*(*result)._kind_6.sons->data[iX60gensym3174_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98))) goto LA6_;
					typeSectionRightSidePass__sem_11844(c, (*result)._kind_6.sons->data[iX60gensym3174_]);
				}
				LA6_: ;
				i += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI iX60gensym3177_;
		NI colontmp__2;
		NI i_2;
		iX60gensym3177_ = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_3198(result);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp__2)) goto LA10;
				iX60gensym3177_ = i_2;
				{
					if (!((*(*result)._kind_6.sons->data[iX60gensym3177_]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98))) goto LA13_;
					typeSectionFinalPass__sem_12119(c, (*result)._kind_6.sons->data[iX60gensym3177_]);
				}
				LA13_: ;
				i_2 += ((NI) 1);
			} LA10: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, hloStmt__sem_794)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = ((*c).patterns ? (*c).patterns->Sup.len : 0);
		T3_ = (T4_ == ((NI) 0));
		if (T3_) goto LA5_;
		T3_ = !((((*(*(*c).graph).config).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 23))&31U)))!=0));
		LA5_: ;
		if (!T3_) goto LA6_;
		result = n;
		goto BeforeRet_;
	}
	LA6_: ;
	(*c).hloLoopDetector = ((NI) 0);
	result = hlo__sem_668(c, n);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildEchoStmt__sem_16723)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* e;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	NimStringDesc* T9_;
	NimStringDesc* T10_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
	result = NIM_NIL;
	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_143((*c).cache, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_956));
	e = systemModuleSym__modulegraphs_2829((*c).graph, T1_);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!!((e == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = newSymNode__ast_3716(e);
		add__ast_4797(result, T6_);
	}
	goto LA2_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n2X60gensym4377_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		n2X60gensym4377_ = n;
		liMessage__msgs_1118((*(*c).graph).config, (*n2X60gensym4377_).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 15), ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_957), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_958, NIM_FALSE);
		T8_ = NIM_NIL;
		T8_ = errorNode__semdata_1009(c, n2X60gensym4377_);
		add__ast_4797(result, T8_);
	}
	LA2_: ;
	add__ast_4797(result, n);
	T9_ = NIM_NIL;
	T10_ = NIM_NIL;
	T10_ = typeToString__types_50((*n).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	T9_ = rawNewString((T10_ ? T10_->Sup.len : 0) + 2);
appendString(T9_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_282));
appendString(T9_, T10_);
	T11_ = NIM_NIL;
	T11_ = newStrNode__ast_3813(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), T9_);
	add__ast_4797(result, T11_);
	result = semExpr__sem_52(c, result, 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, semStmtAndGenerateGenerics__sem_20725)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*c).topStmts == ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isImportSystemStmt__sem_20700((*c).graph, n);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		{
			NIM_BOOL T10_;
			NIM_BOOL T12_;
			T10_ = (NIM_BOOL)0;
			T10_ = !((((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 15))&63U)))!=0));
			if (!(T10_)) goto LA11_;
			T12_ = (NIM_BOOL)0;
			T12_ = isEmptyTree__sem_20721(n);
			T10_ = !(T12_);
			LA11_: ;
			if (!T10_) goto LA13_;
			strTableAdd__astalgo_3325((&(*(*c).moduleScope).symbols), (*(*c).graph).systemModule);
			importAllSymbols__importer_2054(c, (*(*c).graph).systemModule);
			(*c).topStmts += ((NI) 1);
		}
		LA13_: ;
	}
	goto LA1_;
	LA6_: ;
	{
		(*c).topStmts += ((NI) 1);
	}
	LA1_: ;
	{
		if (!(((*(*c).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 10))&63U)))!=0)) goto LA18_;
		result = semAllTypeSections__sem_12230(c, n);
	}
	goto LA16_;
	LA18_: ;
	{
		result = n;
	}
	LA16_: ;
	result = semStmt__sem_84(c, result, 0);
	result = hloStmt__sem_794(c, result);
	{
		NIM_BOOL T23_;
		NIM_BOOL T25_;
		T23_ = (NIM_BOOL)0;
		T23_ = ((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 24));
		if (!(T23_)) goto LA24_;
		T25_ = (NIM_BOOL)0;
		T25_ = isEmptyType__ast_4779((*result).typ);
		T23_ = !(T25_);
		LA24_: ;
		if (!T23_) goto LA26_;
		result = buildEchoStmt__sem_16723(c, result);
	}
	LA26_: ;
	{
		if (!((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 11))) goto LA30_;
		appendToModule__ast_3540((*c).module, result);
	}
	LA30_: ;
	trackStmt__sempass50_4920(c, (*c).module, result, NIM_TRUE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, recoverContext__sem_20760)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	asgnRef((void**) (&(*c).currentScope), (*c).topLevelScope);
	{
		while (1) {
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T3_;
			T3_ = NIM_NIL;
			T3_ = getCurrOwner__semdata_315(c);
			if (!!(((*T3_).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)))) goto LA2;
			popOwner__semdata_329(c);
		} LA2: ;
	}
	{
		while (1) {
			NIM_BOOL T6_;
			T6_ = (NIM_BOOL)0;
			T6_ = !(((*c).p == ((tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ*) NIM_NIL)));
			if (!(T6_)) goto LA7_;
			T6_ = !(((*(*(*c).p).owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
			LA7_: ;
			if (!T6_) goto LA5;
			asgnRef((void**) (&(*c).p), (*(*c).p).next);
		} LA5: ;
	}
}
static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result;
	result = NIM_NIL;
	result = currException__system_2566;
	return result;
}
static N_INLINE(NIM_BOOL, isObjWithCache)(TNimType* obj, TNimType* subclass, TNimType** cache) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(obj == subclass)) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*obj).base == subclass)) goto LA7_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA7_: ;
	{
		if (!(cache[(((NI) 0))- 0] == obj)) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!(cache[(((NI) 1))- 0] == obj)) goto LA15_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA15_: ;
	result = isObjSlowPath__system_3313(obj, subclass, cache);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, myProcess__sem_20774)(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* context, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* volatile result;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
	result = NIM_NIL;
	c = ((tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*) (context));
	{
		if (!((*(*(*c).graph).config).errorMax <= ((NI) 1))) goto LA3_;
		result = semStmtAndGenerateGenerics__sem_20725(c, n);
	}
	goto LA1_;
	LA3_: ;
	{
		NI oldContextLen;
		NI oldInGenericInst;
		TSafePoint TM__rF9caJawfOjYTjsgLVUSGFA_959;
		oldContextLen = getInfoContextLen__msgs_476((*(*c).graph).config);
		oldInGenericInst = (*c).inGenericInst;
		pushSafePoint(&TM__rF9caJawfOjYTjsgLVUSGFA_959);
		TM__rF9caJawfOjYTjsgLVUSGFA_959.status = _setjmp(TM__rF9caJawfOjYTjsgLVUSGFA_959.context);
		if (TM__rF9caJawfOjYTjsgLVUSGFA_959.status == 0) {
		result = semStmtAndGenerateGenerics__sem_20725(c, n);
		popSafePoint();
		}
		else {
			popSafePoint();
			if (isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIerecoverableerror__IxbcvonC7TQkv166Uvdu1g_))||isObj(nimBorrowCurrentException()->Sup.m_type, (&NTIesuggestdone__cDtWY9cE7zf8BAC5QcEZZkQ_))) {
				TM__rF9caJawfOjYTjsgLVUSGFA_959.status = 0;
				recoverContext__sem_20760(c);
				(*c).inGenericInst = oldInGenericInst;
				setInfoContextLen__msgs_483((*(*c).graph).config, oldContextLen);
				{
					Exception* T10_;
					T10_ = NIM_NIL;
					T10_ = getCurrentException();
					if (!((T10_) && (isObjWithCache((*T10_).Sup.m_type, (&NTIesuggestdone__cDtWY9cE7zf8BAC5QcEZZkQ_), Nim_OfCheck_CACHE961)))) goto LA11_;
					(*c).suggestionsMade = NIM_TRUE;
					result = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
				}
				goto LA8_;
				LA11_: ;
				{
					result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
				}
				LA8_: ;
				popCurrentException();
			}
		}
		if (TM__rF9caJawfOjYTjsgLVUSGFA_959.status != 0) reraiseException();
	}
	LA1_: ;
	storeRodNode__semdata_1178(c, result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, reportUnusedModules__sem_20788)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*c).unusedImports ? (*c).unusedImports->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if (!!((((*(*c).unusedImports->data[i].Field0).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 0))&63U)))!=0))) goto LA7_;
					liMessage__msgs_1118((*(*c).graph).config, (*c).unusedImports->data[i].Field1, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 37), (*(*(*c).unusedImports->data[i].Field0).name).s, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__rF9caJawfOjYTjsgLVUSGFA_961, NIM_FALSE);
				}
				LA7_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addCodeForGenerics__sem_20542)(tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI T19_;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).generics ? (*c).generics->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = (*c).lastGenericIdx;
		{
			while (1) {
				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* prc;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				prc = (*(*c).generics->data[i].inst).sym;
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((94208 &((NU32)1<<((NU)((*prc).kind)&31U)))!=0);
					if (!(T7_)) goto LA8_;
					T7_ = ((*prc).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0));
					LA8_: ;
					if (!T7_) goto LA9_;
					{
						NIM_BOOL T13_;
						NimStringDesc* T17_;
						T13_ = (NIM_BOOL)0;
						T13_ = ((*prc).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
						if (T13_) goto LA14_;
						T13_ = ((*(*prc).ast)._kind_6.sons->data[((NI) 6)] == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
						LA14_: ;
						if (!T13_) goto LA15_;
						T17_ = NIM_NIL;
						T17_ = rawNewString(((*(*prc).name).s ? (*(*prc).name).s->Sup.len : 0) + 12);
appendString(T17_, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_964));
appendString(T17_, (*(*prc).name).s);
						internalErrorImpl__msgs_1431((*(*c).graph).config, (*prc).info, T17_, TM__rF9caJawfOjYTjsgLVUSGFA_965);
					}
					goto LA11_;
					LA15_: ;
					{
						add__ast_4797(n, (*prc).ast);
					}
					LA11_: ;
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	T19_ = ((*c).generics ? (*c).generics->Sup.len : 0);
	(*c).lastGenericIdx = T19_;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, myClose__sem_20802)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* context, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
	result = NIM_NIL;
	c = ((tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*) (context));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*c).graph).config).cmd == ((tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA) 11));
		if (!(T3_)) goto LA4_;
		T3_ = !((*c).suggestionsMade);
		LA4_: ;
		if (!T3_) goto LA5_;
		suggestSentinel__sigmatch_6567(c);
	}
	LA5_: ;
	closeScope__lookups_101(c);
	rawCloseScope__lookups_99(c);
	reportUnusedModules__sem_20788(c);
	result = newNode__ast_3332(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
	{
		if (!!((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA9_;
		internalErrorImpl__msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__rF9caJawfOjYTjsgLVUSGFA_962), TM__rF9caJawfOjYTjsgLVUSGFA_963);
	}
	LA9_: ;
	addCodeForGenerics__sem_20542(c, result);
	{
		if (!!(((*(*c).module).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA13_;
		add__ast_4797(result, (*(*c).module).ast);
	}
	LA13_: ;
	popOwner__semdata_329(c);
	popProcCon__semdata_389(c);
	sealRodFile__semdata_3603(c);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_semDatInit000)(void) {
static TNimNode* TM__rF9caJawfOjYTjsgLVUSGFA_351_3[3];
static TNimNode* TM__rF9caJawfOjYTjsgLVUSGFA_363_2[2];
static TNimNode* TM__rF9caJawfOjYTjsgLVUSGFA_785_2[2];
static TNimNode TM__rF9caJawfOjYTjsgLVUSGFA_0[10];
NTIobject__LF0eKAnygFo4etNDdpTetg_.size = sizeof(tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg);
NTIobject__LF0eKAnygFo4etNDdpTetg_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg);
NTIobject__LF0eKAnygFo4etNDdpTetg_.kind = 17;
NTIobject__LF0eKAnygFo4etNDdpTetg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__rF9caJawfOjYTjsgLVUSGFA_351_3[0] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[1];
TM__rF9caJawfOjYTjsgLVUSGFA_0[1].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[1].offset = offsetof(tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg, colonstate_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[1].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[1].name = ":state";
TM__rF9caJawfOjYTjsgLVUSGFA_351_3[1] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[2];
TM__rF9caJawfOjYTjsgLVUSGFA_0[2].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[2].offset = offsetof(tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg, c1);
TM__rF9caJawfOjYTjsgLVUSGFA_0[2].typ = (&NTIpcontext__EjEifkTC8tg9afiUW4StSSA_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[2].name = "c1";
TM__rF9caJawfOjYTjsgLVUSGFA_351_3[2] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[3];
TM__rF9caJawfOjYTjsgLVUSGFA_0[3].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[3].offset = offsetof(tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg, scope2);
TM__rF9caJawfOjYTjsgLVUSGFA_0[3].typ = (&NTIpscope__N89ckikRqMir57209a3tEeqw_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[3].name = "scope2";
TM__rF9caJawfOjYTjsgLVUSGFA_0[0].len = 3; TM__rF9caJawfOjYTjsgLVUSGFA_0[0].kind = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[0].sons = &TM__rF9caJawfOjYTjsgLVUSGFA_351_3[0];
NTIobject__LF0eKAnygFo4etNDdpTetg_.node = &TM__rF9caJawfOjYTjsgLVUSGFA_0[0];
NTIrefobject__IqGNbqKVyQ9b9an5n9bN8QJsQ_.size = sizeof(tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg*);
NTIrefobject__IqGNbqKVyQ9b9an5n9bN8QJsQ_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim_semDynamicBindSym___LF0eKAnygFo4etNDdpTetg*);
NTIrefobject__IqGNbqKVyQ9b9an5n9bN8QJsQ_.kind = 22;
NTIrefobject__IqGNbqKVyQ9b9an5n9bN8QJsQ_.base = (&NTIobject__LF0eKAnygFo4etNDdpTetg_);
NTIrefobject__IqGNbqKVyQ9b9an5n9bN8QJsQ_.marker = Marker_tyRef__IqGNbqKVyQ9b9an5n9bN8QJsQ;
NTIobject__irrxU9bX4WBQP9bu3Q627FYw_.size = sizeof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw);
NTIobject__irrxU9bX4WBQP9bu3Q627FYw_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw);
NTIobject__irrxU9bX4WBQP9bu3Q627FYw_.kind = 17;
NTIobject__irrxU9bX4WBQP9bu3Q627FYw_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__rF9caJawfOjYTjsgLVUSGFA_363_2[0] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[5];
TM__rF9caJawfOjYTjsgLVUSGFA_0[5].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[5].offset = offsetof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw, colonstate_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[5].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[5].name = ":state";
TM__rF9caJawfOjYTjsgLVUSGFA_363_2[1] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[6];
TM__rF9caJawfOjYTjsgLVUSGFA_0[6].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[6].offset = offsetof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw, orig1);
TM__rF9caJawfOjYTjsgLVUSGFA_0[6].typ = (&NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[6].name = "orig1";
TM__rF9caJawfOjYTjsgLVUSGFA_0[4].len = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[4].kind = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[4].sons = &TM__rF9caJawfOjYTjsgLVUSGFA_363_2[0];
NTIobject__irrxU9bX4WBQP9bu3Q627FYw_.node = &TM__rF9caJawfOjYTjsgLVUSGFA_0[4];
NTIrefobject__s6znTCfmZMSZG9absJgsa1w_.size = sizeof(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw*);
NTIrefobject__s6znTCfmZMSZG9absJgsa1w_.align = NIM_ALIGNOF(tyObject_Env_semmagicdotnim_turnFinalizerIntoDestructor___irrxU9bX4WBQP9bu3Q627FYw*);
NTIrefobject__s6znTCfmZMSZG9absJgsa1w_.kind = 22;
NTIrefobject__s6znTCfmZMSZG9absJgsa1w_.base = (&NTIobject__irrxU9bX4WBQP9bu3Q627FYw_);
NTIrefobject__s6znTCfmZMSZG9absJgsa1w_.marker = Marker_tyRef__s6znTCfmZMSZG9absJgsa1w;
NTIobject__pOSGedHS6i9aexCYZEItHgQ_.size = sizeof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ);
NTIobject__pOSGedHS6i9aexCYZEItHgQ_.align = NIM_ALIGNOF(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ);
NTIobject__pOSGedHS6i9aexCYZEItHgQ_.kind = 17;
NTIobject__pOSGedHS6i9aexCYZEItHgQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__rF9caJawfOjYTjsgLVUSGFA_785_2[0] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[8];
TM__rF9caJawfOjYTjsgLVUSGFA_0[8].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[8].offset = offsetof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ, colonstate_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[8].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[8].name = ":state";
TM__rF9caJawfOjYTjsgLVUSGFA_785_2[1] = &TM__rF9caJawfOjYTjsgLVUSGFA_0[9];
TM__rF9caJawfOjYTjsgLVUSGFA_0[9].kind = 1;
TM__rF9caJawfOjYTjsgLVUSGFA_0[9].offset = offsetof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ, genericType1);
TM__rF9caJawfOjYTjsgLVUSGFA_0[9].typ = (&NTIptype__qt2Wh0elFEz5fH0l7yusLw_);
TM__rF9caJawfOjYTjsgLVUSGFA_0[9].name = "genericType1";
TM__rF9caJawfOjYTjsgLVUSGFA_0[7].len = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[7].kind = 2; TM__rF9caJawfOjYTjsgLVUSGFA_0[7].sons = &TM__rF9caJawfOjYTjsgLVUSGFA_785_2[0];
NTIobject__pOSGedHS6i9aexCYZEItHgQ_.node = &TM__rF9caJawfOjYTjsgLVUSGFA_0[7];
NTIrefobject__XNJoeAba9c9cA3kTvTEsgqEQ_.size = sizeof(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ*);
NTIrefobject__XNJoeAba9c9cA3kTvTEsgqEQ_.align = NIM_ALIGNOF(tyObject_Env_semstmtsdotnim_checkCovariantParamsUsages___pOSGedHS6i9aexCYZEItHgQ*);
NTIrefobject__XNJoeAba9c9cA3kTvTEsgqEQ_.kind = 22;
NTIrefobject__XNJoeAba9c9cA3kTvTEsgqEQ_.base = (&NTIobject__pOSGedHS6i9aexCYZEItHgQ_);
NTIrefobject__XNJoeAba9c9cA3kTvTEsgqEQ_.marker = Marker_tyRef__XNJoeAba9c9cA3kTvTEsgqEQ;
}

